From 74978394e2df04b0fb421e0ef4c9c2d17f109bf1 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 16:50:18 -0600 Subject: [PATCH 01/26] feat(api-model[ocaml]) Add native OCaml documentation why: OCaml readers need source-linked API pages, native examples and workspace guides in the shared site. what: - Decode compiled interfaces with native provenance and typed odoc links - Add OCaml navigation, packages, guides and executed source examples - Derive tmux usage from the native implementation and public facade - Verify OCaml manual destinations and add approved brand assets - Build the port through the reusable documentation producer --- .github/workflows/port-docs.yml | 16 + .github/workflows/reusable-deploy.yml | 4 +- packages/api-model/src/builtins.ts | 6 + packages/api-model/src/concepts.ts | 69 + packages/api-model/src/doc/roles.ts | 20 +- packages/api-model/src/inventory.ts | 1 + .../api-model/src/languages/ocaml-examples.ts | 56 + .../api-model/src/languages/ocaml.test.ts | 77 + packages/api-model/src/languages/ocaml.ts | 52 + packages/api-model/src/link.ts | 73 +- packages/api-model/src/model.ts | 4 +- packages/api-model/src/nav-config.ts | 15 +- packages/api-model/src/nav-sidecar.ts | 5 +- packages/api-model/src/parser.ts | 1 + packages/api-model/src/prose-fields.ts | 2 + packages/api-model/src/prose.ts | 1 + packages/api-model/test/concepts.test.ts | 1 + scripts/build-site.sh | 2 +- scripts/gen-api-model.mjs | 12 +- scripts/gen-tmux-usage.mjs | 11 + scripts/lib/api-addresses.mjs | 6 + scripts/lib/api-destinations.mjs | 1 + scripts/lib/api-identities.mjs | 20 +- scripts/lib/api-links.mjs | 3 +- scripts/lib/api-sources.mjs | 4 +- scripts/lib/manifest-packages.mjs | 12 +- scripts/lib/tmux-usage-derive.mjs | 5 + scripts/lib/tmux-usage-dispatch.mjs | 1 + scripts/lib/tmux-usage-ocaml.mjs | 80 + scripts/lib/tmux-usage-scan.mjs | 47 +- scripts/lib/tmux-usage-sweep.mjs | 1 + scripts/tmux-usage/claims.json | 6194 +++++++++++++++++ scripts/tmux-usage/conditions.json | 30 + scripts/tmux-usage/dispatchers.json | 179 + scripts/tmux-usage/not-senders.json | 249 + site/ec.config.mjs | 2 +- site/public/_shell/brand.css | 125 + site/public/_shell/shell.js | 1 + site/public/brand/catalog.json | 829 ++- site/public/brand/languages/ocaml/icon.svg | 2 + .../brand/languages/ocaml/provenance.json | 15 + .../ocaml/library/app-icon-1024-dark.png | Bin 0 -> 28856 bytes .../ocaml/library/app-icon-1024-light.png | Bin 0 -> 28623 bytes .../ocaml/library/apple-touch-icon-dark.png | Bin 0 -> 3911 bytes .../ocaml/library/apple-touch-icon-light.png | Bin 0 -> 3880 bytes .../ocaml/library/browserconfig-dark.xml | 1 + .../brand/ocaml/library/browserconfig.xml | 1 + site/public/brand/ocaml/library/favicon.ico | Bin 0 -> 22744 bytes site/public/brand/ocaml/library/logo-1024.png | Bin 0 -> 37231 bytes site/public/brand/ocaml/library/logo-128.png | Bin 0 -> 3741 bytes site/public/brand/ocaml/library/logo-144.png | Bin 0 -> 4183 bytes site/public/brand/ocaml/library/logo-152.png | Bin 0 -> 4364 bytes site/public/brand/ocaml/library/logo-16.png | Bin 0 -> 593 bytes site/public/brand/ocaml/library/logo-167.png | Bin 0 -> 4839 bytes site/public/brand/ocaml/library/logo-180.png | Bin 0 -> 5321 bytes site/public/brand/ocaml/library/logo-192.png | Bin 0 -> 5665 bytes site/public/brand/ocaml/library/logo-24.png | Bin 0 -> 775 bytes site/public/brand/ocaml/library/logo-256.png | Bin 0 -> 7642 bytes site/public/brand/ocaml/library/logo-32.png | Bin 0 -> 1049 bytes site/public/brand/ocaml/library/logo-384.png | Bin 0 -> 11845 bytes site/public/brand/ocaml/library/logo-48.png | Bin 0 -> 1505 bytes site/public/brand/ocaml/library/logo-512.png | Bin 0 -> 16443 bytes site/public/brand/ocaml/library/logo-64.png | Bin 0 -> 1945 bytes site/public/brand/ocaml/library/logo-96.png | Bin 0 -> 2809 bytes site/public/brand/ocaml/library/logo.svg | 2 + .../brand/ocaml/library/maskable-192-dark.png | Bin 0 -> 3135 bytes .../ocaml/library/maskable-192-light.png | Bin 0 -> 3109 bytes .../brand/ocaml/library/maskable-512-dark.png | Bin 0 -> 9452 bytes .../ocaml/library/maskable-512-light.png | Bin 0 -> 9403 bytes .../brand/ocaml/library/mstile-150-dark.png | Bin 0 -> 3075 bytes .../brand/ocaml/library/mstile-150-light.png | Bin 0 -> 3053 bytes .../brand/ocaml/library/mstile-310-dark.png | Bin 0 -> 6604 bytes .../brand/ocaml/library/mstile-310-light.png | Bin 0 -> 6551 bytes .../brand/ocaml/library/opengraph-dark.jpg | Bin 0 -> 104853 bytes .../brand/ocaml/library/opengraph-dark.png | Bin 0 -> 67913 bytes .../brand/ocaml/library/opengraph-light.jpg | Bin 0 -> 112267 bytes .../brand/ocaml/library/opengraph-light.png | Bin 0 -> 68057 bytes .../brand/ocaml/library/safari-pinned-tab.svg | 2 + .../brand/ocaml/library/site-dark.webmanifest | 36 + .../brand/ocaml/library/site.webmanifest | 36 + .../ocaml/library/social-square-dark.png | Bin 0 -> 76925 bytes .../ocaml/library/social-square-light.png | Bin 0 -> 77194 bytes .../brand/ocaml/library/twitter-dark.png | Bin 0 -> 67720 bytes .../brand/ocaml/library/twitter-light.png | Bin 0 -> 67827 bytes .../ocaml/workspace/app-icon-1024-dark.png | Bin 0 -> 11293 bytes .../ocaml/workspace/app-icon-1024-light.png | Bin 0 -> 11541 bytes .../ocaml/workspace/apple-touch-icon-dark.png | Bin 0 -> 1274 bytes .../workspace/apple-touch-icon-light.png | Bin 0 -> 1319 bytes .../ocaml/workspace/browserconfig-dark.xml | 1 + .../brand/ocaml/workspace/browserconfig.xml | 1 + site/public/brand/ocaml/workspace/favicon.ico | Bin 0 -> 17558 bytes .../brand/ocaml/workspace/logo-1024.png | Bin 0 -> 13836 bytes .../public/brand/ocaml/workspace/logo-128.png | Bin 0 -> 1135 bytes .../public/brand/ocaml/workspace/logo-144.png | Bin 0 -> 1291 bytes .../public/brand/ocaml/workspace/logo-152.png | Bin 0 -> 1350 bytes site/public/brand/ocaml/workspace/logo-16.png | Bin 0 -> 292 bytes .../public/brand/ocaml/workspace/logo-167.png | Bin 0 -> 1514 bytes .../public/brand/ocaml/workspace/logo-180.png | Bin 0 -> 1645 bytes .../public/brand/ocaml/workspace/logo-192.png | Bin 0 -> 1769 bytes site/public/brand/ocaml/workspace/logo-24.png | Bin 0 -> 324 bytes .../public/brand/ocaml/workspace/logo-256.png | Bin 0 -> 2456 bytes site/public/brand/ocaml/workspace/logo-32.png | Bin 0 -> 417 bytes .../public/brand/ocaml/workspace/logo-384.png | Bin 0 -> 3771 bytes site/public/brand/ocaml/workspace/logo-48.png | Bin 0 -> 533 bytes .../public/brand/ocaml/workspace/logo-512.png | Bin 0 -> 5415 bytes site/public/brand/ocaml/workspace/logo-64.png | Bin 0 -> 647 bytes site/public/brand/ocaml/workspace/logo-96.png | Bin 0 -> 862 bytes site/public/brand/ocaml/workspace/logo.svg | 2 + .../ocaml/workspace/maskable-192-dark.png | Bin 0 -> 1116 bytes .../ocaml/workspace/maskable-192-light.png | Bin 0 -> 1144 bytes .../ocaml/workspace/maskable-512-dark.png | Bin 0 -> 3772 bytes .../ocaml/workspace/maskable-512-light.png | Bin 0 -> 3846 bytes .../brand/ocaml/workspace/mstile-150-dark.png | Bin 0 -> 971 bytes .../ocaml/workspace/mstile-150-light.png | Bin 0 -> 994 bytes .../brand/ocaml/workspace/mstile-310-dark.png | Bin 0 -> 2178 bytes .../ocaml/workspace/mstile-310-light.png | Bin 0 -> 2243 bytes .../brand/ocaml/workspace/opengraph-dark.jpg | Bin 0 -> 42656 bytes .../brand/ocaml/workspace/opengraph-dark.png | Bin 0 -> 23449 bytes .../brand/ocaml/workspace/opengraph-light.jpg | Bin 0 -> 44987 bytes .../brand/ocaml/workspace/opengraph-light.png | Bin 0 -> 23424 bytes .../ocaml/workspace/safari-pinned-tab.svg | 2 + .../ocaml/workspace/site-dark.webmanifest | 36 + .../brand/ocaml/workspace/site.webmanifest | 36 + .../ocaml/workspace/social-square-dark.png | Bin 0 -> 26370 bytes .../ocaml/workspace/social-square-light.png | Bin 0 -> 26331 bytes .../brand/ocaml/workspace/twitter-dark.png | Bin 0 -> 23302 bytes .../brand/ocaml/workspace/twitter-light.png | Bin 0 -> 23278 bytes site/public/versions.json | 11 +- site/src/components/api/ApiDoc.astro | 6 +- site/src/components/api/ApiEntry.astro | 2 +- site/src/components/api/ApiReference.astro | 2 +- .../content/docs/ports/ocaml/core/index.md | 23 + .../docs/ports/ocaml/workspace/index.md | 13 + site/src/data/api-destination-evidence.json | 10 +- site/src/data/api-link-review.json | 4 + site/src/data/api/ocaml.json | 1 + site/src/data/api/ocaml.nav.json | 1 + site/src/data/api/ocaml.paths.json | 1 + site/src/data/core-apis.json | 42 + site/src/data/core-capabilities.json | 177 + site/src/data/core-home.json | 26 + site/src/data/destination-evidence.json | 126 + site/src/data/example-sources.json | 60 + site/src/data/home-examples.json | 42 + site/src/data/landing-examples.json | 18 + site/src/data/manifest-packages.json | 43 + site/src/data/mentions.json | 315 + site/src/data/port-guides/ocaml.json | 56 + site/src/data/registry.json | 7 + site/src/data/tmux-usage/ocaml.json | 1987 ++++++ site/src/lib/api-glossary-native.ts | 13 + site/src/lib/api-models.ts | 5 + site/src/lib/api-sections.ts | 2 +- site/src/lib/api-sidebar.ts | 8 +- site/src/lib/brand-palettes.json | 26 + site/src/lib/core-apis.ts | 19 +- site/src/lib/core-capabilities.ts | 1 + site/src/lib/core-home.ts | 7 +- site/src/lib/highlight.ts | 4 +- site/src/lib/native-name.ts | 5 +- site/src/lib/port-documentation.ts | 22 +- site/src/lib/port-families.ts | 2 +- site/src/lib/port-inventory.ts | 14 + site/src/lib/ports.ts | 28 +- site/src/lib/symbol-form.ts | 2 + site/src/lib/symbol-markdown.ts | 12 +- site/src/lib/tmux-library-usage.ts | 3 +- site/src/plugins/remark-port-code.mjs | 2 + site/src/styles/brand.css | 125 + site/test/api-destination-evidence.test.ts | 10 + site/test/api-glossary.test.ts | 1 + site/test/api-search.test.ts | 7 +- site/test/api-sidebar.test.ts | 10 + site/test/api-tree.test.ts | 19 +- site/test/branding.test.ts | 4 + site/test/concept-coverage.test.ts | 2 +- site/test/destination-evidence.test.ts | 15 +- site/test/docs-paths.test.ts | 6 +- site/test/fixtures/header-links.ts | 12 + site/test/fixtures/home-examples.json | 101 + site/test/fixtures/port-destinations.ts | 3 + site/test/fixtures/port-links.json | 4 + site/test/native-name.test.ts | 14 +- site/test/native-signature.test.ts | 6 +- site/test/ocaml.test.ts | 34 + site/test/port-docs-runtime.test.ts | 50 + site/test/port-inventory.test.ts | 2 +- site/test/port-landing.test.ts | 2 + site/test/port-links.test.ts | 1 + site/test/product-docs.test.ts | 4 +- site/test/prose-markdown.test.ts | 4 +- site/test/stage-port-docs.outer.test.ts | 24 +- site/test/stage-port-docs.test.ts | 13 +- site/test/symbol-form.test.ts | 1 + site/test/tmux-library-usage.test.ts | 20 + site/test/tmux-minimum.test.ts | 18 + site/test/tmux-usage-derive.test.ts | 61 + 197 files changed, 12028 insertions(+), 83 deletions(-) create mode 100644 packages/api-model/src/languages/ocaml-examples.ts create mode 100644 packages/api-model/src/languages/ocaml.test.ts create mode 100644 packages/api-model/src/languages/ocaml.ts create mode 100644 scripts/lib/tmux-usage-ocaml.mjs create mode 100644 site/public/brand/languages/ocaml/icon.svg create mode 100644 site/public/brand/languages/ocaml/provenance.json create mode 100644 site/public/brand/ocaml/library/app-icon-1024-dark.png create mode 100644 site/public/brand/ocaml/library/app-icon-1024-light.png create mode 100644 site/public/brand/ocaml/library/apple-touch-icon-dark.png create mode 100644 site/public/brand/ocaml/library/apple-touch-icon-light.png create mode 100644 site/public/brand/ocaml/library/browserconfig-dark.xml create mode 100644 site/public/brand/ocaml/library/browserconfig.xml create mode 100644 site/public/brand/ocaml/library/favicon.ico create mode 100644 site/public/brand/ocaml/library/logo-1024.png create mode 100644 site/public/brand/ocaml/library/logo-128.png create mode 100644 site/public/brand/ocaml/library/logo-144.png create mode 100644 site/public/brand/ocaml/library/logo-152.png create mode 100644 site/public/brand/ocaml/library/logo-16.png create mode 100644 site/public/brand/ocaml/library/logo-167.png create mode 100644 site/public/brand/ocaml/library/logo-180.png create mode 100644 site/public/brand/ocaml/library/logo-192.png create mode 100644 site/public/brand/ocaml/library/logo-24.png create mode 100644 site/public/brand/ocaml/library/logo-256.png create mode 100644 site/public/brand/ocaml/library/logo-32.png create mode 100644 site/public/brand/ocaml/library/logo-384.png create mode 100644 site/public/brand/ocaml/library/logo-48.png create mode 100644 site/public/brand/ocaml/library/logo-512.png create mode 100644 site/public/brand/ocaml/library/logo-64.png create mode 100644 site/public/brand/ocaml/library/logo-96.png create mode 100644 site/public/brand/ocaml/library/logo.svg create mode 100644 site/public/brand/ocaml/library/maskable-192-dark.png create mode 100644 site/public/brand/ocaml/library/maskable-192-light.png create mode 100644 site/public/brand/ocaml/library/maskable-512-dark.png create mode 100644 site/public/brand/ocaml/library/maskable-512-light.png create mode 100644 site/public/brand/ocaml/library/mstile-150-dark.png create mode 100644 site/public/brand/ocaml/library/mstile-150-light.png create mode 100644 site/public/brand/ocaml/library/mstile-310-dark.png create mode 100644 site/public/brand/ocaml/library/mstile-310-light.png create mode 100644 site/public/brand/ocaml/library/opengraph-dark.jpg create mode 100644 site/public/brand/ocaml/library/opengraph-dark.png create mode 100644 site/public/brand/ocaml/library/opengraph-light.jpg create mode 100644 site/public/brand/ocaml/library/opengraph-light.png create mode 100644 site/public/brand/ocaml/library/safari-pinned-tab.svg create mode 100644 site/public/brand/ocaml/library/site-dark.webmanifest create mode 100644 site/public/brand/ocaml/library/site.webmanifest create mode 100644 site/public/brand/ocaml/library/social-square-dark.png create mode 100644 site/public/brand/ocaml/library/social-square-light.png create mode 100644 site/public/brand/ocaml/library/twitter-dark.png create mode 100644 site/public/brand/ocaml/library/twitter-light.png create mode 100644 site/public/brand/ocaml/workspace/app-icon-1024-dark.png create mode 100644 site/public/brand/ocaml/workspace/app-icon-1024-light.png create mode 100644 site/public/brand/ocaml/workspace/apple-touch-icon-dark.png create mode 100644 site/public/brand/ocaml/workspace/apple-touch-icon-light.png create mode 100644 site/public/brand/ocaml/workspace/browserconfig-dark.xml create mode 100644 site/public/brand/ocaml/workspace/browserconfig.xml create mode 100644 site/public/brand/ocaml/workspace/favicon.ico create mode 100644 site/public/brand/ocaml/workspace/logo-1024.png create mode 100644 site/public/brand/ocaml/workspace/logo-128.png create mode 100644 site/public/brand/ocaml/workspace/logo-144.png create mode 100644 site/public/brand/ocaml/workspace/logo-152.png create mode 100644 site/public/brand/ocaml/workspace/logo-16.png create mode 100644 site/public/brand/ocaml/workspace/logo-167.png create mode 100644 site/public/brand/ocaml/workspace/logo-180.png create mode 100644 site/public/brand/ocaml/workspace/logo-192.png create mode 100644 site/public/brand/ocaml/workspace/logo-24.png create mode 100644 site/public/brand/ocaml/workspace/logo-256.png create mode 100644 site/public/brand/ocaml/workspace/logo-32.png create mode 100644 site/public/brand/ocaml/workspace/logo-384.png create mode 100644 site/public/brand/ocaml/workspace/logo-48.png create mode 100644 site/public/brand/ocaml/workspace/logo-512.png create mode 100644 site/public/brand/ocaml/workspace/logo-64.png create mode 100644 site/public/brand/ocaml/workspace/logo-96.png create mode 100644 site/public/brand/ocaml/workspace/logo.svg create mode 100644 site/public/brand/ocaml/workspace/maskable-192-dark.png create mode 100644 site/public/brand/ocaml/workspace/maskable-192-light.png create mode 100644 site/public/brand/ocaml/workspace/maskable-512-dark.png create mode 100644 site/public/brand/ocaml/workspace/maskable-512-light.png create mode 100644 site/public/brand/ocaml/workspace/mstile-150-dark.png create mode 100644 site/public/brand/ocaml/workspace/mstile-150-light.png create mode 100644 site/public/brand/ocaml/workspace/mstile-310-dark.png create mode 100644 site/public/brand/ocaml/workspace/mstile-310-light.png create mode 100644 site/public/brand/ocaml/workspace/opengraph-dark.jpg create mode 100644 site/public/brand/ocaml/workspace/opengraph-dark.png create mode 100644 site/public/brand/ocaml/workspace/opengraph-light.jpg create mode 100644 site/public/brand/ocaml/workspace/opengraph-light.png create mode 100644 site/public/brand/ocaml/workspace/safari-pinned-tab.svg create mode 100644 site/public/brand/ocaml/workspace/site-dark.webmanifest create mode 100644 site/public/brand/ocaml/workspace/site.webmanifest create mode 100644 site/public/brand/ocaml/workspace/social-square-dark.png create mode 100644 site/public/brand/ocaml/workspace/social-square-light.png create mode 100644 site/public/brand/ocaml/workspace/twitter-dark.png create mode 100644 site/public/brand/ocaml/workspace/twitter-light.png create mode 100644 site/src/content/docs/ports/ocaml/core/index.md create mode 100644 site/src/content/docs/ports/ocaml/workspace/index.md create mode 100644 site/src/data/api/ocaml.json create mode 100644 site/src/data/api/ocaml.nav.json create mode 100644 site/src/data/api/ocaml.paths.json create mode 100644 site/src/data/port-guides/ocaml.json create mode 100644 site/src/data/tmux-usage/ocaml.json create mode 100644 site/test/ocaml.test.ts diff --git a/.github/workflows/port-docs.yml b/.github/workflows/port-docs.yml index 88b9edabc..8b2af0ed7 100644 --- a/.github/workflows/port-docs.yml +++ b/.github/workflows/port-docs.yml @@ -497,6 +497,22 @@ jobs: mix deps.get --only prod mix run --no-start "$EXPORTER" _build/docs/api.json + - if: matrix.port == 'ocaml' + uses: ocaml/setup-ocaml@ff66428f72b64472e749b22e0ad4dded4b2ddca6 # v3.9.1 + with: + ocaml-compiler: ocaml-base-compiler.5.5.2 + opam-local-packages: port/*.opam + - name: Export OCaml API from the selected source + if: matrix.port == 'ocaml' + working-directory: port + env: + LIBTMUX_API_EXPORT: '1' + run: | + set -euo pipefail + opam install . --deps-only --with-doc --yes + opam exec -- dune build @install tools/api_export.exe + opam exec -- python3 tools/export_api.py --output _build/docs/ocaml.json + - if: matrix.port == 'ruby' uses: ruby/setup-ruby@14594264cd68ce8a2345dd349bc3d138a4ef85c8 # v1.327.0 with: diff --git a/.github/workflows/reusable-deploy.yml b/.github/workflows/reusable-deploy.yml index 2c32efe52..6abfd29b0 100644 --- a/.github/workflows/reusable-deploy.yml +++ b/.github/workflows/reusable-deploy.yml @@ -144,7 +144,7 @@ jobs: echo "::error::path-prefix '$p' must be an unrooted path using letters, digits, '.', '_', '-' and '/', without '..'" >&2 exit 1 fi - reserved=(py ruby lua powershell julia elixir ts rs go java kotlin scala csharp fsharp cxx swift manifest _shell) + reserved=(py ruby lua powershell julia elixir ts rs go java kotlin scala csharp fsharp cxx swift ocaml manifest _shell) for r in "${reserved[@]}"; do if [[ "$p" == "$r" ]]; then echo "::error::path-prefix '$p' is a bare reserved top-level name — qualify it, e.g. '$r/latest'" >&2 @@ -153,7 +153,7 @@ jobs: done if [[ -n "${PORT_IN:-}" ]]; then case "$PORT_IN" in - py|ruby|lua|powershell|julia|elixir|ts|rs|go|java|kotlin|scala|csharp|fsharp|cxx|swift) ;; + py|ruby|lua|powershell|julia|elixir|ts|rs|go|java|kotlin|scala|csharp|fsharp|cxx|swift|ocaml) ;; *) echo "::error::unknown port '$PORT_IN'" >&2; exit 1 ;; esac if [[ ! "$VERSION_IN" =~ ^[a-zA-Z0-9][a-zA-Z0-9._-]*$ || "$VERSION_IN" == *..* ]]; then diff --git a/packages/api-model/src/builtins.ts b/packages/api-model/src/builtins.ts index 246d01d17..e2f439831 100644 --- a/packages/api-model/src/builtins.ts +++ b/packages/api-model/src/builtins.ts @@ -153,6 +153,12 @@ const ELIXIR_BUILTIN_TYPES = [ ] export const BUILTINS: Record> = { + ocaml: { + Iarray: 'https://ocaml.org/manual/5.5/api/Iarray.html', + 'Iarray.t': 'https://ocaml.org/manual/5.5/api/Iarray.html#TYPEt', + Seq: 'https://ocaml.org/manual/5.5/api/Seq.html', + 'Seq.t': 'https://ocaml.org/manual/5.5/api/Seq.html#TYPEt', + }, elixir: { ...Object.fromEntries(ELIXIR_BASIC_TYPES.map((name) => [name, elixirDocs('typespecs.html#basic-types')])), ...Object.fromEntries(ELIXIR_BUILTIN_TYPES.map((name) => [name, elixirDocs('typespecs.html#built-in-types')])), diff --git a/packages/api-model/src/concepts.ts b/packages/api-model/src/concepts.ts index f5b23c9ac..a194e51ca 100644 --- a/packages/api-model/src/concepts.ts +++ b/packages/api-model/src/concepts.ts @@ -3824,6 +3824,74 @@ for (const [id, binding] of Object.entries(ELIXIR_CONCEPTS)) { if (binding.note) (concept.notes ??= {}).elixir = binding.note } CONCEPTS['list-session-panes']!.absent!.julia = 'Traverse `windows(session)` and `panes(window)` in the captured snapshot. `panes(snapshot)` has server-wide scope.' + +const OCAML_CONCEPTS: Record = { + server: { symbol: 'Libtmux_unix.Client.t', variants: ['Libtmux_eio.Client.t'], note: 'A client is a live, generation-bound server connection. Endpoint describes a socket without connecting; closing a client releases its resources.' }, + session: { symbol: 'Libtmux.Session.t' }, + window: { symbol: 'Libtmux.Window.t', note: 'A global window can have several session placements. Window_link holds the session, index and current flag.' }, + pane: { symbol: 'Libtmux.Pane.t' }, + 'workspace-description': { symbol: 'Libtmux_workspace.Config.t' }, + 'build-workspace': { symbol: 'Libtmux_unix.Workspace.await', variants: ['Libtmux_eio.Workspace.await'], note: 'Apply a validated Plan through submit, then await its retained execution receipt. Inspect preserves partial and late outcomes.' }, + snapshot: { symbol: 'Libtmux_unix.Client.capture', variants: ['Libtmux_eio.Client.capture'], note: 'Acquires a complete immutable graph over an interval. Earlier observations remain readable without refreshing.' }, + 'list-sessions': { symbol: 'Libtmux.Snapshot.sessions', note: 'Reads an immutable array of already captured sessions without I/O.' }, + 'list-windows': { symbol: 'Libtmux.Session.windows', note: 'Reads distinct captured global windows in this session. window_links preserves individual indexed placements.' }, + 'list-panes': { symbol: 'Libtmux.Window.panes', note: 'Reads captured panes in one global window without I/O.' }, + 'list-server-windows': { symbol: 'Libtmux.Snapshot.windows', note: 'Reads captured global windows; use window_links for indexed session placements.' }, + 'list-server-panes': { symbol: 'Libtmux.Snapshot.panes' }, + 'list-clients': { symbol: 'Libtmux.Snapshot.clients', note: 'Reads captured attached-client observations, separate from transport Client.t handles.' }, + 'pane-window': { symbol: 'Libtmux.Pane.window' }, + 'window-session': { symbol: 'Libtmux.Window_link.session', note: 'The session belongs to a placement. A global Window has no single containing session.' }, + 'window-link-window': { symbol: 'Libtmux.Window_link.window' }, + 'client-session': { symbol: 'Libtmux.Client_observation.session', note: 'Returns the captured session when the attached client had one.' }, + 'get-session': { symbol: 'Libtmux.Snapshot.find_session', note: 'Exact opaque-ID lookup in an existing snapshot, without I/O or tmux target expansion.' }, + 'get-window': { symbol: 'Libtmux.Snapshot.find_window', note: 'Exact opaque-ID lookup in an existing snapshot, without I/O.' }, + 'get-pane': { symbol: 'Libtmux.Snapshot.find_pane', note: 'Exact opaque-ID lookup in an existing snapshot, without I/O.' }, + 'window-index': { symbol: 'Libtmux.Window_link.index' }, + 'window-active': { symbol: 'Libtmux.Window_link.is_current' }, +} +for (const [concept, operation] of Object.entries({ + 'capture-pane': 'capture_text', 'send-keys': 'send_keys', 'split-pane': 'split_pane', + 'respawn-pane': 'respawn_pane', 'clear-history': 'clear_history', 'set-pane-title': 'set_pane_title', + 'select-layout': 'select_layout', 'rotate-panes': 'rotate_panes', 'unlink-window': 'unlink_window_at', + 'new-session': 'create_session', 'new-window': 'create_window', 'kill-session': 'kill_session', + 'kill-window': 'kill_window', 'kill-pane': 'kill_pane', 'rename-session': 'rename_session', + 'rename-window': 'rename_window', 'select-window': 'select_window_at', 'select-pane': 'select_pane', + 'resize-pane': 'resize_pane', 'resize-window': 'resize_window', 'link-window': 'link_window', + 'move-window': 'move_window_at', 'break-pane': 'break_pane', 'move-pane': 'move_pane', + 'join-pane': 'move_pane', 'swap-pane': 'swap_panes', 'detach-client': 'request_detach_client_at', + 'refresh-client': 'refresh_client_at', 'switch-client': 'switch_client_at', + 'wait-for': 'wait_for', 'server-version': 'version', +})) OCAML_CONCEPTS[concept] = { symbol: `Libtmux_unix.Client.${operation}`, variants: [`Libtmux_eio.Client.${operation}`] } +for (const [prefix, owner, members] of [ + ['session', 'Session', ['id', 'name', 'attached']], + ['window', 'Window', ['id', 'name', 'height', 'width', 'layout']], + ['pane', 'Pane', ['id', 'index', 'height', 'width', 'title', 'active', 'current_command', 'current_path', 'pid', 'dead']], +] as const) for (const member of members) OCAML_CONCEPTS[`${prefix}-${member.replaceAll('_', '-')}`] = { symbol: `Libtmux.${owner}.${member}` } +for (const scope of ['server', 'session', 'window', 'pane']) { + for (const [suffix, operation] of Object.entries({ options: 'capture_options', option: 'read_option', hooks: 'capture_hooks' })) { + OCAML_CONCEPTS[`${scope}-${suffix}`] = { symbol: `Libtmux_unix.Client.${operation}`, variants: [`Libtmux_eio.Client.${operation}`], note: 'Pass the corresponding explicit Options scope; captured tables preserve their source and inheritance policy.' } + } + for (const [prefix, operation] of Object.entries({ 'set-': 'set_option', 'unset-': 'unset_option' })) OCAML_CONCEPTS[`${prefix}${scope}-option`] = { symbol: `Libtmux_unix.Client.${operation}`, variants: [`Libtmux_eio.Client.${operation}`] } + for (const [prefix, operation] of Object.entries({ 'set-': 'set_hook', 'unset-': 'remove_hook' })) OCAML_CONCEPTS[`${prefix}${scope}-hook`] = { symbol: `Libtmux_unix.Client.${operation}`, variants: [`Libtmux_eio.Client.${operation}`] } +} +for (const scope of ['server', 'session']) { + OCAML_CONCEPTS[`${scope}-environment`] = { symbol: 'Libtmux_unix.Client.capture_environment', variants: ['Libtmux_eio.Client.capture_environment'], note: 'Pass Environment.Global for server values or Environment.Session with a bound session target. Acquisition is explicit.' } + for (const [prefix, operation] of Object.entries({ 'set-': 'set_environment', 'unset-': 'unset_environment', 'remove-': 'remove_environment' })) OCAML_CONCEPTS[`${prefix}${scope}-environment`] = { symbol: `Libtmux_unix.Client.${operation}`, variants: [`Libtmux_eio.Client.${operation}`] } +} +for (const [id, binding] of Object.entries(OCAML_CONCEPTS)) { + const concept = CONCEPTS[id] + if (!concept) throw new Error(`concepts: OCaml maps unknown concept ${id}`) + concept.symbols.ocaml = binding.symbol + if (binding.note) (concept.notes ??= {}).ocaml = binding.note + if (binding.variants) (concept.variants ??= {}).ocaml = binding.variants +} +for (const [id, reason] of Object.entries({ + 'freeze-workspace': 'The workspace packages validate and apply descriptions; they do not export a live session as configuration.', + 'list-session-panes': 'Traverse Session.windows and Window.panes in the captured graph. Snapshot.panes has server-wide scope.', + 'pane-session': 'A pane belongs to a global window that can have several session placements. Traverse Window.links and Window_link.session.', + 'kill-server': 'Client.close releases transport resources. The public client API does not terminate a borrowed tmux daemon.', + 'server-from-env': 'Endpoint selection is explicit. Construct a named socket or socket path; the library does not infer an ambient server.', +})) (CONCEPTS[id]!.absent ??= {}).ocaml = reason for (const concept of Object.values(CONCEPTS)) { concept.absent ??= {} if (!concept.symbols.powershell) concept.absent.powershell ??= 'No source-verified PowerShell equivalent is recorded for this operation.' @@ -3834,6 +3902,7 @@ for (const concept of Object.values(CONCEPTS)) { if (!concept.symbols.kotlin) concept.absent.kotlin = 'No source-verified Kotlin equivalent is recorded for this operation.' if (!concept.symbols.scala) concept.absent.scala = 'No source-verified Scala equivalent is recorded for this operation.' if (!concept.symbols.fsharp) concept.absent.fsharp = 'No source-verified F# equivalent is recorded for this operation.' + if (!concept.symbols.ocaml) concept.absent.ocaml ??= 'No direct public OCaml equivalent is recorded for this operation.' } /** Every concept naming this symbol, including concepts sharing an overload group. */ diff --git a/packages/api-model/src/doc/roles.ts b/packages/api-model/src/doc/roles.ts index 791867b29..cbbfb3bd7 100644 --- a/packages/api-model/src/doc/roles.ts +++ b/packages/api-model/src/doc/roles.ts @@ -48,6 +48,8 @@ export type DocSpan = target: string /** What to show. `~` means "last segment only"; explicit titles win. */ label: string + /** Custom odoc labels are prose rather than code. */ + code?: boolean } /** @@ -296,6 +298,7 @@ const SYNTAX: Record> = { // ExDoc links a Markdown destination written as code: [the server](`LibTmux.Server`). elixir: new Set(['markdown-link', 'exdoc']), powershell: new Set(['markdown-link']), + ocaml: new Set(['odoc', 'markdown-link']), } /** @@ -352,6 +355,21 @@ function tokenizeRun(text: string, lang?: string): DocSpan[] { type Hit = { start: number; end: number; span: DocSpan } const hits: Hit[] = [] + if (syntax.has('odoc')) { + // The native exporter preserves references and converts odoc code and URL links to Markdown. + for (const match of text.matchAll(/\{\{!([^{}\s]+)\}([^{}]*)\}|\{!([^{}\s]+)\}/g)) { + let target = match[1] ?? match[3]! + const legacy = /^(type|val|module|module-type|class|class-type|exception|constructor|field):(.+)$/.exec(target) + const typed = /(?:^|\.)(module-type|class-type|type|val|value|module|class|exception|exn|constructor|const|field|recfield)-([^.]+)$/.exec(target) + const kind = legacy?.[1] ?? typed?.[1] + if (legacy) target = legacy[2]! + else if (typed) target = target.slice(0, typed.index) + (typed[0].startsWith('.') ? '.' : '') + typed[2]! + const label = match[1] ? match[2]! : target.replace(/(?:^|(?<=\.))(?:module-type|class-type|type|val|value|module|class|exception|exn|constructor|const|field|recfield)-/g, '') + hits.push({ start: match.index, end: match.index + match[0].length, + span: { kind: 'ref', role: `odoc:${kind ?? 'any'}`, target, label, ...(match[1] ? { code: false } : {}) } }) + } + } + if (syntax.has('documenter')) { // Documenter's named @ref destination contains spaces that Markdown URLs cannot. for (const match of text.matchAll(/\[(?:(`+)([^\n]*?)\1|([^\]\n]+))\]\(@ref\s+([^\n)]+)\)/g)) { @@ -599,7 +617,7 @@ function tokenizeRun(text: string, lang?: string): DocSpan[] { } } else { for (const code of markdownCode(text, masked.join(''))) { - const span: DocSpan = code.ticks === 1 + const span: DocSpan = syntax.has('odoc') ? { kind: 'code', text: code.text } : code.ticks === 1 ? { kind: 'ref', role: 'any', target: syntax.has('intra-doc') && RUST_CODE_PATH_RE.test(code.text) ? rustTarget(code.text) : code.text, label: code.text } : syntax.has('docc') && code.ticks === 2 ? { kind: 'ref', role: 'any', target: doccTarget(code.text), label: code.text } diff --git a/packages/api-model/src/inventory.ts b/packages/api-model/src/inventory.ts index 7c6867981..f190b9543 100644 --- a/packages/api-model/src/inventory.ts +++ b/packages/api-model/src/inventory.ts @@ -46,6 +46,7 @@ const DOMAIN: Record = { kotlin: 'std', scala: 'std', fsharp: 'std', + ocaml: 'std', csharp: 'std', swift: 'std', } diff --git a/packages/api-model/src/languages/ocaml-examples.ts b/packages/api-model/src/languages/ocaml-examples.ts new file mode 100644 index 000000000..1f93a3fb6 --- /dev/null +++ b/packages/api-model/src/languages/ocaml-examples.ts @@ -0,0 +1,56 @@ +import type { ApiSymbol } from '../model.ts' + +interface Showcase { + capability: string + title: string + file: string + whole_file: boolean + command: string[] + expected_stdout_line: string + success_exit_code: number +} + +const targets: Readonly> = { + graph: ['Libtmux.Snapshot.sessions', 'Libtmux.Session.window_links', 'Libtmux.Window.panes', 'Libtmux_unix.Client.capture'], + watch: ['Libtmux_eio.Client.subscribe', 'Libtmux_eio.Subscription.wait_for_bytes'], + 'send-keys': ['Libtmux_unix.Client.send_text', 'Libtmux_unix.Client.send_keys'], + 'rename-window': ['Libtmux_unix.Client.rename_window'], + 'create-window': ['Libtmux_unix.Client.create_window'], + 'move-window': ['Libtmux_unix.Client.move_window_at'], + layout: ['Libtmux_unix.Client.select_layout'], +} + +/** Read whole, CI-executed programs at the same commit as the public interface. */ +export function attachCompleteOcamlExamples(symbols: ApiSymbol[], read: (path: string) => string, revision: string): void { + const manifest = JSON.parse(read('examples/showcase.json')) as { + schema: string; tmux_floor: string; ci: { workflow: string; job: string; runner: string }; examples: Showcase[] + } + if (manifest.schema !== 'libtmux.showcase/1' || manifest.tmux_floor !== '3.3' || + manifest.ci.workflow !== '.github/workflows/ocaml.yml' || manifest.ci.job !== 'native' || + manifest.ci.runner !== 'test/showcase_test.py' || !Array.isArray(manifest.examples)) { + throw new Error('Invalid OCaml CI showcase manifest') + } + const found = new Set() + for (const example of manifest.examples) { + if (!targets[example.capability] || found.has(example.capability) || !example.whole_file || + !/^examples\/showcase_[a-z_]+\.ml$/.test(example.file) || example.success_exit_code !== 0 || + JSON.stringify(example.command) !== JSON.stringify(['opam', 'exec', '--', 'dune', 'exec', + example.file.replace(/\.ml$/, '.exe'), '--', 'tmux'])) throw new Error('Invalid OCaml whole program') + found.add(example.capability) + const code = read(example.file) + if (!code.includes('let () =') || code.split('\n').length > 151) throw new Error('Incomplete OCaml entry point') + const sourceUrl = `https://github.com/libtmux/libtmux-ocaml/blob/${revision}/${example.file}` + for (const target of targets[example.capability]!) { + const matches = symbols.filter((symbol) => symbol.id === target) + if (matches.length !== 1) throw new Error(`OCaml showcase target must resolve once: ${target}`) + const symbol = matches[0]! + symbol.doc = { summary: '', ...symbol.doc, examples: [...(symbol.doc?.examples ?? []), + { lang: 'ocaml', code, sourceUrl, + intro: `${example.title}. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide.` }, + { lang: 'console', code: `$ ${example.command.join(' ')}\n`, intro: 'Run the recorded entry point:' }, + { lang: 'text', code: example.expected_stdout_line + '\n', intro: 'Expected outcome line, after the temporary socket path:' }, + ] } + } + } + if (found.size !== Object.keys(targets).length) throw new Error('Missing OCaml capability showcase') +} diff --git a/packages/api-model/src/languages/ocaml.test.ts b/packages/api-model/src/languages/ocaml.test.ts new file mode 100644 index 000000000..47e146499 --- /dev/null +++ b/packages/api-model/src/languages/ocaml.test.ts @@ -0,0 +1,77 @@ +import { describe, expect, it } from 'vitest' +import { extractOcamlArtifact } from './ocaml.ts' +import { SymbolIndex } from '../link.ts' +import type { ApiSymbol } from '../model.ts' + +const revision = 'a'.repeat(40) +const exporter = 'b'.repeat(40) +const artifact = () => ({ + schema: 'libtmux.ocaml-api/1', port: 'ocaml', compiler: '5.5.2', revision, + repo: 'https://github.com/libtmux/libtmux-ocaml', extractor: 'native cmti', + nativeProvenance: { files: [{ path: 'lib/libtmux.mli', sha256: 'c'.repeat(64) }], exporter: { revision: exporter } }, + sources: [{ package: 'libtmux', product: 'core', repo: 'https://github.com/libtmux/libtmux-ocaml', revision }], + symbols: [ + { id: 'Libtmux', name: 'Libtmux', qualifiedName: 'Libtmux', publicId: 'Libtmux', publicOwner: 'Libtmux', + apiScope: 'exported', package: 'libtmux', product: 'core', kind: 'module', modifiers: [], signatures: [], + source: { file: 'lib/libtmux.mli', line: 1, revision } }, + { id: 'Libtmux.t', name: 't', qualifiedName: 'Libtmux.t', publicId: 'Libtmux.t', parent: 'Libtmux', publicOwner: 'Libtmux', + apiScope: 'exported', package: 'libtmux', product: 'core', kind: 'typealias', modifiers: ['opaque'], + signatures: [{ raw: 'type t', params: [] }], source: { file: 'lib/libtmux.mli', line: 2, revision } }, + ], +}) + +describe('OCaml compiled public interfaces', () => { + it('keeps typed odoc links, custom labels, guide URLs and literal code distinct', () => { + const symbols = artifact().symbols as ApiSymbol[] + const common = { ...symbols[1]!, name: 'state', qualifiedName: 'Libtmux.state', modifiers: [] } + symbols.push({ ...common, id: 'Libtmux.state', publicId: 'Libtmux.state', kind: 'function' }, + { ...common, id: 'Libtmux.state:type', publicId: 'Libtmux.state:type', kind: 'enum' }, + { ...common, id: 'Libtmux.state:type.Ready', publicId: 'Libtmux.state:type.Ready', parent: 'Libtmux.state:type', name: 'Ready', qualifiedName: 'Libtmux.Ready', kind: 'constant', variant: 'unit' }) + const index = new SymbolIndex(symbols, (symbol) => `/${symbol.id}`, 'ocaml') + const spans = index.docSpans('{!type-state} {!val-state} {{!type-state}the state type} `state` [Guide](https://ocaml.org/manual/5.5/typedecl.html)', symbols[0]) + const references = spans.filter((span) => span.kind === 'ref') + expect(references.map((span) => span.link?.symbol?.id)).toEqual(['Libtmux.state:type', 'Libtmux.state', 'Libtmux.state:type']) + expect(references[2]).toMatchObject({ label: 'the state type', code: false }) + expect(spans).toContainEqual({ kind: 'code', text: 'state' }) + expect(spans).toContainEqual({ kind: 'link', text: 'Guide', href: 'https://ocaml.org/manual/5.5/typedecl.html' }) + expect(index.docSpans('{!type-missing}', symbols[0])[0]).toMatchObject({ target: 'missing', link: undefined }) + expect(index.docSpans('{!module-Libtmux.type-state}', symbols[1])[0]).toMatchObject({ link: { symbol: { id: 'Libtmux.state:type' } } }) + expect(index.docSpans('{!type:Libtmux.state}', symbols[1])[0]).toMatchObject({ link: { symbol: { id: 'Libtmux.state:type' } } }) + expect(index.docSpans('{!module-state}', symbols[0])[0]).toMatchObject({ link: undefined }) + expect(index.docSpans('{!Libtmux.Ready}', symbols[0])[0]).toMatchObject({ link: { symbol: { id: 'Libtmux.state:type.Ready' } } }) + expect(index.docSpans('{!type-state.constructor-Ready}', symbols[0])[0]).toMatchObject({ link: { symbol: { id: 'Libtmux.state:type.Ready' } } }) + expect(index.docSpans('{!val-Ready}', symbols[0])[0]).toMatchObject({ link: undefined }) + const signature = { raw: 'val state : t -> state', params: [] } + const typeSpans = index.linkType(signature.raw, symbols[2], signature) + expect(typeSpans.filter((span) => span.text === 'state')).toMatchObject([ + { declaration: true }, { link: { symbol: { id: 'Libtmux.state:type' } } }, + ]) + expect(index.linkType("('state, 'other) state", symbols[2]).filter((span) => span.link) + .map((span) => span.link?.symbol?.id)).toEqual(['Libtmux.state:type']) + expect(index.resolve('Iarray')?.href).toBe('https://ocaml.org/manual/5.5/api/Iarray.html') + expect(index.linkType('state Seq.t', symbols[2]).find((span) => span.text === 'Seq.t')?.link) + .toMatchObject({ href: 'https://ocaml.org/manual/5.5/api/Seq.html#TYPEt', external: true }) + }) + + it('retains opaque types, native signatures and independent source/tool identities', () => { + const model = extractOcamlArtifact(artifact(), revision) + expect(model.port).toBe('ocaml') + expect(model.symbols[1]?.signatures[0]?.raw).toBe('type t') + expect(model.symbols[1]?.modifiers).toEqual(['opaque']) + expect(model.revision).toBe(revision) + expect(model.nativeProvenance?.exporter.revision).toBe(exporter) + }) + + it('rejects stale revisions, private paths, unknown products and unresolved aliases', () => { + expect(() => extractOcamlArtifact(artifact(), exporter)).toThrow(/revision/) + const privateSymbol = artifact() + privateSymbol.symbols[1]!.id = 'Libtmux__Graph.t' + expect(() => extractOcamlArtifact(privateSymbol)).toThrow(/public/) + const mcp = artifact() + mcp.symbols[1]!.product = 'mcp' + expect(() => extractOcamlArtifact(mcp)).toThrow(/product/) + const missing = artifact() + Object.assign(missing.symbols[1]!, { exportedFrom: 'Libtmux.Private' }) + expect(() => extractOcamlArtifact(missing)).toThrow(/alias/) + }) +}) diff --git a/packages/api-model/src/languages/ocaml.ts b/packages/api-model/src/languages/ocaml.ts new file mode 100644 index 000000000..b4771fe6a --- /dev/null +++ b/packages/api-model/src/languages/ocaml.ts @@ -0,0 +1,52 @@ +import type { ApiModel, ApiSymbol } from '../model.ts' + +interface OcamlArtifact extends ApiModel { + schema: string + compiler: string +} + +const roots: Readonly> = { + Libtmux: 'libtmux', Libtmux_workspace: 'libtmux-workspace', Libtmux_json: 'libtmux-json', + Libtmux_unix: 'libtmux-unix', Libtmux_eio: 'libtmux-eio', +} + +/** Adapt the native public .cmti export without parsing OCaml as another language. */ +export function extractOcamlArtifact(input: unknown, revision?: string): ApiModel { + const artifact = input as OcamlArtifact + if (artifact?.schema !== 'libtmux.ocaml-api/1' || artifact.port !== 'ocaml' || + artifact.compiler !== '5.5.2' || !/^[a-f0-9]{40}$/.test(artifact.revision ?? '') || + revision !== undefined && revision !== artifact.revision) { + throw new Error('OCaml artifact schema, compiler or library revision mismatch') + } + const exporterRevision = artifact.nativeProvenance?.exporter.revision + if (typeof exporterRevision !== 'string' || !/^[a-f0-9]{40}$/.test(exporterRevision) || + !artifact.nativeProvenance?.files.length || !Array.isArray(artifact.symbols) || !artifact.symbols.length) { + throw new Error('OCaml artifact requires committed exporter and public input provenance') + } + const ids = new Set(artifact.symbols.map((symbol) => symbol.id)) + if (ids.size !== artifact.symbols.length) throw new Error('Duplicate OCaml public identity') + for (const symbol of artifact.symbols) { + const root = symbol.id.split('.')[0]! + if (!roots[root] || symbol.id.includes('__') || symbol.package !== roots[root] || + symbol.apiScope !== 'exported' || symbol.publicOwner !== root || symbol.publicId !== symbol.id || + !symbol.qualifiedName || !symbol.name || symbol.parent && !ids.has(symbol.parent)) { + throw new Error(`Invalid OCaml public declaration: ${symbol.id}`) + } + if (!['core', 'workspace'].includes(symbol.product ?? '')) throw new Error('Unsupported OCaml product') + if (!/^(lib|unix|eio|json|workspace)\/\w+\.mli$/.test(symbol.source.file) || + !Number.isInteger(symbol.source.line) || (symbol.source.line ?? 0) < 1 || + symbol.source.revision !== artifact.revision) { + throw new Error(`Invalid OCaml source identity: ${symbol.id}`) + } + if (symbol.exportedFrom && !ids.has(symbol.exportedFrom)) throw new Error('Unresolved OCaml public alias') + if (!Array.isArray(symbol.signatures) || symbol.signatures.some((signature) => + !signature.raw || signature.params.some((param) => param.default !== undefined))) { + throw new Error(`Invalid OCaml native signature: ${symbol.id}`) + } + } + return { + port: 'ocaml', revision: artifact.revision, repo: artifact.repo, sources: artifact.sources, + extractor: artifact.extractor, nativeProvenance: artifact.nativeProvenance, + symbols: artifact.symbols.map((symbol): ApiSymbol => ({ ...symbol })), + } +} diff --git a/packages/api-model/src/link.ts b/packages/api-model/src/link.ts index e8e8553be..a4a80e140 100644 --- a/packages/api-model/src/link.ts +++ b/packages/api-model/src/link.ts @@ -34,6 +34,16 @@ const ROLE_KINDS: Record = { any: [], } +const ODOC_KINDS = new Map([ + ['type', ['typealias', 'enum', 'struct', 'union']], + ['val', ['function', 'constant']], ['value', ['function', 'constant']], + ['module', ['module']], ['module-type', ['interface']], + ['class', ['class']], ['class-type', ['interface']], + ['exception', ['exception']], ['exn', ['exception']], + ['constructor', ['constant']], ['const', ['constant']], + ['field', ['attribute']], ['recfield', ['attribute']], +]) + /** * Names that belong to the language, not to us. * @@ -89,6 +99,7 @@ const SIGNATURE_KEYWORDS: Record> = Object.fromEntries(Objec // Attributes that open a declaration, and the guard of a spec. elixir: 'spec type opaque callback macrocallback when', cxx: 'alignas alignof auto class concept const consteval constexpr constinit decltype default delete enum explicit extern final friend inline mutable namespace noexcept operator override register requires static struct template thread_local typedef typename union using virtual volatile', + ocaml: 'type val module sig end with and of private mutable exception include functor', }).map(([port, words]) => [port, new Set(words.split(' '))])) /** Language help stays separate from links to API declarations. */ @@ -317,6 +328,8 @@ function implSelfArguments(header: string): string[] | undefined { export class SymbolIndex { private readonly byPublic = new Map() private readonly byQualified = new Map() + /** Native qualified names and contextual constructor/field paths share this lookup. */ + private readonly ocamlPaths = new Map() // Keyed by declaration id. `parent` is a declaration id, so looking an owner // up in byPublic silently misses every time — which is why relative // references stayed at 0% until this map existed. @@ -390,6 +403,12 @@ export class SymbolIndex { aliases.push(s) this.byQualified.set(qualified, aliases) + if (this.lang === 'ocaml') { + for (const path of new Set([qualified, s.id.replace(/:type(?=\.|$)/g, '')])) { + this.ocamlPaths.set(path, [...(this.ocamlPaths.get(path) ?? []), s]) + } + } + const suffixes = new Set([pub, qualified].flatMap((name) => { const parts = name.split('.') return parts.slice(1).map((_, i) => parts.slice(i + 1).join('.')) @@ -706,6 +725,7 @@ export class SymbolIndex { * turned 59 dead references into links, most of the remaining gap. */ resolve(target: string, role = 'any', context?: ApiSymbol): LinkTarget | undefined { + if (this.lang === 'ocaml' && role.startsWith('odoc:')) return this.resolveOdoc(target, role.slice(5), context) // 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)) { @@ -715,6 +735,47 @@ export class SymbolIndex { return role === 'typeparam' ? undefined : this.resolveSymbol(target, role, context) } + /** Resolve odoc's namespaces from the containing module outward, without a global suffix guess. */ + private resolveOdoc(target: string, role: string, context?: ApiSymbol): LinkTarget | undefined { + const segments = target.split('.').map((part) => { + const typed = /^(module-type|class-type|type|val|value|module|class|exception|exn|constructor|const|field|recfield)-(.+)$/.exec(part) + return { name: typed?.[2] ?? part, role: typed?.[1] } + }) + if (segments.some((part) => !part.name)) return undefined + const path = segments.map((part) => part.name).join('.') + const matches = (symbol: ApiSymbol, kind: string | undefined) => { + if (!kind || kind === 'any') return true + if (!ODOC_KINDS.get(kind)?.includes(symbol.kind)) return false + if (kind === 'constructor' || kind === 'const') return symbol.variant !== undefined + if (kind === 'val' || kind === 'value') return symbol.variant === undefined + return true + } + const scopes = new Set() + for (let owner = context; owner; owner = this.parentOf(owner)) { + if (owner.kind === 'module' || owner.kind === 'interface') scopes.add(`${qualifiedNameOf(owner)}.`) + } + scopes.add('') + for (const scope of scopes) { + const candidates = (this.ocamlPaths.get(`${scope}${path}`) ?? []).filter((symbol) => { + if (!matches(symbol, role)) return false + let ancestor = this.parentOf(symbol) + for (let i = segments.length - 2; i >= 0; i--) { + // OCaml also exposes record labels and variant constructors directly in their module. + while (ancestor && ancestor.name !== segments[i]!.name && !['module', 'interface'].includes(ancestor.kind)) ancestor = this.parentOf(ancestor) + if (!ancestor || ancestor.name !== segments[i]!.name || !matches(ancestor, segments[i]!.role)) return false + ancestor = this.parentOf(ancestor) + } + return true + }) + if (candidates.length === 1) { + const symbol = candidates[0]! + return { href: this.hrefFor(symbol), external: false, symbol } + } + if (candidates.length > 1) return undefined + } + return undefined + } + private resolveSymbol(target: string, role: string, context?: ApiSymbol): LinkTarget | undefined { const relative = target.startsWith('.') const goType = this.lang === 'go' && role === 'class' @@ -1372,7 +1433,7 @@ export class SymbolIndex { // F# type variables start with an apostrophe but do not close like strings. const re = new RegExp(this.lang === 'cxx' ? String.raw`(?${cppLiteral}|\d(?:[eEpP][+-]|[\w.'])*)|(?\/\*[\s\S]*?\*\/|\/\/[^\n]*|${identifier})|(?[^A-Za-z_0-9"'/]+|["'/])` - : this.lang === 'fsharp' ? pattern.replace('(?', String.raw`(?'[A-Za-z_][A-Za-z0-9_]*(?![A-Za-z0-9_'])|`) + : this.lang === 'fsharp' || this.lang === 'ocaml' ? pattern.replace('(?', String.raw`(?'[A-Za-z_][A-Za-z0-9_]*(?![A-Za-z0-9_'])|`) : pattern, 'g') for (const m of annotation.matchAll(re)) { const whole = m[0] @@ -1534,7 +1595,15 @@ 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.resolveSymbol(path, 'class', context) + let link = this.lang === 'ocaml' + ? /^[A-Z]/.test(path.split('.').at(-1)!) + ? this.resolveOdoc(path, 'module', context) ?? this.resolveOdoc(path, 'module-type', context) + : this.resolveOdoc(path, 'type', context) + : this.resolveSymbol(path, 'class', context) + if (!link && this.lang === 'ocaml') { + const href = builtinHref('ocaml', path) + if (href) link = { href, external: true } + } if (link || !['kotlin', 'scala'].includes(this.lang ?? '') || !ident.includes('.')) { out.push({ text: ident, link }) continue diff --git a/packages/api-model/src/model.ts b/packages/api-model/src/model.ts index 7ebbdd9c4..814a33c47 100644 --- a/packages/api-model/src/model.ts +++ b/packages/api-model/src/model.ts @@ -14,7 +14,7 @@ */ /** Language libraries, by the slug the site uses. */ -export type PortSlug = 'py' | 'ruby' | 'lua' | 'ts' | 'rs' | 'go' | 'java' | 'csharp' | 'cxx' | 'swift' | 'kotlin' | 'scala' | 'fsharp' | 'powershell' | 'julia' | 'elixir' +export type PortSlug = 'py' | 'ruby' | 'lua' | 'ts' | 'rs' | 'go' | 'java' | 'csharp' | 'cxx' | 'swift' | 'kotlin' | 'scala' | 'fsharp' | 'powershell' | 'julia' | 'elixir' | 'ocaml' export type ApiProduct = 'core' | 'workspace' | 'mcp' @@ -282,6 +282,8 @@ export interface ApiSymbol { variant?: 'unit' | 'tuple' | 'struct' /** Distinct native declarations sharing one public name, such as a TypeScript type/value pair. */ declarations?: { kind: SymbolKind; text: string; source: ApiSymbol['source']; doc?: DocBlock }[] + /** Original native comments; doc holds their normalized rendered content. */ + nativeDocumentation?: string[] /** Explicit source imports used to resolve aliases in native signatures. */ imports?: Record /** Relationships resolved by the native documentation producer. */ diff --git a/packages/api-model/src/nav-config.ts b/packages/api-model/src/nav-config.ts index 5ed414cd3..13eb270b7 100644 --- a/packages/api-model/src/nav-config.ts +++ b/packages/api-model/src/nav-config.ts @@ -744,6 +744,18 @@ const OVERRIDES: Record }> = { /** Place language-specific public helpers with the task they support. */ const LANGUAGE_PLACEMENTS: Record> = { + ocaml: { + server: ['Libtmux_unix.Client', 'Libtmux_eio.Client', 'Libtmux.Endpoint', 'Libtmux.Generation', 'Libtmux.Source'], + snapshots: ['Libtmux.Snapshot', 'Libtmux.Captured_text', 'Libtmux_unix.Rendered', 'Libtmux_eio.Rendered'], + queries: ['Libtmux.Field', 'Libtmux.Relation', 'Libtmux.Expr', 'Libtmux.Query', 'Libtmux.Model', 'Libtmux.Cardinality', 'Libtmux.Plan', 'Libtmux_json.Expr'], + commands: ['Libtmux', 'Libtmux.ID', 'Libtmux.Created', 'Libtmux.Operations', 'Libtmux.Spawn'], + layout: ['Libtmux.Geometry'], + options: ['Libtmux.Options'], + errors: ['Libtmux_json.Decode_error'], + workspace: ['Libtmux_workspace', 'Libtmux_workspace.Config', 'Libtmux_workspace.Execution'], + runtime: ['Libtmux_unix', 'Libtmux_eio', 'Libtmux_json'], + control: ['Libtmux.Output', 'Libtmux_unix.Cancellation', 'Libtmux_unix.Operation', 'Libtmux_eio.Operation', 'Libtmux_unix.Subscription', 'Libtmux_eio.Subscription'], + }, powershell: { commands: ['LibTmux\\Invoke-TmuxChain'], pane: ['LibTmux\\Send-TmuxText'], @@ -801,6 +813,7 @@ const LANGUAGE_PLACEMENTS: Record> = { /** Free functions and cmdlets need the same discovery-first order as object members. */ const LANGUAGE_ORDER: Record> = { + ocaml: { server: ['Libtmux_unix.Client', 'Libtmux_eio.Client', 'Libtmux.Endpoint', 'Libtmux.Source', 'Libtmux.Generation'] }, julia: Object.fromEntries(Object.entries({ server: ['Server', 'open_server', 'with_server', 'from_env', 'OwnedServer', 'ServerIdentity'], session: ['sessions', 'session', 'new_session', 'rename_session', 'kill_session', 'SessionRef', 'SessionID', 'SessionWhere'], @@ -854,7 +867,7 @@ function languageBucket(bucket: Bucket, port: string, root = bucket.id): Bucket } export const NAV: Record = Object.fromEntries( - ['powershell', 'julia', 'elixir', 'py', 'ruby', 'lua', 'ts', 'rs', 'go', 'java', 'kotlin', 'scala', 'fsharp', 'csharp', 'cxx', 'swift'].map((port) => [ + ['powershell', 'julia', 'elixir', 'py', 'ruby', 'lua', 'ts', 'rs', 'go', 'java', 'kotlin', 'scala', 'fsharp', 'csharp', 'cxx', 'swift', 'ocaml'].map((port) => [ port, { port, diff --git a/packages/api-model/src/nav-sidecar.ts b/packages/api-model/src/nav-sidecar.ts index 3cb42f7fe..e3b7e8cdf 100644 --- a/packages/api-model/src/nav-sidecar.ts +++ b/packages/api-model/src/nav-sidecar.ts @@ -49,7 +49,10 @@ export function navSidecarFor(scope: string, model: ApiModelBase, nav: NavConfig // type alias has a page, and a sidebar that placed only types gave 1,282 of // those pages no row. const moduleIds = new Set(model.symbols.filter((symbol) => symbol.kind === 'module').map((symbol) => symbol.id)) - const topLevel = model.symbols.filter((s) => !s.parent || (['powershell', 'julia'].includes(scope) && moduleIds.has(s.parent))) + const roots = new Set(model.symbols.filter((symbol) => !symbol.parent).map((symbol) => symbol.id)) + const topLevel = model.symbols.filter((s) => !s.parent || + (scope === 'ocaml' && roots.has(s.parent)) || + (['powershell', 'julia'].includes(scope) && moduleIds.has(s.parent))) const conceptIds = Object.fromEntries( Object.entries(CONCEPTS) .map(([k, c]) => [k, c.symbols[scope]] as const) diff --git a/packages/api-model/src/parser.ts b/packages/api-model/src/parser.ts index 2fec1d696..0da2d09a5 100644 --- a/packages/api-model/src/parser.ts +++ b/packages/api-model/src/parser.ts @@ -33,6 +33,7 @@ const GRAMMAR = { scala: 'scala', ruby: 'ruby', lua: 'lua', + ocaml: 'ocaml', } as const export type GrammarName = keyof typeof GRAMMAR diff --git a/packages/api-model/src/prose-fields.ts b/packages/api-model/src/prose-fields.ts index 988a36a2e..0518c3ad3 100644 --- a/packages/api-model/src/prose-fields.ts +++ b/packages/api-model/src/prose-fields.ts @@ -73,6 +73,8 @@ export const STRUCTURAL_FIELDS: string[] = [ '.doc.admonitions[].kind', '.doc.references[].name', '.doc.since', '.doc.examples[].code', '.doc.examples[].lang', '.doc.examples[].sourceUrl', // Extracted, and rendered by no component. + // OCaml's original odoc comments are provenance; `.doc` holds their rendered prose. + '.nativeDocumentation[]', '.doc.seeAlso[]', '.declarations[].*', '.declarations[].doc.*', '.declarations[].source.*', ] diff --git a/packages/api-model/src/prose.ts b/packages/api-model/src/prose.ts index f7486aab9..fa254eeb3 100644 --- a/packages/api-model/src/prose.ts +++ b/packages/api-model/src/prose.ts @@ -16,6 +16,7 @@ import { neverLinks } from './never-links.ts' */ export const PORT_NAME: Record = { + ocaml: 'OCaml', py: 'Python', ts: 'TypeScript', rs: 'Rust', diff --git a/packages/api-model/test/concepts.test.ts b/packages/api-model/test/concepts.test.ts index 666339552..d25f7a9c0 100644 --- a/packages/api-model/test/concepts.test.ts +++ b/packages/api-model/test/concepts.test.ts @@ -101,6 +101,7 @@ describe('concept map', () => { ['powershell', 'LibTmux\\New-TmuxServer', 'function'], ['julia', 'LibTmux.Server', 'struct'], ['fsharp', 'LibTmux.FSharp.Server', 'module'], + ['ocaml', 'Libtmux_unix.Client.t', 'typealias'], ] for (const [port, id, kind] of expected) { const symbol = models.get(port)!.symbols.find((symbol) => (symbol.publicId ?? symbol.id) === id)! diff --git a/scripts/build-site.sh b/scripts/build-site.sh index b970b1aec..d22381d42 100755 --- a/scripts/build-site.sh +++ b/scripts/build-site.sh @@ -303,7 +303,7 @@ if [ -n "${LIBTMUX_DOCS_PORT:-}" ] && { [ "$LIBTMUX_DOCS_PORT" = ruby ] || [ "$L node "$script_dir/gen-api-model.mjs" --port "$LIBTMUX_DOCS_PORT" node "$script_dir/stage-port-docs.mjs" --port "$LIBTMUX_DOCS_PORT" elif [ -n "${LIBTMUX_DOCS_SOURCE_SHA:-}" ] && { [ "$LIBTMUX_DOCS_PORT" = powershell ] || [ "$LIBTMUX_DOCS_PORT" = julia ] || - [ "$LIBTMUX_DOCS_PORT" = elixir ]; }; then + [ "$LIBTMUX_DOCS_PORT" = elixir ] || [ "$LIBTMUX_DOCS_PORT" = ocaml ]; }; then node "$script_dir/gen-api-model.mjs" --port "$LIBTMUX_DOCS_PORT" node "$script_dir/stage-port-docs.mjs" --port "$LIBTMUX_DOCS_PORT" --from-source node "$script_dir/gen-api-model.mjs" --port "$LIBTMUX_DOCS_PORT" --nav diff --git a/scripts/gen-api-model.mjs b/scripts/gen-api-model.mjs index 804f74e23..359577af4 100644 --- a/scripts/gen-api-model.mjs +++ b/scripts/gen-api-model.mjs @@ -18,9 +18,11 @@ import { extractLua } from '../packages/api-model/src/languages/lua.ts' import { extractRuby } from '../packages/api-model/src/languages/ruby.ts' import { extractPowerShell } from '../packages/api-model/src/languages/powershell.ts' import { extractJulia } from '../packages/api-model/src/languages/julia.ts' +import { extractOcamlArtifact } from '../packages/api-model/src/languages/ocaml.ts' import { extractElixir } from '../packages/api-model/src/languages/elixir.ts' import { attachCompleteGoExamples, readCompleteGoExamples } from '../packages/api-model/src/languages/go-examples.ts' import { attachCompleteCSharpExamples } from '../packages/api-model/src/languages/csharp-examples.ts' +import { attachCompleteOcamlExamples } from '../packages/api-model/src/languages/ocaml-examples.ts' import { attachCompleteFSharpExamples } from '../packages/api-model/src/languages/fsharp-examples.ts' import { attachCompleteRustExamples } from '../packages/api-model/src/languages/rust-examples.ts' import { attachNativeRustIdStructs } from '../packages/api-model/src/languages/rust-id-structs.ts' @@ -304,6 +306,11 @@ const PORTS = { 'docs/guide/scala/', 'examples/src/main/scala/'], repo: 'libtmux/libtmux-java', options: {}, }, + ocaml: { + checkout: '~/work/libtmux/libtmux-ocaml-docs-site', + root: '.', nativeArtifact: '_build/docs/ocaml.json', + repo: 'libtmux/libtmux-ocaml', options: {}, + }, fsharp: { checkout: '~/work/libtmux/libtmux-dotnet', root: 'src/LibTmux.FSharp', @@ -639,7 +646,7 @@ for (const [port, cfg] of Object.entries(PORTS)) { process.exit(1) } const artifact = JSON.parse(readFileSync(artifactPath, 'utf8')) - const nativeExtractors = { ruby: extractRuby, lua: extractLua, powershell: extractPowerShell, julia: extractJulia, elixir: extractElixir } + const nativeExtractors = { ruby: extractRuby, lua: extractLua, powershell: extractPowerShell, julia: extractJulia, elixir: extractElixir, ocaml: extractOcamlArtifact } model = nativeExtractors[port](artifact, head) } else { model = await extractProject({ @@ -651,6 +658,9 @@ for (const [port, cfg] of Object.entries(PORTS)) { }) } + if (port === 'ocaml') attachCompleteOcamlExamples(model.symbols, (file) => + execFileSync('git', ['-C', checkout, 'show', `${revision}:${file}`], { encoding: 'utf8', maxBuffer: 1 << 26 }), revision) + if (port === 'go') { // Read committed bytes at the citation revision, never a newer working tree. const files = (git(checkout, 'ls-tree', '-r', '--name-only', revision, 'tmux') ?? '') diff --git a/scripts/gen-tmux-usage.mjs b/scripts/gen-tmux-usage.mjs index c48e680a1..21b7e2001 100644 --- a/scripts/gen-tmux-usage.mjs +++ b/scripts/gen-tmux-usage.mjs @@ -38,6 +38,7 @@ import { dispatcherProblems, guardProblems, preflightProblems } from './lib/tmux import { forwardUsage } from './lib/tmux-usage-forward.mjs' import { settleCandidates, sweepCandidates } from './lib/tmux-usage-sweep.mjs' import { libraryScopes, scopeProblems } from './lib/tmux-usage-scopes.mjs' +import { bindOcamlDefinitions } from './lib/tmux-usage-ocaml.mjs' const root = resolve(dirname(fileURLToPath(import.meta.url)), '..') const dataDir = join(root, 'site/src/data') @@ -207,12 +208,18 @@ export async function scanPort({ port, model, commands, checkout, known, dispatc const symbols = publicSymbols(model) const functions = [] const types = [] + const modules = [] const sources = librarySources(checkout, model.revision, grammar) const wanted = new Set(commands) for (const [path, text] of sources) { const scanned = await scanSource({ grammar, text, commands: wanted, known, dispatch, builders, guards, labels, trace }) for (const fn of scanned.functions) functions.push({ ...fn, file: path }) for (const type of scanned.types) types.push({ ...type, file: path }) + for (const module of scanned.modules ?? []) modules.push({ ...module, file: path }) + } + if (port === 'ocaml') { + if (!sources.size || !functions.length) throw new Error('ocaml: the pinned library scan found no implementation functions') + bindOcamlDefinitions({ symbols, functions, modules, sources }) } const cache = new Map() const readSource = (path) => { @@ -479,6 +486,10 @@ export async function main() { } const checkout = checkoutFor(port) if (!existsSync(join(checkout, '.git')) && !existsSync(join(checkout, 'HEAD'))) { + if (check && port.slug === 'ocaml') { + failures.push('ocaml: source verification requires its pinned checkout; set LIBTMUX_DOCS_CHECKOUT_OCAML') + continue + } if (check) { console.log(`gen-tmux-usage: ${port.slug}: no checkout at ${checkout}; skipped regeneration`); continue } throw new Error(`${port.slug}: no checkout at ${checkout}; set LIBTMUX_DOCS_CHECKOUT_${port.slug.toUpperCase()}`) } diff --git a/scripts/lib/api-addresses.mjs b/scripts/lib/api-addresses.mjs index 6aae6e8b9..a4c7de0cf 100644 --- a/scripts/lib/api-addresses.mjs +++ b/scripts/lib/api-addresses.mjs @@ -52,6 +52,12 @@ export function addressOf(url) { const host = u.hostname const none = fragment ? 'heading' : 'none' + if (host === 'ocaml.org' && /^\/manual\/[^/]+\/api\//.test(u.pathname)) { + const path = dotted(stem) + const member = /^TYPE([a-z_][\w']*)$/.exec(fragment) + return { path: member ? [...path, member[1]] : path, exact: true, fragment: member ? 'member' : none, type: stem } + } + if (host === 'doc.rust-lang.org' || host === 'docs.rs') { const item = RUST_ITEM.exec(stem) const type = item ? item[1] : stem === 'index' || !file ? undefined : stem diff --git a/scripts/lib/api-destinations.mjs b/scripts/lib/api-destinations.mjs index 6957c0dad..7fee9f8b5 100644 --- a/scripts/lib/api-destinations.mjs +++ b/scripts/lib/api-destinations.mjs @@ -62,6 +62,7 @@ export const API_HOSTS = new Set([ 'docs.oracle.com', 'docs.junit.org', 'kotlinlang.org', 'www.scala-lang.org', 'docs.scala-lang.org', 'typelevel.org', 'javadoc.io', 'learn.microsoft.com', 'fsharp.github.io', 'en.cppreference.com', 'eel.is', 'developer.apple.com', 'docs.swift.org', 'docs.ruby-lang.org', 'ruby-doc.org', 'www.lua.org', 'luals.github.io', 'docs.julialang.org', 'hexdocs.pm', 'www.erlang.org', + 'ocaml.org', 'gofastmcp.com', 'csharp.sdk.modelcontextprotocol.io', 'ts.sdk.modelcontextprotocol.io', 'modelcontextprotocol.io', 'cmake.org', ]) diff --git a/scripts/lib/api-identities.mjs b/scripts/lib/api-identities.mjs index 8d0e79de3..050b2044f 100644 --- a/scripts/lib/api-identities.mjs +++ b/scripts/lib/api-identities.mjs @@ -281,6 +281,23 @@ function documenter(url, page, fragment) { return { via: 'documenter', declared, kind: declared === 'type' ? 'type' : bucket(declared === 'constant' ? 'constant' : declared), path: name.split('.'), title: page.title } } +function ocamldoc(_url, page, fragment) { + const heading = page.headings.find((entry) => entry.level === 1)?.text ?? '' + const module = /^Module ([A-Z][\w']*(?:\.[A-Z][\w']*)*)$/.exec(heading) + if (!module) return undefined + const base = { via: 'ocamldoc', declared: 'module', kind: 'module', path: dotted(module[1]), title: page.title } + if (!fragment) return base + const type = /^TYPE([a-z_][\w']*)$/.exec(fragment) + const anchor = page.anchors.find((entry) => entry.id === fragment) + if (!type || !anchor) return undefined + const end = page.html.indexOf('', anchor.at) + if (end < 0) return undefined + const declaration = strip(page.html.slice(anchor.at, end)) + const named = /^type\s+(?:(?:[+-]?'[\w']+|\([^)]*\))\s+)?([a-z_][\w']*)\b/.exec(declaration) + if (named?.[1] !== type[1]) return undefined + return { ...base, declared: 'type', kind: 'type', path: [...base.path, type[1]] } +} + function mdn(url, page) { const { pathname } = new URL(splitUrl(url).page) const parts = decodeURIComponent(pathname).split('/').filter(Boolean) @@ -334,6 +351,7 @@ function parserFor(hostname, pathname, page) { if (hostname === 'docs.python.org') return cpython if (hostname === 'pkg.go.dev') return godoc if (hostname === 'docs.julialang.org') return documenter + if (hostname === 'ocaml.org' && /^\/manual\/[^/]+\/api\//.test(pathname)) return ocamldoc if (hostname === 'developer.mozilla.org') return mdn return undefined } @@ -409,7 +427,7 @@ export function judge(source, identity) { /** The language each reader's host documents, to hold a bare word on a link to the scope that language gives it. */ const PORT_OF = { rustdoc: 'rs', javadoc: 'java', dokka: 'kotlin', scaladoc: 'scala', cppreference: 'cxx', exdoc: 'elixir', fsdocs: 'fsharp', - learn: 'csharp', docfx: 'csharp', cpython: 'py', godoc: 'go', documenter: 'julia', mdn: 'ts', docc: 'swift', + learn: 'csharp', docfx: 'csharp', cpython: 'py', godoc: 'go', documenter: 'julia', mdn: 'ts', docc: 'swift', ocamldoc: 'ocaml', } /** A name written whole inside a link's words: `Option::map`, `AbortSignal.timeout`, `std::fs::read_to_string`. */ diff --git a/scripts/lib/api-links.mjs b/scripts/lib/api-links.mjs index b2fcfae9c..b9a3153e6 100644 --- a/scripts/lib/api-links.mjs +++ b/scripts/lib/api-links.mjs @@ -95,6 +95,7 @@ export function languageOfUrl(url) { 'docs.ruby-lang.org': 'ruby', 'ruby-doc.org': 'ruby', 'www.lua.org': 'lua', 'luals.github.io': 'lua', 'docs.julialang.org': 'julia', + 'ocaml.org': 'ocaml', 'www.erlang.org': 'erlang', 'modelcontextprotocol.io': 'any', } @@ -110,7 +111,7 @@ export const PORT_LANGUAGES = { py: ['python'], rs: ['rust'], go: ['go'], ts: ['typescript'], java: ['java'], kotlin: ['kotlin', 'java'], scala: ['scala', 'java'], csharp: ['csharp', 'dotnet'], fsharp: ['fsharp', 'dotnet'], powershell: ['powershell', 'dotnet'], - cxx: ['cpp'], swift: ['swift'], julia: ['julia'], lua: ['lua'], elixir: ['elixir', 'erlang'], ruby: ['ruby'], + cxx: ['cpp'], swift: ['swift'], julia: ['julia'], lua: ['lua'], elixir: ['elixir', 'erlang'], ruby: ['ruby'], ocaml: ['ocaml'], } /** diff --git a/scripts/lib/api-sources.mjs b/scripts/lib/api-sources.mjs index 4d42bbbaa..d5423fa07 100644 --- a/scripts/lib/api-sources.mjs +++ b/scripts/lib/api-sources.mjs @@ -62,6 +62,7 @@ export const GO_PACKAGES = { * is one whole name. The rest are read from the name by `kindOf`. */ export const NAME_KINDS = { + ocaml: { Iarray: 'module', Seq: 'module', 'Iarray.t': 'type', 'Seq.t': 'type' }, kotlin: { Dispatchers: 'object', NonCancellable: 'object', Unit: 'object' }, // `String` in Scala is the alias `Predef` declares, and its page is Predef's. scala: { Using: 'object', String: 'object' }, @@ -130,6 +131,7 @@ export const PRELUDE_MACROS = new Set(['std', 'core', 'alloc']) /** What each port means by a bare name it imports, as the owner the name's page is under. */ export const BARE_OWNERS = Object.fromEntries(Object.entries({ + ocaml: { '': ['Iarray', 'Seq'] }, java: { 'java.util': ['List', 'Set', 'Map', 'Optional', 'OptionalInt', 'OptionalLong', 'Collection', 'Iterator'], 'java.util.function': ['Function', 'Supplier', 'Consumer', 'Predicate', 'LongSupplier'], @@ -214,7 +216,7 @@ export function hintOwners(port, hint) { /** Ports whose names carry a kind a page can contradict: PascalCase types, camelCase members. */ const PASCAL = new Set(['java', 'kotlin', 'scala', 'csharp', 'fsharp']) /** Ports that compare kinds at all. */ -const KIND_CHECKED = new Set(['java', 'kotlin', 'scala', 'csharp', 'fsharp', 'rs', 'cxx', 'elixir']) +const KIND_CHECKED = new Set(['java', 'kotlin', 'scala', 'csharp', 'fsharp', 'rs', 'cxx', 'elixir', 'ocaml']) /** * A name as written: its segments with generics and subscripts out of the way diff --git a/scripts/lib/manifest-packages.mjs b/scripts/lib/manifest-packages.mjs index 78937bc5f..6970235bb 100644 --- a/scripts/lib/manifest-packages.mjs +++ b/scripts/lib/manifest-packages.mjs @@ -68,6 +68,16 @@ function newestTag(tags, prefix) { } const READERS = { + /** Directly authored opam manifests name the packages distributed from Git. */ + ocaml(repo) { + return { + distributions: repo.files().filter((path) => /^[^/]+\.opam$/.test(path)).map((manifest) => ({ + name: manifest.slice(0, -'.opam'.length), manifest, + ...(/^version:\s*"([^"]+)"/m.test(repo.read(manifest)) + ? { version: /^version:\s*"([^"]+)"/m.exec(repo.read(manifest))[1] } : {}), + })), units: [], + } + }, /** `[project] name` and `version`. */ py(repo, { repository, manifest = 'pyproject.toml' }) { const project = section(repo.read(manifest), 'project') @@ -224,7 +234,7 @@ const READERS = { /** Which reader a port uses: a wrapper port reads its parent's repository. */ const READER_FOR = { py: 'py', ruby: 'ruby', lua: 'lua', powershell: 'powershell', julia: 'julia', ts: 'ts', rs: 'rs', go: 'go', - java: 'java', kotlin: 'java', scala: 'java', csharp: 'dotnet', fsharp: 'dotnet', cxx: 'cxx', swift: 'swift', elixir: 'elixir', + java: 'java', kotlin: 'java', scala: 'java', csharp: 'dotnet', fsharp: 'dotnet', cxx: 'cxx', swift: 'swift', elixir: 'elixir', ocaml: 'ocaml', } /** diff --git a/scripts/lib/tmux-usage-derive.mjs b/scripts/lib/tmux-usage-derive.mjs index b9bd9bdd2..6d70f8354 100644 --- a/scripts/lib/tmux-usage-derive.mjs +++ b/scripts/lib/tmux-usage-derive.mjs @@ -66,6 +66,7 @@ export function shapeFits(call, fn) { */ export function callTargets(caller, callee, named, call) { if (!caller.calls.has(callee.name)) return false + if (caller.moduleCalls !== undefined) return (call?.targets ?? caller.moduleCalls.get(callee.name))?.has(`${callee.file}:${callee.start}:${callee.name}`) ?? false if (named.length <= 1) return true const calls = call ? [call] : (caller.callList ?? []).filter((candidate) => candidate.name === callee.name) // Overloads of one type are not always in one file: a Swift extension and a C# partial class add to the type from another. @@ -110,6 +111,10 @@ export function definitionsOf(functions, symbols, { sharedOwner = false, freeFun const byName = Map.groupBy(functions, (fn) => fn.name) const definitions = new Map() for (const symbol of symbols) { + if (symbol.implementations !== undefined) { + for (const fn of symbol.implementations) definitions.set(fn, [...(definitions.get(fn) ?? []), symbol]) + continue + } const name = bareName(symbol.name) const inFile = (byFile.get(symbol.file) ?? []).filter((fn) => fn.name === name) let hits = inFile.filter((fn) => symbol.line >= fn.start && symbol.line <= fn.nameLine) diff --git a/scripts/lib/tmux-usage-dispatch.mjs b/scripts/lib/tmux-usage-dispatch.mjs index ff21521ef..7bb5057b1 100644 --- a/scripts/lib/tmux-usage-dispatch.mjs +++ b/scripts/lib/tmux-usage-dispatch.mjs @@ -32,6 +32,7 @@ export const TRANSPORT = { cxx: { pattern: /::posix_spawnp?\(|::write\(/, files: /(?:posix_child|connection|process)\.cpp$/ }, swift: { pattern: /Subprocess\.run\(|Glibc\.write\(/, files: /Sources\/LibTmux\/(?:Transport|ControlMode|NonblockingLineWriter)\.swift$/ }, elixir: { pattern: /\bsend_port\(/, files: /transport\/oneshot\.ex$/ }, + ocaml: { pattern: /Unix\.write_substring\b/, files: /unix\/runtime_io\.ml$/ }, } const CONSTRUCTOR = /^(?:__init__|constructor|init|new|initialize)$/ diff --git a/scripts/lib/tmux-usage-ocaml.mjs b/scripts/lib/tmux-usage-ocaml.mjs new file mode 100644 index 000000000..69fa96f51 --- /dev/null +++ b/scripts/lib/tmux-usage-ocaml.mjs @@ -0,0 +1,80 @@ +import { basename, dirname } from 'node:path' + +/** Resolve public .mli values through the implementation's module aliases and includes. */ +export function bindOcamlDefinitions({ symbols, functions, modules, sources }) { + const files = [...sources.keys()] + const moduleName = (file) => basename(file, '.ml').replace(/^./, (letter) => letter.toUpperCase()) + const external = (name, from) => { + const matches = files.filter((file) => moduleName(file) === name) + return matches.find((file) => dirname(file) === dirname(from)) ?? (matches.length === 1 ? matches[0] : undefined) + } + const resolve = (file, path, name, seen = new Set()) => { + const key = `${file}:${path}:${name}` + if (seen.has(key)) return [] + const visited = new Set([...seen, key]) + const own = functions.filter((fn) => fn.file === file && fn.modulePath === path && fn.name === name) + if (own.length) return own + const aliases = modules.filter((module) => module.file === file && module.path === path && module.target && !module.open) + for (const alias of aliases) { + const parts = alias.target.split('.') + const targetFile = external(parts[0], file) + if (targetFile) { + const found = resolve(targetFile, parts.slice(1).join('.'), name, visited) + if (found.length) return found + } + } + const segments = path.split('.').filter(Boolean) + for (let count = segments.length - 1; count >= 0; count--) { + const prefix = segments.slice(0, count).join('.') + const next = segments.slice(0, count + 1).join('.') + const aliases = modules.filter((module) => module.file === file && module.path === next && module.target && !module.include && !module.open) + for (const alias of aliases) { + const parts = alias.target.split('.') + const targetFile = external(parts[0], file) + if (!targetFile) continue + const found = resolve(targetFile, [...parts.slice(1), ...segments.slice(count + 1)].join('.'), name, visited) + if (found.length) return found + } + // An included module contributes the values and nested modules of its scope. + for (const include of modules.filter((module) => module.file === file && module.path === prefix && module.include)) { + const parts = include.target.split('.') + const targetFile = external(parts[0], file) + if (!targetFile) continue + const found = resolve(targetFile, [...parts.slice(1), ...segments.slice(count)].join('.'), name, visited) + if (found.length) return found + } + } + return [] + } + for (const symbol of symbols) { + const file = symbol.file.replace(/\.mli$/, '.ml') + const parts = (symbol.qualified ?? symbol.id).split('.') + symbol.implementations = resolve(file, parts.slice(1, -1).join('.'), symbol.name).filter((fn) => !fn.enclosing && !fn.moduleArgument) + } + for (const caller of functions) { + caller.moduleCalls = new Map() + for (const call of caller.callList ?? []) { + const parts = call.path?.split('.') ?? [] + const name = parts.pop() + if (!name) continue + let found + if (parts.length) { + found = resolve(caller.file, parts.join('.'), name) + if (!found.length) { + const targetFile = external(parts[0], caller.file) + if (targetFile) found = resolve(targetFile, parts.slice(1).join('.'), name) + } + } else { + found = resolve(caller.file, caller.modulePath, name) + if (!found.length) for (const opened of modules.filter((module) => module.file === caller.file && module.open && (!module.path || caller.modulePath.startsWith(module.path)))) { + const parts = opened.target.split('.') + const targetFile = external(parts[0], caller.file) + if (targetFile) found.push(...resolve(targetFile, parts.slice(1).join('.'), name)) + } + } + call.targets = new Set(found.filter((fn) => !fn.enclosing || (fn.file === caller.file && fn.enclosing.start <= call.line && call.line <= fn.enclosing.end)) + .map((fn) => `${fn.file}:${fn.start}:${fn.name}`)) + caller.moduleCalls.set(name, new Set([...(caller.moduleCalls.get(name) ?? []), ...call.targets])) + } + } +} diff --git a/scripts/lib/tmux-usage-scan.mjs b/scripts/lib/tmux-usage-scan.mjs index 6288c77b3..71a5fe133 100644 --- a/scripts/lib/tmux-usage-scan.mjs +++ b/scripts/lib/tmux-usage-scan.mjs @@ -12,13 +12,13 @@ import { receiverOf, scanElixir, scanFSharp, scanJulia } from './tmux-usage-lexi /** Port to the grammar that reads its source. PowerShell cmdlets are C#; Julia, F# and Elixir are read by their text. */ export const GRAMMARS = { py: 'python', ts: 'typescript', rs: 'rust', go: 'go', java: 'java', kotlin: 'kotlin', scala: 'scala', - csharp: 'csharp', powershell: 'csharp', cxx: 'cpp', swift: 'swift', ruby: 'ruby', lua: 'lua', julia: 'julia', fsharp: 'fsharp', elixir: 'elixir', + csharp: 'csharp', powershell: 'csharp', cxx: 'cpp', swift: 'swift', ruby: 'ruby', lua: 'lua', julia: 'julia', fsharp: 'fsharp', elixir: 'elixir', ocaml: 'ocaml', } /** Source extensions per grammar, minus declaration-only files. */ export const EXTENSIONS = { python: /\.py$/, typescript: /(? false) { } /** The part of a `case`, `when` or `match` arm that is tested against, as opposed to the part that runs. */ -const LABELS = /^(?:switch_label|case_switch_label|case_pattern_switch_label|constant_pattern|match_pattern|when_condition|switch_pattern|case_pattern|case_label)$/ +const LABELS = /^(?:switch_label|case_switch_label|case_pattern_switch_label|constant_pattern|match_pattern|when_condition|switch_pattern|case_pattern|case_label|string_pattern)$/ /** Arms whose tested part is a named field: the node under that field is the label. */ const ARMS = { switch_case: ['value'], expression_case: ['value'], case_statement: ['value'], when: ['pattern'], in_clause: ['pattern'], case_clause: ['pattern', 'value'], switch_expression_arm: ['pattern'] } const COMPARISONS = /^(?:binary_expression|comparison_operator|binary_operator|equality_expression|infix_expression)$/ @@ -580,7 +589,7 @@ export function withoutPrimaryConstructors(text) { * @param {{ grammar: string, text: string, commands: ReadonlySet, known: ReadonlySet, dispatch?: ReadonlySet, builders?: ReadonlySet, guards?: { name: string, owner?: string }[], labels?: ReadonlyMap>, trace?: (site: object, context: object) => void }} input * `commands` are the names to find; `known` are all tmux command names, so * a list that holds a different command is not read as this command's flags. - * @returns {Promise<{ functions: ScannedFunction[], types: { name?: string, start: number, end: number }[], orphans: Site[] }>} + * @returns {Promise<{ functions: ScannedFunction[], types: { name?: string, start: number, end: number }[], orphans: Site[], modules?: { path: string, target?: string, include?: boolean, open?: boolean }[] }>} * `types` are the declarations that own functions, so a claim can anchor to * a class; `orphans` are the sites outside any named function. */ @@ -608,8 +617,13 @@ export async function scanSource({ grammar, text, commands, known, dispatch, bui const parser = await parserFor(grammar) // The Swift grammar predates typed throws; blanking the type keeps every line and column. const tree = parser.parse(grammar === 'swift' ? withoutNewSwift(text) : grammar === 'csharp' ? withoutPrimaryConstructors(text) : text) + if (grammar === 'ocaml' && tree.rootNode.hasError) { + tree.delete() + throw new Error('the OCaml grammar could not parse the implementation source') + } const functions = [] const types = [] + const modules = [] const orphans = [] const stack = [] const owners = [] @@ -708,6 +722,15 @@ export async function scanSource({ grammar, text, commands, known, dispatch, bui let pushed = false let owned = false let namespaced = false + if (grammar === 'ocaml' && node.type === 'module_binding') { + const body = node.childForFieldName('body') + modules.push({ path: [...owners.filter(Boolean), ownerName(grammar, node)].join('.'), ...(body?.type === 'module_path' ? { target: body.text } : {}) }) + } + if (grammar === 'ocaml' && ['include_module', 'open_module'].includes(node.type)) { + const body = node.namedChildren[0] + const target = body?.type === 'module_application' ? body.childForFieldName('functor') : body + if (target?.type === 'module_path') modules.push({ path: owners.filter(Boolean).join('.'), target: target.text, ...(node.type === 'open_module' ? { open: true } : { include: true }) }) + } if (OWN.has(node.type)) { const name = ownerName(grammar, node) if (node.type === 'namespace_definition') { @@ -727,7 +750,7 @@ export async function scanSource({ grammar, text, commands, known, dispatch, bui } else if (grammar === 'go' && node.type === 'function_declaration') { pushFunction(node.childForFieldName('name').text, undefined) pushed = true - } else if (FN.has(node.type) && !(stack.length && LOCAL_BINDINGS.has(node.type))) { + } else if (FN.has(node.type) && !(stack.length && (LOCAL_BINDINGS.has(node.type) || (grammar === 'ocaml' && !node.namedChildren.some((child) => child.type === 'parameter'))))) { const declared = declaredName(grammar, node) if (declared?.name) { pushFunction(declared.name, declared.owner, declared.scope); pushed = true } } @@ -738,6 +761,11 @@ export async function scanSource({ grammar, text, commands, known, dispatch, bui name, owner: owner ?? owners.filter(Boolean).at(-1), start: row(wrapper), nameLine: row(node.childForFieldName('name') ?? node), end: node.endPosition.row + 1, kind: node.type, sites: [], calls: new Map(), receivers: new Map(), ...(functionShape(grammar, node) ? { shape: functionShape(grammar, node) } : {}), + ...(grammar === 'ocaml' ? { + modulePath: owners.filter(Boolean).join('.'), + ...(stack.length ? { enclosing: { start: stack.at(-1).start, end: stack.at(-1).end } } : {}), + moduleArgument: inModuleArgument(node), + } : {}), // A namespace opened by a macro is invisible here, so an empty chain is unknown, not global. ...([...namespaces.filter(Boolean), ...scope].length ? { namespace: [...namespaces.filter(Boolean), ...scope].join('::') } : {}), } @@ -764,6 +792,7 @@ export async function scanSource({ grammar, text, commands, known, dispatch, bui const callee = calleeOf(grammar, node) if (callee?.name) { recordCall(stack.at(-1), callee.name, callee.receiver, row(node), callShape(grammar, node), calleeRow(node)) + if (grammar === 'ocaml') stack.at(-1).callList.at(-1).path = node.childForFieldName('function')?.text if (dispatch) { const callDepths = (stack.at(-1).callDepths ??= new Map()) callDepths.set(callee.name, Math.min(callDepths.get(callee.name) ?? Infinity, nesting(grammar, node))) @@ -833,7 +862,13 @@ export async function scanSource({ grammar, text, commands, known, dispatch, bui } walk(tree.rootNode) tree.delete() - return { functions, types, orphans } + return { functions, types, orphans, modules } +} + +/** A functor argument's local bindings do not add public members to its enclosing module. */ +function inModuleArgument(node) { + for (let at = node; at.parent; at = at.parent) if (at.parent.type === 'module_application' && at.parent.childForFieldName('argument')?.id === at.id) return true + return false } /** diff --git a/scripts/lib/tmux-usage-sweep.mjs b/scripts/lib/tmux-usage-sweep.mjs index c1bca8201..a9c77943a 100644 --- a/scripts/lib/tmux-usage-sweep.mjs +++ b/scripts/lib/tmux-usage-sweep.mjs @@ -39,6 +39,7 @@ export const LIBRARY_ROOTS = { powershell: ['src/LibTmux.PowerShell/'], cxx: ['include/libtmux/'], swift: ['Sources/LibTmux/'], + ocaml: ['lib/', 'unix/', 'eio/', 'workspace/', 'json/'], } const NOT_LIBRARY = /(^|\/)(tmuxtest|testing|tests?|examples?)(\/|$)/i /** Members every type has, whose names are never about a tmux command: `GetHashCode` is not a getter of a list. */ diff --git a/scripts/tmux-usage/claims.json b/scripts/tmux-usage/claims.json index e22e5ab83..5befd6db3 100644 --- a/scripts/tmux-usage/claims.json +++ b/scripts/tmux-usage/claims.json @@ -15193,6 +15193,6200 @@ "in": "server.Server.kill" } ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.rename_window", + "command": "rename-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:13", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.rename_window" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:247", + "has": [ + "let rename_window target ~name = Command.Rename_window (target, name)" + ] + }, + { + "at": "lib/commands.ml:247", + "has": [ + "let rename_window target ~name = Command.Rename_window (target, name)" + ] + }, + { + "at": "unix/engine.ml:145", + "has": [ + "| Rename_window (target, name) ->" + ] + }, + { + "at": "unix/engine.ml:148", + "has": [ + "( \"rename-window\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.rename_session", + "command": "rename-session", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:17", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.rename_session" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:248", + "has": [ + "let rename_session target ~name = Command.Rename_session (target, name)" + ] + }, + { + "at": "lib/commands.ml:248", + "has": [ + "let rename_session target ~name = Command.Rename_session (target, name)" + ] + }, + { + "at": "unix/engine.ml:154", + "has": [ + "| Rename_session (target, name) ->" + ] + }, + { + "at": "unix/engine.ml:157", + "has": [ + "( \"rename-session\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.switch_client_at", + "command": "switch-client", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:21", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.switch_client_at" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:250", + "has": [ + "let switch_client_at ?(update_environment = false) client ~session =" + ] + }, + { + "at": "lib/commands.ml:251", + "has": [ + "Command.Mutate (Switch_client_at { client; session; update_environment })" + ] + }, + { + "at": "unix/command_encoding.ml:223", + "has": [ + "| Command.Switch_client_at { client; session = target; update_environment } ->" + ] + }, + { + "at": "unix/command_encoding.ml:224", + "has": [ + "( \"switch-client\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.request_detach_client_at", + "command": "detach-client", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:25", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.request_detach_client_at" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:253", + "has": [ + "let request_detach_client_at client =" + ] + }, + { + "at": "lib/commands.ml:254", + "has": [ + "Command.Mutate (Request_detach_client_at client)" + ] + }, + { + "at": "unix/command_encoding.ml:227", + "has": [ + "| Request_detach_client_at client ->" + ] + }, + { + "at": "unix/command_encoding.ml:228", + "has": [ + "(\"detach-client\", [ \"-t\"; client_name c client ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.refresh_client_at", + "command": "refresh-client", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:29", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.refresh_client_at" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:256", + "has": [ + "let refresh_client_at ?(status_only = false) client =" + ] + }, + { + "at": "lib/commands.ml:257", + "has": [ + "Command.Mutate (Refresh_client_at (client, status_only))" + ] + }, + { + "at": "unix/command_encoding.ml:229", + "has": [ + "| Refresh_client_at (client, status_only) ->" + ] + }, + { + "at": "unix/command_encoding.ml:230", + "has": [ + "( \"refresh-client\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.resize_control_client_at", + "command": "refresh-client", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:33", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.resize_control_client_at" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:259", + "has": [ + "let resize_control_client_at client ~width ~height =" + ] + }, + { + "at": "lib/commands.ml:260", + "has": [ + "Command.Mutate (Resize_control_client_at { client; width; height })" + ] + }, + { + "at": "unix/command_encoding.ml:232", + "has": [ + "| Resize_control_client_at { client; width; height } ->" + ] + }, + { + "at": "unix/command_encoding.ml:233", + "has": [ + "( \"refresh-client\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.send_text", + "command": "send-keys", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:37", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.send_text target ~text)" + ], + "in": "Libtmux_unix.Client.send_text" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:262", + "has": [ + "let send_text target ~text = Command.Send_text (target, text)" + ] + }, + { + "at": "lib/commands.ml:262", + "has": [ + "let send_text target ~text = Command.Send_text (target, text)" + ] + }, + { + "at": "unix/engine.ml:163", + "has": [ + "| Send_text (target, text) ->" + ] + }, + { + "at": "unix/engine.ml:164", + "has": [ + "Some (\"send-keys\", [ \"-t\"; pane target; \"-l\"; \"--\"; text ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.send_keys", + "command": "send-keys", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:40", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.send_keys target keys)" + ], + "in": "Libtmux_unix.Client.send_keys" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:263", + "has": [ + "let send_keys target keys = Command.Send_keys (target, keys)" + ] + }, + { + "at": "lib/commands.ml:263", + "has": [ + "let send_keys target keys = Command.Send_keys (target, keys)" + ] + }, + { + "at": "unix/engine.ml:165", + "has": [ + "| Send_keys (target, keys) ->" + ] + }, + { + "at": "unix/engine.ml:174", + "has": [ + "Some (\"send-keys\", [ \"-t\"; pane target; \"--\" ] @ List.map key keys)" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.wait_for", + "command": "wait-for", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:315", + "has": [ + "C.raw lane ~pidfd:(Some c.pidfd)" + ] + }, + { + "at": "unix/generated_operations.ml:43", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.wait_for channel)" + ], + "in": "Libtmux_unix.Client.wait_for" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:264", + "has": [ + "let wait_for channel = Command.Wait_for channel" + ] + }, + { + "at": "lib/commands.ml:264", + "has": [ + "let wait_for channel = Command.Wait_for channel" + ] + }, + { + "at": "unix/engine.ml:175", + "has": [ + "| Wait_for channel | Signal channel ->" + ] + }, + { + "at": "unix/engine.ml:183", + "has": [ + "Some (\"wait-for\", args)" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.signal", + "command": "wait-for", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:46", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.signal channel)" + ], + "in": "Libtmux_unix.Client.signal" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:265", + "has": [ + "let signal channel = Command.Signal channel" + ] + }, + { + "at": "lib/commands.ml:265", + "has": [ + "let signal channel = Command.Signal channel" + ] + }, + { + "at": "unix/engine.ml:175", + "has": [ + "| Wait_for channel | Signal channel ->" + ] + }, + { + "at": "unix/engine.ml:183", + "has": [ + "Some (\"wait-for\", args)" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.capture_environment", + "command": "show-environment", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/environment_io.ml:103", + "has": [ + "Read_process.run c \"show-environment\" arguments (fun body ->" + ] + }, + { + "at": "unix/generated_operations.ml:49", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.capture_environment" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:267", + "has": [ + "let capture_environment ?(hidden = false) scope =" + ] + }, + { + "at": "lib/commands.ml:268", + "has": [ + "Command.Capture_environment (scope, hidden)" + ] + }, + { + "at": "unix/engine.ml:101", + "has": [ + "| Capture_environment (scope, hidden) ->" + ] + }, + { + "at": "unix/engine.ml:103", + "has": [ + "( \"show-environment\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.set_environment", + "command": "set-environment", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:53", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.set_environment" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:270", + "has": [ + "let set_environment ?(hidden = false) scope ~name value =" + ] + }, + { + "at": "lib/commands.ml:271", + "has": [ + "Command.Mutate (Set_environment { scope; name; value; hidden })" + ] + }, + { + "at": "unix/command_encoding.ml:286", + "has": [ + "| Set_environment { scope; name; value; hidden } ->" + ] + }, + { + "at": "unix/command_encoding.ml:288", + "has": [ + "( \"set-environment\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.unset_environment", + "command": "set-environment", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:57", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.unset_environment" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:273", + "has": [ + "let unset_environment scope name =" + ] + }, + { + "at": "lib/commands.ml:274", + "has": [ + "Command.Mutate (Unset_environment (scope, name))" + ] + }, + { + "at": "unix/command_encoding.ml:292", + "has": [ + "| Unset_environment (scope, name) ->" + ] + }, + { + "at": "unix/command_encoding.ml:294", + "has": [ + "(\"set-environment\", environment_scope c scope @ [ \"-u\"; \"--\"; name ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.remove_environment", + "command": "set-environment", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:61", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.remove_environment" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:276", + "has": [ + "let remove_environment scope name =" + ] + }, + { + "at": "lib/commands.ml:277", + "has": [ + "Command.Mutate (Remove_environment (scope, name))" + ] + }, + { + "at": "unix/command_encoding.ml:295", + "has": [ + "| Remove_environment (scope, name) ->" + ] + }, + { + "at": "unix/command_encoding.ml:297", + "has": [ + "(\"set-environment\", environment_scope c scope @ [ \"-r\"; \"--\"; name ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.capture_options", + "command": "show-options", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/options_io.ml:199", + "has": [ + "Read_process.run c" + ] + }, + { + "at": "unix/generated_operations.ml:65", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.capture_options" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:279", + "has": [ + "let capture_options ?(include_inherited = false) scope =" + ] + }, + { + "at": "lib/commands.ml:280", + "has": [ + "Command.Capture_options (scope, include_inherited)" + ] + }, + { + "at": "unix/engine.ml:107", + "has": [ + "| Capture_options (scope, include_inherited) ->" + ] + }, + { + "at": "unix/engine.ml:110", + "has": [ + "( \"show-options\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.read_option", + "command": "show-options", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/options_io.ml:223", + "has": [ + "Read_process.run c \"show-options\" arguments (fun body ->" + ] + }, + { + "at": "unix/generated_operations.ml:69", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.read_option" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:282", + "has": [ + "let read_option ?(include_inherited = true) scope name =" + ] + }, + { + "at": "lib/commands.ml:283", + "has": [ + "Command.Read_option (scope, name, include_inherited)" + ] + }, + { + "at": "unix/engine.ml:113", + "has": [ + "| Read_option (scope, name, include_inherited) ->" + ] + }, + { + "at": "unix/engine.ml:116", + "has": [ + "( \"show-options\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.set_option", + "command": "set-option", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:73", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.set_option" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:285", + "has": [ + "let set_option ?index ?(append = false) scope ~name value =" + ] + }, + { + "at": "lib/commands.ml:286", + "has": [ + "Command.Mutate (Set_option { scope; name; index; value; append })" + ] + }, + { + "at": "unix/command_encoding.ml:298", + "has": [ + "| Set_option { scope; name; index = number; value; append } ->" + ] + }, + { + "at": "unix/command_encoding.ml:307", + "has": [ + "( \"set-option\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.unset_option", + "command": "set-option", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:77", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.unset_option" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:288", + "has": [ + "let unset_option ?index scope name =" + ] + }, + { + "at": "lib/commands.ml:289", + "has": [ + "Command.Mutate (Unset_option (scope, name, index))" + ] + }, + { + "at": "unix/command_encoding.ml:311", + "has": [ + "| Unset_option (scope, name, number) ->" + ] + }, + { + "at": "unix/command_encoding.ml:313", + "has": [ + "( \"set-option\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.clear_option_array", + "command": "set-option", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:81", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.clear_option_array" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:291", + "has": [ + "let clear_option_array scope name =" + ] + }, + { + "at": "lib/commands.ml:292", + "has": [ + "Command.Mutate (Clear_option_array (scope, name))" + ] + }, + { + "at": "unix/command_encoding.ml:315", + "has": [ + "| Clear_option_array (scope, name) ->" + ] + }, + { + "at": "unix/command_encoding.ml:319", + "has": [ + "(\"set-option\", option_scope c scope @ [ \"--\"; name; \"\" ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.capture_hooks", + "command": "show-hooks", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/options_io.ml:199", + "has": [ + "Read_process.run c" + ] + }, + { + "at": "unix/generated_operations.ml:85", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.capture_hooks scope)" + ], + "in": "Libtmux_unix.Client.capture_hooks" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:294", + "has": [ + "let capture_hooks scope = Command.Capture_hooks scope" + ] + }, + { + "at": "lib/commands.ml:294", + "has": [ + "let capture_hooks scope = Command.Capture_hooks scope" + ] + }, + { + "at": "unix/engine.ml:120", + "has": [ + "| Capture_hooks scope ->" + ] + }, + { + "at": "unix/engine.ml:126", + "has": [ + "Some (\"show-hooks\", Command_encoding.option_scope connection scope)" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.read_hook", + "command": "show-options", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/options_io.ml:223", + "has": [ + "Read_process.run c \"show-options\" arguments (fun body ->" + ] + }, + { + "at": "unix/generated_operations.ml:88", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.read_hook" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:296", + "has": [ + "let read_hook ?(include_inherited = true) scope name =" + ] + }, + { + "at": "lib/commands.ml:297", + "has": [ + "Command.Read_hook (scope, name, include_inherited)" + ] + }, + { + "at": "unix/engine.ml:127", + "has": [ + "| Read_hook (scope, name, include_inherited) ->" + ] + }, + { + "at": "unix/engine.ml:131", + "has": [ + "( \"show-options\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.set_hook", + "command": "set-hook", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:92", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.set_hook" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:299", + "has": [ + "let set_hook ?index ?(append = false) scope ~name commands =" + ] + }, + { + "at": "lib/commands.ml:300", + "has": [ + "Command.Mutate (Set_hook { scope; name; index; commands; append })" + ] + }, + { + "at": "unix/command_encoding.ml:320", + "has": [ + "| Set_hook { scope; name; index = number; commands; append } ->" + ] + }, + { + "at": "unix/command_encoding.ml:325", + "has": [ + "( \"set-hook\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.remove_hook", + "command": "set-hook", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:96", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.remove_hook" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:302", + "has": [ + "let remove_hook ?index scope name =" + ] + }, + { + "at": "lib/commands.ml:303", + "has": [ + "Command.Mutate (Remove_hook (scope, name, index))" + ] + }, + { + "at": "unix/command_encoding.ml:329", + "has": [ + "| Remove_hook (scope, name, number) ->" + ] + }, + { + "at": "unix/command_encoding.ml:331", + "has": [ + "( \"set-hook\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.run_hook", + "command": "set-hook", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:100", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.run_hook scope name)" + ], + "in": "Libtmux_unix.Client.run_hook" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:305", + "has": [ + "let run_hook scope name = Command.Mutate (Run_hook (scope, name))" + ] + }, + { + "at": "lib/commands.ml:305", + "has": [ + "let run_hook scope name = Command.Mutate (Run_hook (scope, name))" + ] + }, + { + "at": "unix/command_encoding.ml:333", + "has": [ + "| Run_hook (scope, name) ->" + ] + }, + { + "at": "unix/command_encoding.ml:345", + "has": [ + "(\"set-hook\", option_scope c scope @ [ \"-R\"; \"--\"; name ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.create_session", + "command": "new-session", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:288", + "has": [ + "ignore (C.request c ~acknowledged ~replied name args);" + ] + }, + { + "at": "unix/generated_operations.ml:104", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.create_session" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:307", + "has": [ + "let create_session ?window_name ?(width = 80) ?(height = 24)" + ] + }, + { + "at": "lib/commands.ml:309", + "has": [ + "Command.Create_session { name; window_name; width; height; spawn }" + ] + }, + { + "at": "unix/command_encoding.ml:356", + "has": [ + "| Create_session { name; window_name; width; height; spawn = spec } ->" + ] + }, + { + "at": "unix/command_encoding.ml:360", + "has": [ + "( \"new-session\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.create_window", + "command": "new-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:288", + "has": [ + "ignore (C.request c ~acknowledged ~replied name args);" + ] + }, + { + "at": "unix/generated_operations.ml:109", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.create_window" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:311", + "has": [ + "let create_window ?index ?name ?(spawn = Spawn.default) session =" + ] + }, + { + "at": "lib/commands.ml:312", + "has": [ + "Command.Create_window { session; index; name; spawn }" + ] + }, + { + "at": "unix/command_encoding.ml:372", + "has": [ + "| Create_window { session = target; index = number; name; spawn = spec } ->" + ] + }, + { + "at": "unix/command_encoding.ml:377", + "has": [ + "( \"new-window\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.split_pane", + "command": "split-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:288", + "has": [ + "ignore (C.request c ~acknowledged ~replied name args);" + ] + }, + { + "at": "unix/generated_operations.ml:113", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.split_pane" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:314", + "has": [ + "let split_pane ?size ?(spawn = Spawn.default) pane ~direction =" + ] + }, + { + "at": "lib/commands.ml:315", + "has": [ + "Command.Split_pane { pane; direction; size; spawn }" + ] + }, + { + "at": "unix/command_encoding.ml:381", + "has": [ + "| Split_pane { pane = target; direction = side; size = extent; spawn = spec }" + ] + }, + { + "at": "unix/command_encoding.ml:384", + "has": [ + "( \"split-window\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.break_pane", + "command": "break-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:288", + "has": [ + "ignore (C.request c ~acknowledged ~replied name args);" + ] + }, + { + "at": "unix/generated_operations.ml:117", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.break_pane" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:317", + "has": [ + "let break_pane ?name pane ~session ~index =" + ] + }, + { + "at": "lib/commands.ml:318", + "has": [ + "Command.Break_pane { pane; session; index; name }" + ] + }, + { + "at": "unix/command_encoding.ml:389", + "has": [ + "| Break_pane { pane = target; session; index; name } ->" + ] + }, + { + "at": "unix/command_encoding.ml:390", + "has": [ + "( \"break-pane\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.kill_session", + "command": "kill-session", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:121", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.kill_session session)" + ], + "in": "Libtmux_unix.Client.kill_session" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:320", + "has": [ + "let kill_session session = Command.Mutate (Kill_session session)" + ] + }, + { + "at": "lib/commands.ml:320", + "has": [ + "let kill_session session = Command.Mutate (Kill_session session)" + ] + }, + { + "at": "unix/command_encoding.ml:240", + "has": [ + "| Command.Kill_session target -> (\"kill-session\", [ \"-t\"; session c target ])" + ] + }, + { + "at": "unix/command_encoding.ml:240", + "has": [ + "| Command.Kill_session target -> (\"kill-session\", [ \"-t\"; session c target ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.kill_window", + "command": "kill-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:124", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.kill_window window)" + ], + "in": "Libtmux_unix.Client.kill_window" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:321", + "has": [ + "let kill_window window = Command.Mutate (Kill_window window)" + ] + }, + { + "at": "lib/commands.ml:321", + "has": [ + "let kill_window window = Command.Mutate (Kill_window window)" + ] + }, + { + "at": "unix/command_encoding.ml:241", + "has": [ + "| Kill_window target -> (\"kill-window\", [ \"-t\"; window c target ])" + ] + }, + { + "at": "unix/command_encoding.ml:241", + "has": [ + "| Kill_window target -> (\"kill-window\", [ \"-t\"; window c target ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.kill_pane", + "command": "kill-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:127", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.kill_pane pane)" + ], + "in": "Libtmux_unix.Client.kill_pane" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:322", + "has": [ + "let kill_pane pane = Command.Mutate (Kill_pane pane)" + ] + }, + { + "at": "lib/commands.ml:322", + "has": [ + "let kill_pane pane = Command.Mutate (Kill_pane pane)" + ] + }, + { + "at": "unix/command_encoding.ml:242", + "has": [ + "| Kill_pane target -> (\"kill-pane\", [ \"-t\"; pane c target ])" + ] + }, + { + "at": "unix/command_encoding.ml:242", + "has": [ + "| Kill_pane target -> (\"kill-pane\", [ \"-t\"; pane c target ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.select_window_at", + "command": "select-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:130", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.select_window_at" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:324", + "has": [ + "let select_window_at session ~index =" + ] + }, + { + "at": "lib/commands.ml:325", + "has": [ + "Command.Mutate (Select_window_at (session, index))" + ] + }, + { + "at": "unix/command_encoding.ml:243", + "has": [ + "| Select_window_at (target, number) ->" + ] + }, + { + "at": "unix/command_encoding.ml:244", + "has": [ + "(\"select-window\", [ \"-t\"; at c target number ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.unlink_window_at", + "command": "unlink-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:134", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.unlink_window_at" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:327", + "has": [ + "let unlink_window_at ?(allow_kill = false) session ~index =" + ] + }, + { + "at": "lib/commands.ml:328", + "has": [ + "Command.Mutate (Unlink_window_at { session; index; allow_kill })" + ] + }, + { + "at": "unix/command_encoding.ml:245", + "has": [ + "| Unlink_window_at { session; index; allow_kill } ->" + ] + }, + { + "at": "unix/command_encoding.ml:246", + "has": [ + "( \"unlink-window\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.link_window", + "command": "link-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:138", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.link_window" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:330", + "has": [ + "let link_window window ~session ~index =" + ] + }, + { + "at": "lib/commands.ml:331", + "has": [ + "Command.Mutate (Link_window { window; session; index })" + ] + }, + { + "at": "unix/command_encoding.ml:248", + "has": [ + "| Link_window { window = target; session; index } ->" + ] + }, + { + "at": "unix/command_encoding.ml:249", + "has": [ + "(\"link-window\", [ \"-d\"; \"-s\"; window c target; \"-t\"; at c session index ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.move_window_at", + "command": "move-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:143", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.move_window_at" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:333", + "has": [ + "let move_window_at from_session ~from_index ~session ~index =" + ] + }, + { + "at": "lib/commands.ml:334", + "has": [ + "Command.Mutate (Move_window_at { from_session; from_index; session; index })" + ] + }, + { + "at": "unix/command_encoding.ml:250", + "has": [ + "| Move_window_at { from_session; from_index; session; index } ->" + ] + }, + { + "at": "unix/command_encoding.ml:251", + "has": [ + "( \"move-window\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.select_pane", + "command": "select-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:148", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.select_pane pane)" + ], + "in": "Libtmux_unix.Client.select_pane" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:336", + "has": [ + "let select_pane pane = Command.Mutate (Select_pane pane)" + ] + }, + { + "at": "lib/commands.ml:336", + "has": [ + "let select_pane pane = Command.Mutate (Select_pane pane)" + ] + }, + { + "at": "unix/command_encoding.ml:254", + "has": [ + "| Select_pane target -> (\"select-pane\", [ \"-t\"; pane c target ])" + ] + }, + { + "at": "unix/command_encoding.ml:254", + "has": [ + "| Select_pane target -> (\"select-pane\", [ \"-t\"; pane c target ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.set_pane_title", + "command": "select-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:151", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.set_pane_title" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:337", + "has": [ + "let set_pane_title pane ~title = Command.Mutate (Set_pane_title (pane, title))" + ] + }, + { + "at": "lib/commands.ml:337", + "has": [ + "let set_pane_title pane ~title = Command.Mutate (Set_pane_title (pane, title))" + ] + }, + { + "at": "unix/command_encoding.ml:255", + "has": [ + "| Set_pane_title (target, title) ->" + ] + }, + { + "at": "unix/command_encoding.ml:256", + "has": [ + "(\"select-pane\", [ \"-t\"; pane c target; \"-T\"; format_text title ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.resize_pane", + "command": "resize-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:155", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.resize_pane" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:339", + "has": [ + "let resize_pane ?width ?height pane =" + ] + }, + { + "at": "lib/commands.ml:340", + "has": [ + "Command.Mutate (Resize_pane { pane; width; height })" + ] + }, + { + "at": "unix/command_encoding.ml:257", + "has": [ + "| Resize_pane { pane = target; width; height } ->" + ] + }, + { + "at": "unix/command_encoding.ml:258", + "has": [ + "(\"resize-pane\", [ \"-t\"; pane c target ] @ geometry width height)" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.resize_window", + "command": "resize-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:159", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.resize_window" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:342", + "has": [ + "let resize_window ?width ?height window =" + ] + }, + { + "at": "lib/commands.ml:343", + "has": [ + "Command.Mutate (Resize_window { window; width; height })" + ] + }, + { + "at": "unix/command_encoding.ml:259", + "has": [ + "| Resize_window { window = target; width; height } ->" + ] + }, + { + "at": "unix/command_encoding.ml:260", + "has": [ + "(\"resize-window\", [ \"-t\"; window c target ] @ geometry width height)" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.select_layout", + "command": "select-layout", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:163", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.select_layout" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:345", + "has": [ + "let select_layout window layout =" + ] + }, + { + "at": "lib/commands.ml:346", + "has": [ + "Command.Mutate (Select_layout (window, layout))" + ] + }, + { + "at": "unix/command_encoding.ml:261", + "has": [ + "| Select_layout (target, value) ->" + ] + }, + { + "at": "unix/command_encoding.ml:262", + "has": [ + "(\"select-layout\", [ \"-t\"; window c target; \"--\"; layout value ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.cycle_layout", + "command": "next-layout", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:167", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.cycle_layout" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:348", + "has": [ + "let cycle_layout window direction =" + ] + }, + { + "at": "lib/commands.ml:349", + "has": [ + "Command.Mutate (Cycle_layout (window, direction))" + ] + }, + { + "at": "unix/command_encoding.ml:263", + "has": [ + "| Cycle_layout (target, value) ->" + ] + }, + { + "at": "unix/command_encoding.ml:265", + "has": [ + "| `Next -> \"next-layout\"" + ] + } + ], + "when": "direction is `Next" + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.cycle_layout", + "command": "previous-layout", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:167", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.cycle_layout" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:348", + "has": [ + "let cycle_layout window direction =" + ] + }, + { + "at": "lib/commands.ml:349", + "has": [ + "Command.Mutate (Cycle_layout (window, direction))" + ] + }, + { + "at": "unix/command_encoding.ml:263", + "has": [ + "| Cycle_layout (target, value) ->" + ] + }, + { + "at": "unix/command_encoding.ml:266", + "has": [ + "| `Previous -> \"previous-layout\")," + ] + } + ], + "when": "direction is `Previous" + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.move_pane", + "command": "move-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:171", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.move_pane" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:351", + "has": [ + "let move_pane ?size pane ~beside ~direction =" + ] + }, + { + "at": "lib/commands.ml:352", + "has": [ + "Command.Mutate (Move_pane { pane; beside; direction; size })" + ] + }, + { + "at": "unix/command_encoding.ml:268", + "has": [ + "| Move_pane { pane = target; beside; direction = side; size = extent } ->" + ] + }, + { + "at": "unix/command_encoding.ml:269", + "has": [ + "( \"move-pane\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.swap_panes", + "command": "swap-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:175", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.swap_panes pane other)" + ], + "in": "Libtmux_unix.Client.swap_panes" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:354", + "has": [ + "let swap_panes pane other = Command.Mutate (Swap_panes (pane, other))" + ] + }, + { + "at": "lib/commands.ml:354", + "has": [ + "let swap_panes pane other = Command.Mutate (Swap_panes (pane, other))" + ] + }, + { + "at": "unix/command_encoding.ml:272", + "has": [ + "| Swap_panes (target, other) ->" + ] + }, + { + "at": "unix/command_encoding.ml:273", + "has": [ + "(\"swap-pane\", [ \"-d\"; \"-s\"; pane c target; \"-t\"; pane c other ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.rotate_panes", + "command": "rotate-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:178", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.rotate_panes" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:356", + "has": [ + "let rotate_panes window direction =" + ] + }, + { + "at": "lib/commands.ml:357", + "has": [ + "Command.Mutate (Rotate_panes (window, direction))" + ] + }, + { + "at": "unix/command_encoding.ml:274", + "has": [ + "| Rotate_panes (target, value) ->" + ] + }, + { + "at": "unix/command_encoding.ml:275", + "has": [ + "( \"rotate-window\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.zoom_pane", + "command": "resize-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:182", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.zoom_pane pane)" + ], + "in": "Libtmux_unix.Client.zoom_pane" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:359", + "has": [ + "let zoom_pane pane = Command.Mutate (Zoom_pane pane)" + ] + }, + { + "at": "lib/commands.ml:359", + "has": [ + "let zoom_pane pane = Command.Mutate (Zoom_pane pane)" + ] + }, + { + "at": "unix/command_encoding.ml:278", + "has": [ + "| Zoom_pane target -> (\"resize-pane\", [ \"-Z\"; \"-t\"; pane c target ])" + ] + }, + { + "at": "unix/command_encoding.ml:278", + "has": [ + "| Zoom_pane target -> (\"resize-pane\", [ \"-Z\"; \"-t\"; pane c target ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.respawn_pane", + "command": "respawn-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:185", + "has": [ + "Client.run ?cancel connection" + ], + "in": "Libtmux_unix.Client.respawn_pane" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:361", + "has": [ + "let respawn_pane ?(kill_running = false) pane spawn =" + ] + }, + { + "at": "lib/commands.ml:362", + "has": [ + "Command.Mutate (Respawn_pane { pane; spawn; kill_running })" + ] + }, + { + "at": "unix/command_encoding.ml:279", + "has": [ + "| Respawn_pane { pane = target; spawn = spec; kill_running } ->" + ] + }, + { + "at": "unix/command_encoding.ml:281", + "has": [ + "( \"respawn-pane\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.clear_history", + "command": "clear-history", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "unix/generated_operations.ml:189", + "has": [ + "Client.run ?cancel connection (Libtmux.Operations.clear_history pane)" + ], + "in": "Libtmux_unix.Client.clear_history" + }, + { + "at": "unix/libtmux_unix.ml:102", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "lib/commands.ml:364", + "has": [ + "let clear_history pane = Command.Mutate (Clear_history pane)" + ] + }, + { + "at": "lib/commands.ml:364", + "has": [ + "let clear_history pane = Command.Mutate (Clear_history pane)" + ] + }, + { + "at": "unix/command_encoding.ml:285", + "has": [ + "| Clear_history target -> (\"clear-history\", [ \"-t\"; pane c target ])" + ] + }, + { + "at": "unix/command_encoding.ml:285", + "has": [ + "| Clear_history target -> (\"clear-history\", [ \"-t\"; pane c target ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.capture", + "command": "list-sessions", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/acquisition.ml:16", + "has": [ + "metadata client \"list-sessions\" []" + ] + }, + { + "at": "unix/libtmux_unix.ml:100", + "has": [ + "let capture ?cancel t = run ?cancel t (Libtmux.Operations.capture ())" + ], + "in": "Libtmux_unix.Client.capture" + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "unix/engine.ml:294", + "has": [ + "| Capture -> Acquisition.snapshot c" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.capture", + "command": "list-windows", + "scope": "server", + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/acquisition.ml:30", + "has": [ + "metadata client \"list-windows\" [ \"-a\" ]" + ] + }, + { + "at": "unix/libtmux_unix.ml:100", + "has": [ + "let capture ?cancel t = run ?cancel t (Libtmux.Operations.capture ())" + ], + "in": "Libtmux_unix.Client.capture" + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "unix/engine.ml:294", + "has": [ + "| Capture -> Acquisition.snapshot c" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.capture", + "command": "list-panes", + "scope": "server", + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/acquisition.ml:65", + "has": [ + "metadata client \"list-panes\" [ \"-a\" ]" + ] + }, + { + "at": "unix/libtmux_unix.ml:100", + "has": [ + "let capture ?cancel t = run ?cancel t (Libtmux.Operations.capture ())" + ], + "in": "Libtmux_unix.Client.capture" + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "unix/engine.ml:294", + "has": [ + "| Capture -> Acquisition.snapshot c" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.capture", + "command": "list-clients", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/acquisition.ml:118", + "has": [ + "metadata client \"list-clients\" []" + ] + }, + { + "at": "unix/libtmux_unix.ml:100", + "has": [ + "let capture ?cancel t = run ?cancel t (Libtmux.Operations.capture ())" + ], + "in": "Libtmux_unix.Client.capture" + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "unix/engine.ml:294", + "has": [ + "| Capture -> Acquisition.snapshot c" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.capture_text", + "command": "capture-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/rendered.ml:88", + "has": [ + "no_output client \"capture-pane\"" + ] + }, + { + "at": "unix/libtmux_unix.ml:109", + "has": [ + "run ?cancel t" + ], + "in": "Libtmux_unix.Client.capture_text" + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "unix/engine.ml:311", + "has": [ + "Rendered.capture ~scratch_dir c pane ~start ~end_" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.capture_text", + "command": "list-buffers", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/rendered.ml:100", + "has": [ + "metadata client \"list-buffers\"" + ] + }, + { + "at": "unix/libtmux_unix.ml:109", + "has": [ + "run ?cancel t" + ], + "in": "Libtmux_unix.Client.capture_text" + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "unix/engine.ml:311", + "has": [ + "Rendered.capture ~scratch_dir c pane ~start ~end_" + ] + } + ], + "incidental": true + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.capture_text", + "command": "save-buffer", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/rendered.ml:125", + "has": [ + "no_output client \"save-buffer\" [ \"-b\"; buffer; file.path ];" + ] + }, + { + "at": "unix/libtmux_unix.ml:109", + "has": [ + "run ?cancel t" + ], + "in": "Libtmux_unix.Client.capture_text" + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "unix/engine.ml:311", + "has": [ + "Rendered.capture ~scratch_dir c pane ~start ~end_" + ] + } + ], + "incidental": true + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.capture_text", + "command": "delete-buffer", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/rendered.ml:81", + "has": [ + "no_output client \"delete-buffer\" [ \"-b\"; buffer ];" + ] + }, + { + "at": "unix/libtmux_unix.ml:109", + "has": [ + "run ?cancel t" + ], + "in": "Libtmux_unix.Client.capture_text" + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "unix/engine.ml:311", + "has": [ + "Rendered.capture ~scratch_dir c pane ~start ~end_" + ] + } + ], + "incidental": true, + "when": "while the connection remains open" + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.capture_text", + "command": "show-hooks", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/rendered.ml:27", + "has": [ + "let body = request client \"show-hooks\" arguments in" + ] + }, + { + "at": "unix/libtmux_unix.ml:109", + "has": [ + "run ?cancel t" + ], + "in": "Libtmux_unix.Client.capture_text" + }, + { + "at": "unix/libtmux_unix.ml:92", + "has": [ + "await_owned ?cancel (Engine.submit t.engine command)))" + ] + }, + { + "at": "unix/engine.ml:311", + "has": [ + "Rendered.capture ~scratch_dir c pane ~start ~end_" + ] + } + ], + "incidental": true + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.rename_window", + "command": "rename-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:9", + "has": [ + "Client.run connection (Libtmux.Operations.rename_window target ~name)" + ], + "in": "Libtmux_eio.Client.rename_window" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:247", + "has": [ + "let rename_window target ~name = Command.Rename_window (target, name)" + ] + }, + { + "at": "lib/commands.ml:247", + "has": [ + "let rename_window target ~name = Command.Rename_window (target, name)" + ] + }, + { + "at": "unix/engine.ml:145", + "has": [ + "| Rename_window (target, name) ->" + ] + }, + { + "at": "unix/engine.ml:148", + "has": [ + "( \"rename-window\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.rename_session", + "command": "rename-session", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:12", + "has": [ + "Client.run connection (Libtmux.Operations.rename_session target ~name)" + ], + "in": "Libtmux_eio.Client.rename_session" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:248", + "has": [ + "let rename_session target ~name = Command.Rename_session (target, name)" + ] + }, + { + "at": "lib/commands.ml:248", + "has": [ + "let rename_session target ~name = Command.Rename_session (target, name)" + ] + }, + { + "at": "unix/engine.ml:154", + "has": [ + "| Rename_session (target, name) ->" + ] + }, + { + "at": "unix/engine.ml:157", + "has": [ + "( \"rename-session\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.switch_client_at", + "command": "switch-client", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:15", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.switch_client_at" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:250", + "has": [ + "let switch_client_at ?(update_environment = false) client ~session =" + ] + }, + { + "at": "lib/commands.ml:251", + "has": [ + "Command.Mutate (Switch_client_at { client; session; update_environment })" + ] + }, + { + "at": "unix/command_encoding.ml:223", + "has": [ + "| Command.Switch_client_at { client; session = target; update_environment } ->" + ] + }, + { + "at": "unix/command_encoding.ml:224", + "has": [ + "( \"switch-client\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.request_detach_client_at", + "command": "detach-client", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:19", + "has": [ + "Client.run connection (Libtmux.Operations.request_detach_client_at client)" + ], + "in": "Libtmux_eio.Client.request_detach_client_at" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:253", + "has": [ + "let request_detach_client_at client =" + ] + }, + { + "at": "lib/commands.ml:254", + "has": [ + "Command.Mutate (Request_detach_client_at client)" + ] + }, + { + "at": "unix/command_encoding.ml:227", + "has": [ + "| Request_detach_client_at client ->" + ] + }, + { + "at": "unix/command_encoding.ml:228", + "has": [ + "(\"detach-client\", [ \"-t\"; client_name c client ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.refresh_client_at", + "command": "refresh-client", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:22", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.refresh_client_at" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:256", + "has": [ + "let refresh_client_at ?(status_only = false) client =" + ] + }, + { + "at": "lib/commands.ml:257", + "has": [ + "Command.Mutate (Refresh_client_at (client, status_only))" + ] + }, + { + "at": "unix/command_encoding.ml:229", + "has": [ + "| Refresh_client_at (client, status_only) ->" + ] + }, + { + "at": "unix/command_encoding.ml:230", + "has": [ + "( \"refresh-client\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.resize_control_client_at", + "command": "refresh-client", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:26", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.resize_control_client_at" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:259", + "has": [ + "let resize_control_client_at client ~width ~height =" + ] + }, + { + "at": "lib/commands.ml:260", + "has": [ + "Command.Mutate (Resize_control_client_at { client; width; height })" + ] + }, + { + "at": "unix/command_encoding.ml:232", + "has": [ + "| Resize_control_client_at { client; width; height } ->" + ] + }, + { + "at": "unix/command_encoding.ml:233", + "has": [ + "( \"refresh-client\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.send_text", + "command": "send-keys", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:30", + "has": [ + "Client.run connection (Libtmux.Operations.send_text target ~text)" + ], + "in": "Libtmux_eio.Client.send_text" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:262", + "has": [ + "let send_text target ~text = Command.Send_text (target, text)" + ] + }, + { + "at": "lib/commands.ml:262", + "has": [ + "let send_text target ~text = Command.Send_text (target, text)" + ] + }, + { + "at": "unix/engine.ml:163", + "has": [ + "| Send_text (target, text) ->" + ] + }, + { + "at": "unix/engine.ml:164", + "has": [ + "Some (\"send-keys\", [ \"-t\"; pane target; \"-l\"; \"--\"; text ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.send_keys", + "command": "send-keys", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:33", + "has": [ + "Client.run connection (Libtmux.Operations.send_keys target keys)" + ], + "in": "Libtmux_eio.Client.send_keys" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:263", + "has": [ + "let send_keys target keys = Command.Send_keys (target, keys)" + ] + }, + { + "at": "lib/commands.ml:263", + "has": [ + "let send_keys target keys = Command.Send_keys (target, keys)" + ] + }, + { + "at": "unix/engine.ml:165", + "has": [ + "| Send_keys (target, keys) ->" + ] + }, + { + "at": "unix/engine.ml:174", + "has": [ + "Some (\"send-keys\", [ \"-t\"; pane target; \"--\" ] @ List.map key keys)" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.wait_for", + "command": "wait-for", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:315", + "has": [ + "C.raw lane ~pidfd:(Some c.pidfd)" + ] + }, + { + "at": "eio/generated_operations.ml:36", + "has": [ + "Client.run connection (Libtmux.Operations.wait_for channel)" + ], + "in": "Libtmux_eio.Client.wait_for" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:264", + "has": [ + "let wait_for channel = Command.Wait_for channel" + ] + }, + { + "at": "lib/commands.ml:264", + "has": [ + "let wait_for channel = Command.Wait_for channel" + ] + }, + { + "at": "unix/engine.ml:175", + "has": [ + "| Wait_for channel | Signal channel ->" + ] + }, + { + "at": "unix/engine.ml:183", + "has": [ + "Some (\"wait-for\", args)" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.signal", + "command": "wait-for", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:39", + "has": [ + "Client.run connection (Libtmux.Operations.signal channel)" + ], + "in": "Libtmux_eio.Client.signal" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:265", + "has": [ + "let signal channel = Command.Signal channel" + ] + }, + { + "at": "lib/commands.ml:265", + "has": [ + "let signal channel = Command.Signal channel" + ] + }, + { + "at": "unix/engine.ml:175", + "has": [ + "| Wait_for channel | Signal channel ->" + ] + }, + { + "at": "unix/engine.ml:183", + "has": [ + "Some (\"wait-for\", args)" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.capture_environment", + "command": "show-environment", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/environment_io.ml:103", + "has": [ + "Read_process.run c \"show-environment\" arguments (fun body ->" + ] + }, + { + "at": "eio/generated_operations.ml:42", + "has": [ + "Client.run connection (Libtmux.Operations.capture_environment ?hidden scope)" + ], + "in": "Libtmux_eio.Client.capture_environment" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:267", + "has": [ + "let capture_environment ?(hidden = false) scope =" + ] + }, + { + "at": "lib/commands.ml:268", + "has": [ + "Command.Capture_environment (scope, hidden)" + ] + }, + { + "at": "unix/engine.ml:101", + "has": [ + "| Capture_environment (scope, hidden) ->" + ] + }, + { + "at": "unix/engine.ml:103", + "has": [ + "( \"show-environment\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.set_environment", + "command": "set-environment", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:45", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.set_environment" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:270", + "has": [ + "let set_environment ?(hidden = false) scope ~name value =" + ] + }, + { + "at": "lib/commands.ml:271", + "has": [ + "Command.Mutate (Set_environment { scope; name; value; hidden })" + ] + }, + { + "at": "unix/command_encoding.ml:286", + "has": [ + "| Set_environment { scope; name; value; hidden } ->" + ] + }, + { + "at": "unix/command_encoding.ml:288", + "has": [ + "( \"set-environment\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.unset_environment", + "command": "set-environment", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:49", + "has": [ + "Client.run connection (Libtmux.Operations.unset_environment scope name)" + ], + "in": "Libtmux_eio.Client.unset_environment" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:273", + "has": [ + "let unset_environment scope name =" + ] + }, + { + "at": "lib/commands.ml:274", + "has": [ + "Command.Mutate (Unset_environment (scope, name))" + ] + }, + { + "at": "unix/command_encoding.ml:292", + "has": [ + "| Unset_environment (scope, name) ->" + ] + }, + { + "at": "unix/command_encoding.ml:294", + "has": [ + "(\"set-environment\", environment_scope c scope @ [ \"-u\"; \"--\"; name ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.remove_environment", + "command": "set-environment", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:52", + "has": [ + "Client.run connection (Libtmux.Operations.remove_environment scope name)" + ], + "in": "Libtmux_eio.Client.remove_environment" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:276", + "has": [ + "let remove_environment scope name =" + ] + }, + { + "at": "lib/commands.ml:277", + "has": [ + "Command.Mutate (Remove_environment (scope, name))" + ] + }, + { + "at": "unix/command_encoding.ml:295", + "has": [ + "| Remove_environment (scope, name) ->" + ] + }, + { + "at": "unix/command_encoding.ml:297", + "has": [ + "(\"set-environment\", environment_scope c scope @ [ \"-r\"; \"--\"; name ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.capture_options", + "command": "show-options", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/options_io.ml:199", + "has": [ + "Read_process.run c" + ] + }, + { + "at": "eio/generated_operations.ml:55", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.capture_options" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:279", + "has": [ + "let capture_options ?(include_inherited = false) scope =" + ] + }, + { + "at": "lib/commands.ml:280", + "has": [ + "Command.Capture_options (scope, include_inherited)" + ] + }, + { + "at": "unix/engine.ml:107", + "has": [ + "| Capture_options (scope, include_inherited) ->" + ] + }, + { + "at": "unix/engine.ml:110", + "has": [ + "( \"show-options\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.read_option", + "command": "show-options", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/options_io.ml:223", + "has": [ + "Read_process.run c \"show-options\" arguments (fun body ->" + ] + }, + { + "at": "eio/generated_operations.ml:59", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.read_option" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:282", + "has": [ + "let read_option ?(include_inherited = true) scope name =" + ] + }, + { + "at": "lib/commands.ml:283", + "has": [ + "Command.Read_option (scope, name, include_inherited)" + ] + }, + { + "at": "unix/engine.ml:113", + "has": [ + "| Read_option (scope, name, include_inherited) ->" + ] + }, + { + "at": "unix/engine.ml:116", + "has": [ + "( \"show-options\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.set_option", + "command": "set-option", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:63", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.set_option" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:285", + "has": [ + "let set_option ?index ?(append = false) scope ~name value =" + ] + }, + { + "at": "lib/commands.ml:286", + "has": [ + "Command.Mutate (Set_option { scope; name; index; value; append })" + ] + }, + { + "at": "unix/command_encoding.ml:298", + "has": [ + "| Set_option { scope; name; index = number; value; append } ->" + ] + }, + { + "at": "unix/command_encoding.ml:307", + "has": [ + "( \"set-option\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.unset_option", + "command": "set-option", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:67", + "has": [ + "Client.run connection (Libtmux.Operations.unset_option ?index scope name)" + ], + "in": "Libtmux_eio.Client.unset_option" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:288", + "has": [ + "let unset_option ?index scope name =" + ] + }, + { + "at": "lib/commands.ml:289", + "has": [ + "Command.Mutate (Unset_option (scope, name, index))" + ] + }, + { + "at": "unix/command_encoding.ml:311", + "has": [ + "| Unset_option (scope, name, number) ->" + ] + }, + { + "at": "unix/command_encoding.ml:313", + "has": [ + "( \"set-option\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.clear_option_array", + "command": "set-option", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:70", + "has": [ + "Client.run connection (Libtmux.Operations.clear_option_array scope name)" + ], + "in": "Libtmux_eio.Client.clear_option_array" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:291", + "has": [ + "let clear_option_array scope name =" + ] + }, + { + "at": "lib/commands.ml:292", + "has": [ + "Command.Mutate (Clear_option_array (scope, name))" + ] + }, + { + "at": "unix/command_encoding.ml:315", + "has": [ + "| Clear_option_array (scope, name) ->" + ] + }, + { + "at": "unix/command_encoding.ml:319", + "has": [ + "(\"set-option\", option_scope c scope @ [ \"--\"; name; \"\" ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.capture_hooks", + "command": "show-hooks", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/options_io.ml:199", + "has": [ + "Read_process.run c" + ] + }, + { + "at": "eio/generated_operations.ml:73", + "has": [ + "Client.run connection (Libtmux.Operations.capture_hooks scope)" + ], + "in": "Libtmux_eio.Client.capture_hooks" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:294", + "has": [ + "let capture_hooks scope = Command.Capture_hooks scope" + ] + }, + { + "at": "lib/commands.ml:294", + "has": [ + "let capture_hooks scope = Command.Capture_hooks scope" + ] + }, + { + "at": "unix/engine.ml:120", + "has": [ + "| Capture_hooks scope ->" + ] + }, + { + "at": "unix/engine.ml:126", + "has": [ + "Some (\"show-hooks\", Command_encoding.option_scope connection scope)" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.read_hook", + "command": "show-options", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/options_io.ml:223", + "has": [ + "Read_process.run c \"show-options\" arguments (fun body ->" + ] + }, + { + "at": "eio/generated_operations.ml:76", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.read_hook" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:296", + "has": [ + "let read_hook ?(include_inherited = true) scope name =" + ] + }, + { + "at": "lib/commands.ml:297", + "has": [ + "Command.Read_hook (scope, name, include_inherited)" + ] + }, + { + "at": "unix/engine.ml:127", + "has": [ + "| Read_hook (scope, name, include_inherited) ->" + ] + }, + { + "at": "unix/engine.ml:131", + "has": [ + "( \"show-options\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.set_hook", + "command": "set-hook", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:80", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.set_hook" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:299", + "has": [ + "let set_hook ?index ?(append = false) scope ~name commands =" + ] + }, + { + "at": "lib/commands.ml:300", + "has": [ + "Command.Mutate (Set_hook { scope; name; index; commands; append })" + ] + }, + { + "at": "unix/command_encoding.ml:320", + "has": [ + "| Set_hook { scope; name; index = number; commands; append } ->" + ] + }, + { + "at": "unix/command_encoding.ml:325", + "has": [ + "( \"set-hook\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.remove_hook", + "command": "set-hook", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:84", + "has": [ + "Client.run connection (Libtmux.Operations.remove_hook ?index scope name)" + ], + "in": "Libtmux_eio.Client.remove_hook" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:302", + "has": [ + "let remove_hook ?index scope name =" + ] + }, + { + "at": "lib/commands.ml:303", + "has": [ + "Command.Mutate (Remove_hook (scope, name, index))" + ] + }, + { + "at": "unix/command_encoding.ml:329", + "has": [ + "| Remove_hook (scope, name, number) ->" + ] + }, + { + "at": "unix/command_encoding.ml:331", + "has": [ + "( \"set-hook\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.run_hook", + "command": "set-hook", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:87", + "has": [ + "Client.run connection (Libtmux.Operations.run_hook scope name)" + ], + "in": "Libtmux_eio.Client.run_hook" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:305", + "has": [ + "let run_hook scope name = Command.Mutate (Run_hook (scope, name))" + ] + }, + { + "at": "lib/commands.ml:305", + "has": [ + "let run_hook scope name = Command.Mutate (Run_hook (scope, name))" + ] + }, + { + "at": "unix/command_encoding.ml:333", + "has": [ + "| Run_hook (scope, name) ->" + ] + }, + { + "at": "unix/command_encoding.ml:345", + "has": [ + "(\"set-hook\", option_scope c scope @ [ \"-R\"; \"--\"; name ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.create_session", + "command": "new-session", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:288", + "has": [ + "ignore (C.request c ~acknowledged ~replied name args);" + ] + }, + { + "at": "eio/generated_operations.ml:90", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.create_session" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:307", + "has": [ + "let create_session ?window_name ?(width = 80) ?(height = 24)" + ] + }, + { + "at": "lib/commands.ml:309", + "has": [ + "Command.Create_session { name; window_name; width; height; spawn }" + ] + }, + { + "at": "unix/command_encoding.ml:356", + "has": [ + "| Create_session { name; window_name; width; height; spawn = spec } ->" + ] + }, + { + "at": "unix/command_encoding.ml:360", + "has": [ + "( \"new-session\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.create_window", + "command": "new-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:288", + "has": [ + "ignore (C.request c ~acknowledged ~replied name args);" + ] + }, + { + "at": "eio/generated_operations.ml:95", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.create_window" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:311", + "has": [ + "let create_window ?index ?name ?(spawn = Spawn.default) session =" + ] + }, + { + "at": "lib/commands.ml:312", + "has": [ + "Command.Create_window { session; index; name; spawn }" + ] + }, + { + "at": "unix/command_encoding.ml:372", + "has": [ + "| Create_window { session = target; index = number; name; spawn = spec } ->" + ] + }, + { + "at": "unix/command_encoding.ml:377", + "has": [ + "( \"new-window\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.split_pane", + "command": "split-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:288", + "has": [ + "ignore (C.request c ~acknowledged ~replied name args);" + ] + }, + { + "at": "eio/generated_operations.ml:99", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.split_pane" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:314", + "has": [ + "let split_pane ?size ?(spawn = Spawn.default) pane ~direction =" + ] + }, + { + "at": "lib/commands.ml:315", + "has": [ + "Command.Split_pane { pane; direction; size; spawn }" + ] + }, + { + "at": "unix/command_encoding.ml:381", + "has": [ + "| Split_pane { pane = target; direction = side; size = extent; spawn = spec }" + ] + }, + { + "at": "unix/command_encoding.ml:384", + "has": [ + "( \"split-window\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.break_pane", + "command": "break-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:288", + "has": [ + "ignore (C.request c ~acknowledged ~replied name args);" + ] + }, + { + "at": "eio/generated_operations.ml:103", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.break_pane" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:317", + "has": [ + "let break_pane ?name pane ~session ~index =" + ] + }, + { + "at": "lib/commands.ml:318", + "has": [ + "Command.Break_pane { pane; session; index; name }" + ] + }, + { + "at": "unix/command_encoding.ml:389", + "has": [ + "| Break_pane { pane = target; session; index; name } ->" + ] + }, + { + "at": "unix/command_encoding.ml:390", + "has": [ + "( \"break-pane\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.kill_session", + "command": "kill-session", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:107", + "has": [ + "Client.run connection (Libtmux.Operations.kill_session session)" + ], + "in": "Libtmux_eio.Client.kill_session" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:320", + "has": [ + "let kill_session session = Command.Mutate (Kill_session session)" + ] + }, + { + "at": "lib/commands.ml:320", + "has": [ + "let kill_session session = Command.Mutate (Kill_session session)" + ] + }, + { + "at": "unix/command_encoding.ml:240", + "has": [ + "| Command.Kill_session target -> (\"kill-session\", [ \"-t\"; session c target ])" + ] + }, + { + "at": "unix/command_encoding.ml:240", + "has": [ + "| Command.Kill_session target -> (\"kill-session\", [ \"-t\"; session c target ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.kill_window", + "command": "kill-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:110", + "has": [ + "Client.run connection (Libtmux.Operations.kill_window window)" + ], + "in": "Libtmux_eio.Client.kill_window" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:321", + "has": [ + "let kill_window window = Command.Mutate (Kill_window window)" + ] + }, + { + "at": "lib/commands.ml:321", + "has": [ + "let kill_window window = Command.Mutate (Kill_window window)" + ] + }, + { + "at": "unix/command_encoding.ml:241", + "has": [ + "| Kill_window target -> (\"kill-window\", [ \"-t\"; window c target ])" + ] + }, + { + "at": "unix/command_encoding.ml:241", + "has": [ + "| Kill_window target -> (\"kill-window\", [ \"-t\"; window c target ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.kill_pane", + "command": "kill-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:113", + "has": [ + "Client.run connection (Libtmux.Operations.kill_pane pane)" + ], + "in": "Libtmux_eio.Client.kill_pane" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:322", + "has": [ + "let kill_pane pane = Command.Mutate (Kill_pane pane)" + ] + }, + { + "at": "lib/commands.ml:322", + "has": [ + "let kill_pane pane = Command.Mutate (Kill_pane pane)" + ] + }, + { + "at": "unix/command_encoding.ml:242", + "has": [ + "| Kill_pane target -> (\"kill-pane\", [ \"-t\"; pane c target ])" + ] + }, + { + "at": "unix/command_encoding.ml:242", + "has": [ + "| Kill_pane target -> (\"kill-pane\", [ \"-t\"; pane c target ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.select_window_at", + "command": "select-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:116", + "has": [ + "Client.run connection (Libtmux.Operations.select_window_at session ~index)" + ], + "in": "Libtmux_eio.Client.select_window_at" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:324", + "has": [ + "let select_window_at session ~index =" + ] + }, + { + "at": "lib/commands.ml:325", + "has": [ + "Command.Mutate (Select_window_at (session, index))" + ] + }, + { + "at": "unix/command_encoding.ml:243", + "has": [ + "| Select_window_at (target, number) ->" + ] + }, + { + "at": "unix/command_encoding.ml:244", + "has": [ + "(\"select-window\", [ \"-t\"; at c target number ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.unlink_window_at", + "command": "unlink-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:119", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.unlink_window_at" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:327", + "has": [ + "let unlink_window_at ?(allow_kill = false) session ~index =" + ] + }, + { + "at": "lib/commands.ml:328", + "has": [ + "Command.Mutate (Unlink_window_at { session; index; allow_kill })" + ] + }, + { + "at": "unix/command_encoding.ml:245", + "has": [ + "| Unlink_window_at { session; index; allow_kill } ->" + ] + }, + { + "at": "unix/command_encoding.ml:246", + "has": [ + "( \"unlink-window\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.link_window", + "command": "link-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:123", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.link_window" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:330", + "has": [ + "let link_window window ~session ~index =" + ] + }, + { + "at": "lib/commands.ml:331", + "has": [ + "Command.Mutate (Link_window { window; session; index })" + ] + }, + { + "at": "unix/command_encoding.ml:248", + "has": [ + "| Link_window { window = target; session; index } ->" + ] + }, + { + "at": "unix/command_encoding.ml:249", + "has": [ + "(\"link-window\", [ \"-d\"; \"-s\"; window c target; \"-t\"; at c session index ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.move_window_at", + "command": "move-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:127", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.move_window_at" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:333", + "has": [ + "let move_window_at from_session ~from_index ~session ~index =" + ] + }, + { + "at": "lib/commands.ml:334", + "has": [ + "Command.Mutate (Move_window_at { from_session; from_index; session; index })" + ] + }, + { + "at": "unix/command_encoding.ml:250", + "has": [ + "| Move_window_at { from_session; from_index; session; index } ->" + ] + }, + { + "at": "unix/command_encoding.ml:251", + "has": [ + "( \"move-window\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.select_pane", + "command": "select-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:132", + "has": [ + "Client.run connection (Libtmux.Operations.select_pane pane)" + ], + "in": "Libtmux_eio.Client.select_pane" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:336", + "has": [ + "let select_pane pane = Command.Mutate (Select_pane pane)" + ] + }, + { + "at": "lib/commands.ml:336", + "has": [ + "let select_pane pane = Command.Mutate (Select_pane pane)" + ] + }, + { + "at": "unix/command_encoding.ml:254", + "has": [ + "| Select_pane target -> (\"select-pane\", [ \"-t\"; pane c target ])" + ] + }, + { + "at": "unix/command_encoding.ml:254", + "has": [ + "| Select_pane target -> (\"select-pane\", [ \"-t\"; pane c target ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.set_pane_title", + "command": "select-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:135", + "has": [ + "Client.run connection (Libtmux.Operations.set_pane_title pane ~title)" + ], + "in": "Libtmux_eio.Client.set_pane_title" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:337", + "has": [ + "let set_pane_title pane ~title = Command.Mutate (Set_pane_title (pane, title))" + ] + }, + { + "at": "lib/commands.ml:337", + "has": [ + "let set_pane_title pane ~title = Command.Mutate (Set_pane_title (pane, title))" + ] + }, + { + "at": "unix/command_encoding.ml:255", + "has": [ + "| Set_pane_title (target, title) ->" + ] + }, + { + "at": "unix/command_encoding.ml:256", + "has": [ + "(\"select-pane\", [ \"-t\"; pane c target; \"-T\"; format_text title ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.resize_pane", + "command": "resize-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:138", + "has": [ + "Client.run connection (Libtmux.Operations.resize_pane ?width ?height pane)" + ], + "in": "Libtmux_eio.Client.resize_pane" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:339", + "has": [ + "let resize_pane ?width ?height pane =" + ] + }, + { + "at": "lib/commands.ml:340", + "has": [ + "Command.Mutate (Resize_pane { pane; width; height })" + ] + }, + { + "at": "unix/command_encoding.ml:257", + "has": [ + "| Resize_pane { pane = target; width; height } ->" + ] + }, + { + "at": "unix/command_encoding.ml:258", + "has": [ + "(\"resize-pane\", [ \"-t\"; pane c target ] @ geometry width height)" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.resize_window", + "command": "resize-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:141", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.resize_window" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:342", + "has": [ + "let resize_window ?width ?height window =" + ] + }, + { + "at": "lib/commands.ml:343", + "has": [ + "Command.Mutate (Resize_window { window; width; height })" + ] + }, + { + "at": "unix/command_encoding.ml:259", + "has": [ + "| Resize_window { window = target; width; height } ->" + ] + }, + { + "at": "unix/command_encoding.ml:260", + "has": [ + "(\"resize-window\", [ \"-t\"; window c target ] @ geometry width height)" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.select_layout", + "command": "select-layout", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:145", + "has": [ + "Client.run connection (Libtmux.Operations.select_layout window layout)" + ], + "in": "Libtmux_eio.Client.select_layout" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:345", + "has": [ + "let select_layout window layout =" + ] + }, + { + "at": "lib/commands.ml:346", + "has": [ + "Command.Mutate (Select_layout (window, layout))" + ] + }, + { + "at": "unix/command_encoding.ml:261", + "has": [ + "| Select_layout (target, value) ->" + ] + }, + { + "at": "unix/command_encoding.ml:262", + "has": [ + "(\"select-layout\", [ \"-t\"; window c target; \"--\"; layout value ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.cycle_layout", + "command": "next-layout", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:148", + "has": [ + "Client.run connection (Libtmux.Operations.cycle_layout window direction)" + ], + "in": "Libtmux_eio.Client.cycle_layout" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:348", + "has": [ + "let cycle_layout window direction =" + ] + }, + { + "at": "lib/commands.ml:349", + "has": [ + "Command.Mutate (Cycle_layout (window, direction))" + ] + }, + { + "at": "unix/command_encoding.ml:263", + "has": [ + "| Cycle_layout (target, value) ->" + ] + }, + { + "at": "unix/command_encoding.ml:265", + "has": [ + "| `Next -> \"next-layout\"" + ] + } + ], + "when": "direction is `Next" + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.cycle_layout", + "command": "previous-layout", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:148", + "has": [ + "Client.run connection (Libtmux.Operations.cycle_layout window direction)" + ], + "in": "Libtmux_eio.Client.cycle_layout" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:348", + "has": [ + "let cycle_layout window direction =" + ] + }, + { + "at": "lib/commands.ml:349", + "has": [ + "Command.Mutate (Cycle_layout (window, direction))" + ] + }, + { + "at": "unix/command_encoding.ml:263", + "has": [ + "| Cycle_layout (target, value) ->" + ] + }, + { + "at": "unix/command_encoding.ml:266", + "has": [ + "| `Previous -> \"previous-layout\")," + ] + } + ], + "when": "direction is `Previous" + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.move_pane", + "command": "move-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:151", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.move_pane" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:351", + "has": [ + "let move_pane ?size pane ~beside ~direction =" + ] + }, + { + "at": "lib/commands.ml:352", + "has": [ + "Command.Mutate (Move_pane { pane; beside; direction; size })" + ] + }, + { + "at": "unix/command_encoding.ml:268", + "has": [ + "| Move_pane { pane = target; beside; direction = side; size = extent } ->" + ] + }, + { + "at": "unix/command_encoding.ml:269", + "has": [ + "( \"move-pane\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.swap_panes", + "command": "swap-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:155", + "has": [ + "Client.run connection (Libtmux.Operations.swap_panes pane other)" + ], + "in": "Libtmux_eio.Client.swap_panes" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:354", + "has": [ + "let swap_panes pane other = Command.Mutate (Swap_panes (pane, other))" + ] + }, + { + "at": "lib/commands.ml:354", + "has": [ + "let swap_panes pane other = Command.Mutate (Swap_panes (pane, other))" + ] + }, + { + "at": "unix/command_encoding.ml:272", + "has": [ + "| Swap_panes (target, other) ->" + ] + }, + { + "at": "unix/command_encoding.ml:273", + "has": [ + "(\"swap-pane\", [ \"-d\"; \"-s\"; pane c target; \"-t\"; pane c other ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.rotate_panes", + "command": "rotate-window", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:158", + "has": [ + "Client.run connection (Libtmux.Operations.rotate_panes window direction)" + ], + "in": "Libtmux_eio.Client.rotate_panes" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:356", + "has": [ + "let rotate_panes window direction =" + ] + }, + { + "at": "lib/commands.ml:357", + "has": [ + "Command.Mutate (Rotate_panes (window, direction))" + ] + }, + { + "at": "unix/command_encoding.ml:274", + "has": [ + "| Rotate_panes (target, value) ->" + ] + }, + { + "at": "unix/command_encoding.ml:275", + "has": [ + "( \"rotate-window\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.zoom_pane", + "command": "resize-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:161", + "has": [ + "Client.run connection (Libtmux.Operations.zoom_pane pane)" + ], + "in": "Libtmux_eio.Client.zoom_pane" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:359", + "has": [ + "let zoom_pane pane = Command.Mutate (Zoom_pane pane)" + ] + }, + { + "at": "lib/commands.ml:359", + "has": [ + "let zoom_pane pane = Command.Mutate (Zoom_pane pane)" + ] + }, + { + "at": "unix/command_encoding.ml:278", + "has": [ + "| Zoom_pane target -> (\"resize-pane\", [ \"-Z\"; \"-t\"; pane c target ])" + ] + }, + { + "at": "unix/command_encoding.ml:278", + "has": [ + "| Zoom_pane target -> (\"resize-pane\", [ \"-Z\"; \"-t\"; pane c target ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.respawn_pane", + "command": "respawn-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:164", + "has": [ + "Client.run connection" + ], + "in": "Libtmux_eio.Client.respawn_pane" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:361", + "has": [ + "let respawn_pane ?(kill_running = false) pane spawn =" + ] + }, + { + "at": "lib/commands.ml:362", + "has": [ + "Command.Mutate (Respawn_pane { pane; spawn; kill_running })" + ] + }, + { + "at": "unix/command_encoding.ml:279", + "has": [ + "| Respawn_pane { pane = target; spawn = spec; kill_running } ->" + ] + }, + { + "at": "unix/command_encoding.ml:281", + "has": [ + "( \"respawn-pane\"," + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.clear_history", + "command": "clear-history", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/engine.ml:283", + "has": [ + "C.no_output c ~acknowledged name args" + ] + }, + { + "at": "eio/generated_operations.ml:168", + "has": [ + "Client.run connection (Libtmux.Operations.clear_history pane)" + ], + "in": "Libtmux_eio.Client.clear_history" + }, + { + "at": "eio/libtmux_eio.ml:402", + "has": [ + "include Generated_operations.Make (struct" + ] + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "lib/commands.ml:364", + "has": [ + "let clear_history pane = Command.Mutate (Clear_history pane)" + ] + }, + { + "at": "lib/commands.ml:364", + "has": [ + "let clear_history pane = Command.Mutate (Clear_history pane)" + ] + }, + { + "at": "unix/command_encoding.ml:285", + "has": [ + "| Clear_history target -> (\"clear-history\", [ \"-t\"; pane c target ])" + ] + }, + { + "at": "unix/command_encoding.ml:285", + "has": [ + "| Clear_history target -> (\"clear-history\", [ \"-t\"; pane c target ])" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.capture", + "command": "list-sessions", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/acquisition.ml:16", + "has": [ + "metadata client \"list-sessions\" []" + ] + }, + { + "at": "eio/libtmux_eio.ml:400", + "has": [ + "let capture t = run t (Operations.capture ())" + ], + "in": "Libtmux_eio.Client.capture" + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "unix/engine.ml:294", + "has": [ + "| Capture -> Acquisition.snapshot c" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.capture", + "command": "list-windows", + "scope": "server", + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/acquisition.ml:30", + "has": [ + "metadata client \"list-windows\" [ \"-a\" ]" + ] + }, + { + "at": "eio/libtmux_eio.ml:400", + "has": [ + "let capture t = run t (Operations.capture ())" + ], + "in": "Libtmux_eio.Client.capture" + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "unix/engine.ml:294", + "has": [ + "| Capture -> Acquisition.snapshot c" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.capture", + "command": "list-panes", + "scope": "server", + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/acquisition.ml:65", + "has": [ + "metadata client \"list-panes\" [ \"-a\" ]" + ] + }, + { + "at": "eio/libtmux_eio.ml:400", + "has": [ + "let capture t = run t (Operations.capture ())" + ], + "in": "Libtmux_eio.Client.capture" + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "unix/engine.ml:294", + "has": [ + "| Capture -> Acquisition.snapshot c" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.capture", + "command": "list-clients", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/acquisition.ml:118", + "has": [ + "metadata client \"list-clients\" []" + ] + }, + { + "at": "eio/libtmux_eio.ml:400", + "has": [ + "let capture t = run t (Operations.capture ())" + ], + "in": "Libtmux_eio.Client.capture" + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "unix/engine.ml:294", + "has": [ + "| Capture -> Acquisition.snapshot c" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.capture_text", + "command": "capture-pane", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/rendered.ml:88", + "has": [ + "no_output client \"capture-pane\"" + ] + }, + { + "at": "eio/libtmux_eio.ml:409", + "has": [ + "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" + ], + "in": "Libtmux_eio.Client.capture_text" + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "unix/engine.ml:311", + "has": [ + "Rendered.capture ~scratch_dir c pane ~start ~end_" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.capture_text", + "command": "list-buffers", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/rendered.ml:100", + "has": [ + "metadata client \"list-buffers\"" + ] + }, + { + "at": "eio/libtmux_eio.ml:409", + "has": [ + "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" + ], + "in": "Libtmux_eio.Client.capture_text" + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "unix/engine.ml:311", + "has": [ + "Rendered.capture ~scratch_dir c pane ~start ~end_" + ] + } + ], + "incidental": true + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.capture_text", + "command": "save-buffer", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/rendered.ml:125", + "has": [ + "no_output client \"save-buffer\" [ \"-b\"; buffer; file.path ];" + ] + }, + { + "at": "eio/libtmux_eio.ml:409", + "has": [ + "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" + ], + "in": "Libtmux_eio.Client.capture_text" + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "unix/engine.ml:311", + "has": [ + "Rendered.capture ~scratch_dir c pane ~start ~end_" + ] + } + ], + "incidental": true + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.capture_text", + "command": "delete-buffer", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/rendered.ml:81", + "has": [ + "no_output client \"delete-buffer\" [ \"-b\"; buffer ];" + ] + }, + { + "at": "eio/libtmux_eio.ml:409", + "has": [ + "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" + ], + "in": "Libtmux_eio.Client.capture_text" + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "unix/engine.ml:311", + "has": [ + "Rendered.capture ~scratch_dir c pane ~start ~end_" + ] + } + ], + "incidental": true, + "when": "while the connection remains open" + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.capture_text", + "command": "show-hooks", + "scope": null, + "why": "The client executes the typed operation through the backend engine; the constructor and encoder select this tmux command.", + "evidence": [ + { + "at": "unix/rendered.ml:27", + "has": [ + "let body = request client \"show-hooks\" arguments in" + ] + }, + { + "at": "eio/libtmux_eio.ml:409", + "has": [ + "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" + ], + "in": "Libtmux_eio.Client.capture_text" + }, + { + "at": "eio/libtmux_eio.ml:390", + "has": [ + "let run t command = Result.bind (submit t command) await" + ] + }, + { + "at": "unix/engine.ml:311", + "has": [ + "Rendered.capture ~scratch_dir c pane ~start ~end_" + ] + } + ], + "incidental": true } ] } diff --git a/scripts/tmux-usage/conditions.json b/scripts/tmux-usage/conditions.json index 597feb833..9c9ee7ced 100644 --- a/scripts/tmux-usage/conditions.json +++ b/scripts/tmux-usage/conditions.json @@ -673,6 +673,36 @@ ] } ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client.subscribe", + "command": "refresh-client", + "scope": null, + "when": "when opening a new stream lane", + "evidence": [ + { + "at": "unix/streaming.ml:376", + "has": [ + "if fresh && raw \"refresh-client\"" + ] + } + ] + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.subscribe", + "command": "refresh-client", + "scope": null, + "when": "when opening a new stream lane", + "evidence": [ + { + "at": "unix/streaming.ml:376", + "has": [ + "if fresh && raw \"refresh-client\"" + ] + } + ] } ] } diff --git a/scripts/tmux-usage/dispatchers.json b/scripts/tmux-usage/dispatchers.json index 1d99c7c05..357a1e3db 100644 --- a/scripts/tmux-usage/dispatchers.json +++ b/scripts/tmux-usage/dispatchers.json @@ -9490,6 +9490,185 @@ ] } ] + }, + { + "port": "ocaml", + "name": "raw", + "why": "Writes the supplied tmux command to the bound control client and waits for its reply.", + "evidence": [ + { + "at": "unix/connection.ml:114", + "has": [ + "let raw " + ], + "reaches": [ + { + "at": "unix/connection.ml:120", + "has": [ + "Runtime_io.write" + ], + "calls": "write", + "on": "runtime_io.ml" + }, + { + "at": "unix/runtime_io.ml:149", + "has": [ + "loop 0" + ], + "calls": "loop" + }, + { + "at": "unix/runtime_io.ml:137", + "has": [ + "Unix.write_substring" + ] + } + ] + } + ] + }, + { + "port": "ocaml", + "name": "request", + "why": "Writes the supplied tmux command to the bound control client and waits for its reply.", + "evidence": [ + { + "at": "unix/connection.ml:253", + "has": [ + "let request " + ], + "reaches": [ + { + "at": "unix/connection.ml:259", + "has": [ + "raw t.lane" + ], + "calls": "raw" + }, + { + "at": "unix/connection.ml:120", + "has": [ + "Runtime_io.write" + ], + "calls": "write", + "on": "runtime_io.ml" + }, + { + "at": "unix/runtime_io.ml:149", + "has": [ + "loop 0" + ], + "calls": "loop" + }, + { + "at": "unix/runtime_io.ml:137", + "has": [ + "Unix.write_substring" + ] + } + ] + } + ] + }, + { + "port": "ocaml", + "name": "metadata", + "why": "Writes the supplied tmux command to the bound control client and waits for its reply.", + "evidence": [ + { + "at": "unix/connection.ml:268", + "has": [ + "let metadata " + ], + "reaches": [ + { + "at": "unix/connection.ml:270", + "has": [ + "request t name" + ], + "calls": "request" + }, + { + "at": "unix/connection.ml:259", + "has": [ + "raw t.lane" + ], + "calls": "raw" + }, + { + "at": "unix/connection.ml:120", + "has": [ + "Runtime_io.write" + ], + "calls": "write", + "on": "runtime_io.ml" + }, + { + "at": "unix/runtime_io.ml:149", + "has": [ + "loop 0" + ], + "calls": "loop" + }, + { + "at": "unix/runtime_io.ml:137", + "has": [ + "Unix.write_substring" + ] + } + ] + } + ] + }, + { + "port": "ocaml", + "name": "no_output", + "why": "Writes the supplied tmux command to the bound control client and waits for its reply.", + "evidence": [ + { + "at": "unix/connection.ml:274", + "has": [ + "let no_output " + ], + "reaches": [ + { + "at": "unix/connection.ml:275", + "has": [ + "request t" + ], + "calls": "request" + }, + { + "at": "unix/connection.ml:259", + "has": [ + "raw t.lane" + ], + "calls": "raw" + }, + { + "at": "unix/connection.ml:120", + "has": [ + "Runtime_io.write" + ], + "calls": "write", + "on": "runtime_io.ml" + }, + { + "at": "unix/runtime_io.ml:149", + "has": [ + "loop 0" + ], + "calls": "loop" + }, + { + "at": "unix/runtime_io.ml:137", + "has": [ + "Unix.write_substring" + ] + } + ] + } + ] } ] } diff --git a/scripts/tmux-usage/not-senders.json b/scripts/tmux-usage/not-senders.json index 9cd6ced5a..c5b7d1549 100644 --- a/scripts/tmux-usage/not-senders.json +++ b/scripts/tmux-usage/not-senders.json @@ -4557,6 +4557,255 @@ ] } ] + }, + { + "port": "ocaml", + "owner": "Operations", + "in": "lib/", + "kind": "builds", + "names": [ + "break_pane", + "clear_history", + "create_session", + "create_window", + "kill_pane", + "kill_session", + "kill_window", + "link_window", + "move_pane", + "move_window_at", + "read_hook", + "read_option", + "refresh_client_at", + "rename_session", + "rename_window", + "request_detach_client_at", + "resize_pane", + "resize_window", + "respawn_pane", + "select_layout", + "select_pane", + "select_window_at", + "send_keys", + "set_environment", + "set_hook", + "set_option", + "swap_panes", + "switch_client_at", + "unlink_window_at", + "unset_environment", + "unset_option", + "wait_for" + ], + "why": "These core functions construct typed command descriptions. Only a backend client executes them.", + "evidence": [ + { + "at": "lib/libtmux.mli:1049", + "has": [ + "Construction performs no I/O" + ] + }, + { + "at": "lib/commands.ml:247", + "has": [ + "Command.Rename_window" + ] + }, + { + "at": "lib/commands.ml:320", + "has": [ + "Command.Mutate (Kill_session" + ] + } + ] + }, + { + "port": "ocaml", + "owner": "Session", + "names": [ + "window_links" + ], + "kind": "values", + "why": "Reads window links from the captured arena without issuing link-window.", + "evidence": [ + { + "at": "lib/graph.ml:212", + "has": [ + "value.arena.session_links" + ] + } + ] + }, + { + "port": "ocaml", + "owner": "Snapshot", + "names": [ + "find_pane", + "find_session", + "find_window", + "window_links" + ], + "kind": "values", + "why": "Searches the immutable captured graph and returns existing rows without tmux I/O.", + "evidence": [ + { + "at": "lib/graph.ml:396", + "has": [ + "value.link_rows" + ] + }, + { + "at": "lib/graph.ml:405", + "has": [ + "value.session_index" + ] + }, + { + "at": "lib/graph.ml:409", + "has": [ + "value.window_index" + ] + }, + { + "at": "lib/graph.ml:413", + "has": [ + "value.pane_index" + ] + } + ] + }, + { + "port": "ocaml", + "owner": "Window", + "names": [ + "links" + ], + "kind": "values", + "why": "Reads links of the captured window without issuing link-window.", + "evidence": [ + { + "at": "lib/graph.ml:268", + "has": [ + "value.arena.window_links" + ] + } + ] + }, + { + "port": "ocaml", + "owner": "Client", + "names": [ + "clear_history" + ], + "commands": [ + "clear-prompt-history" + ], + "kind": "other-command", + "why": "Clears the target pane history with clear-history. It does not clear command-prompt history.", + "evidence": [ + { + "at": "lib/commands.ml:364", + "has": [ + "Command.Mutate (Clear_history" + ] + }, + { + "at": "unix/command_encoding.ml:285", + "has": [ + "\"clear-history\"" + ] + } + ] + }, + { + "port": "ocaml", + "owner": "Client", + "names": [ + "read_hook" + ], + "commands": [ + "show-hooks" + ], + "kind": "other-command", + "why": "Reads a single hook through show-options, including named user hooks, rather than listing hooks with show-hooks.", + "evidence": [ + { + "at": "unix/engine.ml:307", + "has": [ + "Read_hook" + ] + }, + { + "at": "unix/engine.ml:309", + "has": [ + "Options_io.read" + ] + }, + { + "at": "unix/options_io.ml:223", + "has": [ + "\"show-options\"" + ] + } + ] + }, + { + "port": "ocaml", + "owner": "Client", + "names": [ + "wait_for_text" + ], + "commands": [ + "wait-for" + ], + "kind": "no-send", + "why": "Observes rendered text and stream notifications. It does not use a tmux wait-for channel.", + "evidence": [ + { + "at": "unix/libtmux_unix.ml:114", + "has": [ + "Observation_wait.rendered" + ] + }, + { + "at": "eio/libtmux_eio.ml:413", + "has": [ + "Observation_wait.rendered" + ] + }, + { + "at": "unix/observation_wait.ml:46", + "has": [ + "capture_text !current" + ] + } + ] + }, + { + "port": "ocaml", + "owner": "Subscription", + "names": [ + "wait_for_bytes" + ], + "commands": [ + "wait-for" + ], + "kind": "no-send", + "why": "Matches a byte pattern against streamed output. It does not use a tmux wait-for channel.", + "evidence": [ + { + "at": "unix/libtmux_unix.ml:48", + "has": [ + "Streaming.wait_for_bytes" + ] + }, + { + "at": "eio/libtmux_eio.ml:203", + "has": [ + "Streaming.wait_for_bytes" + ] + } + ] } ] } diff --git a/site/ec.config.mjs b/site/ec.config.mjs index d856e9ee1..bc38bfb09 100644 --- a/site/ec.config.mjs +++ b/site/ec.config.mjs @@ -29,7 +29,7 @@ export default defineEcConfig({ }, plugins: [shellPrompt(), copyReadiness()], shiki: { langs: [tmuxUsage, ...bash, tmuxShell, tmuxConfig, properties], - langAlias: { sbt: 'scala', tmux: 'tmux-config', properties: properties.name } }, + langAlias: { dune: 'lisp', sbt: 'scala', tmux: 'tmux-config', properties: properties.name } }, useDarkModeMediaQuery: false, themeCssSelector: (theme) => theme.name === 'github-light' diff --git a/site/public/_shell/brand.css b/site/public/_shell/brand.css index cfdcb30bd..b1b171126 100644 --- a/site/public/_shell/brand.css +++ b/site/public/_shell/brand.css @@ -1999,3 +1999,128 @@ html[data-brand="elixir"][data-theme-mode="dark"], html[data-brand="elixir"][dat --lt-color-code-bg: #1c2229; } } +html[data-brand="ocaml"] { + color-scheme: light; + --brand-color: #EF7A08; + --brand-solid: #6c3704; + --brand-on-solid: #ffffff; + --button-bg-primary: #6c3704; + --button-text-primary: #ffffff; + --theme-primary: #6c3704; + --theme-secondary: #53606d; + --theme-accent: #6c3704; + --theme-background: #fafbfc; + --theme-text: #202830; + --background-color: #fafbfc; + --text-color: #202830; + --topnav-background: #fafbfc; + --topnav-text-color: #202830; + --topnav-link-color: #53606d; + --topnav-link-hover-color: #202830; + --color-background-primary: #fafbfc; + --color-background-secondary: #f3f5f7; + --color-background-border: #d6dce3; + --color-api-background-hover: #e9edf1; + --color-foreground-primary: #202830; + --color-foreground-secondary: #53606d; + --color-foreground-muted: #53606d; + --color-link: #6c3704; + --color-brand-primary: #6c3704; + --color-brand-content: #6c3704; + --color-inline-code-background: #f3f5f7; + --lt-color-bg: #fafbfc; + --lt-color-bg-secondary: #f3f5f7; + --lt-color-bg-hover: #e9edf1; + --lt-color-fg: #202830; + --lt-color-fg-secondary: #53606d; + --lt-color-fg-muted: #53606d; + --lt-color-border: #d6dce3; + --lt-color-accent: #6c3704; + --lt-color-link: #6c3704; + --lt-color-link-visited: #6c3704; + --lt-color-code-bg: #f3f5f7; +} +html[data-brand="ocaml"][data-theme-mode="dark"], html[data-brand="ocaml"][data-theme="dark"] { + color-scheme: dark; + --brand-color: #EF7A08; + --brand-solid: #6c3704; + --brand-on-solid: #ffffff; + --button-bg-primary: #6c3704; + --button-text-primary: #ffffff; + --theme-primary: #fad7b5; + --theme-secondary: #b7c1cd; + --theme-accent: #fad7b5; + --theme-background: #15191d; + --theme-text: #e7edf3; + --background-color: #15191d; + --text-color: #e7edf3; + --topnav-background: #15191d; + --topnav-text-color: #e7edf3; + --topnav-link-color: #b7c1cd; + --topnav-link-hover-color: #e7edf3; + --color-background-primary: #15191d; + --color-background-secondary: #1c2229; + --color-background-border: #3e4a57; + --color-api-background-hover: #29323d; + --color-foreground-primary: #e7edf3; + --color-foreground-secondary: #b7c1cd; + --color-foreground-muted: #b7c1cd; + --color-link: #fad7b5; + --color-brand-primary: #fad7b5; + --color-brand-content: #fad7b5; + --color-inline-code-background: #1c2229; + --lt-color-bg: #15191d; + --lt-color-bg-secondary: #1c2229; + --lt-color-bg-hover: #29323d; + --lt-color-fg: #e7edf3; + --lt-color-fg-secondary: #b7c1cd; + --lt-color-fg-muted: #b7c1cd; + --lt-color-border: #3e4a57; + --lt-color-accent: #fad7b5; + --lt-color-link: #fad7b5; + --lt-color-link-visited: #fad7b5; + --lt-color-code-bg: #1c2229; +} +@media (prefers-color-scheme: dark) { + html[data-brand="ocaml"]:not([data-theme-mode]):not([data-theme="light"]) { + color-scheme: dark; + --brand-color: #EF7A08; + --brand-solid: #6c3704; + --brand-on-solid: #ffffff; + --button-bg-primary: #6c3704; + --button-text-primary: #ffffff; + --theme-primary: #fad7b5; + --theme-secondary: #b7c1cd; + --theme-accent: #fad7b5; + --theme-background: #15191d; + --theme-text: #e7edf3; + --background-color: #15191d; + --text-color: #e7edf3; + --topnav-background: #15191d; + --topnav-text-color: #e7edf3; + --topnav-link-color: #b7c1cd; + --topnav-link-hover-color: #e7edf3; + --color-background-primary: #15191d; + --color-background-secondary: #1c2229; + --color-background-border: #3e4a57; + --color-api-background-hover: #29323d; + --color-foreground-primary: #e7edf3; + --color-foreground-secondary: #b7c1cd; + --color-foreground-muted: #b7c1cd; + --color-link: #fad7b5; + --color-brand-primary: #fad7b5; + --color-brand-content: #fad7b5; + --color-inline-code-background: #1c2229; + --lt-color-bg: #15191d; + --lt-color-bg-secondary: #1c2229; + --lt-color-bg-hover: #29323d; + --lt-color-fg: #e7edf3; + --lt-color-fg-secondary: #b7c1cd; + --lt-color-fg-muted: #b7c1cd; + --lt-color-border: #3e4a57; + --lt-color-accent: #fad7b5; + --lt-color-link: #fad7b5; + --lt-color-link-visited: #fad7b5; + --lt-color-code-bg: #1c2229; + } +} diff --git a/site/public/_shell/shell.js b/site/public/_shell/shell.js index c9779493e..05c740a8e 100644 --- a/site/public/_shell/shell.js +++ b/site/public/_shell/shell.js @@ -20,6 +20,7 @@ {"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}, + {"slug":"ocaml","name":"OCaml","shortName":"ML","logoLanguage":"ocaml","versionedDocs":true,"mcp":false}, ] // <<< end generated diff --git a/site/public/brand/catalog.json b/site/public/brand/catalog.json index fc11e07b2..928ddf99c 100644 --- a/site/public/brand/catalog.json +++ b/site/public/brand/catalog.json @@ -99,6 +99,11 @@ "id": "elixir", "label": "Elixir", "githubColor": "#8847B9" + }, + { + "id": "ocaml", + "label": "OCaml", + "githubColor": "#EF7A08" } ], "variants": [ @@ -19834,7 +19839,829 @@ "format": "xml" } ] + }, + { + "language": "ocaml", + "label": "OCaml", + "variant": "library", + "githubColor": "#EF7A08", + "alt": "libtmux for OCaml", + "files": [ + { + "file": "ocaml/library/logo.svg", + "bytes": 5882, + "sha256": "510affa78d0068e768a33146edd5028a409d4d599172809ad21ced27cf07ce9f", + "format": "svg", + "width": 512, + "height": 512, + "transparent": true + }, + { + "file": "ocaml/library/logo-16.png", + "bytes": 593, + "sha256": "2c6f929f18d52d3400a694b5885d1794e875edc50fe190e28e160c288ef30930", + "format": "png", + "width": 16, + "height": 16, + "transparent": true + }, + { + "file": "ocaml/library/logo-24.png", + "bytes": 775, + "sha256": "8589510b876dea4482b80a00f60ae85ca760bc62625fad193b739db5cb2050a9", + "format": "png", + "width": 24, + "height": 24, + "transparent": true + }, + { + "file": "ocaml/library/logo-32.png", + "bytes": 1049, + "sha256": "f334e280c82406906fd6e43ea392f27734617edd5f63cdbc90a0e58a5062e251", + "format": "png", + "width": 32, + "height": 32, + "transparent": true + }, + { + "file": "ocaml/library/logo-48.png", + "bytes": 1505, + "sha256": "4af1169542b61bc00a69f5f409c815215bbfcc6f8886215ec7043867382e5205", + "format": "png", + "width": 48, + "height": 48, + "transparent": true + }, + { + "file": "ocaml/library/logo-64.png", + "bytes": 1945, + "sha256": "d4329330a9fac1c889827445b139385a69ee883f54f349d6737d69608c13cad8", + "format": "png", + "width": 64, + "height": 64, + "transparent": true + }, + { + "file": "ocaml/library/logo-96.png", + "bytes": 2809, + "sha256": "e476e97d11889829d96471a4449a8bdb9a5ef3f4e2c1c05fe56c4e8323df5d82", + "format": "png", + "width": 96, + "height": 96, + "transparent": true + }, + { + "file": "ocaml/library/logo-128.png", + "bytes": 3741, + "sha256": "49d41d2c208dbb4f11ad20583462b65018add696d39e0aa038869024e68f423c", + "format": "png", + "width": 128, + "height": 128, + "transparent": true + }, + { + "file": "ocaml/library/logo-144.png", + "bytes": 4183, + "sha256": "e3acca4d8d2f860b11f479a05dc9ef618736e59b722d99aaeae51b0076ebfbd0", + "format": "png", + "width": 144, + "height": 144, + "transparent": true + }, + { + "file": "ocaml/library/logo-152.png", + "bytes": 4364, + "sha256": "3525c3c439d6281518c77744d6c8e84dfebdffd7d15d7e2aa2f710e3d14c04dc", + "format": "png", + "width": 152, + "height": 152, + "transparent": true + }, + { + "file": "ocaml/library/logo-167.png", + "bytes": 4839, + "sha256": "a4a7ca262c250decd9190c9b44e95650c77512ebd5f4258951f152f046447360", + "format": "png", + "width": 167, + "height": 167, + "transparent": true + }, + { + "file": "ocaml/library/logo-180.png", + "bytes": 5321, + "sha256": "59159c0246de9e884b5504024e9c32dfc53d6135eafc7c1433d9efd361d01475", + "format": "png", + "width": 180, + "height": 180, + "transparent": true + }, + { + "file": "ocaml/library/logo-192.png", + "bytes": 5665, + "sha256": "3ab8a6917f0322de82575260ba6966dd9dae630eb5959ec1371f728d696ad9dd", + "format": "png", + "width": 192, + "height": 192, + "transparent": true + }, + { + "file": "ocaml/library/logo-256.png", + "bytes": 7642, + "sha256": "f075d8e0b2d40c44cca0560781a73185f8e8e18a25367c41b8001e6c3d1f6348", + "format": "png", + "width": 256, + "height": 256, + "transparent": true + }, + { + "file": "ocaml/library/logo-384.png", + "bytes": 11845, + "sha256": "471bd330c0894daf938b39d652ad94d5d56fd0275f55ff31e670d75da2020dfc", + "format": "png", + "width": 384, + "height": 384, + "transparent": true + }, + { + "file": "ocaml/library/logo-512.png", + "bytes": 16443, + "sha256": "75bcbacb550c3c5e62dcc5deb364fa9841de9cf59a0c6980e91b8c6b248e60b2", + "format": "png", + "width": 512, + "height": 512, + "transparent": true + }, + { + "file": "ocaml/library/logo-1024.png", + "bytes": 37231, + "sha256": "be4beaca303c64454e92dd061a0e75b29e363d8d013af569c232b4f57197aa06", + "format": "png", + "width": 1024, + "height": 1024, + "transparent": true + }, + { + "file": "ocaml/library/favicon.ico", + "bytes": 22744, + "sha256": "4f3b21088d9ccbdd16f0b5383135f79b0ce9c45ca41997b3d00039886aa689de", + "format": "ico", + "sizes": [ + 16, + 32, + 48, + 256 + ] + }, + { + "file": "ocaml/library/safari-pinned-tab.svg", + "bytes": 5882, + "sha256": "807256e68d12931b6d2615434efe6eae2d08fd8b44552855704a750ade5b6339", + "format": "svg", + "width": 512, + "height": 512, + "monochrome": true + }, + { + "file": "ocaml/library/apple-touch-icon-light.png", + "bytes": 3880, + "sha256": "b784be4526a727a7114567c8f038bbd74dbcae2a76b5d1c8ff9544016cccd918", + "format": "png", + "width": 180, + "height": 180, + "transparent": false, + "purpose": "apple-touch" + }, + { + "file": "ocaml/library/app-icon-1024-light.png", + "bytes": 28623, + "sha256": "11490eed870f2805bbc1c4abfa5d0e0cfac4100c038fdcc2f81a909d465c81fd", + "format": "png", + "width": 1024, + "height": 1024, + "transparent": false, + "purpose": "app-icon" + }, + { + "file": "ocaml/library/maskable-192-light.png", + "bytes": 3109, + "sha256": "959871ff9bd5b58c61cfaab466ef8574056ddbcee373f0b7b47d6af270fb91fd", + "format": "png", + "width": 192, + "height": 192, + "transparent": false, + "purpose": "maskable", + "contentFraction": 0.52 + }, + { + "file": "ocaml/library/maskable-512-light.png", + "bytes": 9403, + "sha256": "b2c387594a5e9528da4396ed8dab737853467fff5d49843d04db4c79f7e15779", + "format": "png", + "width": 512, + "height": 512, + "transparent": false, + "purpose": "maskable", + "contentFraction": 0.52 + }, + { + "file": "ocaml/library/mstile-150-light.png", + "bytes": 3053, + "sha256": "da07a027027be3b2a48c49680d58ff089d13524978fced8debd233f381508126", + "format": "png", + "width": 150, + "height": 150, + "transparent": false, + "purpose": "windows-tile" + }, + { + "file": "ocaml/library/mstile-310-light.png", + "bytes": 6551, + "sha256": "ffe752793081b9f5d4b82f30fdf8bf4bb83d3df4ddef50547afdb5475cd7596d", + "format": "png", + "width": 310, + "height": 310, + "transparent": false, + "purpose": "windows-tile" + }, + { + "file": "ocaml/library/opengraph-light.png", + "bytes": 68057, + "sha256": "e9a033d66c58ebbd22c473518813602de32dceffbb96dac13b7518dc28f48fc6", + "format": "png", + "width": 1200, + "height": 630, + "transparent": false, + "purpose": "opengraph" + }, + { + "file": "ocaml/library/opengraph-light.jpg", + "bytes": 112267, + "sha256": "530179791707bbc488b5ca6a9a21161cd53cd9923892e7d4f733c5c5c4daf3dc", + "format": "jpeg", + "width": 1200, + "height": 630, + "transparent": false, + "purpose": "opengraph-fallback" + }, + { + "file": "ocaml/library/twitter-light.png", + "bytes": 67827, + "sha256": "5becaf2f08cd1327cd3a8877bf295dbd0ccf7e27eba205bf422bbb95cd9371ed", + "format": "png", + "width": 1200, + "height": 600, + "transparent": false, + "purpose": "twitter" + }, + { + "file": "ocaml/library/social-square-light.png", + "bytes": 77194, + "sha256": "e802e004054e294f2204dd08c9c4262a3193e41d79a922b23c3ed8e5f132ad3a", + "format": "png", + "width": 1080, + "height": 1080, + "transparent": false, + "purpose": "social-square" + }, + { + "file": "ocaml/library/site.webmanifest", + "bytes": 717, + "sha256": "817517c6916b3f0164c516796ca9abd29bd0185b2b0a91702110d13ff8fbf249", + "format": "webmanifest" + }, + { + "file": "ocaml/library/browserconfig.xml", + "bytes": 238, + "sha256": "14133b25b414820f149eabd99b80cf44f1c142ba9af1b77118712c0408cb790c", + "format": "xml" + }, + { + "file": "ocaml/library/apple-touch-icon-dark.png", + "bytes": 3911, + "sha256": "5aa01f22847244b478ac7e6523092aeaabdba9f84afe295e7004422486f47a0c", + "format": "png", + "width": 180, + "height": 180, + "transparent": false, + "purpose": "apple-touch" + }, + { + "file": "ocaml/library/app-icon-1024-dark.png", + "bytes": 28856, + "sha256": "bd72fe523064cb19239fc1c56ab270ea6fbfe973e2e4ce1d0eb2c576a018c485", + "format": "png", + "width": 1024, + "height": 1024, + "transparent": false, + "purpose": "app-icon" + }, + { + "file": "ocaml/library/maskable-192-dark.png", + "bytes": 3135, + "sha256": "5ab3003a20c7974e5ae87d8b9df1241df9c572195b124a6a9a08dbcdd113d0c7", + "format": "png", + "width": 192, + "height": 192, + "transparent": false, + "purpose": "maskable", + "contentFraction": 0.52 + }, + { + "file": "ocaml/library/maskable-512-dark.png", + "bytes": 9452, + "sha256": "f61ce9fccfdb8f89c4875bd08c293453aa788cae08e63b9f3bc0d0cf91274c76", + "format": "png", + "width": 512, + "height": 512, + "transparent": false, + "purpose": "maskable", + "contentFraction": 0.52 + }, + { + "file": "ocaml/library/mstile-150-dark.png", + "bytes": 3075, + "sha256": "27bdef4d343fb1871f0aa9d1dbb119bd65f4ae380d499c8b2ed29b1cbe34dafa", + "format": "png", + "width": 150, + "height": 150, + "transparent": false, + "purpose": "windows-tile" + }, + { + "file": "ocaml/library/mstile-310-dark.png", + "bytes": 6604, + "sha256": "d332eac5f0b1409e08ea27e8243dd1a7dd71da1d590ac75ab291d3a44eac7313", + "format": "png", + "width": 310, + "height": 310, + "transparent": false, + "purpose": "windows-tile" + }, + { + "file": "ocaml/library/opengraph-dark.png", + "bytes": 67913, + "sha256": "9e6358837141a4c00fdb9e81acb3dcbf4c0648b31b4f3e8dea9fcaf7f0a2bc6a", + "format": "png", + "width": 1200, + "height": 630, + "transparent": false, + "purpose": "opengraph" + }, + { + "file": "ocaml/library/opengraph-dark.jpg", + "bytes": 104853, + "sha256": "ef6846ac33b8897c17a11c418b79c41911b55114f98e6b61508b78ef9ef3fe0f", + "format": "jpeg", + "width": 1200, + "height": 630, + "transparent": false, + "purpose": "opengraph-fallback" + }, + { + "file": "ocaml/library/twitter-dark.png", + "bytes": 67720, + "sha256": "c3997c398981aee4879cb5245355fb83de7bad0df944f083f6ff90d74f814c2e", + "format": "png", + "width": 1200, + "height": 600, + "transparent": false, + "purpose": "twitter" + }, + { + "file": "ocaml/library/social-square-dark.png", + "bytes": 76925, + "sha256": "0d887acb8a9c709491a1546de0b354f95bd147c49b95681af84a6fc6258ac18d", + "format": "png", + "width": 1080, + "height": 1080, + "transparent": false, + "purpose": "social-square" + }, + { + "file": "ocaml/library/site-dark.webmanifest", + "bytes": 715, + "sha256": "ffe75367898385544c801df2e4b8c67f0d8b3e79b346823c0c003daeac80cd15", + "format": "webmanifest" + }, + { + "file": "ocaml/library/browserconfig-dark.xml", + "bytes": 236, + "sha256": "d6550a2d9d8074a5f7c4dcb03eaf68d469fe52d5cab8904597e83806ab357f2a", + "format": "xml" + } + ] + }, + { + "language": "ocaml", + "label": "OCaml", + "variant": "workspace", + "githubColor": "#EF7A08", + "alt": "libtmux for OCaml — workspace CLI", + "files": [ + { + "file": "ocaml/workspace/logo.svg", + "bytes": 2405, + "sha256": "49f31f5d60ed0bd4cfd6072d38e9d761a90f378ed2eca2044aa6607f389d6392", + "format": "svg", + "width": 512, + "height": 512, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-16.png", + "bytes": 292, + "sha256": "a84aa0e6d9c7e924940c25e8cb8c83dcc4660405ff09791a823ceb2677ea6cde", + "format": "png", + "width": 16, + "height": 16, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-24.png", + "bytes": 324, + "sha256": "f969a843eff7b1c43b11fb8f3cd21a8233bb101d0b1241e3c2279dd582cc681b", + "format": "png", + "width": 24, + "height": 24, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-32.png", + "bytes": 417, + "sha256": "4b405de1a3d42c0ee96fccc0e4bb7ecf60ee2b80867bac085e13d0e1448761f9", + "format": "png", + "width": 32, + "height": 32, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-48.png", + "bytes": 533, + "sha256": "4510e10be32ddd49d5d11c86ea57dd10bfb8f133a7ba4758a4335ac327985086", + "format": "png", + "width": 48, + "height": 48, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-64.png", + "bytes": 647, + "sha256": "0b3e2fad2833887e77556da41c06342ea1c40fe167fd4d0a500682398c856ca0", + "format": "png", + "width": 64, + "height": 64, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-96.png", + "bytes": 862, + "sha256": "f4d675d5d36ff825b53cc9421f0283202b1546821512afe9e49d6114b8991d8b", + "format": "png", + "width": 96, + "height": 96, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-128.png", + "bytes": 1135, + "sha256": "6fc92b3b4526e9d1909288b9d0ab205aea57ef0795dd291c35ea602d9b1d6a11", + "format": "png", + "width": 128, + "height": 128, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-144.png", + "bytes": 1291, + "sha256": "218538e5afaca868d61ddacd41fbf0760e341a59f62a900db7e0c524e5e6d1dd", + "format": "png", + "width": 144, + "height": 144, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-152.png", + "bytes": 1350, + "sha256": "0fde0882f9ae503e40428786f92adfa1bca20e8669464a3e14b6e55abd754896", + "format": "png", + "width": 152, + "height": 152, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-167.png", + "bytes": 1514, + "sha256": "f722a1b5f9274d1ae705e0cd2120926346d3ea4f0e51de6498e10d48bb24317e", + "format": "png", + "width": 167, + "height": 167, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-180.png", + "bytes": 1645, + "sha256": "575c1faba6726db2dcc119c340efcb30a8c2a39e2e7832969caddf3c3f53bf75", + "format": "png", + "width": 180, + "height": 180, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-192.png", + "bytes": 1769, + "sha256": "486c7b94fa339e5163840e319269b5c6c0dd51f449ae97b1b584ffeedb965041", + "format": "png", + "width": 192, + "height": 192, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-256.png", + "bytes": 2456, + "sha256": "742177a7bf586968e8f7db1f3d3a61a4049275d04ba7208b1c9c31ae2bd665b3", + "format": "png", + "width": 256, + "height": 256, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-384.png", + "bytes": 3771, + "sha256": "8c70bf905f777e9d96ea061261ccb9f0a31d3bcd3916440b91d5c3027fff7fb5", + "format": "png", + "width": 384, + "height": 384, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-512.png", + "bytes": 5415, + "sha256": "ecc4a18aafb13b5dd5abe6924eb8ac88d3d2667cb433dbda2fc3c0a56278cd11", + "format": "png", + "width": 512, + "height": 512, + "transparent": true + }, + { + "file": "ocaml/workspace/logo-1024.png", + "bytes": 13836, + "sha256": "12ac0d7b4a80d535d0e1f22f7508ac2e6209ca29da978d50106997f75563a13c", + "format": "png", + "width": 1024, + "height": 1024, + "transparent": true + }, + { + "file": "ocaml/workspace/favicon.ico", + "bytes": 17558, + "sha256": "0b058ad6c18eba50766df9132d86e62a93df3eb1c9165b7ad8dd4a5a4894acc6", + "format": "ico", + "sizes": [ + 16, + 32, + 48, + 256 + ] + }, + { + "file": "ocaml/workspace/safari-pinned-tab.svg", + "bytes": 2405, + "sha256": "7738ada39bb118c947fc8ef96d0ef3556787aafbe4dbb5df826eb8ddde8a25b0", + "format": "svg", + "width": 512, + "height": 512, + "monochrome": true + }, + { + "file": "ocaml/workspace/apple-touch-icon-light.png", + "bytes": 1319, + "sha256": "067742fe4dbfed8d1306482da50feb5420e19d8c2a977058981631cdc310f435", + "format": "png", + "width": 180, + "height": 180, + "transparent": false, + "purpose": "apple-touch" + }, + { + "file": "ocaml/workspace/app-icon-1024-light.png", + "bytes": 11541, + "sha256": "257d887c2b8eea354cfc7fa86ff6f13437238b7d47c7cacca6d69a2de6b9a9f4", + "format": "png", + "width": 1024, + "height": 1024, + "transparent": false, + "purpose": "app-icon" + }, + { + "file": "ocaml/workspace/maskable-192-light.png", + "bytes": 1144, + "sha256": "c61cc67edc54376e2ba11a4456c5f0697e42774b675dd5da8dd8164e083a15e7", + "format": "png", + "width": 192, + "height": 192, + "transparent": false, + "purpose": "maskable", + "contentFraction": 0.52 + }, + { + "file": "ocaml/workspace/maskable-512-light.png", + "bytes": 3846, + "sha256": "f8248aca7950eade76e5603067547a277fa566b81f4786d73c5389012f76cd29", + "format": "png", + "width": 512, + "height": 512, + "transparent": false, + "purpose": "maskable", + "contentFraction": 0.52 + }, + { + "file": "ocaml/workspace/mstile-150-light.png", + "bytes": 994, + "sha256": "d72508bd3377332672937c47279dcecc5b8269044d37c59fe18e47edddfc250a", + "format": "png", + "width": 150, + "height": 150, + "transparent": false, + "purpose": "windows-tile" + }, + { + "file": "ocaml/workspace/mstile-310-light.png", + "bytes": 2243, + "sha256": "59497fb37d68a576b3e647d1cb2c07a7e1c48de0de72cf3c45d4a1955b471275", + "format": "png", + "width": 310, + "height": 310, + "transparent": false, + "purpose": "windows-tile" + }, + { + "file": "ocaml/workspace/opengraph-light.png", + "bytes": 23424, + "sha256": "fb85526ac31a8b9e933b5043c94d2777fde3a9b1d8134268f474b15876bdd00c", + "format": "png", + "width": 1200, + "height": 630, + "transparent": false, + "purpose": "opengraph" + }, + { + "file": "ocaml/workspace/opengraph-light.jpg", + "bytes": 44987, + "sha256": "09550eb4a45751cb90ac66a0d0d3be751c5be0d0674f0061466c1d557900886c", + "format": "jpeg", + "width": 1200, + "height": 630, + "transparent": false, + "purpose": "opengraph-fallback" + }, + { + "file": "ocaml/workspace/twitter-light.png", + "bytes": 23278, + "sha256": "28b498a75c59ebac558b8af52d771986f4a08cc6846511251f6684a5383bb879", + "format": "png", + "width": 1200, + "height": 600, + "transparent": false, + "purpose": "twitter" + }, + { + "file": "ocaml/workspace/social-square-light.png", + "bytes": 26331, + "sha256": "f71e0312c3b28db31769d05bb1b6107d4a94250d3af76944fee698f965bf5aff", + "format": "png", + "width": 1080, + "height": 1080, + "transparent": false, + "purpose": "social-square" + }, + { + "file": "ocaml/workspace/site.webmanifest", + "bytes": 735, + "sha256": "fa5ac439d36980454dcc48ff494221e89d00cb4e2c3a4211c5aa0d710c0e60ef", + "format": "webmanifest" + }, + { + "file": "ocaml/workspace/browserconfig.xml", + "bytes": 238, + "sha256": "14133b25b414820f149eabd99b80cf44f1c142ba9af1b77118712c0408cb790c", + "format": "xml" + }, + { + "file": "ocaml/workspace/apple-touch-icon-dark.png", + "bytes": 1274, + "sha256": "4181b94058bbb68d14bbf24b89ebfe20c28c6946debf330039335dca90e10b79", + "format": "png", + "width": 180, + "height": 180, + "transparent": false, + "purpose": "apple-touch" + }, + { + "file": "ocaml/workspace/app-icon-1024-dark.png", + "bytes": 11293, + "sha256": "1c71283f8cf3e248a2327a21b9679d3a0f1a15828b63981e5a2429aef2e04d0b", + "format": "png", + "width": 1024, + "height": 1024, + "transparent": false, + "purpose": "app-icon" + }, + { + "file": "ocaml/workspace/maskable-192-dark.png", + "bytes": 1116, + "sha256": "d3fe724876aec8129dd7e31890e4e1f0d5a532aac931fa9ac5a4e27a360b3950", + "format": "png", + "width": 192, + "height": 192, + "transparent": false, + "purpose": "maskable", + "contentFraction": 0.52 + }, + { + "file": "ocaml/workspace/maskable-512-dark.png", + "bytes": 3772, + "sha256": "d968363d6cf94e1172035292e6bdad76c2d301077ba8d66594c7aaee71bf9ca0", + "format": "png", + "width": 512, + "height": 512, + "transparent": false, + "purpose": "maskable", + "contentFraction": 0.52 + }, + { + "file": "ocaml/workspace/mstile-150-dark.png", + "bytes": 971, + "sha256": "723e035a16407b2a6ebcd0e36e9885294de2a2829f03766cb007b36d199ecdb1", + "format": "png", + "width": 150, + "height": 150, + "transparent": false, + "purpose": "windows-tile" + }, + { + "file": "ocaml/workspace/mstile-310-dark.png", + "bytes": 2178, + "sha256": "6c696cd235320048d9acb8dd68353e282bc7e930a427ec0e0d68f499e0352f4f", + "format": "png", + "width": 310, + "height": 310, + "transparent": false, + "purpose": "windows-tile" + }, + { + "file": "ocaml/workspace/opengraph-dark.png", + "bytes": 23449, + "sha256": "c297bc46fa1752584b8c21b5dc3dc4bf7634dd9b078671585e62b6b1f039dee6", + "format": "png", + "width": 1200, + "height": 630, + "transparent": false, + "purpose": "opengraph" + }, + { + "file": "ocaml/workspace/opengraph-dark.jpg", + "bytes": 42656, + "sha256": "ec6b865b4cb33911ddc2adbed51778ef27fd8aeada27e63c675d5f8666b6801a", + "format": "jpeg", + "width": 1200, + "height": 630, + "transparent": false, + "purpose": "opengraph-fallback" + }, + { + "file": "ocaml/workspace/twitter-dark.png", + "bytes": 23302, + "sha256": "b8adbcaf4b961458293f58cd0949fb9057b61682cb717753c11b1318f0b2bce8", + "format": "png", + "width": 1200, + "height": 600, + "transparent": false, + "purpose": "twitter" + }, + { + "file": "ocaml/workspace/social-square-dark.png", + "bytes": 26370, + "sha256": "37e5250e76c7d94ac510f97a9e29eee6aadd8a5b532afe2f5ad028d560f55220", + "format": "png", + "width": 1080, + "height": 1080, + "transparent": false, + "purpose": "social-square" + }, + { + "file": "ocaml/workspace/site-dark.webmanifest", + "bytes": 733, + "sha256": "d3c1278072ccb8d7326dd3b757d6ac3be07e9d6dede2508fcb58849a18ae6a33", + "format": "webmanifest" + }, + { + "file": "ocaml/workspace/browserconfig-dark.xml", + "bytes": 236, + "sha256": "d6550a2d9d8074a5f7c4dcb03eaf68d469fe52d5cab8904597e83806ab357f2a", + "format": "xml" + } + ] } ], - "fileCount": 2064 + "fileCount": 2150 } diff --git a/site/public/brand/languages/ocaml/icon.svg b/site/public/brand/languages/ocaml/icon.svg new file mode 100644 index 000000000..3c1822dce --- /dev/null +++ b/site/public/brand/languages/ocaml/icon.svg @@ -0,0 +1,2 @@ + + diff --git a/site/public/brand/languages/ocaml/provenance.json b/site/public/brand/languages/ocaml/provenance.json new file mode 100644 index 000000000..b173794ab --- /dev/null +++ b/site/public/brand/languages/ocaml/provenance.json @@ -0,0 +1,15 @@ +{ + "name": "OCaml", + "asset": "icon.svg", + "sourceUrl": "https://raw.githubusercontent.com/libtmux/libtmux-ocaml/cb2c4469394f8c3b4a45331969730130f6f10a29/docs/assets/logo.svg", + "sourcePage": "https://github.com/libtmux/libtmux-ocaml/blob/cb2c4469394f8c3b4a45331969730130f6f10a29/docs/assets/source.json", + "upstreamRevision": "cb2c4469394f8c3b4a45331969730130f6f10a29", + "sha256": "510affa78d0068e768a33146edd5028a409d4d599172809ad21ced27cf07ce9f", + "modifications": "Uses the approved port logo as its language-picker icon.", + "license": { + "name": "MIT", + "urls": [ + "https://github.com/libtmux/libtmux-ocaml/blob/cb2c4469394f8c3b4a45331969730130f6f10a29/LICENSE" + ] + } +} diff --git a/site/public/brand/ocaml/library/app-icon-1024-dark.png b/site/public/brand/ocaml/library/app-icon-1024-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..cf36f60bdf500cb7f5e10e2ec426eb73167ba612 GIT binary patch literal 28856 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/apple-touch-icon-dark.png b/site/public/brand/ocaml/library/apple-touch-icon-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f324547ec2d4eba1b8d8ff0507a04261e4f16ea4 GIT binary patch literal 3911 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 Ib-RfF0C(M9G5`Po literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/apple-touch-icon-light.png b/site/public/brand/ocaml/library/apple-touch-icon-light.png new file mode 100644 index 0000000000000000000000000000000000000000..a1998fd77e2ca5df6dc4c594a16990d3decda89b GIT binary patch literal 3880 zcmZ`+X*d*Y8zqgsL6U7q)+}RR24QTCeJA_AMPh`EHQUSxqq0}lp;D4CmL^%6m$Iwu zVm31NC1iQ^>HquvxX*oG&vUNxoa;J&o;%aV3U+~2fR&Dp?t-a_k==#CpN0qHK$$g4n;iH|7x*942cZNIYD zkl1i@;{3n^bpcXaoYFJ6GCLgl%4#!E3-~##wVpIFCKhXRoyWOYwgm-#drtFyvKt^i=d*{u2n2h;>|CaeIS zW)n7y3ZZJixn!fE$gK~N4N{PyA)dUUWj}xTeo!JaXp)jfrYi#cN2&dtO!t%rA zG=b}gmO`p>lrAe=@gl0u7OD<(G1Me`ivu-FCiD40LSS@S34|czPkER%%f%!Hzb5Y6 zcm|?`ZWEArv~P}9Gdk@NhYuoO6e40V^kDqCrW7# zUOH*R2c&DQ@!*Mke0(B;OdkN`hGg**#a%sE^vyNAIwfM#&W@PFiSh`zgd9xnJw84* zH^5A#`h~3UN-Q3q;~?l8m-;yPm9rgx4*@M)inUK;m}iFD$QW*7ReOiDKzaY@e@{&(Eg)J+4EODuLFyP>T4Rhgg$1HiT@CT(UDFu))!X9fcP(?Jnx*FMKA*r zq{d-&@FGAyS(#)Udw|e=ioVum z_t|1$VTuCv9vhI)4}Bs^iu#S$6}hrfl_Hh<8++do`IeOx26&nJp`dFF@X_a`DGJQ>+1c51b8}TyRXaO7OG|<6?!dfnoTviYOZjR| z^!|QK3Y6}Wub&?ltgz)pqtR+=YD!B>TQ~;f6+pZy%Tt*d;qTtOdDGA^s>QivmXL7$ zgXH&XiHV75KhhFRu;fZ|9rlPh6Kt7BlJ*DX(fk-nz7 zI^BWatmfhqh-7C$Dq*XPec_7qG#d$ZT|;7|^_tS4s*Ny*s{z_iW>J5W|KBK+$Mh;W zmNE8h+&##~4@Lfc>|xJ&Rl_Y~?){AMFI@D$GRYI5f6Q)eX>6SFBf$NAl(fA3aN9e6 zL22_pD=$vC&GEHn;mGi#XKWXm?c7{lBP5HzO>Mh9c!9?qoh9Q3-j(ktlT@p8U7;nvxAz9cO#A4zedF8g zRnt~xP2FdFlq7|Oq-Tj6sw+nWb1HJ5c6}Y*y4n)uGj03Q1&MYii-i{_LVvL*sNW&N zu}4@Oj;GuWE&#`iY0o((dsh4#{QGlJ4FGu|(93eFL>F~yphvM}{)zww-DTUA=#fAk zqBYKzmXJ1Dyxc1^f~Pc6o>o;&AnkJ3v%BcO?8Pdm%k*sRieYHo@3;@DOZQr8g4o17 z6kQ`INR!A&uW|vPr7X{cabxjC{d~9U$4Cx>QeF!80bJ~an4MqX(xlvz!N&XRr>eB{ zE$@mE&)IJKXO)%od`>V>FYRu!qUMfj^EGe*{g5*Qf989ww07F&Go*9IL;rtN$oGkzqSjgh-G@Be#(ch(?Ni` zyD9`yb@p_Ph@2-WJdhDVD9QJ@r!5XdV@Z5_ZLPA~_f-e7h$ya;2(o)~^>u(~eZOSL zj*qO6slBGrj2$>M{9!b+V@HQmHfn!=f8|btMAA0$iw8F+Q%6L0`-1+n+!}9+*tO{B zXnSSRw6@uB7$~YwDUNJ)%S|X?gujcjZlC9SqFyqa%>*B1X0jcwu|OJB7OzwqWw2lA zyZ|2+>Z{lck-1|1)x-W3L(520pCGw{4d{XtEU;GV!P+RTy-Ye_;$&iofNJNPfws^v z+vTytR-iGcx!bn4(t=U$&H2fEV0ot~kl?eDaw$gKLfaUG{?yjh1P4@>%eQ%GlASRS zZ%yIK1z9u$y!cv!Q+Y3ii;x1b$fr(y-loWMGLaSEN&3(8Pvj`YpPjSw?xm*K{v|Bb zc2e>5a1kIkz$rLCUMB;>iK4-3)Py<2fP_jloY;pD!d}c@rkY&P}V7dbN*s0+hroH3qfRVy=`X{v+K3`po^2W?f@!r@8*)`LCDP;?qUB!pr9nakJQfw17<`(fiRmz&aW8=YyvX|Hqc z-m5k%mY<`Y!`tjWHy@5l3AGuEO6k8L!r7JN=H&j^h^GXd#$vActWBy=$Y;Q5eoOU1 z&7P%KdEjV}1lhZb3@%8)hs~`B#hh=68oyhm$^uvPnUW}wd zYAT$_AS{y^P>vH|TC4E8MZwmmqab`u-^JxHB0Grsu}$2Oy<4bNILhJthCD~y6}yWG zFU6^fdQ_9sk`a+CHR@9(^VmFs4LLw?t@Xa;?x14&3o6k6|$IyC9QK$vX9C7e|& zu8!x^R;09&rX~^sLI^6%yI60Hg^s5#`@Um_LzID)3$Gi%ylb?e#p@z0Bt^){e#d=C z;6b{_=4TQ-%;iT79zQ@I5xa@_c(WD?YNG73nZ`He*r(+8-?>4Fh(G3F&1A*^;Dcqa z-JkfQ@P{Edk+Hl=$Vp6nUe;_hQ!0dAy#UPoj^fZmCg$=Y3NS7giVJO<5Iso>oi0G@h>2F2iq@25nYFpT>sU5oqmL?dGm`JFU5L zKJFgwCZ!3iDnsfWCp%w-Dc2E8wb6jXLrJ~E$Uf4^^v_EcZYW!vf{UC$|L-lL{uEQs zT%YFzL{}^7^VexFb?_?%&JPWwO;w-m?=w;e+K0nrzBBEWN3dEw?c;@o&^?ov;EuWA zm|rt}Hx;gCjpx4kwZG%KrKA{P$Oc+1PePKpoA1u5I}6z0jQ}A#qr``}*G2a~OTjP? zjH-;2tXzpxxJ2y&so>Ssr}1%d&E_87MPG;&-Y@5+AylcGdZa}}BW^quJdHx3f>Xq# zua+tEcgFi(xGLG)EFDoPEh9JAdGCs8A0F{7bhM>`+^49kYnH3ukU7Syal3-CPdYgn z49>EUG`BWC{yj=scg-1_N9@@-;L}Ye{~y-%WojjAtgv?sDGI zQ5?8~EviC5P>`GZq7U8D(3?N*7OQ)ij;~K~0kS8F3GNAw0R=f1!nUFo`_Jb@KxbUt zJViTSXjr$Fl>r!+yYo&D`x^#EF7A08 diff --git a/site/public/brand/ocaml/library/browserconfig.xml b/site/public/brand/ocaml/library/browserconfig.xml new file mode 100644 index 000000000..4f0a4d69e --- /dev/null +++ b/site/public/brand/ocaml/library/browserconfig.xml @@ -0,0 +1 @@ +#EF7A08 diff --git a/site/public/brand/ocaml/library/favicon.ico b/site/public/brand/ocaml/library/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..97826645716447f540379521bae68629e71619f2 GIT binary patch literal 22744 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 YJ)ztm@Sy9{6aZbPMWsceh14zo56AB<#{d8T literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/logo-1024.png b/site/public/brand/ocaml/library/logo-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..077caf4245fb99080b9ac4a64e6d99a34e29e5f7 GIT binary patch literal 37231 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/logo-144.png b/site/public/brand/ocaml/library/logo-144.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2c9cf0631998099bd1aa5736a0882403fd71bd GIT binary patch literal 4183 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/logo-152.png b/site/public/brand/ocaml/library/logo-152.png new file mode 100644 index 0000000000000000000000000000000000000000..3979b82d50dfebd53e6df2480482423654bfa6a8 GIT binary patch literal 4364 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/logo-167.png b/site/public/brand/ocaml/library/logo-167.png new file mode 100644 index 0000000000000000000000000000000000000000..5197f2988d58be74686d85a96f2050d4f5e3d1ac GIT binary patch literal 4839 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 N002ovPDHLkV1l@oWHSH& literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/logo-180.png b/site/public/brand/ocaml/library/logo-180.png new file mode 100644 index 0000000000000000000000000000000000000000..cd5f9cf5fd01de987945b1f5f75d1060f64fff2d GIT binary patch literal 5321 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 LZ?0FTa}V(!6*VSs literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/logo-192.png b/site/public/brand/ocaml/library/logo-192.png new file mode 100644 index 0000000000000000000000000000000000000000..bc58429d8c505fa25a0eed46545b02967ff57bc8 GIT binary patch literal 5665 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/logo-24.png b/site/public/brand/ocaml/library/logo-24.png new file mode 100644 index 0000000000000000000000000000000000000000..5cc778ef52dedbf1c522cb30bf7c413af3e22ef2 GIT binary patch literal 775 zcmV+i1Ni)jP)J#D>IZd`JS>hz^KIkL>C- zB$x0l0j0gTAKfkpV>0+=RJ zH=KfCFaSTW$BY2iJ^GI18lHq$a8bnkC(iIBbZzJ{!C(;53g+#Gj3L`0Ns@uF z*!zs3IF18`VW81yK&9vcwNe3EtrpB?GY|xkU0{9E2u`Py-Fn+-*W@D{?|K}TS@r3}2v#?)I&0H*%`AHP@2(2Gt^DY&3dpt- zRN(@&CaqvmE-3tnybt-z%mQS$L7@zBkHlLm%44pzZBpM6@8_{|fr+ z$2A2BcCsufg~{;`sa;HsS=REp2dDQ&5Px$C6=*I2E_@G;!lK8;s)c>HpG2$oKsMwx zJg^O_D5RpSJeB}CMG603vRR7;QYBN;F?F%P+uRPnV#NAJa#dp;#j$wOVZP= z%=%Lq9UYB6mC4rc-MPCe5sAWGa{0Q$;h?tu53$5J)ju=F{D$l^*8Bhf002ovPDHLk FV1i@^W*z_l literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/logo-256.png b/site/public/brand/ocaml/library/logo-256.png new file mode 100644 index 0000000000000000000000000000000000000000..f48e2bd4256b8a6296e37cdaa39414a731c709b4 GIT binary patch literal 7642 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 TXN(Z<00000NkvXXu0mjf_LSd9 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/logo-384.png b/site/public/brand/ocaml/library/logo-384.png new file mode 100644 index 0000000000000000000000000000000000000000..3010f4fd592c1a801cc01dc577e6d3a75f38f4d3 GIT binary patch literal 11845 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 Y`9yo`RFoaT4S;`2a_X|B(q=*b15>Oe(*OVf literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/logo-48.png b/site/public/brand/ocaml/library/logo-48.png new file mode 100644 index 0000000000000000000000000000000000000000..f0f0066a016b5fa3798e8ec75e3cc7077f8a9d8f GIT binary patch literal 1505 zcmV<71s?i|P)$wEp;y2SQP!>bTjdjadEnf zigPOJwrq~YWX8-JMiH=Pg2p>-X=xECZMn4AQtpV_LUd3n1q*F~0tHGZLcC;=d4vDX zIgtjmEj{IQmL~r%=cMoR|Gn>fp7TD>A?_ZYHRt}}nMI_ANP!LY9hmt{8Z~1*LH?kQ ziyYC!fh|41eE8u&=AK*i$y=9E;}b8;gH4eDkVU=uD05TTT($v5)s_0&qq-AYmlJHx z{7V3kt(zVhEP#8mKl(|4N`h_k{sR0{d}?;-&nycU3` zg^B2}x5MRfO(>_+iT-kdM*u_8R=gGfSGmwH^P{retPCxHp2|#S00v!X0XVK?GXk(0 zs)G+Ocq|;YoLIC=ccCwKmT!Qo3T6Pt8^Hx|B`<`%)#46lG1eew+dEzXIVs z!2_VoceL4F3EFI`hw4bwDo+4ydJQ9h*5*c!0JW!f3=_dH?_PR~WvHuEymoBh`z2@n zPN8GfR;{Je@8~##xrgqUO~xlgu*|yyx3xX#y^?{RD^l1@20E`ZH9xBEZU=02*J0PI zVY4)kP}c$i_&X^Ac3VrpM%WZ%fC28iKbSNk&Kt@IeL?V$}X=!Q5&dx?rQ4#9u>S!p|0BX+t0K45DuyK>g1f^0r z&ahY{gj~#rGM$IKbUvhF!MOVpi3DY3W$5VWm^^?nX%(bWsmH;5sk5^a8ja?KDIwIC zQec#w!d)d7&(*IUmmjO+;mkjdTG?qRBmy^xUaudw#TWw&9+{22lz7NwGIVuy`DOn0 z?b|Q5i4f(P=P{r<#;AB1)*MA=-k$oMBvQc~j8yxDA~&8PFu zSc_u6Md^VrS&=4gGbH@;$j!~2+*znMelCjgr5?>wvy+vTMJ;)LLPEl{ve?!0iVuA? zpDoFg_pT5L17_(!R%t`--h+$jjRuVsv>Gq>Z0Ss{G(&v+x z&9}6)AT8xIvSOC3xU`OlBm;tNo%w=z@XKQ2pkDy@j?TuN;~ZM9RsgH|Bx8WeQZ0H9&JGO#O8@{hnF-^%5>pPK=|a@h2Ixp$I<*1%PA;0- z0G%morZ#{@elUap3X&KDG*`((2cS{-Gou2Vu64UoA*M|l`PyBn32>Ig*?6IP{1|9+Gu7(BxeIDX2K*iae&|KI{tKecR@-N0A zhnI*nvc{!W#}kAmabsuz_);r(5ehY)JIxle3F=)DOF|leQYmkr_a4x#I(skyb}bE? zJV0|!oX@OuQ(t*K7y#$i%y^(H%m(4u7k1yVKkRAu{xC3=h5sGh)0`-^>NObF3zWXzaD#C#4%%VZ!bcx!9xq&m}7 zb67@ppSMRx-h;^lusl==St{_y_*??Ut)b_Em500000NkvXX Hu0mjfk9E$% literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/logo-512.png b/site/public/brand/ocaml/library/logo-512.png new file mode 100644 index 0000000000000000000000000000000000000000..3fc4f9e0d9ccee24bba3efc31277cb43f6538518 GIT binary patch literal 16443 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 LNkvXXu0mjf&qys9 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/logo.svg b/site/public/brand/ocaml/library/logo.svg new file mode 100644 index 000000000..3c1822dce --- /dev/null +++ b/site/public/brand/ocaml/library/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/site/public/brand/ocaml/library/maskable-192-dark.png b/site/public/brand/ocaml/library/maskable-192-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..9375f16313a0da2d37b7a00418c89386857830c8 GIT binary patch literal 3135 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

  • MlomJx)vzJJ(-V;H4o~5aV?7sg zNiQ_E-dmgiGiya4JH{3~Wq_{txk?+?zKU+R&x;Dn>7uZpYEnZJc$hKI5I85(^zg15 zYH>lHp6?_xHSoDHb+T5JqK;+{ZFu|*AVXXE`KE?^<5s6ULuMEqQMPsjU8d@pc`*oq zshAnXch zxQSVxNj=|dlc3y1*jT=&LW-@aWy`aZt}DqYmtFMTwhPX~KHhBgdUxMB4jAPEr0lvs%_YS5F8Zve$qU8`0Wh(`0=zZ#Fnwv&|0iDbBR9>L-($aAi zbKu_`+cYaT)YgVPaiZ1D`MukfP{U8cgol!GJV#pKb_3{HGJmMephQiNu?uci26>>L-*rzp8-G~`o zfMP%_6b^N2WnD|H7U=B%sIKPYmaSAS@&T3{ls?nAcu6hk^us4Rv(b+F@c8l+ z?1Nt+YKp6t*b}EkMb&LxJg-V58S*_at?{@&-2-1M{FII?mKRrC_%I>FS=Wj{d7KkJ zv3~W*pIsZHmXEClhlX11IoRHL{o%W3_vaH-8vQcvmxGwz@zn%z**n>S*?MxofBkWv z(1_&>4}MCaI&hw^XP6zQ%%_?fCh73hV!EMqGw3sQH29;o>Kwts(h^2tik&_5t0Ol; zARi%q_N?1Qj;D_wU-K;w58o*(<8(E053z^H79xiYquJ%0IKZ2!@{`>ASE-}SPbSIgg%o2PZ1TJc&f{dBGLgyT zTJ-qR=DLJRA}l@_o^5)_i>P&+rrzTn7eR?%9cG15gh8R<*udAXROig3YZdv5=o+dh zcq4=wOrp&`Y0e`R7r)SXaPRF$Fu@5abFsgw?M|Jd7;3Fw`6|W-eMQDAq<2W8o}TIy z*jESmBdAn#Y|!+s5L<@cqxM56@G9SP^vUKP69%}McAY>?#;gHGOyKd5`7iVaMhH+G zG49K}4};+cObc4)R=>y+AVDhs zMgLm1g9cgYIle1AFeFfVnR)gmE5IXB#w5X7NPd$CQ0{?>Slbap`<^=jkSep;N@1Mb z;{6++$`~2$cEIB4Ac$D$lW*X^9Pz z3(&;9PFwS0t8)xJ7$4Tz+au?h?=1y*(0L6#T%M-hUI-WhlY#k?5NQ!hmepuFd>WCdNN$O;HhisqXYMo z1_brxG{*dms_NWSdO11(w;P+d ziw1V>ghf@f(ZE)#R8ZZ>(%Q*Mn-(XB-Ih5AdJcYkjqS_j%NKF9Bxq!4m32iUtjH?L zdb_Nu3cLDiZyp=V`W#UFt<@VItSR*W>QUrZ^`%{tI7-NU@vB$Gj7@V+=q#Ox4*Pt~=#JkcDKAg7 z=PXYJuFQTRoOeBr>VEUPO?Oj}g`CcDh*g7e5 ziZd?UtEn!SR?@auzd;sISzj0!$NtPjX9$WV*qe(V{JB0MWIVl{Ie#z~3yDj$#o^9f zt-4-(4{9-Nz2s|-v#bsHaeVkqb>GIVqe$7R|BG?`FZLKj{D)N@+uIb(ms_F=5k+PW Pd_OSIG0`s3bPoR;^Jb6| literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/maskable-512-dark.png b/site/public/brand/ocaml/library/maskable-512-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..850031bdeba39a066313905a4e27a8228ef4a2bf GIT binary patch literal 9452 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/maskable-512-light.png b/site/public/brand/ocaml/library/maskable-512-light.png new file mode 100644 index 0000000000000000000000000000000000000000..a327d550b21d34587b5063a73b317415044b0ab2 GIT binary patch literal 9403 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/mstile-150-dark.png b/site/public/brand/ocaml/library/mstile-150-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..ce55ad0980aa4c8363deb09d71bbf018a31af1e3 GIT binary patch literal 3075 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/mstile-310-dark.png b/site/public/brand/ocaml/library/mstile-310-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..8d6306a7d66893d2680779f3e8991e002aa56369 GIT binary patch literal 6604 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 ZV&xfP&VKU)cs)a=rKSffzxOoszW_Fxdw~D| literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/mstile-310-light.png b/site/public/brand/ocaml/library/mstile-310-light.png new file mode 100644 index 0000000000000000000000000000000000000000..008e1b83042387b1453588c96d06905b01a9dc4e GIT binary patch literal 6551 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/opengraph-dark.jpg b/site/public/brand/ocaml/library/opengraph-dark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8948effb1acebff163d70244293434fef3be692f GIT binary patch literal 104853 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

    1# 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 NMp99tMC`ra{{k*Ys)+yq literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/opengraph-light.jpg b/site/public/brand/ocaml/library/opengraph-light.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5585790a7ebbd4cf6c936d6044a8e16346f9836a GIT binary patch literal 112267 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/opengraph-light.png b/site/public/brand/ocaml/library/opengraph-light.png new file mode 100644 index 0000000000000000000000000000000000000000..86d8da0f2d90bbbbab4b89025dc8114a8ade341f GIT binary patch literal 68057 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

    I^iQk0*9I}ci|Q=*TtTh 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 F{{cc78Y=(* literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/safari-pinned-tab.svg b/site/public/brand/ocaml/library/safari-pinned-tab.svg new file mode 100644 index 000000000..94378e63b --- /dev/null +++ b/site/public/brand/ocaml/library/safari-pinned-tab.svg @@ -0,0 +1,2 @@ + + diff --git a/site/public/brand/ocaml/library/site-dark.webmanifest b/site/public/brand/ocaml/library/site-dark.webmanifest new file mode 100644 index 000000000..793d6d59f --- /dev/null +++ b/site/public/brand/ocaml/library/site-dark.webmanifest @@ -0,0 +1,36 @@ +{ + "name": "libtmux for OCaml", + "short_name": "libtmux", + "id": "/", + "start_url": "/", + "scope": "/", + "display": "standalone", + "background_color": "#12161D", + "theme_color": "#EF7A08", + "icons": [ + { + "src": "logo-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "maskable-192-dark.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "logo-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any" + }, + { + "src": "maskable-512-dark.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/site/public/brand/ocaml/library/site.webmanifest b/site/public/brand/ocaml/library/site.webmanifest new file mode 100644 index 000000000..545aed627 --- /dev/null +++ b/site/public/brand/ocaml/library/site.webmanifest @@ -0,0 +1,36 @@ +{ + "name": "libtmux for OCaml", + "short_name": "libtmux", + "id": "/", + "start_url": "/", + "scope": "/", + "display": "standalone", + "background_color": "#F4F4F1", + "theme_color": "#EF7A08", + "icons": [ + { + "src": "logo-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "maskable-192-light.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "logo-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any" + }, + { + "src": "maskable-512-light.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/site/public/brand/ocaml/library/social-square-dark.png b/site/public/brand/ocaml/library/social-square-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..c04ed9fdee71d0769323e32f5e1596e96b77924b GIT binary patch literal 76925 zcmdqIXIxXu*FS1GRzws8M4Ane&<>~+X$nV?&>{4uR1xV-NB})jq$?1LG(!zF0@5K^ zC=#0Vo=E65K!6ZJlK%$L-*fNhKF{;w-dFd9y4{&svu4ejwZ7{+vqQBslo?N7I(_KS zAx4!)|L7b#^q17$pOZ&`H&$+xA>f}=E{}}d4;^A)+52<&(EF5&hYnpnr1H;w$cvGs z@e^^T{i$<{GK6B1ZS!RHt$2=D_rIm>{%-v%RxI)9=YNhKk1f0Y?_Y|{C*R(a<_|0l zym#u#DV3X-ue{RIxG8Ztqj$Sw42ts&sGZ?qAJ@w*s4b|eHO3j?-rsqconPFmmrX2i z-@?+1hNHcX9Xj+BLQ6ISbUMij{DlCN{2v}JLk`;fcMq1LKm$cU>OJKD{IEC3ew+X0 z;s3Qpz=Zad4FneCe|UJQb@DXdg+i|%U zzUkMsopIln}@DSe5SB%FU9P>YfA}e52YMEU)oF^x0i?c zF+gSY@2R=ZbH%{tK}Y>*q+FiWYX}{k2I%rDHDsVy!`!Z1jQi9^P%i&x8yi+3Jfi^ED*4hR*2rz80xG|~{iK?hgmlW)Oc&7X=4Zxg(o>$TDm;?>ilzel}* zSf4E^GJt*hkfH6wDN%^KU9DLkglQiz@bx~bc{7A$3edlKqy z{O6s0Z_YXc-2U5d)ubU3&RA0~M5*o0$pbZ5&cgXY7#EXUR-g8?Kctx58jJxJHJ?k# zrawaRcTWijO}4^QIv9gVay|_h6qv*N=g8gpjtUzN5JCO-6o$3P<5gS0t1^CuKdoSZ zz1_~hS>1E?mf}}W*rt9<=^40B?|%lUhziISQktf692neqXFYUTpRvk)xX@KFL1@Q% zeB`4qxutEUz8*Hjl3s}|6AQ%5ved-eAYrR%2g*02pRFmxM?a^wj@%)iEthl}`{?0D zFDmkO7}Cm19I6LqMLywvFz6kk(c-uPOe**7(UtN71E)C;ucN`3_*OrRIE1Z(<=3+G zeUA4EDKab1ShZSFPnIZNao1G}!Zf#1G3!03XtskXf%OEE9NXfB1y78RUPhGCmR|uz z2xmVq71&Tfr9f?QJmavU&4PnX_0P!|rUMtsE{d~;+TEl0o`rkrhQwPT3yrr*4kjZH z;ww|#7iImW6vRNFz<_P-Can28&n7#F5GB$AIFB#W}#l zRyr=>JhIVYA{u`cGP4!n^eve2Pg_T*^VX6XX{=!mv7T;~7ItNxb-J$UdefRv7$?a6 zM8n0SkMW)Lzrqa!d}owGoF$ae5f2#Q{1|T!jJLl3?$a*;5q>p>2yySBf|7OHnY2I6 zH%Bv=6l7Q5W`;3?=+awxIoiOYbYNInS!xI6ATyCm)jq_TDW^Z}?~lgtsh(BX39Jdi zuyA5|ethi8faL1Oi@WwxfEt za6+W}0{u>$l1_&50k-OzA7Qs`tov)%f5k#=fjb=c(a-wr6{toNh*BH3bk^`0y}M>V zrYi3g=oco*FDNuu6g&Mp!>`|&6hq`Wha9qtfqM z_qV$Wvel={dBTeZlD#GOLzh)ioSq;T>R^XM!qkC~3GD0)o#%>sxl-{#_Rzr&12yeO zqsx&0Yoon<-l1i`yLixWs6uhNEw{p=e%GpHS^@zi@I#26H$njc`LErQe<^4G&%g%y z%lT?xto>jqBB((7{Gb2kh;1xKyGS{){93BWB@fK^fwL`+zZA-LHCpdH7c%)<^!FLc zd$}(YFUBi97YBsRYCI;s2D#6)Cy7}##|h}(&`8-HFmaA-8)=T_<)w?!o{oI7C)AU$ z{~lwA7cwgK-CXEMmOPj}8v4*?AXz*!XEa~0;OeamN$iWs$S!o5Qk%9*nl&$eC9c~MOu1)RdHS79DxMqFy;$3r?`?_T=*`tkU*W@M zz=9b$*~Xc3pGr85?FahL66~O|5HwP0-O<%dKL!6rYQDd~fOLEW4^#c8tuIe^vPXPB ztXIIbl6Eo9oWzTv!3(h$?bde|QQpqhqc0C1#rjj0Z^lb~ySBH@?*U2Zlqk&?$e8%+ z6;?qonSah7VTrXg(Cw)dmd(^7=^(;pukce5~Itb#Yx5`WZs6IN`>oAjQz z8jWN;2;X1rr~e|DL+ZqwprdMWiI=6KHfs~eZ2X3n=t&@Kp4yB2Ke810D#*lHXWdX{ zmS>C{;#p9ZksT620kA!OChWkwj)s8MLQQ(Y-(2cq(=0oGHcr&CxKYifsV2Vb7fQ)~ zqPF1TzO~L>V*IF=CtTcZ>ibm-ul};OA^BA7JRM(mUlg`$JbDLJIedF5sVk&%$7@Qr zfp@bnU0Lqk8#;OUJAY-=)6Mx+{YCQtuhzE}#1je%R`>SW!HNtLcpgymEXTADviD^O zraz9oxI_MPop8;#$iKcL<&|h%ccpGR&-g-`ptencei8Ft5I+a9srqSE%OJ=-{;)vE0$nGd z2X1dLO_-j7dJ))W)!5GXqb*-7(z(V<4Q*mp0-{5me0wOr zJXQE#IHu=seFeYA{h6a^Kgz&b@^*8XhgA`3a{*Vj_=zUke8-rsZQ&ZzMZYwDwG-Qz zZKLGtS-c5n@oXzUbFJhVd`2^79sENt$hkyk3 zb?(9Dzc)%vzLi)s_y_UUww!!xbW{c=ho5i8@#|43NPf2Z0e>x&NRR?fs_nvSuYErZ z1albnFZ@g!caI*5(mOBtd`L?K&dl(sWpz!_j%}rX^V{GEy&=;$-YNrTcdjilUNBfz zvW`>`G>h3@n`AI@XgYASR~-Q>ORy8=K>i93&%5N4(fEX9;#{vc_j5hXjICjyLa2B> zKQvx!qhZxF)MBw_4+8GT$Lh2Cp^n?D6Xj|63Z4q7*;|&4Zxo|CDVs|*E-tk<5^mx+ z(9Gc)Xl(6=?k(5IF(4)!^t6(kBnz%{_eF8svIWpYr2AR?tD`5_O1Us8_eFPoHdxf} zXoJkousM9(5Pp0({$gqA)9$MW@p4E#U}6DKR}8LiSQRGU&mCN(#_FhO4%QHi~ACm0NbFINJ#zLyEjzu`xY&P*G#W#L;> zP_B#!T84U{Y`ft}x9m>ul`ALV&1g$1rzkF#@J3=l%6SNERO4ZP2i`Lcmlt+k3?Kzv z-;sAS>oPD`bA|(UIQgs7!{xRax@^tlYjV_6AV6ZZ;LHvMxfW~vl~$vYJhdLXN(z}V zl|1s!KZw!Ul^7uW2K`!%%&iB+01m7G!PRksA%)%5q}t79WRC1KZtg(2#}(xebK#pY zZXnYHd+Lkt#@xGzBGRvHYM&+Vy!IM_l6~h~flRzqB`?Uwc9ZMx$M>+q1vQ>LYklf> zv(8y1TXa+U*>#Qif)Abgt!P>ND5KBjJS_HQze#puSS+dm2(g>@?l#C)O!uG8a+&0* zM$+55W=7LpUCmPJ4#0waAIR8A0qLHc!mnqkx9y9JOJwm`8Y&@2;bKP$dMHq4l8Nb!=hS#ZKwAUcz zrtGs@b+jaz16y*K(EG4{wdgoB__1r{9fyIbRT+mGakq(UDU4-1BLd6UsKq z#>xq~!~5Qi$|wn)fPdBOx{ETY1d6czW~RapevqyevlC1_rZxM1(+<)v*Kw+)YRu|@ zXP4YX)r_04`$d<4g8N9Cq{BdAkJ-lNhy!XmadHuTBBq-d_q|D>!Sol5h$|@4T!z#< zfaItr$Gg|Z@h*SLO)!%VN+iLkFTjE zRCoFR8ck9dU1>XA${d9G{_dKf9ynJ6#pSa44z8@r)wfjojUJRCM<`<1l-aS=U(Hp>v( zczv8P{{m>xJiw|`P81S0*Uds(sZpX)oMe{gxc3WQonm>1@=;(`0Ao?o>6Zs)y%}z8sfbMPE6Se0(zzs5*zAH-v2KdeyxXX$^eM8CFao;!B zOVPw**~qv^PRXt1QOQ~z-|`x(AK3u_ZKDABDgdQ39W*ShSy_B-wCQp;yG4-uxH?FTw1753*0fkDq}jGf`y@c7pgv%kS5;F97cW zj1e%Kfs!EEfgT`lKSus_(Bk1TQNLC=Nj@XPdh`cEi5@RtCc{+cWPmuRt;tcSWO}b% zkvCJaxxAwdy*9q{V!7*NaE~5leY&koGk3#hDL+dm5CF`8(QJ4@7V_QC9is~j&N!BM zzy@t}j|XS>hKQz$&4|vR>z`xeY>2t2Z5Iv0YU_#oY~CQC$PCsTC>pPNqI9zxZZw_o)ArNq7A5OB(l;SP42k#oQxZj>!tc57u^<`jI8=PrNkpP@NG78Sc+ zdhC@rr_>&Ghjar0z<)!uK@_r|0&fzu$aR}(g7Ur%87Y+|RxLLW;`HjW7E>xo@xdNg ze<^+zj!N4ebVJ1%MxqT+=5)`y+3vNX$pIF~{fbr#i(oc@>BW)b{l*8!DrTEwnL+z? zd7LZqIc$DvojW1s`DAls8w3pO?8=JmS6b)yP|b%rCBB($5D7e7YNLun``to_Q-ca_ zb*UbREk-bB>RNWhx-r4CRTFGM*~%oRH>jt}%dvp0EYPAp&kj^} zV}u(*(We6UHrOph>2}g&(4Tc^!!GsxbsTBUmPHucY(l;NGmR}osRyhQ7>!j>-&!MA z&1Yg{Dfh-NE1d%|R&*rY;%5OB7;_8#eivz(Eahqm0nV}WnUmWmhMen(Pp#v#L3@Mt%d>AeeNg({hZeIMx-x*haAa7k$iW zC4YV_-eY@AObCB`DRL4yf|4 zDgW?L+{4ewlFlL|t>I7hy#u*k2Q~&I&135+02oUC+HZl9JMi+ScM&~hc3r>@jE5qH zEdEydBZ#lUpSlBw7VO%rpzO8|+~{_yR%j6rB;02^Bfn9_d2|$t4_5!fl9CP9eb$4% zvIUfwqJ|$YH|Hb(9F|%6ZZaG0U@hakkwX4kjVsj^*m`I*P!acJsSwbVl|rMknO#ql z)xqW0O!9`igO05+d~NiaBBL_f&4qrTco<(DEPB$_TDa^}^vmu*bg>!Ng?ft)56q%W zBK$dSKh;wER~CTRt+D*d6LDJ$D01(Cy{EZBxZCuWS7sxgD4gTm4}>dEj)&5MB-$hF zKv;^>^jg4+N-FF4qF?x_censLmAM?#!(nw0-vJ5fpg(fU?R<7i~JRB0EQv^J#F#ZvDYG$6Th5)FO}$*>=J|dNrv4EKbpF@DuJM>;JcM| z%(3$%afJ5VYm_+qsrGR*(IC)X)bv*NH`Ld_1Sd{<54UsuMzR<;f$5rz+}%Rm@V~eF z?T&jp-TI(PNgJ=30?La~^gl)7YyBqPP6ohV z+jhKN^k)0LkDkH0cP(Y5bo}dMv4%#;$@qbMf!XYzhL}1%>9-yX6+NN58j!K1q*AV45GR=_6jStEhI4 z{xkBwLeJfenL*bcMj&raZ~4~N9_X%^{Xyj|#mi5?9=^Fam;ey#DEd@jtS0+!l^1Nf z4sCTS^TIc>FaX=(g>|&}t!`fP4nIjvahgiPp>D28Y(={Mj!`=G=Tmt)0x>6eVOrWd zMUJ)Xfnb2hP35PB9}pd6qur%bNm@oFmJj3t!R@bMlvHm3L!E+;M(t2IoX@WPszU_6 z`GoP(v7bA;HUSL9W><(za0E(H;6yD+3t(=?e7EU${C^abd^_MZF+D)OMiV<_SU0PH zy)=`Rz6(Ld-G&5v`HGiS{%O=adsbk6tWmlW$c#KbODc-l{~*MFl9gk0tq(BQ^z33h zz3%x0l$EgrAjvj|meqD)^P>fLx+5k%ks*N=g0bkf6`ONxxj-M*(P zV;>aQ~srQrmh_=K(r~ z_Y8fyK|+PF;a`d!@G6{VQy8kcZ^k3Nna;b@s-XQwqCwV{+!NhP%HN+mW(ZqLC=q@- zobezNVDZEI`J<&aJ~~cG>aaJUrw0IPQLk3vz}}b2DTMmUH3P6MK=lpVDA21fwAwY) zZ>?a9OiYCgzISdM6rFWWwVML~Ue=H6ssN5}qD1QpRr2pnXT{F8C+Tjd{ce`!wA0VX zDH*4meSI{-8z(nkHQA(s?+)QLs`YY=+(H~Ij+ICMv_YXo13Ke*<;CFch51}Q%$hRq zttVdtjhF8IM#Zx|;UXf|b)J(r+s;JS=Db{|GWfc68~-yZ^!IqCozlcYfNV6l4Hs@6 z+L#}o{Y>?*Q|H5ECz$GFp8vIu>KJqNl|!TmUCq53`$6m|UPW$eE^|~dgUh?GJ5xDQ z#N`88Pg?04v9(uCC!Blm@ao^5Le=->?PKT|llz4S-pNicl z)3utthOS9)mk?9ZLie))o(OPCZ5!9 z(Zb`?2Qa>%=KqrcE`NdY{63?gai>)@R{|#VvPl5!8};%9Nu4Unl+R-X-%G zM_t$!l-kUSb*`Szxf!c{O}XhGYsMEGSb!|^_o8*xCjbTIkEzarrH>}VjD-zTU&E)A z%_^#{3W_j?>x$^+sD*C+q--uzEJMzUB~FFL3-kK^{33OVg$Fv-y`7Hm8}-tb`WC{N zEcN6ow9K~Y#Pdha|IduIB)s$v=5X+|2R zYY{B=P9msR1WV3MnNPcTO^3CKxM!g|oOt~{ZBJ{YM$1h=2u47g=MLz_kR^b;GHScb=1EVKP z3IK}ye{ur`AW07$ItRL^ySdiVRsn&T>n%zwJGeT>V$RmM{Y@%iOE6OcSA-y8QT`z&1Q%8wkg5Oovz z4pJqEyyYEmQQoqBc-G8x(agKUQ&P|OeY$_e9o#oZD!w2EdZP&`HrW&KGK9zR9f2?- zE9tg$DtB{PVY>j;AZ$(FortE>wq$xcYggItjPTbI{2njbjiOBJD?a1CzAs;#G-?b* zWz;1S{8md+pjMMJVR*EIZC6q{@zq^)Ptn^3|BbcWhYiz|adn^BaeUfHn5CLe5_Ko4 z*6+*_#bZx*5aJG7btxnX>$&eeLEw}JK6OpK7BI5ss}n8oe~P)hrq;^0*Ze(u9m}DO zM;>fu(+>%!KTjnP^zZgW`p( zFLHPT>XstPI#HBxa(7F5yAQpALgfvo6o>Lk%^vk6^rJpQt7d7+I$qzyxnB5V{I;4;{nM4z( zS_eS3R7bhTFa`#_CSobO{n2W1U8#9H-8-lAyEh#NqlBcV`MqMgx4+%CfipB$J%Fy) zjuff3-$ks43!=giQcXKP^2T+a7E;V|X&ZJy(F~xeI&j2S+(SjaG7@@c#+$s={As>y zL0r@9%rJPkKl)ApCYKioIS8Fyt2a@LfAuOnDf^W3bE-EL9iIaz1GH#o9Ri z$CJ#mrss9!6|WhnyWn`0aZ#GR!J<~EF0X1r@prQ$ZTih?8%LvWH%!coT7hQWI~%U& zh}IGiEy@vGCXa?pUDl?PlyUZzepc}lDV2HK8^pwn4?w7Ms;5?pCCZ41)$HakT7u`c zi;9fvi$_9`o83Or!QeWu)jv>7!CFjPaq+xgbKfW#J9y=|&@ypS$#3KEf#0<1=IBu? zq~iaw$Cl~|StRnl*(|Lu@v=hA5k%8bh`D(*g)}9r1 zW8cgV;!RC4g<}e}KWF7hdqEH$6A0E@>-R78HQ$zNVc&IK;hR1i!pN&TfY8Zn#H((E zi`M6Vu8q7;oG%M(Qh}dL0~cMi66WzQw0XrKwNgj%caBPrlPI~Lyfq43?2?+lFzLR& z9BKF?XB93s`Hv|kDl%KvZ*G6Wz_laY+>XK~Wbm`u{IIqRj3fl4XKKm-$%IC+p3==J z=a$>*IL4q*=uu>#e&UOAfm#5mJ}&6;Wc%j|7SI)aL>{!d=}79DHF3N(P(}Ayi2-nl z;4dRGoXv<8M1|!fJTbrE?ewLBoenb+`^7K||4ntFex2|TsfBG_ z%a}2kw@LVX1LiISpHbEATnBe{Zq${cXSDSap5UlVs!1mZv75=yyzgHF5=$UBQi-oP zUV36GePDV%x2xJ?B`6`@6WRE4+e$;K+{n>j0_kO59&wS+Vlj6WQ!pMbm4z-;;#(>w zd=XeYQbe(yM4#Y_7r)In{j8=+gYZ?gc-0jk+U_Cybdj>eF`_4I$MuDz)j$f2#GBdG z1}OC`qh>6i{fz!H>Sv@Rf8X?#D24e57>O&K)yVvILsf+cgTrJt&PlKL}@PV!h(E*J|(s^!! z<4p1P$O|^~EDP!#+p+B$g+^8G+NoOlrH-iqYel}}1zAGhS?)8d;;eD<&6l$aHCW^V zej=19ACB%V*@6HB|Kk>#07$E%c0!4AKY&aFTo}T;ROH<9o4yUC#W>toPf4tCPpU<4 z`Pt-$$lH{~kK2hPA)BUV>wg20@4q+28Rc7jQBQZ1}T`;Is0#T>1Utzi}8djPF3VB$6F9ZwW+smcMQ%jVuWgw2m*GW z2tQhtx%Oii3K2sDQ)}KVZWHD73#)Xz5X@!vtkYL4lgM$Qh;YxX%Q&SmKZ4Teb7Yo* zNu;URu+~YbGi3DB zbT4oZ(Ndih#|AQ>gOPo}CDw~^tOm0BoS^I%Nr(5g+J#FXl-G)RnAuu4K3kgCX_4Im zAeVbSBA8dI7SS8v`H{?MrrZ0gc13BrdP@}0Y>G0$pwJG`ZrT43dQ-hdy}x{A>Q$OX zD4T5G+jrwj;t=pB?A92GeFj!#_{ki35+2M5ubO>^qUOY|%)jpeJ%7@ zxNVk8&Okr3`!vO=e#PJZ*;z}NB{J^e>%2j&Q_9={U{}&ND$}f7vm+2_fI~pV=?dIf zEFpK?0rxt5vv&o6(PWpb)0-XFRo_ZJEc z9Q@n|t@yvmtf}FB$FOI6hvEiloF?@9L<{R;ZvA#o0hk-)+GD#DG3=9jg|;&qt0^br z-o{hkn#uBe4I{z^=jK-?Dd`eW2{7TUAW!q;bIa(-w@&t$>8-H1irr{Ovwn4kpH zcZ6KI<#u;K$qJ`lbRS~cGF3Hpo1DB1Hnb{+2`c(3ENbumpkgfJ8+A zZ3$Mh@#^A(;iEE3b%Ow2 zC(40g^=8{6}@vrnm5lwvoIA<*BH-)^_E~$Cltr9BlY;c}QsOxwoLqb2o!mF!t^3s|TtRsOYvh6M69s->%{OW&#$9$1@{r#d7m}AnsMJtqd z3BV8Qf|*`ak2Cl2U!}EVBzQ9Y&1K#Qmuf+&&NSmMgv@gSBMiW z#_`C!K=2jI8f;>0<=o`^&f2+BSf<4S4`_7xBL%=cIwG!x-F4@`DMz$=8=N=3bIJYK z{(4fhPL;eQX?CGMIOj?cUE&uu@H! zcqWSPdUML0vcVbW-#Cm9)h{1S*FKpnD6eXt-|}8Tul6ry(6O*`?%sgvy{P-s=0(ZC ztOF_zYOnWkcZ`pt#s9)sgzMFON3QHGX zdR3SjvTx<=Gf)bR&(j2$k%a9 z9HM=GOj3nj(96D3)AKD~@5}G(?>T%3*tDLwD6^tb{T1}^lfwEoi-85yipwdu%40T9 zzbg{zV0q?gp2QVP=8sCz$lhbdVvJ50(s0mzVAZLWkzHx*WgxRQmIn}LM7hM=o(qKz zp_OvY{Z2&iP=JyItC=L@fa#k*U-AGb+YU-hKoW6{2fyxyAh=eTni>e74GOrj1Go6;TMC zbk)>G>DWCa;_!}bf3XymvWMv$vT^`2E|)qJd8fg-ZaV77?49CrD@`fkXCRT|svNg2 zLx3A9t*lx^1w%-9LJN=~EuW<1dmAQbRg=E7EcmQ#Q<>z&bKW2+r6j;$NCPo${dRAN z-ZFY1^7Y3Q5*yK}ACGmz>V21tnc~k)lSqI1lSD_aG%hPoEu*|d3Pm5_M zOkwkSuKx3ar{!8Q?pX zA8!YWM^{@EsL~PslSMGT*y=9;2y~jHEaY2Y6NgzRdfEbvHjnQyC#{VB06@@l-rF8G zB&&ece?f-#!42s7_};Eq?lj?;Qds&RP;QL@L4k?QZ=)7R7o(^+j_*u!I&18)PkXqb z98E;NvoQ5B10Xqohg7mDbb!5k!}JP3m1b_k{XlAf>iTtD?~>elEqPw?*!wEoPN`fd z%Acbp-6NR$Dr7;K7+)lgs<9hIUxrlNU#r~)0P1vM+&Uv%S3?219%oNZgWv(+7nML2 zfv#9&%FrvhNpHRzm3jG0Bx}choo# ztTgOHqN2%LOi5JP=i7-l{$|Ub6dW&Qm}ohs2^U+6^+r3KB6^Uf* z*iy3N$ol+Vb{wHZpO+~ZgvC(VD^e4u#K6_SbL+JY)6;4I?z&-@N(F(7FOK+#F zByA$zEP*7~yz4Y4S23m0l&pKNBB0 z_&Fn5J_?#F?&+J|!0MgM(RD7Gc`|qM0kfpZ$5kL~B(V`vUz}nUCq6f|i1V3y@$E*# zj+E5OShlk11>paZEt;6yN;C0mFe~#s#VvO(%8lBRhgRjNx|!g1+`>qvW@);`vMJe$ z9|yg{BPef3TMthp-QV36qdUtcRGkHx_pB|w*ORP&;zqAs@wqpn(Ci>oJQAkM<~}3x zeQBz!vmW_SwA!$k-{-2>Le4|I9{^uEMd(aUhu(q~+COC=p@d-7?a%v134`#tX}Ou(Z3K zf7OYj;orogfBVDtw(V|{fklAH_d2l>Hj^z}SQ{!wp0%W@Kob{9}J&JYoygXbbIC30(}&4 z=2Su|4WJBn82t=s4 zTkF#rW`c~##UQpHZ-T^oydQ|?UkSTO?C|ZkpaP@}KH4&E>^%>;$?t~f$R*)Z%tq$l zQMA2NgbjA9zkLB-M`xxl4ELbF0lo|XomkEmgNx^f&Od?=T*AUGx zT%;+g8yBe-c9=f^`o+S-sJ{wKyDcwWKm{T0tu;sB9{11EQWK^n8^UwO0TQ~mK>Vizi(}^w_D^wU;V5PZInAMnRgl2KRDMrxSdNH889m_^RPH1TR>!%`CEPQHyGb z)GkW`x1#T5N}JYxwT&){`r>cV{1H zHJyg@r};|Q@#(Jvv`GlJ59|tpnO~=rsmzVGm1zy|r=?7I_psIk{F3q&gj=H+f71m` z>FATmHo|e*KRZLOH5lq-e%19$XX;$UT5fz$K`DUU#Eo-6BPqW-tgxo82 z%(zgK_Ts}43)}ORYkH7Z2xi{SdD2$9dzS(A>&@I(C`MKwF1pMcIEqlgihO8r*RB<> zvasuA|54|aQ0KoU(-)*Jo0D3br{pIMh0iwZFmc6@(_Im&rUvIMmRp`YHPv9jG1{fS z8ulX`RlNkdB63SLXDn2d?q&`UsG<6;sf`G|awV%?CL4TM)l$IgT=n$L&(}I8Pls%a z%g2X=BT9{^!<)TtO}OeRj{3oZxYwK}>z$ja@Eg!1zq)Z)y7z z&_}IIoo7tQRiCbTd72(&X<>9d$sE!!+$IGvK9~7Kl$sCROwxWaBe<(M;Ox6TFR`X9 z2G=#M(wk>RKbf3?C4l%4%nk3`QBsX6@T!n1H}OV6VU1%DM!1wnboPTip6h146bG|G zXJfLUzq;!yt*s?Zfk6SFmuPeluZV^@6gWTQj)nr9M+IylX)3>LE*3BjzV$1UySv7k z>6mH*{({98b4a=~72gz;IqEL0wE4AUBO$9)^-4+2r=w?m!z11>dC@xkB=Zm_eBi&sR>MvxwC z*qMIeoFq)vd2b0cf-NA^4Dc)+JicpN+v=%0>~bT66h~Nm-eOgng!$1{1GBa23(-84 z5iQ)(zNTBV)@X~s{d9d%E&awR_|(F?{K<#-h1qRO`D*puwgj?w$pR_W_3*5ghy1h-{2_J(TjkpIB}fVn4c`X z+AdxhfpaUrrnDfRD1W0H?8MRJ39w>!3QDi5o+iuA>zgZA$q#i{Zw4D? zSwFmz!C2Z=WMkmBG+K2-V*2YxUOa2HFObsG zsMZjOikTGLnp&L5k7b0MhD(7vy#;(s|4JVdLT8KMv|7FUI4z6cSpTh32XQ;A-+C5a zr4H*bjmzZ--{JG-{B|*)5q>gxV{s1uQ(Ri~JkCA$OkVUNHNW1i^bLa9;UP6vx8-6-dfiiZd7FLAdkz!?9Hh`=-R5Gc(YiZ>k*)V1 zrnrBX&eR6JSBUyJsSGTTg_tcZsXguD<(Y4JljukX;}~f8V(ojltuKBU$i`W< zoqt1*fkmz`EX#Q0Qw+aI6}_k4QQlH5`D_#&ep4h&RYPcYDQrnAlz3gQ>+N;?-R31! z1 zOc`8}q-lkI8{ROA#%snpr&`_C@J04{NGaEBoAI|X0OWm;S~VyCkCS-f|+MCrjXDlxOiQ*gxIFZ=46q*+N1h$a0 z4bU~zJA+np;;^z_Nqf`%LxC2=q zS-e)7o8IXi$9r_Hm%yI`R&`2o$4oZ!g2W8|DUZH5IL0rhzp1)&9fI%Bshv3Yu2&4E zaFrjMEA~_7-I)6s1hC#;Px$b^2CA~W=-A_}ovqR&4_76=_;qA=ih-+uu^R=rWpR@a z(xVy2>a_hvtktjCgQ2`O*1BEu&6DW>nR=g{;o)nWswB;OYN{8_*x64s4-YO48g8)$ zON*{`oP`@!@&h*zIt)EmP$`yYblln!H`MlPkUnt;-uLBKQ5e|5Osx3_e`ULxov8wX z*>X4xY-NvsLj<_ZXZn4talLd$5i?}tc34Bl?H$_JlvoG7m@~S0JA6(+4lAEzvDC?% zYL-TAJl#bw3!c)ayje~QkgoQ-@Bj^LZ>kBp?S|FOM=1kH;2ixK|J%rrM@;aGtY$wa zZ3B|bJRkW*5TlYV##k5?g>(RZuIXz=py~u_Tt>Rlhp>w0=oTh4(KwwLmRhU#2-btKo3aX~iaU z;3(($7Sz;j&V$5m>69J0p#}D7T$&GMfSq=ID3YUi7zAti0W;#Y! zoa)+tWpj-cy8b~-z=b^ytK8wo~vC;9Anm^iQENd5ZvEk)EEh=havL~qi$6Daba>%Y8FL?);DhX zEaL834`ZsF{?1W|n)vQ&nDU72UZDg;T(Fn@Cgn$2kM`sB=IC38=J_9mvw|weybNAh zd^4yY5*NXMEt1eTQI$)&U*08@11KX4R2^cNi0pabJFLpAXWW%<$p5eStVX7-Rh_zN zA*Wq&%%GtgD{^1u>?ewRl+)Q$-<>P#&mt*NkxiYaQ&c|ykwocrDQaDGst5HPem1$H zT&uPHn8AxEeYxj*n5PNiT9;Tap_+28&3kg{bUi*815gy{g-_Duvg9vauD*8@mmvn+ z60SN@_Ry}<5|5hN5=+?2O#ADTf3X8i~Vv=(+Z7E`WgE+`f98jQW3F=qNyWQDY5QjQ`hFK$Nw zD(;8>jpy5;O_1ooM3?=xDW0g9D;jrcXx+Df(N(Y z?hb+A?(Vm9&OP^>KW^2ldhZoeu&amOJ+rp-UhDU*-SL8M9$kMIX6&9{{eysnu*qhb zm@=`$t=O6-MpPUOhNbe0Z5^av@pv?GpO(bvMXARJXmr*8@=!kbbL<^4dnU(0D-5eL zrbV*D?vnxmD*DFAxy>LT5`xAs7b5+fq4gI^=eCIVU;vq2|GaGOD88?+vg5Y@fs{%5 z)pk{Z*ws2RLhjV27s5jT%rA+OwM{n?5h;jC1VPes2pvq5_^tXU3+y%53ICcGnF(;*CSLA&avg%Dzh@>2!TA=ARH=v- zO)p2M^(`BP+I)Y;U5FS+qHW!RpOj--<<&jeLuGd?%q@NM>Ug(s}$!8=sFdF(do@ zzHH7j&-xMxFrq#Xd}W%7^*SA>)rsN&#~WXyVm2S9&xE-p0>m6M6}Xnx%ENW{c)RI* ze#JNA`A(eFTj!`{FckZDf@g$7BQns)Ti)gE_LV|n)N1rn^QzYMj57nn81$&PzUix< zU?~>Z!7VOlS*zNQq6tI(wA6@6$5uX@8fQa(aCX(+Path?qDe)@BO5>7h3PAlee&YWb(w z`w?N|xK8k2m*$K-Mu({4Dtx2L!%!i?{=Q7>*)W+1h#u9o3oaE-cv(!PdUx0r#!Q}< zG2S{OdaXSL{K3*hmozf^1Dn?=x(+s!2ua5`BIPVei;|+I8zB*Z$cgSiD3eIlI4VR` z0mMx7EikuIucCXK_G^zv{D8>%MPkCj=s#J5goVYCVSYf~FE8Hv2O(xwpT--ous}+S z*A{v+DkT4`82H~s+4PU75shco=gt)#%=gwe!SytAtYKl4V`72Z$Ng5{hD#_ zR8ENHyF4UoX!aNr$c_hEx%ybFvWZ3b6+3cdCt>N@?%_rknS{ZCDPGnQ>z}&yDjmrg zg`~9k)_ZMQe z6I+2n-nF;4ie2oRECw1voTG;OA3$ZQA72U~u4&EJ+jKYeVO1(|Sj8Nm03_HD(%lOAvV*^#n^_=BEpq`@q=j#%JGmUc3$XO4;JDCV2(; zT4FIcc;TxPn(4dab;gb2!Z{q{l|XH^8JWfO9Yk-N$OE?YF&$Dr8~W{vF6@YiniLv7 zA@sKL5PqLbPV*!L5RS&KCx8^}aHA{m`#6VV-N9Z;jM|aQ;ue?sf?86RoA~V?i5EQr zF&dQ}Z6L}ix0hNiu6naEGQ zJ2-;$s$vf1jAz|_89ratI6kv$^zt=iR+Aj;@aUMv&3{M)qM9E?KB={e09rDd<9PA& zJN6Z8z*3{n$$!q%z7Qn&3^oO`nG(s!;d(`?;0zVYE*)K{dh|AFUUD-j0Z`N_1qt8Y zR9TK9!ao({mZ|FjL|8cbUhhzGDDtHAdPJHBfIWh$cu0rR+o6s9`lB;q+n2qIL)O#T zny1I|H5l5@jrd!SHzNL{BNe75aN@vJI30is0My`jU&;X6Qsx`UKx5~{j**U576yYu zHWlAwG@VdV1c?Y(X%d1&VaQcgLQoA&+EAZ7u+mvsB?8Hp^ zrwS#V^hL$Ic>L3(%)i6*-Z zoM`j<{J0mG;F+c$N9+$gpl`>$;_sDe!wY5o=gU%Jthej>%sI2Wk@bJvZoOvgS2B6^ zBnm5DUrAb6ja`-cHS?3EF*1T**%n_yhJBY;KG-Cl66Iw}gqeVhrE+kU?2@v%T>1)W zpih2?wCJPSILX*F0IMc+V!Zj!JKT|czjpv2iSUb$4&J)oj|nlW`@?513NM-C(HND@ zeSUbobq#<-(g?9Gvs{S?`_77F8uc7b6mKo+o6_lE--ERKb9OTt=;V>9Jt=7@E!F-U zdJaX+u>Ovza@%SiP<^d=bUO}d(Rsvf&w9Se#630@4$2HsyZ9_^i>9t^`nqLd4n)>% z9g^f}xVE&f;A8MGRZo6YHp%T)T5@Wt=uBZr%&~_HUfEyRxYp}{tdH|e0>55zN6x8# zUz2K^{=@^h2^U#Hf>PDpZ`aJ)JD0q5)M;O;_^Uc+yxW3Tlu z-WOaFm!W;>txP$oI*jr|{X9q)=~Cl0y{$rPP8UfMy+hJVs2Y4 zwZdSSbFm0$dm*%(m<5BtkNyJASSi)T6Xsbg9pYsp`fz~qIBNw9_Ih+LRyHC*`V0dI zs3JWPBk&PiVmyHM`!1a9>m}9uM`J}FDOPRhfA8wC)9T5F;f!GQW33H^L-M}P{Kqb& zxvBA*)pcX(f)fW=|1{GmI zBT*%GLs1w^8W0;f>?ne`jiallo##qN=b>kr+MH3HN)``TDabLBk4WPT;pw>gHl5Mt z3mVLSyg=ap{0sd4A4Mhf|8w;JS_Fyz@6%zv{C5!@`@brM`S0TYsPumn|F4yz{rA!T zuJr$1{r^vw`v19pyqZ*g$MKe%jNkDx>JXlm2<=n1uE*Qh&Pd|d#`O-{fc6*E5Td*q zJn_`VeGI}Tj=k)vHNb)(Qw@i~Jc$W?ry=4y!G@O`)b)pZJAJRGDus^6J#A8-t6s+{ zJ=ZH;S_MHdT`KsVuq)P<&5WEk)YYfSgu|%Q&43Bt`VL~p-kP4b+lh|XzO~o4SE~F^ z>D3-%?cDYwRn6k&T(Y< zpAgRn*dyI%!V;po{nKT4x1;ZN~iL$-3(S~zrCJUd=;QuLnQ zNem}UwBHVE=NS0G`?lX-T78uqsp{OZwVIw=Sa*pXAY^J9?6{ty)timPRze3_5*<6w z|LyTA?oQwy1Zk<>&hfUuz3nh>Xn**fP1=(KPc<>K+; z1Nm>V4Xv$p6MXb{y9=vtgE%)CfN?M`CU^I2l6+ofd@Hqn75iKqm@|9rZP|f`;l6jIdi^-|!tg^twqnyxLKvw+iUMJz*Dr>yMS>V}vlqBG!if&c&4 z-9h3YaXbs&!$nL%y_bWZcC#sXIy*}#Yqb%YNxU_4e*U4u@ZIz3F0ICiJIl9@uU?Dn zST=1}uX0THx@X=G59_Z_1?|4RCs`9UCZn46Q1Xk@QFVK)9S65Jf3NFs&O1Y*1hY*p zepa=~C`C_nJecmC3R;~lv0ZHAA4JKp=#J~Mwym!Fh{~VvMZ16Tc)@10YY-+8x(!s8 z!O?G9t>oJ%R4K?|Y4Iw0;q;ky!t_^PxA)Yi?A(%(I+M!jPvTkin24yl)$j4mS$XBQ zE<+{qK9N~>yNlSDVJCj*n^DLy_s#S?4HER8lV{Ot!H{}6rCs-aykV{C zxH+(K75)xL?m-izo~wnbJU=O^!%}s_+b&|tE49U58l{c9D){!22m}riXHE#DiH`@u zCt7D;<W^hQqXg-k@A^LP2v^i2<&3_&@GHq?ulm%pLdY85 znyl+gNgk&&;Zzjj+TNKGf+pJKWRzXlsAy<*K|NxaVds5+L+knWyVYJv+2ky4ppm8h zl0U4pcW>JyZx$M`6ni9Qy5mHnWq6bTy@%owFWZQ=k^nu%$zIQ!2{9DJK zBp#bLe?0Hevd>qe8&h<>RoZP?-+LeFqAD3|6|njiH#SF5Pe`}9pLiHCNUK1Q$;2vt z%_vNGO%2VMJ!lOMho_lm8+VRpH|h&6S*fiX`o>V`{tj2QI;IUyeG}ZhAA*!5eiW^! z`FanxKG==V3CeZ?#=^;Wiw2)94%;0IQSdmg=SB-0HwRr?3N2e}s2Sf`x9O608z~Oc zkSsQ+{7!im71jvpM15D8Uz`mDfu!^Wa9!K-Me=jA{BJ!Tegg z-`dK9{8^@nIOQXoPr{wfL5<|Q?>qTO$y49e@KKjuE*jyd`Mibaezz3tEsZpls}mf% zJyoe!HRu#Kgdw8O&U4dbzXX|zf&w~sN^$i{gpYR0VgwBlp-G{-TL{tA*6UE$nsz(3 zXyt#dHeEjcx^>|`>evtp^6h-yrFCLjeC?MIfMVSKn>=hxgW>+WNfEbRec9`kQXBSe z-dF`+5wXJVI6C*-=gr4b@C8p>x)iRbskVFpiMcvRxCpEj4GdH0@2xP_Xd2<2vT zK3y@H-FFqYePh$z)M@}6a9|hE@n;?xGj<~1*5A8%VTYD}JL64gsEZ030 zH<0=Es|&ttJGW@@+2|VKX)C>zgx~BL%fmZm({#*i~b-h%+M9C3`zA|aX#{{AY$%((CAjKPQp6U}ot7 z*%EIjB%;(M<>nv?oS!r^9EsnemP*h^A0~_UWLd+0e79K0WvPCs`Plh-(0Gl27UQs` zFy8N5knVM}WtU|4rRM0sMI1`m*z@~9-n~p!r>U-oUx*9n7Zl^r^?vj%rpHEeM2gu0 zysya?>#sDQp2vifw9lu1;6q9=vGHmnvasOmrBvi)h8o_|g<`ADSKPmQKqapDn3_=T zz^XQVnw&g7wUrIk#JU?MjFYF9B0&@ZTV5X=W2Q=CHw5TXGNPqo(`J4Dx&jJfze%+1 zl~3F|>GF^Sc2`=|_;d4(gPAq$Lwh0ZcjpUnbu&*qq0C<&0%1BhIjv_jnrdCMc-@Ox zAxya}f5zn9-|9$@hv2({U2Qx(S|fV*Y2gcB0*4BmK4;At!eRDvq(Ty{RB=u&^s0GT>jPQI6JJZbWu%r(j```4zBlH@K9=)cIHZx8w~^OL!W6GB6oifEm}AR1a0ZVVUDQf*OiXz z!dv3}Nq0tdq@1Q)rIU$Y3PXH_$`HrnMSHsbXtk;@w<7HT=M>Z#ltoF4v=gM ztvQyEg+b{&^W|;~OCfilq^7P8V`&oKRaA*ryW2B$nk>Ktsa1GfkiLt8q2N7<99H`F zN*DD=rTDQ~OaRqde=|%T7k0kU@;eWaroek1qk14Pdb)rhr6bWplw^yJ&B+GCZ-YW; z@tgc5-|J=9&->a_6gNM?va|;il{z*+mx$H= zTVT)P?y%xv-)Su5-M1fh&KuF86Jw3qs8QeGDID93!;+;~em_m4oOd-FpmPyf(}MJ7ynD3?_VTBys-67malcE9Y;rkm-&2IXwkYW$~|2 zGk9a*r|M{FC}`O%d9%^uESHe@s52 zg;`JLR>_!vSTgx3Vr9H6M9MY%Owocb`6Iw^Y z7gi|>>1-Oy(B138Na~1xFa9A*ZoIMUSZ#{1`1@V}$t!yyhg^kk!+Qp!D1C& zdy70c_Gh+cpwhe(dV?V9v_aF6(z0fWiWKEpX?EVyty|i1h#A`SEWf~~pG8_&*!i2q z`dFuw1E$^ElNPJ7QbY#Hkksx(WG)9B+^DU@19LTs&|r8oKUgpDy(_Ax!H?Q{!~yxv zpLY#UD`X51?`_kf6LKY!A9lV89xIXSp9GZ~^Qb+Vp*~YHB*3*anxK9SZFa_?R7(7o zlEvJc_h5*Adr0>+`kiR&yAb<(SJ!Pb+C?ZRX7)YU6=?!yOhgekacSpV7uyOy^dyj= zZFt48sLJ(Tqa4^;Pn@aG*x|+h+ZYPsW=E!xYAB+K5aD`|MGs4tHF~4hF#`8a>hux} z?Z|fh3j6aJZsqMZ_fzWtA*yy5vB3AAbB%bRmXtXq5ul*v?Y@E9yYBVTg@IfN9QJit z&jHiB?CCHCCi|_4RPKJF?B-yLGx8(yIlw*o%J0RYm$2v%GU(hxqC?JLK@~t7)}lm? zxQ1tz?+?`)AA8c!A~`CqW{*@P!e?8$tWXXL`a_qoJ*;=MqX=(Azw-elk#2F$Ie+@- z9lmfM82Lv*K<7EjusXTan2u}iVaRcmIs5Ph(|ZBUiaN)O4#++T!MBIj%a zcXcg^7WTGIR8I>VhU-$nWs<77kwJ0m!B7*ZZIPpUcmK6n*m}pl4#uKvybS)e^vht4 zaCXM}@2MZOAqO=DE}{t0Pxqr95oJt#hcM&YMt-TT;YsX#Q6|lUPyV8CT;Zm_cfWNI zWXfab$ID%Ra!vS2#!r5Uu|?G2S{{pa)qbzT&1EL9Q90D@|8v7N039xYZmaOtt z)_Z0UlzwL!1t?e1?yAwM8HGV|--8Lx9%Mk}W|kjxolNO@)&4oQ=lem{it~yZywh5k z^5AaS80o(fU6O3P%(fywh>n(Cp5=o8}pkFRU7RNz$d!(~M@Y!Q(N z3os-VhB=kaJfH##v%G68c2T-cNtGBtQTa+X+|X0jEp@F?kxc4BSX?B*bf#Nt@uBS@ zxxsqLiNT(?M2K5+5T_TT)3O`1?DovnbH3ty9?pu} z6!~sOxY71%4*t@z;8XIA9{n2cXs(c6sYn7+SGeeIcK=}aiB;5dPxvaCQG;W?GW|7Z z(PT)Tla8q_Iw_vNC<_7(&u%^mV9;2yP^{_=jUq$NqF5aAY)u%>AKS2_8f+*c^gfAo zn_^p`Ap9 z69l4Oog=crG#hQtrisWRlooL{75rOT#*n{l8t_=0^^84o57leZM z$MAKoZm@|6m|91(5hRuSUVz=HWxJWz4XsmM2_Um4H^~y959JLKL31;UnP%FCce5)Z zbLwve2lHwq?+L%WUFzHWrM#=*7CWR+okprm%_5oeTHO4~c4)lV^7MNk3@ZpTm@qtJ zae8r<2HO7ghc0D&(W%AIE^*OXwS1^_kz$9rDtWqeFcrm}J$CKK9$TpF&H*jUeZ0rjQP`zTa(Oxug0eD9Ei`)$pt?{9AgkoI9_HXA zXGluG6i8-eO4zX~nJDvi+W~!`r7~O(-cmjLTIK9=`U-dKhCx7`L_rw76!y&!i&8>S z$2YIDq_HF}{}gIXz4vw`XXucIv^d|!72aAe+gAt5@VgDX$eSLW#5|E2tHvIK#R`a; z`7{N)b2RoFO0~83{9GJ=GB6-6M;xe&qPZHixg@aoKUm1hY^zKl+lh(6xp|@!mFE4d z?01VsToU?2!EhRD7YZ5cNV8q_t(grM=MKbX3Pu!C<%@)~Id< zbnNv6Zh?+pBn>23U1_n*3ae`e2fZWc$EV`qqUWP(s7QwvE^S}2hz&Kr;!K$wPhD0C zAg*t1)rGYoPbgUcv#6V?t_Hn;D$}txEq3+kC?bl0C_-pnU0OV}gpy!WJ`|4^6#+kKv37$ECH1fi&UtMa%P*(tM-WGQ&d07S^f+ zhEV`hns8iC%LyA>;OCXEPAxcU+tqqeF}MsCAzR`Q*m}RF^od(x9JCY}`fey@(m&AB zq{R4Ar{AxWF_bPQ_fP~GY%sB1Bl2$Zm<^9Z$9+M7L-}Ztqiu#`qbUrOEqtL6?fMfx%|uI+FQ5zK@Vy zH{JX#)*)DnY{$8o+}V2(;Qp5?x+HJ!YUCO=Tr_>8P*nGc9;hQhAISB(xbEfDE#()@f)D@Iojl`j3RKk>Tv9u%Dt z4C<3PD;eM`IrQ`deQ@l6!)esgb^T}6gQ`!fB(W;w484bLLHO&$OO?_)xGV1uc{_O5 zv0Py{I>p%aAXb^=X#HkxAC;-s-j&6`b)lMvZf*fxW{J$JLMj?j3AyM!>1T3=IFkNT zNxYU$c0u<7v8Ir~(g0dGh1)wXzacl6gxkE8-?OSY*jt{x-nt z=0QC+wK$YfsEpR3H^o`78=Y#bOo86CnY00RJ0DUO}3IaE&h-%}=TDPP`HX@V^7fo=MhDpTU_!D# z2Z{;*$T1BZ7`kzGS~sL*Fszoijiq>>=TKCpueZU*@64jzLiv-5&;v<|^#Wyywdaua zJ^Oc5!QYw`NyaIMWWWY`)Rr~cV#j+O>emdogMd|SRjL-Vr>eb6_5&f{a)(4?l4?yoSCsI>}vk0=U$W`ry2b{j+U!8Y!15JBGKqhsT$ zOd*Jifxx2rj5KTt1+q8kVkoDr{mB$%(GPJiIxH(*Wq=3TSkZE3Mao4I*(9R^Jo~xQ|S6sY7gDXoEu2l zT$`ohL+}K@W_z&1-X3I=GulhwL!6!t9^I6PE2VVQ8fF!oBsF)4u!S2du}b}wKb#B| zhoBHEA=o6?JXy$`Gw1~pYVK-p!`Z_@2OOa*7QH754u$-+CYpU{rnheu_dbdfH?hY) zLj2f9p&dSJye7F^+@#aV?DZD#g^42Q(2=B8)Wo;EXTzyHN)*`quej%&e1X1I1{~UY z#eYylfq3k#%O_DJij>71h)vcet3&-opki)HH-B?a2iyE_d1#&wQs*BE;O?p|HAEB@1F={Mf@Wq7oGUm~^v`(vt*e5+kt^2XJ3^ zN|tFD?ewE>E}a3 zysSzsS`{^J;w6~D=0)kb-G#9EGYZ$SHe2Kv>bv2+bbB00l-SS|Fxw~?QqoX)O4HP@ z28>Yl6=CLo+MjjaGOAA;yrDvzojgR7*vmf`-$mO>oU>N_h=roUe~=k3OGuGFU6Ou1 zQ4VpbW^7GLI1s!naq1-`zxSCp37hkb%uG6|BnsVjZdaMh^eJDscd=qm&gCRugKbf5 z4Jauy5AZuEXREJm1yK{Jm?`aopV*DPZCxe7irRG_NZL|a>v(kPQhVC3?YX~vu-th5 zc?2wgq_JyYllq+cS7gW9axbuYfQlVn0Pv@9v|TYqT1(*5yK?FdNLNLPUPq z4`LsldpDak0yFEnn_4I|&BVC|r2sD#)Bs<|zQ`EAm#c;J$FhSPO<5)&rR@8WrUeR$bI$m98Jn&WE1*Dfkzy_h)170VWkyAd-VU%UC~ zNG?An5Jt;)p*6>c*y*Lj%F6}I37b~GvxUi?=P6go?DMU)y*Noh~ai!ywvvEBfq`O$wALe+?3-v*8Q4yC<>Mp%ds15SS+?a8_2< zJBNUYL=j50TDy8Kl z%?IDq+n~jJKW8!v2&7IhU+3}t{G^xhKIKoU->|$33c?5fW)kQ~G8(>|AqK}M{zoHFG6Sf{j%l~qtS8q1mn=TS%uRSj%CMAwgxku{URwS`~t?WF0dK}ZVz!|;jBwx}{;kg;RnrsMi$@qTO5GMT% zk$nrgA_k#<#fClq%3VNvAxs(^g?7hv6s-_^n(lRkoDA$3j1q>3Ibrmjteh?mFB^@_ zka&fdZ{{spRY3l}hNmY|0a>97Tij4hDZN=z2R`#nnT@aS1FmX2gNHo!CGMv*5U)g-JsO z#BDq+!?<`~N#uuSX}Qp)087n)1^JzxWbyl9r*2vC<9K#wlbg;#8Q0R4NcRQe2s?-N;XuYG!lix+-|lFU#u4cLcoJVVS_T~Z zrn>6KZ?OEP4VP}TfEQTi`M%cR()_*8YWT!?2AS_ zD5^9rqoio7{0l^Wkjh4fdDfy4_dV5si(>5ev8nJW@~a2lFM?lJqz9~)Ge~(8L4Cb( z!n8;bFjf?P3sdcnZ4*j$Kv}3fGFNC_b{(FtjDd?{DX_~52a%pMRl*HyjDM-ni zWuPSD>l^%v> zpmext+!(?US=9FXnxLz8ABv^p2RqgsG7zWy2wdsQjsjPG~M=pX8d(Hg`p_HR#@ZAZX)~c z3N}}I`6TbQr}a1{z=iU?dCG;~7!q6^`_{f##@P+j>6%#iJ5Q=(crC8|G^a@1KcREn z_*GF$7e+>6SE<%`dy@nQP_{KbBF2CJ-ddlN_|oczHyQ~3k_sIbo&78?nfRwdFh;wA zhe4B*PLRq9T_JRHT)hs~0;7B}dTP)=u6AJl$U{YSf+YeLS~sMq*W_!RA7pn)5OYNX_(aQwv&H*Ov}i7uKgaS5g-!m81(BD$3m=81%y zGS_$sW=>eP{8cnMhbu3U`{vm_AA99Oh;|W1&55u^18I(+2T}xm`^vbA>gn|3i#T@E zwD1Dr-bXUs2Kl+a3U*{^k6=ck>C_R`BrY@Zjsr6PJ(YXPkmak~ydSg4U^CZeWKtW7 zclfNWG#Rmf(?qYIkG$gx6|jy)vk9qtwhbHA<>&B#n4dQ{?ChGqh)8M|%wd4c)`iuE zIQxNL{MehvpKk9fZgfr1`(*`e!+l2@XK--q`XYp(zZZ^tE3vH#%tpbmZnH)*=Ew;JNQPaey(exz z@mcFpfG2k~9CA@1_!$S-Kg4Vo5-y>~_AJe9XIK#EF3kX2SGJGG0$kC@XaLOdx3BIN zNJtHAbtVX4`?N7Mz(_S$4ie}6LFU;1qLkFqQ^0w#n5wZeOZ*QM1Befu-Nbi7mSR^SV$q6r^&yl4 za@9g@xBaclUft}NCkW-XT6a&!Js%=cv`{mB=Ap+R0T}SUghmYkaqG)Ka><$9N#aa? z4zI``AAZNvhXTmk!dl($^q-}4p^%T**#OwZBm731`sqdXrk`!=Iij+9yz?!tWTnY_ zycu`-Bu3~WpWhL*5pm}8EAPSA7efh1W}ua86!Ll)Q&{%wMxf2IRB*fbsoSH^w0zg1x*>-Px0IB2SeU~k#VAtuiR8|lzSTk2b%(Ia= zqF&)+J%U1V37}`4_pj=&BiBuDam={-K4W()58LrE`w;m-LpM}B@MTa~L#{H2{)bhVi)0+!CtXj>#GIiYF>X+NKx{jg` za2L?2pw;QW+-tx1xvq5{3_4(n16TN4+0gsSyDJHxnE-TVN(Jp;A?P@>d;<)QZ{!Rs z`frnZ-j}l+K(+pd2EuvN|9L5)lkg-S(nQb>kUViEJ}X1s@#K62JUPzmuxMqw-zvzpUnRm~F-R z-keMBIMlq7Od%j-J>|J)^)hs$ScGMESedcD zcEf)0uHNr_Q|8sfMhdr(vqaGMJKxK0{Swj%fq!ZNVPjj<$TpU~?iOq|C8Ys#l3o=!BrcAuW)w7T(w zSV(MwbjFna!Q#Z*?fRL|C2>`5`2dlRH7$qv?Q~UMv zc)xY*z9&&mM$HhI&Sqz$dk)a9ofFF8yDm89IgY>EQ3abF??}wB2xP4FRbd8YUr=5z&ZK3(YRrsEl<2kf|wjS*4BoZkr?VHv3m%>hr zyEk$6ygn!-M)3D*)A3=(bBqb)c}fP{tdpomzTHRtIE*A<3t~!%u%bIOx*YHzVbel1Q(4Kceg|Ky z76e7UYy>T7%Q8_W9?zhuOznjn+&q6ytO>R#8T%zX{rU)}W%nNB;4;h}q~To;W&RXB zRA>h@P;>8ZgizC|n!i`?x66GgIp@GK&bToMW)L89H3}%b*n3C<=DjOMSu?St+{gy7rTkSQ)BV7SHps_6x#UzOx zan@ffm9i@%H4qPEnMK+7!htW>Kwb}@(jP*~wbp+$Li)O}ELLGq--{;qDogX@rRGvk zjWl4q<(50a#(879oH3quy2FjK)?>x$tfu!HpM{p|>Rsv!7+RbrG|fcfRF$^l^+Vgk zZ}mZB#8{?gC-Jf~1PX?bsD6`2+HB7`pL8yBbS?UBI_8Aht*97{Meog3fnSR(w#{B)Gm2l&m_tYn+Vz6Zdm$F} z*HS32brr0$QEv!Fh0aP-bSH*+=b?!>(`ZHJ(?%fPd49;#b3!{wh*H8|CXs3qcUnQN zWay#tfvY{jrk0caU6Hzl@+jnz_q5cxHCWK$#{xm z8flQdx^#Sq_Qu2`S^I_1PpU8!!iJWLQ45Vot~O*3c^7T2km|n6M`t6Ce#c04^HQZ4 z2i@BGJ1LJTcar`+snbE8`VBbYAWxMBGk5g{kM+dCxWxgNZ z3aa*lZIM&*$&~l$H%xs)UJYRnSBDbb7SGvqW=RFGp3`=Af}fDDBCE%3-t#&osQO0I)^-15ymD)Lc_qKt0Q!*XU=Lg z=j~>X(%t`swHV7uPVb_>Rsa4<=}U_wI9cD5F_{BEqDow^(ZBPmH982o{GVM($%`A8QEdY9@?wcT=0! zOs;C@z43bEH3y8D(sfi-#dnRiQ${v)^P?J6Cme9Lgri*ThS; z4kDoqYKvstQ)`M% z#kO>t=uN`H?F>UV*YKMz(k8hFU}4k^x9Sjj-d#}4=dO=~C(Nu}MZvMLxDl2t0wmyyx5ZYu0(g34$_+MGEJ=*d7mhP=)S@ z)E3qK+0fx(yBBj`)oW8|C z3_Q+@U~EDc;b*&b_4YYR`=I3aDMIJ4*xx!PbW*i6_*oS`(q7zQz>vIh8eV?f+qRY} zHRhP@z$4z5raN2`%nA%~6q>HsKjG|3Ju|f^sFQlaR^o$%A`W`s)#L=Jg>xRpVV}MZ zaBeTBV3L^#dkalXM>*loEdc${HlDw&BI&LRo87Se$bT%kLIQ_4CF1lou=)^milYwopM%~x|H?V%@wg~oB2-*LZ^!eFtDe?N4*!M z1Y}|Eu*3zeTRw5ZTIG9#v5Z1!OnBmlKY>7f&-o-64LKNB`^n)mwd6`r-}bO|a~>uw z)s4~FQkWRD7Qzs@&1QNOYh|D~xb@6v!)4$5urhIavRZ0dc<{(7mTvEwVx2-oXh;V1 z(0#e1MzJt_@1J7@+F9`};u?t6l|2i8KlW)g6RF4(1W@Qg7kA3SKR0v@mlZ5?YfO(? zJP9i2NtDP@d)=M6tKQ4?WCI(Q6c@n zDWx~caUx#=4#WLh#razFuwzd9e1GqD7Nw_Ek3F-hny$Z0zE&BKCchumJvi~9r=Cn7 zAI71()uaQz1wgva1rfYbnwgQ7hYyo~dlK;OH}oc%LE$MIU1s80M}to;R099`G2 z3nw82cLsvH4Z#T#+{vH=g9mrF;1*m1!6mp3!Gb#^1P^Y(-Q8VI=YHuOKkp#}&ueB(!^7i(kYaq=ZIoJ&A5n0f=D77>rC}w zA25!JCWN8JRI!uTu(&{LTb06J29h7NR1o)#B_6&mo|pv}Q%;{&2S0!FQ~_%>S2lPD zj@|tNPdI<}+vZT@i{WqPomPh~$Vvt(G-m*|L%fv*^9ZGyA@jWE zmdbG{ch_sez2VmB2x@R=729s6{Lz%Z=N1bW9q7g<2r%z8V72@Thwb8fc+8jHH0G$J z3-j+jtt17y=ss=2D^H!4S3!~lo>TC(g2 zO>(8smG@)6O|^ylkHS?%ML@oL)At`L>;v$s?CaSyh-WZziDyc z@c#P_f=Jwb4lv!p_~1GdiDT}ni?OQvtQ(W?&sv=^Y%EG>PA-~`z#)zI_%wgmnp4n* zk(^}k_teZ+3{8@;hXB#zBi_KiIe;oyQ{RZ)b#*k{^)(D$(c0t^xCUMwtoX2k%pm`%bMu0he9By>;{*oQN%WKarp&2fZuH-H$#(TGv3|Jf@v;>C9Qh>; zlU;Uf{2-R5yq6Kb`OCEIE2FeRScF$ImQ z(((xwNRk`K_sEB;`EbU2Z(%+uet*s@ZSNncB8DhulJ=V%Cvgn1b%hk6a);`@sL0v+ z>@A~vU$%t@4;47&HM>&bMx0iDr|D-)UV|UZ$oxld5lj9UPS?+PIU*1LIjwqLTs|+A zEB;z#gY!zkMJ3Z+xdJ)lEWsU*R<%O;1LVhEI{ciU`fvc%Ts@b?;g;6u_q}~dm8n8G z?bLnR`NS5$R1I#!@M{?Yh4YfVw35)pS zV~I(D$WSt2yGN9UKv69jJap2XfNYg-YRF>s{tne#N>U#u#?W-=dp^nGpbf}Z3>Z)n zg|(48<*H~OAf>~zYnx+HnmX#lW+c(=QzCFEevG340Y`FSxoMrLb#-cR=UEMShIz~B za$V_rnoN{a-5Vhe!5x&ZEBs(vY!H2sJ&6ta{%p^(XTAwJUE14})Bo+#*Q9TGE0&Qf2pK81nWQUz%5^`7+OpHjBfu zBMDM^!a}!hJqnOet%~Yvz&ebdXUD}SE0$g@;By9(>Upsx2DuCCa+=3nSt5T6_295z z{ua%h-OuAnG_Sy;!b%F3r1P4vl$e=z$zAnAs%@M-{-qr8&CpW~W?zPpE1tTkUX*T) zM*jFmn$M9zl5YLXr8$OhD{2+;jtXq{QY^|HSMK92s$A6yl@u^=4+N(fz&3Jv5~)7S zI=Dab^g{;o#7V1@E4oUjUn(fRA10p+;6*{IF+Xa&eVu5r_XX}=D6sQxW>(=4s~9`c z^RPiArv@pHG(O~~$tPB6%z~OYd*DvqBwFSP%LR%KNp}5|UD^KRdK+y$Jpzd+8~?+O zIi9F3V)Q~HZ^stKx8dj50<-Bu;)R}^VxfQR%i6iZ#DSvVDR!t(03(uC@sg9x{n7ij z)H;lQ6D@MBu6RfUZ)0R;-J<&+-<9`FmUQ)}hoha(HS=L}DUJ8O!Y_u=o zZw@E&Rzm?xCyAZ8oeBRZau7pbfx(yQysD>O00r-mG_omN@fUn`?W(Q|1P_3*<3zZ7 z>@@_(hs}729D1^b3=aOrZi5bi?SevE1{6(}ftSQT{$XMib>W=^iZ_%+wwe=7QZPZc zf~%B-j?9(HUQlj8B@Z`=jDxXAku*2QgHfJ~XSW`Ri4kBDHa(cI-VQ;D_zr}rX@NI7 zcAY@0YCBX!7P0`txoU-HQLdW%_uqfBL*}?aA#pZH!~R3$Np22!pcwUU=^AVAwnuP4 z6*T)BYl^8J>O0r?)e}t=wFTZ+Ar55;LIqXY)mdMX)Sc~lJaz*&M-vNc=rSY*szNVk zI~;#^0Rz)*+^+{Wg?=R-o}yxPKvq_&(z&L9xIEKndUN5=plh2@0U6UDed_PLgul&$ zIGXHm5*_GOlML2GpWN!>{-&qrj?qK4xV~@4pOx^O{rMF_7jf7<7qcn%!^UQIMXut8CBw{ut<~I+%G6=6hy=mcdccH=l=lmLtwT`Z0o(Z%OVT0c1E#L84vfe*d zIycDO6atTCRLd@|9C6_h0w{7I4Js#LJWk1t%Zoq)QfqNo0D{^rmZ#GL^P)jaA(f!aI&ZkN&Kp)EtHCM{kg!u1P^qjrv3&;51*rKbpf~>KONN` zZ~<_uB& zms=OA<%Htf&@L9_Jg>sbT}3>V!w*QlwG4F0ReAThh=FhZw*Omrlf~Jh$U-A9T?X4M zhAU=biQA&T_K91lmCAdi#;{|3*<3`ldv`%9e%yF2jJI0QNj_#q?;CdFB00GOquTyY znpC*EDYD?}8Ip&AsZ#1ykK-AMS6}fGN9qH`LM^cW=;y7ej>*$1_7X*`7PTEIhuV%9 zeLS>PJgdvYEf*|zH`)KOGRz!g)U$jt@$Y zVmIuQ$U|V8m?NM1SNb(DOft-{UP=l!3YaSA2EZetl%VJ0-^zh}AP&L98Hx#mDV4;c z+phC!e&=I&5U~k^WLM19#FTzH^oN{vHb*qKmo z9>|qABQSQDLX=bw4_(R^sLvuK0wpaF@?LD^?H1)P31X|mPUzI%tm+xF=nRHDa%22p zqa@BL@+6i>g0sJW!eJpP-`YA=0DL;&inRbe=z^|0f44uIh45{-Sk`ITA z+JAr)som|r5b$LnxtryIiv5@(%&<=$^)Hk69aF$iojvVF`x_x)!2<wxp1%G? z^X6pVI3WPvg8?90TsThJ`)H4b!UJ)*QTCT)Qm? z8$R=EJdP!79;Gn(tfNY`k2K7@LMQPSqTXbZzUG6I@Nb8u@bnlh$6}8&h|JHX-*6Fn z^R8XsG2`nqc=!P4z^$4zC-kIOC4}$P=VWD*>Rc-WH!&O`^nkOZ?miNi6HmnT_xrkv+`=^6(Cu1ODZCh_hp1>HG zr@8mp&o@$9=dwd1X6rh%cDua|(W##{sqS^@$fP9cO7T7+cl{!wGiDD%{_@fJ#L9)Q zn0k_8bQd(HS+_$zN)8Nds$>i_qH=;4B2%9oQ?EW#bzK*h2tk=MngB~Oj+(|!k>5tc z-~Vz;45HHHaYrqr-Ym<2o~~gf_9Ap?3&bFxVv!Mo25SBMl1`89r~xwA`cb* zZ#TU&Sl!~TpGl`KY7~lH1t*leoU?qLXmSh7b2`4t%x^I`LU23EnRva5;#Pg2)H2b^ z3d-$J0uVHn7%z_(>KMt_pW=FiHgMy$asv!5oLNfg&>2GmDu6-DUEz*D@1BorZsK)= zBx{_#d)y0W z$rxSkP@QTk8{4)QD(#F``A(jkTg1+!r6b;X3}v1Q>Q5W`%EicLdC~%;7c$w#ZEX|6 zT8Pvh^eu{zfgK}8+)9$2b0Y<0$S=n{F!^e}KoyK~5c-1{`IU7bJR2!AX@8#y73k#* z+R?2gjPrlE^^1NNmEV)v_(pn$1Yz)Em(rmI8>U3Kb!D4ATj)LLVa&m#9>byk82L2< zXZc`|nsnBX=$$*-_%kX59c0A3;Hin2Z{NoU7p7O)Wt^}jw;YFY$)&}nFZG{Iz7Kcp|fD`1py(sC1S9_Na~i&&qZih zw#})Umtw(@KYwusgPFc^D8`2ak}Jg-6XQixpVs}DVa{GEK8P!k#}^xYa` z!ZaxN1^}S9B@fI5yXOP&e6vk@ZmCp*EVfpR z`i1xlK$dMfdmnv1(93upbv-@u$|U?qr24b8Q7f-qK~TSHnzPUfj4KfCCL{2 zoVMp0yDclco8Q;Tz2AhX0m$zdK#vu&aDici1mw8K8p*cR-XO6d#nFKWu;+7%naNUF z|H}e60B8H!A6&4e>WOMPt}ATr&ogCZB)Y!g{)SN{LFgDMLT%Uulg8G7a3(KH97Iqp zM;!2*czCfFDOZmsU4{wD;rBKv8B%XD+*c6ElN9$ zG5Uu&E0yK4ckzH`?iG|HI_NoLiGNBl_qVkrpvSk&r87u}`0)MhS7`{5g(bOU7p}Jb zE>)TGaD=8=DPI+ydsFuw5J%&M+nS-V)nyfC>6I?^tkAkD6vOBsF}lh#;f84NBF2$@ z2~7^@`^p_{97i6MX0mE6DS!H`uh=xXru#;&+r4fBj?|18$O3x);!&@vKi*)}tr)V` zHIMNv!=07$!dDHNsr7@m3{-nm)OJXD5Sm+6K6QZ?am@pYqmWiF5#cglm~y!9G}bAy%VVOv$iTw!LAu8XHugVC0j3;E^w#ORk#&6AL~!6 zq?m4f$qoyPC}N^1o}sl7R@P2?782JKwdp@WkN)fmzfPjg_T3j`qL8n8Qd$FxU4_;M zeVhZnyrYx6Gj9{~0#cLMC2k2mrz>`cp%raRe-?{RX?!-0a0b**nQ}M&;PsB2#GP^1hkqmaLsLCaJ;0VKw-e7#l7@*$7^%Z$Z=*)(0a&f|4BwWL*>3sqvw6wy31|OFiG}bQ)%ehIl1(O$6q#3Oo>-P8L^&!g??=p3sfX*(MdYq1*UfWS$L zE>zDhYV&+xF=8YyySm$3``!%n>&uL= z`a%t+`HM`wxw_XfW^6jnmK5v$q*pKT3^I%^hk5>MF8lj`6B;C1#piX6+t8=~U{n83n5qAAR+PE9tp5jD z+FxAlKU?`1MEReOIi?>RX4Lkk>|X&?67#JkfJ$7B&j%BhzHhioU6ACZ9lD4pAUv*X1$%^-lI(BFvyUM@%M zzj{moW700hid(R;Qi@Uh6W~M|(-*nBCA_sPPQP4g2U$>JV zPFx;bf_$#(SDMe}{Fw~2T4eUl&6>w+T)BM@fGeh(7azAt$|(QpwxkIj_l9KvMN^ZT z$PMf4R~j3yhX*ZZg3qqG0cGcZL8{qi-oFrASikR3D078#_!U6wP=S{2mzfRhR$`_9 zMrljlS2J;$MgBE_0RWE^_UZ^tjMr}P9|`fQt+^+Uom#9+_d_*rCbsq)l=8&mKR`h( zGZ-F7!^pMussLyVVQ{`jhu)QDk;f@tx`w?NKVfi_K|W5ROqToTESLRHsekw$U^Y^l z*MOr<8Ha&NM}NlWlAlnrxg!gctcMlZveLS|?XfOIaszIx)H#HNyif4g3>FkC3i~Ub zTF0%Sz1<0lS3DrZJUUYFJNO(UbZ*h?7DVd>P)C31HnXRVFk_ifK3sc2b`=?P2~Gdj zJ)i{B2r4enunhB;fA(aOAv;|wb&9G0%w30@@M9rA060RTfbGA>42K|^r?-ySb!G{I z+iIx(G4KItjuf&PZu*cqK}DXQ2u*+Q$<)Y56wp*a;N?p5QuNG6rt3KV%frMM*R*?oIecYfd}yq^NZ zlN+rc3eELB(PkyqL~c*F{w&_y1HoJB09KNBMts(fxL#`mT*H-~)+UdF)wYDG&E78( zr^u(T_lwO3NNS$Xw*j&A55u~hQzES{TT*fw&ckgNQ~d7IyCU;>%dh9N$W4gOk)bwj zzT!?J;Mns%o4qiO`3fr-!7FdF8yweJx?Vn8)aon&jA&@$L`Q&$4`A68TW2#Hs>XFM zyZZ-<;3c{e*v9AMe+6t=$hKR4FlxP~ca&*z8SF3&I4 zujEf_xTR3l{{n*|Ejx%!C*u`252WRrtu}x#rth zC@di?WX|{NU#H6d(qk6S>W={9o$Kekn4`~Iw2Iw}QVczir;f-22Il>*T>wos^VXT* z!MLWmb(am>KZ|xwZtggh~>`PyEih+dx!<;5}AhlB@f56i9fwDBG&i$bx>1A?YCcv z%>C7J;v>E6bSL5y-S2kR`#m_DiV5QHFE8bY2lh0HOL1mnt_!l52U$_hEOb!vI`$cY z;vRx6hckoWGHo0xY;Cu!WK#ZXm%?~67Q^Ugws)eX&ZM`AKEppJum#Y<9a)9 zC*pW2&qYtI2>1mtX?pp_s4S@otepX0nmqYCjN_O)ikTOG%J#Kbqgk7cKzMVv=_IK& z*Hn2YkSn{(DTmQf|N4aoknWB@zBdTC(WESFqomHFgN_ zE8;TOZ>Jpb6jS{c3-&X14)$m04$|!h7FT64))h`a*0)|}>i#kc_cgk!$?CN-p#R=l zz!vgT&@VNe_j*`=d@Q05;;9d@^-Mh=Gc{53XBFfk3B-aGijbHXctq^dI$^ULLSr(1S zH0wKOtc539x)>v=(lrI!4@20K5#-6Mg@fSo=m;OmiyS$HXhpzjxaG}b$kc87#4m}B zh{BV7Uc`NCrH${W4kq@w?ovt|Hov&|$dsB{@0Cha{muKvN19zchgtA@fER`5Smvkq zFZ6(#iki>c&FuY5KI!67`yU{9;w>WUMlo_v6iirdUyT+vQXug;5|=W0(M-L&4vf*T zl00sWlR^rOaV4-j`oOVGkw)=Y&&jN!Lz|9KqP~#?ptNsX{+?lWP1niKb(pb@pt*Hm z+|=Y94=x)*M3{+4^F?_mJ4O?|zpe3D!ZXN zyuNbpxSdKH_kG*@GZ0DEe8>TkGY-$|fv3f1ot|~}8E}KUoYUe1i5QVP)cQOXZ{qD> zc=${`&CCNajKE9aQZDnCz6HYO91z3ZWxJ&H6TV%Q_?p#2U3-~{@w!^U$Anj*tRv@C za-~7w&?kX-2>n7yD`0&|ml1;O!28i$Nj)?1|@ZI2e?tdC7`cm*i zC;izOGa4$>LBNn+#s>KHf_J+aCfCmt+U342ectdvTsv`?gVe3wkEEWEfFGUtV~s}N z*T*&JIoh?)#S3<46KY~hCSPS1@H>>3s9K*0ac%5nXwZ~8H8zjXSyf5OPD%Kx0~^NOd5#Pjg_?wu;&%6A z0(^QO;C*#hN}z?zhF-C|n?VtZX4)Y*lp`SyX)YP?5woVSN;z{hT!ZSX#UZR_&CKbH z@&eMtchH|GJ8RJ~)J}oy1+nPJi`%S8B7}GziPCMsLrpdxKWuG;ONek;SvQcvKO9|R z(pnKm?Mil;5j+17=k`#(zO;$EGxm(r@3rT#_mT8UZ--p-1< zlJWU36pl!{2jGF`>X4~1wgjyyY!{2!^!9L}l{^5ju+S-m1o()S7i9~LVA37uPHXNv zg=<_G@5yZ&!e}l9cxaYffs90Hqi`A?w)wi2*bK&3L3OiAFMW&TNOD3W#IbGE(Wu4w zY`L&f-)^-qYb^fT&rr_%NMht!USR+?Sm+M--jaTq*miyRcKK*V%K)Z#s9sUa3=42M z{zN;jlp^@c##fV3HD^b%Kx6d7l>_~~=RQigVu4I!V-iqlIqBCLcQFvcJN{Ii&5trz zB3W{$J2QdyI)g;);LFh)sA0)j*cNuaXoC3Az-sU2pE&vnmR#|`>gTfM?{&)NxTVp$ zdZWB4KfiYTCAjNbXKT_mjV^`|)^U;nPZ3_YB*GV#8%3$Y5>q%Q1kM*aE;Epw@gaw5 z)RYz*gp1z7OZj>sj`oYI7d`!AIUeX7>LwO1nux)1VK4+Jg0-l@T3Jd;`j%d2G|yik zHcP<Cvma>W|jR;G8 z`l5P04Lfn{O7G)Mzu4r|ppIVOtLsLd0bxkAeX$4Q6}c}EVJ;dJu5X?BP3^*_9$sNY zbNnORkRJT$7Vm+9ORwD(IE>y=nF141950e7qr2jC#?ntQ!z1PhM>yqBTps(L-O2Uk zsWg$Xeb#jb$Sv1MI3*9u4<@pofYbn=uurE@5eOkV1Cc@t(VYPfi%b!bv{#BS2OYKi z)M0=2p>Hds-8);XrDLsvbturj)0H6*f|;46bMcSUD$1-tbsXSTJP6?#mK{ASV5~vS zG^*$RgBF$2mwEtBprL}ke^}0BTk$VKihwtKW^tk9gZh8QKbWyTthR2Mh$?DLN|!Q3 zBw2c`O$|;t6fAPxjjH~-w7un_flvP;K$khsxnSR&_)~-7oOF}s*WsuS z`?!e?wTBSgE6e=Mdf+i>{innoxE`-Om3})^GME4}4V{Qi-mOYj2xC9uFn9xaLo496 z``~>TEz3*+{BaFso>cV?km_Pjhkxl&TX~l0I1z-fT!<-AeQci~UaT6f!2r&0RU5jp z(cz$!AAO^4!&*R00&=$PTLs)d$nB~z{RO|(XO{Y0x8CU7Z{M08qxS{kOmFY`6%HEUQc`&lx^*BKi$H6+Us6-IW?Pp|U+V@$i^qNlDsej2DSJM? zEjj9?=ky@uX$$DzrNmxhr6Hh}gB?%T2vst1tVh;35xv@^q62UH!I#(XaP_cMG5#c* z3vqB@@mkyNADz;B%rO!R~by_TNg7m$bc*B6gUwvkFwIBaLK{Ivvq%Je<5nG zKpVC*>^KS@j>xCfoUS#kO!0EX#r<|r$iS}_MZ8~V2?c=?TD&n&H(LkuJ1L{#D^wfG zfPtF>khwsnkGJ3rPUEDoGKFx|!gI(k$gV8#W_aIIQaa&}l@D+xBfSJh3?1$9I~IQR zs+29I&=R36EV58Vgd5GX0(Mbyu%jSurP)yWa_E5QU2cFi z^+4UX37F8bWUv#C@QL<;RgFadgBloLVC=jMxJ*Hd-#Z$FFu@172p)Fj^D2jV978iM?Tj!F@x!XchX(03xtuJMc$ z9asnMnuEcYaJgI7VDRMl_E<^s(`CqB6oGK((b}Rl~>Br3v~;Q&H$~XR6`e4 zpA!o{vXn0EF_-v8 zL*iL#F}i+u-`OP31X}bqY3k>W#83=*lM~VU-it3_JmMh9*xH9+`)}|ayb1rFO zIbNcj2P`BDe*SXfrQw@|XW^K-blC6$ReG5h(4CPy6)Lb^KtZF7>Fxl3+v^9Dl?aib zNmyek3e>UdQ)x91e&EBNDw`;rnkYA(ju~lRWiSdm9LSP+nBC$=|0@#16$C=D)$&3{1Ac0M>5P|Wv-W4yCBabHIXi}csfa31Rv$~T-;Ktz8 z|EM@EI;Xq!&7|PIWUmU46fKq{uESt-BA-eDlHKg+LkEkM!t&)&zuC^4usW%)rhmdC zRB5u-d5`=$J|TVna*?@Ijwv)NQ637w57TPzb;)1lu68{`-YTKR_IhCrfu;X~4Y?ja z>jK_*N=FAbybe11aKvGrCB7Jp&KD^IanGCch2tDowzdnn{3H%T-(8nd_{1u2zT7WW4z1xDB%Fo2bR78f~0 zLjYrwd%)|)i<#`?ZRH#8JEQAxh-OdY7?lJBHeGaZ9UW1dnW)Jx6C8GYn?RZU`z@db z$;O(r#x=S)kADfYx##lV_ZyX5G}BQyxbPLeC0`8=c@tRH;lh9`e#JRzZF-G9(Wpc) z`CZxp%@=qOp1meg=(xnns-%19UBTkE+}?Qtu2?~Q%Jzg?kIkhz=$!>(8>6`f!YDp92GV;dSnei$90{At;Xt#XOp772!`fdSM1Tz(X|zM zcbF~poo`*NTdg+-QfK@Xz~N7MPL(3JWw{N%3Yhf)-sBuO^ED3&XIkmm2HF+?VUH(xLcF%XIQXKR3PdNott=-f7dV)(( zx;+!L5YLR4h4Ikwu%|XuE!jo)J{SySp8$EizJ{mAg@j{_0_Zm>pjVtbON`+sE41KN zyf)A11`5pau|5`{^O|Nf;l)qBDfRsv66)LX;TyyU2R{1%7dgX%|4=e zwe4-_GJrErF_H05MX&?s(b$ga7T^H%?0Xc)_6?h4ORMI)0F@)6 zzit(`eht9|OoGz`?wsG=yJ{FOdLonBZuhBy5t!A>PA;Z_bZ&U!jWe&q#1Vnv7C&^DMt$Q4oJG`>RQ+Fs8j#xuoVFChE#U0d~&^Pz7cq zJG3%G0Be(_4#)D`d!|mLIAV$!J9Ttf?feM+A9?_Xf@`HkG}LmzBeNInva2g5BKsL1 zkQR`pQ1f8)is=uemr2{8pFF^c+Z57T)14E56Uy{x&P5q_42OUw`?4wEGTv z!ad(mzTwu+GrWOp-Am1V)Z&N7faRoIZ`p0JXvcmCcxx_5=BU1t<+fJ(Y1T6DkNC2h zkVpnI8QS!G)`=0iz#Uv>VJua@k9{f>@ZrmjqD0JV2p)1&Kvs!0#m~S_^r1UjTKcU~ zJva^u>fA?vW$}=g%FeU2te_C&`Ew+jaY}o0#UHG+f3hkZ%Ch|e>(#B$EUhli)Ho@1 zu2FL>+b^Z|$Kb=RY&q=UVBMVhn^7+SDY?X+x|Lk&2#&1o#V5XlvrEap6Ds ztU(pjBc`aR$+rhOusWmV+z_>2+@c@8KULAFYE2kR<^?Kv#6FQd@sBTFV$$Q@Dis*z z1DtJy!?REOqK%IHUlF}PnD5B`g}p3DNpMYRuin?y*>unkUWDNgrKP^r9SFx7t9C_} zfZn?garOh`rq`$CF*~^cj(9HeP2w`%<88N7#UQ&=SVXG*sEhcT;>&l{48m(hvDWT5 zl*4>A3)z{2L%Fjmo))@*4DuUPMomj%S0%zkfKn2X3J*k~R1dDXPa4yfMuz6da(AID zd?tF)6nFR?xcbm^P_3z?DX*#$zHwtizR!=#c5p2WHk*zM>*TlbLpi!WMO7pLmI2oX zPwiTxr+xen%z+B|OYAiT`Eq|%1AGPsVz^_0I4>Fl6Qlb{WaU3PmhRwxV?&H`B4!OC z_yTsGcwL(XA=)Y*%NhR_@O|T0`!E( z>hO(txRP1!)(C~Kfl9E~Cy1V<2Q%m<-YBe)pn7B4xbIf>SMWg*kMHmWnsSyq|kFw}$8M*Pn114*p zhq=WmtKP~fB$wUX>CX_VAMjsEN;#^!{!H9>$A3rAd*5|YN;Qx6eF;zp$k8}5jnpT2 z<&KX@nL}+ar<3}trxHm#<8rnpKeAbIpiSYYiG@c@zWPxgLYs5q{X#5%eN$T#A8$HM zJ7P?X(4Q;&g%ew<2DV%chU!bp#D%W}j`Rv8V>h6_Pi>|mi9?{3NmsFg&8nOCVSSPZ zd4sKJ=0{7ZsSSZ6XWi?l2JAnv-M&zGHn@2&Jw`o#RQZ`ZG;|*}PVJE$tQow&svHb1 z%jkU;)JkM&7MYQR$J9w`OrLCLSTJqO96Zz_hq7krva0K~rt4~7gGRZkDbTQ%?I16w zbNYHHmE4_bHr`!QEV&M}XeY9A0vG&w6`QoHDkIso`Fe6%)6|fxGO%paC}=(DP|e;!C60N6$V>>vms zgdT|E25m~3)rS35BEM^_s0rke!s4A8*dTd-RtV`Oks-=V$-xV{WeAe`$~Z#en>;kN)_%Qh2IVes1JECU2x1npmETo~Nt^?uYLzm@QPTd{vi-t1TFW&rj zr%4(6iUzc|ti7u!OMKrtq-DvN@*Nd-yIn&XHovMHR5>Lf=cgP^eP(t zh7e`Qo#VnFyd0aoCq+X$bO8+V{Hm%7|DG*v#E6d+8d{v2VZe4b!4~$EWaNdMq4pLF zHPvr_{ks7oD1dt0RbJkk`$q9phe7;66zxVsAz5~24`9Ba5WewWI4wDbj1;5 z{S{xPDgF0bmXv6ge;|?neDNRZ*) zZ_fv5TxP*{xEn*sZhZM~e^!me0-d@0^|W}^n}l36$iGzH zxZY24y@aR4?~IR=h*vnUDitGgrG0)Cuaxnt{*6|XN=YUEkXB2S;#ZF;kM_`*R*M<1 z8RqWax?+@IKxI@9Jb+3?!v3B!D8B{Z;yySBa>@Sol>g~}{yMoNH|BxTJ*_u~Ck$De zP__FbkK_+hzQ1ph^?aW4hH)kQ#>udLVvKohWz^#v-{&dW=~vq!+)!bJ_a~$RWhH&K zgs?;g<0;(tZ+=&_rMea-llcz3?<|@zu5eZJ zx#k9^E|+?d7LPre7<(PZhuLlErjwfL;pW3BuQG<6ax~Ul@Mk(Mkd&TxIlBs#W`}bVGY)IdIPCc8L z;`QE~)){JcM|>jZHPpTy=;PYFjQ-6}c&Bf%qQ*NvGiQ0m`h8}VDxsB0rD)i^;2726 zA?>b8ZZpb*u+-}q#g0}q*8O(~5Vqr_@RrvoZ*!jA*~%|7DqN_2bS!V&^JkbhB_6rs z(zMyPiV11ve{M_n(P5B;yca~ve!N0=;BV|t z*W16dp!nB4Nc#7rJIwh5r&kre_rrTf`!~mtS?$-Cf2{3Vtbt^fN0axQ6h{wtUn#sz zv9>7ilu|*CDDKE2C)2!(bHBUpy?V-(u2D=Q*>=$^@2&uZ#qzs%BBM-~uqTxuc+QRp^?Z2O&1$~a&s^EhUe1QL>OS1Wc=_FzT|tlb#V)Y) zBkHU~95JxgDS)D*e*(}dkaaF*mOSU44vUt?X+vWC>}M{`mQprZM4EzsqNM#(x41oS_WFidc6KvJOCyUy#rBEX%{wE5fK*C@$dkYxJP4Na17 zI~rMU!fAZr@ZlMWd`E|swtEIV`(ti-BiL`_e!mAZ$quKpW{GthO^usT}X)M(KH`!Xw*&G(cPZ=8GiV1wuvwr zPNdJfc*a~BUKiYkTx2pBj{4bSYpp$%%OCUS{@~j=y{By9CFSPfbU&&;b5EJVZYZ5t zwr@@FnJlP0xdx?crLtUYr@s#V8O7pz>HU(*re-TOc`+gkmBoB>de5ReqRr7H>DE{- zM;}=7%TImP+p8dT-lJ(eC6{+iK3k!OZq)h|mza33Mc5~mvZ_ zTNPoM9y_*U1IO2hLOcSbY}TLz^!|Rx{nJ6~&78*Cegjf%~x-Egre6R z`K-#E%UsHx%iQ#aFVd!+rf!m**93oFTi=U&Y+PT^$xs;cv8?j5C?bP03AxPcc9MsF z|43?3Z8*xg*$ypr4y-^=XJLjlygSYN$)O|iJgLMtq-5$e=KX1bgJQYMP;lOAu%T88 zd&$o#l3O}zYScu8`dy7Fb}$I6$*#2)cV>WLJbr(1;O+ZRe^x3+N}x9G1T$mPjP5%< zqKW?8j!EH&u|<{gt&$(ipA+yLUy)>8jOQ_wqq95Tfh-FAfk?|4qaz0vmDPuq=*DAO zrlS~O*@Y4>rAa(Su$Y*xto1mSR{9haZhFLV7<@F&FM`$0`YX(F*3hEuQkbG~FHPfu z`K9?3=jJZo^Y3rtbF^qA118Y|OYBQIL$GPODL<09m<5sUrJIN%gZNC3SryUsE<7t{ z6^m5Qf>Cv-hrrc*WXFOg8%Cn%+Ui!_ByT@ngJw9wo)%C+dgui0p43PTeW0I_6vi$U zl!gXTVmfBP&w!G--j14{qAj7lWxM>~sGeW(3+_sRgiL*bL;vD!4Y9$ zj4(|6oDL)?q{=KDJqRpLN79QU__!W9U12!5cJf11|8iBQks}5278UejV@2Y1 zS2WcE%&*-^uYPOzMeUoMhblL+tbIp4BWz58A@S4lQ;2`Ek2n}7*TVP9s6L(v%VH{| z;D*4LS9>vAq|;Lw*`kf) z)ZxqekjL~=PO7A0#9+u26;bNzic2em){Ie*KmE>)J-Z_)lY-xIQOruiZ{h9hUNunbUtP0k)@tI49};M zs$>aBlH*k6pop8UjF&k5qBdgrdidex@66$+E`h=Bj*SPo(2oY+0REDnrCZ4IJT^T( z(6kRV@jUwp3>tYFu({R;8X#s!BSiX6C3_2P(7viEE_-O`2# z2@;C%<>5XuDQ!PiF|?Zqnev7Zt+zw%Ao*q(`dLX-J8oW=Oaxz&BxeU%wQwpKKlsR| zziey+gEax>^$c;5((JU|F@a|;UP2{@8n}Ex!4NSx{+r*r!Ts+qhJt#MK-Io(%rNSx zpy9LEyq(1|$O8OTHu4^=0`0wZpOh`b{Ixo|Wy!{mye;8!pJ8LDKc{c=Gj&YXjUBI7I3f?i0Bq}}3y zHa@GRgCY0Ko-aYx5}#ZyfO@z(D5Q>zEO;H zweZ#^%x1SiyG3HJTK7h}$h6c{bO@$eO_EMvU#G9}FymDi7|zLd2uh>%7)DrPWLbpz1Tq9o&uSF?QiC?USU67Y{JZpsNmWo?4d%=p5!oLy9(YJ(E^2Ra$2 zyq^XLg-Raee~oG+`$LJyml^#nvR4>>bw+Ije49nK+!s>L;`OL)*nPp{f|$N6Bi^*w zSydH9>+oDmmFRo2w7clbAoB=g=dG=859>=YX^1ESB#h02R%W!*AH?~El6dHcS^1r| znaW0DWiau_n-9oanRq_KlAW1+EDTDB(cX-9Y?^AK6jDjZ8i7O11EkqyAAxusSPyF1 z_0M9>dV?;&`h!k@X_eMUfn42HXPK7peGwNW+Zp|SBCTJMy6|(-VQDrE zC6u?NXy18AO4EK963>|LsFzwj%B-1e1?Nh5DwIpcycpx;Pnj)g*!I0mIg?A%jR%JT zC9NZh2cMvlL<>PCPshJ@;BpMCQzSkML8zorSQ9Ie(cstPGsnVcWEuTAWi9ERhfWYx zsuyuP=@)UBYsGp?MM|5C?;GKWMAGvo)h+KEi@%ZZ)2hZVNTK?~o~>P&*xpqHA$EQ! zO$*2JFz*o9bd8>ZZoC75A5nD!c96>qq*?j)vxyN`s+9q}D!CUplQAocJ)OBlrM%as zNi4Mj(<0b?Lu|5L#So#i^}`SOM*eb%vzelZy*>?F~1dCW_NL?wyZq z50_SHDzBGxgqyc6f{|tH9z16ghrfkIb6tRVMFhGmhenSwU=qihI?w`tX9x#Eov8ka zWU44u*j+>eruhH8{3n?r0%0Mp6AHx8f6G3fvQ|B%B_f!2`t37=w0as>MoZf94)1SN zkh#ks=;4WC> z)jPWpseT7tTYG1h@z+YIp5%r=_iwk=+y5N!&rs;bg!^yzDgV}z^Nq1vQ9j!nq?Uew zJ-J^es%F>Q>bi~7&N2*)?3})w=ioZ-{POnZ#zKM+)L(Z7B3*3Ys`+QU^66n12ThY_ zr$MRSr($9iTMpztfXLmsnI1+s+-TmS+8_-Fm3pCFChZ z*KRLrQoo2*94-&_XY&;^ynM%^|8@tR#^H7amrHWAw`NN~^tp@j07D!xNY3r$LSxWc z8|S>{Vs)MZQW1wr;G?kJ^#yt)li}_O|6W9@hu#56$7TrA#}k^dp#JOqp*?Fw$2MV7 z!L`PBJ5J6?S#onj7f(fP&qFnoZsO-|8FizGrTj^7t=(Z-dE-^sDPDWc5k`KO45f=Y zpGA2Weu&(@^XNQt5}fWj$Jf0&Pr~NP{0(kqy187COLfMWEguXiPM)$97t!2kHxhDe zK{+AXZm&N-)r$Dm(*5fw;vmU?A!dc4p!Q4F96k5>0n1YlkG_vl;^*Nf=jVTJ&+WFx zM1?f7*TIw?ZRf=~JCWj%@#YJ${nERmYg6@!!rtO&ETJq8b1TxT4cil>65~aQS|3jq z@a$7*-0DC4=LLA*IjEN+=D@Sou${BzVIa&BYwe-ckX&J9z2U$jwwoBmHC|+mUGa-a zXfuL;Yq!?&WkVwf41cyJ*WS6bw%;)guiZhUG_9Bw7@co^6E%H `=h{*GGmfTZA? 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/twitter-dark.png b/site/public/brand/ocaml/library/twitter-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..9907d15e99cb970865ef3b23b3f9068152eee1b7 GIT binary patch literal 67720 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�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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/library/twitter-light.png b/site/public/brand/ocaml/library/twitter-light.png new file mode 100644 index 0000000000000000000000000000000000000000..867bf4b6ac4db90e09feff9e54056d5b361b0c8b GIT binary patch literal 67827 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%0Di@fESEpTTtukk^d# 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/app-icon-1024-dark.png b/site/public/brand/ocaml/workspace/app-icon-1024-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1fa3190170082eef6be40d7489928400129bffbd GIT binary patch literal 11293 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 YXRrS0tDn}C6LVHyPO>~T&S}m60FZQ|`Tzg` literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/app-icon-1024-light.png b/site/public/brand/ocaml/workspace/app-icon-1024-light.png new file mode 100644 index 0000000000000000000000000000000000000000..d5e5e0a2131ebb91793aa4fbe43c3e9cd24a1321 GIT binary patch literal 11541 zcmdT~30zHS|NouSO<780nNjJOL1Ro48ZD#_Le{c3iW(w`GNMqoPGA<7aJ-9l58 z77=Ns?2<4lX+sN@XkYJrpXZ!=Tc$M4JMaJf%sZdYZ*rdJw|;-iInO!w7n4PE1 z2LN(&jSQCn@X$YbAWNb@AKc=fp+9}M8h!5oAXSQqxZ=FT7J!1ehSQhrd{L3x=#W|K ze&q)-27{j z?3WjEEBcE$3WlCaBtecEojU)8Ld}Sh`sPNL zJT;Xm%laVaUX8XO0A!J8G$O#BDj;GIvEEboABdwf3yzCI)ODwO;a;k36YgTLZKqqy z40fg4ogM=EhxtU~82*A!6u9*NYe~RK?it4p_GOK4`PZ%&BrS`vTC!HSCCJ#qylJE3 zy>q{fIqSBhs?6;hm5*NrxSLIGczC3Bs?wt|MWO2*giaZJTB_ba<8Z^%J%u7&x2(Wj zDG!R}H2mx7jL?CV{1TsO57y)+jf)7o_L!alsdhD$IjdqeuX=UMZ2s7DImVt(^zXH1 zyed?=Kkon!OvcNnsVvb+5XGE#vOiT_5aZ;pZr;53%+834(O{IFE6B1)tZGcHSv2O$ zMHBrfEn-613)Mt}sGPuGe+Jl8Yq7^`OmrVR{v@ZOhLN_x^0{?&2l-_uytPjXloUYO zwrP0S+=pdmyG1t72d7SgFUAX$#sPEv!|!{3hzriE%|7Qp{c&j-Wj2_KIEyn8>;z4Up&B@|u=~clVrkDq2{+*oW|%Y%FXJ4?6I2 z#AwjT_ldyK`OWLs&T|fxy*Yrn+hXRn;<7^ma&J{ev{T8#@?BPaz7afjcwoD9-T}v) zbtJPp{3@irX;jgbJVMm2q+k-`AH%41Axr`9fdV)cl+1NWw4YPxwuzATd-p5StIh8!Kg`#qS-5alogYxK!LEYJwXF<8+LGOu;Yu3A0(+;QMmbHc=6 zpOh>FJPC}QSv9sMC&6tfVbZuM;MYka zBy?z3b^5-e>LUYg6DFBhOMy|DTK=|!eNJkIpNUURRs`kNV!@dflua`|dJ>pkPArF6mEb!6R@4Z~X6NWMJtDdOtNf@lRt@)x z@ zp>@K(kyV9$2b{KCuIIs=m#r3&zgeY@i;*`uKqxeBtWqZ-#MVOnGjHvvI}?>G)1Llx zzpP>TEm`JRQ={9O@Ia|&yTPTwNCVaSPb$Cf99*EWkEi5HGARb46XohEwGsb^v0lbk zd3?$_R1q>#U~k!p7l`4~rJ$u3QB}aWiUV`(FD#M@b3G$aa_7N%R1uqsP#i`!&cD@$ zE&{`tgzB(HHMr^8Y+dMm#7kt!?Yj9Ig!vMYYu85nB<<%x6AB+%4FuOkIRDCF{Bur| zl?oo{4*cAmqzdXq4-;;s5gl=|1!$sxaYHdN0~2~~xCB3{LAJbaLF3hIZB!>~*WLN3C!?HQ)l?}rgHXsCWNB=% zIUl>=k?^~|eAtpad%JBDB0=^WaP?cyZJhCOQe6p#juE@>j2!}_q>~%IYwm+$+^nqU zuk9`@;s-?E&ia|8&dr3|{&t*9YJaK2+OXnarB_zcgKvhw4PNryr4>pD?Wo22)*n8~ z(Di%PNBHa|sgq_*IbNT*ZKK^nGT9wSbb+D^0Mm&dZ&w{@^$x`MArfT2gxgLUEw9!+ zFu{)(1pGW0%!V6Z9U#r%I~DyE5$V{pwZrE4u{AZHF=FAdNI3uM4|{+73V7&Y1SMh~ zplLDYHC9GrgU2B2a_Ns9uNz$6DRjIx)jgky?iTzu6^39quf8Z}A9fj2Adk){US5YC z#&)qw&P8jRJDL#YZSHj4(zLV_{|`4(I$hg6|EeQ@L(AvZ?tM}4vWU>#AyiOmt=dm~ zjQ|N98JDX+1fivX5gP+lBj2v;xIbPsF}vfww{fXW$NfQV#%LBLj1?8pI(LH{cAMf!PU;}Ok zNTLVJNpxYnIl}y6qQ$P!tSU=%*Wmv3ConEBB&fevh79WhjjIm3-4;rF?$93BA_Vmp zO|?hL7C7_QOkr1gL=8x~OG3E>aTBGd=Av+kBL8rL7~~g_bQfKWxOy2D87`@qUqX_E za@7q4XB&7}uD!Y15M_YX_xFnf-GX~n9IPW;5WO`@6qre-ac>7BhaWbBD+v9Mp#EZ+ zaQLz5U~noviC?7s|7_CQ`WQ%Y?%3jEZ=<|+@RAKBH+KwwmpOrjIRb(bqfE6`>A#aP zuEBb3%0;?!(f1;0V)saz8zYkD!EQ@*^=O`hi;I?p3(H}b79m8zFyN5PG$i~U2>?Eu^$k7^FDE?_~MNd>MA+2*vJ%)!v4*TAJ!|% zgxq{J>V#X9$;x&a$HF0aJtrmHRA{0tSuZe|^+jduz6Htw{VE3}ZEDovHuT5>lkazB z-!S%9wt5B2O}AN;6p=V#%uZf%;Zfq(de;f#GE<2QAB3$*xT^?A9SzFz@a%mdh@ZhX zmJ$l%Ubgt85X>rFB%LMk~k* z-XMteadXIQ47M|^^$JqsT-+ne+?|%B!_R!Kac~;fNebwoINR~jS1eI{qYT@mZ4&M=zKQ_zk^{NVsK@M`2tYB7;Zkujz@_W zgLShXDh)AvB+HH_1bz!3-oVp|iA0W6UY)sMI)P$hkHtFZr3ibr_<1O*BykQ2X_S5* zl0_|VN)({CU=+)~0u@j<>_2>x-LQNn7G+72HS9Y#uW95G4i6KT!)_)MgDi`~#d4Sz z2rPqnu}+c(u|Bl?2VHD6qvRnuhSh`R=s&${B7QEH$d1@HYeyFFyO54Xu_GL{2hgKY z95WCcu|#-x%B5sM1mTt5o=?!!VV9zQ<|5C=1ul>)yePDh; zlY=WhNfx177$*#pMu74#0ZDi1BP`4j&Vhs^9m2INmp`00ASjj}c%6-M&ruX!<_Ji- zSEi7NxEcQ)Q`mKh%eYe{x_WGEuE06>C|uxJuAAm!P$+m0N6PN^vf?>3IaE6%ignSP zE)u&dX)eqQJS_JgI)O3xJ#%l016id1YMvPT>0%Ks2CBU(BrT3}(qS-)@k6HA+t!~< z_ICW*Q~Sxmi0n`uD)OK6K5_Oz{cL~%arn0Ytb^^r;Ckbzy-v9sN;jji6OeRU@rZ#` zT-?^Q-DyR_I1`9?3|nFNFa0;N#|6=AQy+$QZU8QB+-pE`#e?1Jlt8h2*lP+ER(HkF zvw61e7&clO!-ZYOc7ech-Sj!y!u##H=ms?)X)$U*P^>EaS28)pkHAQd;dJphl(Ei^ zVRAQ7yv7j_lvr2KVg7M6DzXoKe?E`JN0811z?r5oGz8Vf{2!kO{y`ZNKO6HfR{xtz$lyx4vIy;1S12gp2lo3 zL#OmqbH}m;EBm3Zy}nv@M;5^L@~jN>8e(E*Vuf`05Cr~r^X+{XfcdVX#@c)H=FMnyPWFzsRqe-|%(=ef zDAqmDBVBL&y`{;Hnk1v4us{1q0hg{w$12^ZR(IaB5&_{ap7n=9N zL=KO1;{q&$k*XOP(Pr8!<$wyhvhlf|4_vE$G<7rjr2S+y9i1!9gKMHY_`9>tR!fTq z2RD4H4D_#?e4p$1)aD~xUcGA7LS`R4c9w~CM9MELKj3|jmwa;K*^AQ&g;O3%&nMfw zS!@ZEw5n*!v1hN7O8lMQd#fwq-7`X`+_(KmICsiB?da}S(Os`E%h9+0kSl_SL-LOu z2NAHu=<=Fv+qP|r7pChsmun=MTg&ug7-Q*?6OwnJ-}jZg7iFA1EgTOwW8x?SHO;3% zJTU6}*2V_KC$BQ4JTKt^IRpazbosuaeZh0^Bu!0}pIy~!F1Ml|ClnP0Wm-6R^zR3c zlPBBzdOd7PPpeqE*eeok?%R@cJ==o@Iwi4D?flWCDURhQ1xab|6rm;QYToYLgq8cd9Zxk z3yX#ap;KaC0;ris*ZhWp%S*7=+iEG;p$0lJQnU6ZI5(*R=y>^BTa9kaaa+7NaJ3qQ zgkMU%Fk^G~9qTc%(QQxBQ5~fs#txz``TYWpd^t6F| z%V2o+QZR+3}2Ay$ikE8%m`&i1)zmbtUZVtd9c%?%5xFS!wP zMb2tZgPo6)OTV$p90vg_4CB7=aY#HfRXFFct7T;#IdvhJ?9;L{)qa!bzW99H1_I{l zl{+`g66j`UPxcr7)JM)dN!UMU0hkzTZ8104{Gnh)ns1yd0e75I(!cjObJb--=Juwm zwwZPhPiC0KY`%Pl2WrVTewt+;U-zzp?{L<-ZuKKzE>zatGcr!!{QLEV9{x2Ru2qL0 z)vb!O^iSbSgWS#V)s599X&(Lx*FyMHhwDIr(pwu3KkM&ob1y7Ub95_tbb7YObV~g5nL8!gX4Sgk(_w#EM6=ge zk0)nh1sS8Kt!hy>yS#r*`O>szmlrWxasp@W8y^vW$u{%bjP#Za6@4@^5bC)qQ)5=G zAOX!)L<}N4bay97+5MFvs#JDrtFglWt_vChrEz P2beo+kzx1@%RT=B?UF`~ literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/apple-touch-icon-dark.png b/site/public/brand/ocaml/workspace/apple-touch-icon-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..41e75452148080741d68618890553bdf41f55b65 GIT binary patch literal 1274 zcmeAS@N?(olHy`uVBq!ia0vp^TR@nD2}o{QKQR?ZaTa()7Bes~zW`yzt<^!<3=Ax5 zJY5_^DsH{Ke!e?2RpLM)@1Z~gr}TIH&(F=Zj+37I?vA|iteY<^louzZ8Qpjx;nmyI zk&=})Yh|N~*iH_|D3+ZDi_KDXmt=@;DNtAusyju@aks#2w!o5Cw~ii-JePYfdH&(= z@)pnke%Nz<=2nHPibu^(s|(09ITvv79aOYnX@3CXpm7U4&K{U}?g<~ywz&Gbe`}{l z)!B+x?cZ~0)7DJ}-(2l1H@`lA{v6A_eEIo%iof2t(rVl8&TjoV*731K#H^q14($2h zYqINa*6FDiEwiU@RTXhxe1HAiU6q;dXMS85vra&%&*Rv6{qw#PdaU~Rx1Fub&-Pxb zJvl?>Yh6|OfAQtpc|)oW9TL2&c5;^F_eUL7>E7NOlLIdm{`vUw<@@{de!O~fV^)@? zf{gx}T;Dl8)rBsyaeo6Y6}sHrS@mVM`TW11wr)&HEYz@A#B1`>qL1$$zr~`5AK$jd zPV6t^0Z8nKs>gL z)m`oKK8@KYqApun%<6vpK)6`n-d4NwZS=o{=v}gW7D-n7vc4^QSIK>=sNjHLb8>#^ zw}3)BnSvvaJE8(BB*5V{E&VVk_%!GrR#>7ZIjvyL>$7<)bZ*6*&U<;fPw)J@3Z2cL zKc0CP`qGwp<;kln|2Ds5c3$axc;(~QhhN?B$f`Md*Uf8YO!dBt1^!uU>Jx*c*6QAg z$(4S2wr5I^|FkIeQ~WF~i*G~*D1@Gx8v6HX`md;m0X%(A|JykK^?n!tOgEfN#~;-! z59VZZ->J8F|9*Q8nby8N!JJE?wuT)KTzjqQz{K-2WfqF?0`tT?_v+>Y6Hm^PaoqA| z;=5yqCcdvy;gG4nuVZPKw##W@*zW4(Q%+CKw7mB6;Kf<*UTms7lkqfYrJl0Vq&$6~ zE8ZRcGh^a3kzJ>j-aB??hMwf*&cz$+pA`RG*XQ?t`~SwycaJ6o`TNJm$1jcQHoK5{ s(|A^g^Y>ts;sDG+lnxNNC2sYM4xOEj&-OdK0~Tfsp00i_>zopr0Gc2>f&c&j literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/apple-touch-icon-light.png b/site/public/brand/ocaml/workspace/apple-touch-icon-light.png new file mode 100644 index 0000000000000000000000000000000000000000..e1199161511400da848baea187323972f66cb3e9 GIT binary patch literal 1319 zcmeAS@N?(olHy`uVBq!ia0vp^TR@nD2}o{QKQR?ZaTa()7Bes~zW`yzt<^!<3=Awc zJzX3_DsH{KaX))%smy^wRi(YYf`^t&O_MIpo2M&y=}6kjsb}xso{}0f@E z^Usfd|6MyzFMRzrugKSrL^=2lDq66#KM;^$A^Gd)Ek9qhUK_60+MzsYV&o-dH=|pHIdcoHZ(Frn zf6fi@Y?-%ntIPck&w742y`QaZv8n8O+sAG)f!1kXGHuFj-dX&+wfDu3*{1E`S54;G z2?_LVt9_lM4pI@nevVYROyJq*XR>S7+U=<@&vyb|giee)>7_LBs{wJ_oCa( z?b>~p|39>d+|I;jvFWkJt~x!Lf|TQewU-Yux|hk^zZ!NJM6*9^VCJ)UKyRYY;!(z$ z`#%p~Q#H)__XR2Q}NlNzcF`0@|BN@vhg>M&1)&E?zO|8$)E;i)j z*-u^;MIFjoe?PxGFYe#DxL0_F2-WI^FKBeaMe9Db}o>Hyl^-0d6Js-I8yYMowZp6qke`(&l8ul&>*Q(g#8 zS5v9#lfUzOref`Ut+&S2B_Gc?mb0}ieqUS3wWQINxm~48jqep_`=$pPf6ICOZCKhj zJ?;n-u=w@#ZobyR2O3$^1H;0^So$tK5(?&AGU?HzGMT4OpE^ERG0*5|2$SYSk1da9 z*j58InC0F{&{CZ8KjD8L_wjFUZy)->IW1GlFlWZiJC8nn^72|YUsF_6R982=>44zX z3k4Ytb&Z^N4|Q>I-%jO`wfb^nNu~?9N{)LX@ z+)ib!Tc^zOtLn2-pFVI|IrA=y@ZaCxv~@H(^cE_+PjffFuxl5;)l-v`oP2lF(8~*! jcI46oRJ2U6`o;c`(aulOr92W?@-cY2`njxgN@xNAraL#EF7A08 diff --git a/site/public/brand/ocaml/workspace/browserconfig.xml b/site/public/brand/ocaml/workspace/browserconfig.xml new file mode 100644 index 000000000..4f0a4d69e --- /dev/null +++ b/site/public/brand/ocaml/workspace/browserconfig.xml @@ -0,0 +1 @@ +#EF7A08 diff --git a/site/public/brand/ocaml/workspace/favicon.ico b/site/public/brand/ocaml/workspace/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ef683b4e34ae1483ca5b545c5506aeaf830ef574 GIT binary patch literal 17558 zcmeHO2|QHWA3rnpJZVue!n{iKP_pkMnkb16${eAE6e9!OB`I!p<2JnI@ zQvj^-z=;=tWdHy?{(bur)F(lmvhs(vECB0gz!P9W&p#yu09ywDdDw=hLd|s(?b0QxxutHhI;mVRpdA@X1njdP0Q0jMP>?~z=`3z*X}tHP&dc7HST6<>m$QxcM;afL(w`BO!bS!Yub8%i zv5jvn9Lspm=++VaHynO)blVumw-yNmwEZ#EJ@EgKb8~3>{XN?wUq${cAbhSsK3Dv; zjm8-~6hkOz{23@{;Q6e`$jotqF@rhUI5Wocd*$W7>sD1&b^I4>e~PKf%8OZ2@|q=5 z3$)8-E9gI&tzhs>QgKP8q>^!sr@Z_nZn0StPGwaqPSxTyPIWa?LVfL9 z3FYOjQgapaak6U9XDKd4Mid33KJo7eED3qtSCVoXt!+uX2_8IUo{;fD816G|~ zI%+YGBm!;9%wcT|vj-9UV1J$G6(JMv)EHBr)XdS!O8?A@W3}%c%W`zTz$hQRv^?Dy zQrt6E`$5SFd9d%`|3qhZv~BahR*P3iA$KW6V8#+W$}Fb-u;VW6R4e=v7fs zNl{lRmeH8BXEMT`=# zh*bL0JlL?~h(}*@@eh#;O`by-eO!g~>$5_eg9StH zp+2s~FRA~ueqkP2X|Vs%j8*3o*HOvQ_%C%-aWww8j%tp^f00$g+4ws+8o&2N7LAkr z&*}JmF0$yH?SE!1XX9saHvU-F3(odGvyQXzvp5_-v!0XvPmX0aa58>x&d1+q6P*7V z?!UUmeGm2(_Aj0>ZA}pWEr|X41mS-pv@S|=qV`{oCuwgWe(gyC%@QB(Vf^O7r=gdB z%>_#|^)TM}1Csif9#M=3Hirr|(CbstkN^Kt32l8=&>t?L|xF=bdu8VNn@Zoq96vr1^vSQMG*4d^YF?irmgTydw{_LGk#rRMsXTZU0__&qDv9#Od-u zVES|wy~UFxzPBdrV4mJIF^_KT4mkAcjO zpKqD);#;u0eI|o_sOF~dIbPe>UJsk}E1zZyL)(UvFyaRMH|$_1z{i69={y8c^e_>0 zrs=~2fKLTC2z=;47U)CY;WpghfpvG)MX8SVAp=(lz#JM_*M?9#@CLUbe6gDsU?!@9 zR#1C`yu*nC7%1X6w8BEc4;)ZoEeNm^Q$Y)YP^hS-ALdl^LhbKqyPJJco4#175Q1fuh`dB=v-@Q@5eaIGjCp`CoC7|9xeI54 z1o@Eyr{#NKi32wSop01d#z%jj?`&+)gU%cEcv|)kW%OIYuL4llHSyxJza=!Kruvk^ zdjg6F#Xk_c_D zTF1aS)|)(?5}LgnZ2rGD!j92|D}8NYtJ@QT`! zw(f(f6k`KI^J&WC?TEPR3LlNkg)RJ%K=4yMt@;hC3+`F@W zQ`ep?JTurj*h5rbdMCfYu05s!foa{j7Ckmkp45um(KgoX2``?!n;D{COWT+GG|)Kx g;LJ!$F(I!<6QA35wRl52j6VP@C$3tWWJKEgKSCtDWdHyG literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/logo-1024.png b/site/public/brand/ocaml/workspace/logo-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..1d783fa317f944bacb1bc9f459c4da73a5b95f80 GIT binary patch literal 13836 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/logo-152.png b/site/public/brand/ocaml/workspace/logo-152.png new file mode 100644 index 0000000000000000000000000000000000000000..00f3d9bd1488702b2eb319d0c6be94cc71dfb23d GIT binary patch literal 1350 zcmeAS@N?(olHy`uVBq!ia0vp^GeDSw4M<8HQcwg^oCO|{#S9GG!XV7ZFl&wk0|Uzs zPZ!6Kid%1Q#%BbF%N+P9+Mh;CeZ?krE_rKzGl(+ovq zSFbe>eJnpKr|03}7soUv`*tUXZnMo{oycnzmb+*Te{z0sjX=!{d$UY0tFs^PNz8t> zYVDcgV=DKV<9}V)E-zpAe1dk%W1lZO!u@6*yLfU&;mxcXt!LAoUi-PdC!T$K=kg;= z?sd0?&(@YZOpCs``Pth2{^e!thUh)7|Gqy_ zqGU9&>VNMwcD~d1Vh-$*zi}Y!@wWrnr=5WE_P@(cgeXn&Rz1Aio6S@%I?gb4*Yd`% z3<=-FZfB*i#l`LtOX%Kv_S@;x@_RHdpX`u%ncI7g_tY+_{>E1i4{*6MZmS6YW%cPm z(8&{DPHfz^YWMZUnK4YF2SQBBit^kB<2fHI5p^D944PjNHQSyJXVX0FpY zAi}u2Ea~|#ZuhwVl|Kqzh-;OYd^zrsFOi_taPxV4?d*GUx2~(KykWUH)r{4^^Z?h1 zKIYY1K0kXl`z6bPDGc4mAA7G^IFB_f(_ZdIk!%82!_D*$cXLm-Tg`53487&gzP*RZ zhtc5ooa+3?UGKkduUL5_z(3d&XzOE}Ck$NRa683&BYpN!AjO zce&yfw9$XoQJ*c2GZ>g>O#3yf_0Gfcr;D;(wShk1p3!5rBW?TdBW%Ec;NDQfyKcW# z%^`M!hL?Znjcqk}>!v-P0@57&Las?;|)FWR@fPjddt?MK5Z`j!OnZn|NQrA-v6hEpMI^_mlE(LKWg)?bDgibZ%_IB zdDiL;CyjV|<-SIhvvYJT(NS?0@-a|(b2g*j+gcnZ57k{{k-GXu3gpn o>kMD#-_m;b{kQgEw#=qjisJMUU6#{0LCG-M3#ltL)$HfY0)>%t!0@&X{i9&p16z;GX#TIgmX{U>J1*-z}=yHDx5 z+AnVV8A2LgO0p(gcs=uAQ+&6Ki=X<;&+%tBKKk3=vstHdzv}GI_I?IWcOP4zvb-QB nGVY=M$_P)tfBoyWoy%p=t?&uj;(p-{(1#43u6{1-oD!M1P literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/logo-167.png b/site/public/brand/ocaml/workspace/logo-167.png new file mode 100644 index 0000000000000000000000000000000000000000..574d430aafb55e6c594512885fdf3ef5e3c29d52 GIT binary patch literal 1514 zcmeAS@N?(olHy`uVBq!ia0vp^%R!if4M>)V`Md#AoCO|{#S9GG!XV7ZFl&wk0|V0OsY`B8-P44^0`gwj zWt2U13v-#ca-l&{sz_SvefbjM8%H*EyL258*c>$5>g1t2^X8R%pZ&S<<%he)AFV$; z-&why&;DHHxypMHZ-gF4q~2ogefm#%usMm20%*|CM^&6DOzoPE9ORg~Ro zt`Jd^^{aD!zMkBAR^4t!`KRll#pUlRb8i(_uUh`SFZQg(J_B8Im!GOF)89W{nd$gf zIdk*FJ>UG+ujTl*-}-rpbMDFC_pjJYysdcV*r_ko(x)%~W7v>9XSMqBxskS(UlT2M zUwdDw&$2tq%g^-6l#q9EAAS07q;C88M&Oy?538L;ewk}u9(J!5IdF3;-?}-{Z&vAY zN@aC#ul@QeczevAtZB>NGrV6_*tS$|)%;0v?VGdT))u>IUnmg0`?2=xl`GtQ_7`Hc z&m9q)zf0)cx~mcYgQU-yEm%K4-c`iz5M5f{OLAzW!3rjcJ8PM zxP5Bo4!tJ6b9wLDx2MmIwsl^ReY;@S@fKsIxAAt*|6GfU{^Wmn(#q|}8=8%|WFtPl z`Cq7Z&o=!KXSzw@wP{xla;B>knq3hwKfswD5`OOfgBIge@8>KBQQGMY>T?PXX<9sN z5%vQU2RYT}G(p)G4@C$`0#z3r;#4mI5&~r}IH&UPPK4FE^KF+lwwq7u<-Srl`Z`~KD+B7Na99_SzZ>$7Ri0*wr;I)3TB>j^5D<= zV)0yY&u@nrew-d_TA;?7o|K~@{avhLZhrOCC3g$dIMYi@zw*8o_uCOVH@o=jjN1=< zg!~>$u@!*4&Is~frR$v4YDdLd--aDuJ4fVq-o+DBdao)cn;)FXGezB#`koYQGt+n~ z0aPKJ4kR(cm*%LpiKcDGwn7%H}XZ?ez7oTfOU##{n zOZ)cX+g^)5&vZi@0Zw zT=~-z6B7%{6CDlqJ?KkF``25b6=iYWY)yf}oG!IMI$y?bB}SWulpI&cI=hsonNc>W3iK8 z+OrRHDy{_zFH5<)|Nh*!;b)XtSy>P3eRZD|asSL2ndm+1%6CTIe0Vi5?zd=hc3@y& z*_y?Ia+BOz!+lO4np(2HI-qptnl;nzyqU8gKJR|ml+MYO5y6jkY1HUhm;cB#|Hr!E X;rqL8S~5kz!kfX<)z4*}Q$iB})wb2q literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/logo-180.png b/site/public/brand/ocaml/workspace/logo-180.png new file mode 100644 index 0000000000000000000000000000000000000000..8a23104ae4943db2cc7f46295727bcb19482fd3a GIT binary patch literal 1645 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/logo-32.png b/site/public/brand/ocaml/workspace/logo-32.png new file mode 100644 index 0000000000000000000000000000000000000000..6ca01c7a39eb6c7c0bd3c0f18764c57e564e301b GIT binary patch literal 417 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 U+`+a!0T|B=p00i_>zopr0M+K^T>t<8 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/logo-512.png b/site/public/brand/ocaml/workspace/logo-512.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe4fb819190f38eba4fc80e8ca2bd47290253da GIT binary patch literal 5415 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/logo-64.png b/site/public/brand/ocaml/workspace/logo-64.png new file mode 100644 index 0000000000000000000000000000000000000000..57a5dc7b284c4b695a16ab51545018add43b7f76 GIT binary patch literal 647 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wk0|S$# zr;B4q#jUqj&SzgvkU9Qw`SiR;iB49wJJV)%g=U!MzD(87$XjbRjqlIJYt7nwU;5ph zads8Q(XD4X?a$rTTNKygw}CmIiz}~8iOczp>x7{8TSnU&UthEHR`dAJ@Z01^&AtzI zPbbvGpA>f5qPg0-X{pQU8qeIdQ?7>HdQl|!Svbi2>Kl)RW^o?RBpLXBpJ`2F3|a1; z_5Qfhm$xrkZa~*ij9=J-jS?N8)>>B1J&LY5&zy)S7 z*X)$9{qwNwiR$KK%IiPPEI4VvaDM&ViAB!$md;evPrY$!_LZNT6dAtE?5w`K^WZ(6 z({U;_=Df@owiq%UXmPsYX@7D<)*=66laG7MPh{BAuH~cEvPtKi;o74zPdLsqn53DD z{$MMZp@GW*5OEvEBmQqHZ7Yhtuc=z~_wmjPCI%f^Yr#;J8#3c+y6)fw_LUE z+E8b%aH0O{)Vzn~SCn-;Wgl(0ms)Dc|%*WGTY>dd#+`m;yn{hwXD7g9wv z`z_y;RmIpjbY4kZ`+@Vp0>9)eQ_p#mw zr;B4q#jUq@d_5)?${hH(KcTptGuCRG?{dj~)0&Mwt4!n;O;vd%pfYJ?g47GH<=>iG zHWsT)NehsB^}r}gQ1%n6>!}x4JXdxIInCYcpt$SrZR5E!!n4oM`}p_Z_bsP4-+%t! z#%8*2$JvkNFT2C6zV`opr}DomT0eQ?PqV-8AD%j*oOIkHf4lOJ7176%UMs)b8qcry zFG3=x^7F3syPUixZutDG_5RxIujQ|pH}3l3QJh;xCzwzo+kD z3OIH>Py72$uWPk>v#&TM+fMB+WL_PdKOw!?m7hV2 z$>fPD%XvAWuM8{L7i{5b*u@}3reEON63iKrc~8o#&pF9G+3)c8m2QV$l}vU#mbI^{ z`O6J6tMDz`PbZl~O`XNf8++aF#S*bsy4TjuwV(B)nEODIk#|?#&dA75S04WTBk%d`Fe%ugg4$$Fd4 z+PhNiv(V{Z%USs&E~S*Eh5eW*ANA+NwUgpbe;6f#Hfa8MbgmBMHBVPRmvv4FO#lki BSQY>P literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/logo.svg b/site/public/brand/ocaml/workspace/logo.svg new file mode 100644 index 000000000..e157ce238 --- /dev/null +++ b/site/public/brand/ocaml/workspace/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/site/public/brand/ocaml/workspace/maskable-192-dark.png b/site/public/brand/ocaml/workspace/maskable-192-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..4b2e51d98f01f34e1b505c28946a001118eb1fee GIT binary patch literal 1116 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE2}s`E_d5VcaTa()7Bes~zW`yzt<^!<3=AxM zo-U3d6}R5rJ)b?hROY}(KFPH|vSTkT*&2K4#*Vb5nNBX(`!;FKO?~8LK7HL6h1pRz zZe+Z@vP&s=j??iE0gnEM4s<@+!feYaC(Cp2;YIKMWOhmB{70TOZU>sx0_76V3s>6i z`QOm~{_~^HKkv=k_I9Og(2H9#jSNB#OdbrL44ev#Dh(N=2 z8b%eMHkcX>m&L8`yxryQ#O(V%-P}qkGqdJ)eB8_9UxoMA*M58V{q?a|XS=(nhp$Rj z-p%kU+}8fq*UztI123-JTDYWk*_00E1@^nYe!SG0Jb9*%y~BTlYNhMJ%q1@qe!DEx zwrgn0t0{T(>E+8DHTHnRO=m@S&XZc;KR-MEc6t07hQDR0Uw{4l$?dMrn04b>k$Vq= z?@{i63;yrre?RIGRiMc5<>n_72ZmPm zFK=%iW?&SNyYM}`7(@pMI504>(1`dic;VL}>3%1LMpP$bUuag_cC6Y z)Btj(E8~hO-fz#9yWVq%H+RtGeDPL&d)%D7?mg4z?^wQlH@iZE(>9}Rsbv}2T6ehx z926OKr)-naC}Cg;sBmzkolj9rzVKh=D=XufHN{$$dG$qa zZyu>;7kX`6zB2f6=i_Rj;;AYA{>#F)-r2d~_reub4?pG>Pd#_|>A9?rj199)C%g@x z?AF#@t=;7g*gElUfQfWMPoCU6*r?0>j$;jMpOws-gg4qvjBZ2Na_-NA#i=IzU| z3%jpf){s@KaU*r7&$YQ$_vcHWv5%6G<9la&@LAXGH=UXax!=!+pyUI1eqxyb%o?D~ n1I#|4+=P@@@Tn15{f}XC!hR;jzP~qt#RY?>tDnm{r-UW|xFC}C literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/maskable-192-light.png b/site/public/brand/ocaml/workspace/maskable-192-light.png new file mode 100644 index 0000000000000000000000000000000000000000..71ebade3513d1b1b77b85ee4469fcd99859633f8 GIT binary patch literal 1144 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE2}s`E_d5VcaTa()7Bes~zW`yzt<^!<3=Aw< zo-U3d6}R5ry`LRcDs$jtWvY{)$u3Rj>8Ed&%(k1oYg1FlS*}e|DYjfnc~1jk6xPg% zy1{?bHT%49ncyam6$Z0U&QJ`hOcdu`o?R`mQQ&!o!Nf4DRPjcExgQYRbt6U?4kOPwkgC_&00;5WUN(0LTpa58iQvoal6qp1Q z!li~$1*i?CM#JU0{x{#+S$lT>6d6WN7r{&GD`cQrT-t7Cm^RBO}-}gHx zKdY#OV?q7Zt;X%^-t5%XvbwqJ`uVdmuRE9**#G_+aQei>zLoK648PiM3h$h!v!Gx4 z*N`LanOWV@So?!r|Yqc=kFEFO>Vz0D$RHoI9_F_UlYG1{By z`uy0^mEvN{=kMRX`Qf^ArRB@!>Fu-3tzS{`y7{QS{mw6YOSEqHsZTRmyU%u&RQCHD zpFaHY&3=~`xm#jEjc(M2fXY=dVIMt`Jd1v=WndH$3ix_vDuYJ(Qf_aJlk6)N89fLN z4rUH`7pA&O^JH*nYAC~sb?f*R+mq# ze)XCaE7q^)Hw(X$=I_IpdCNYSbpkMVfbtJ82Z1saB)g#JF(TCjt@*{gtiAD2)U*&k QU{S*0>FVdQ&MBb@092WthyVZp literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/maskable-512-dark.png b/site/public/brand/ocaml/workspace/maskable-512-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a11e49987270ad937890eae2e3b8069de33da7a0 GIT binary patch literal 3772 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 DFG`oh literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/maskable-512-light.png b/site/public/brand/ocaml/workspace/maskable-512-light.png new file mode 100644 index 0000000000000000000000000000000000000000..1c2a04839df61b0cbca73b0a019509bf65558353 GIT binary patch literal 3846 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 XSH&%HFxUW?X&F3S{an^LB{Ts5;=YbG literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/mstile-310-dark.png b/site/public/brand/ocaml/workspace/mstile-310-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..db6a75ceabb25e75001452cdd052793dd8389e41 GIT binary patch literal 2178 zcmeAS@N?(olHy`uVBq!ia0y~yU^D|^4kn;T%0110K#H@#BeIx*f%ydpGj6R8%4T5T zF!6M845_&F_SVhrsi`stJ{m64Ie04dnsNHMnU?9tZrT)|TcJB6`dw;N)HJV^zK%P$ zWMqbIQ+E>Q6mw+HTA_={8J-J&ac4ifFIfBNknsCC zrdc(Y(B@f%BPg+Vxr#i`L-2L ztF86!?tXY@U5?nr{aJ^^?9lJSXb-a`tzf`L-*$FD~9veRAa+-rg7YRMq`*SG$$WsNI?#s~}bN zw=Z?)wlJ6O|Lbd#yRAbO{cXRLxmZv(ZU4Lb-wvLe%ItM`$@X1loiFCEoo^;)d$ZiwW*UA3BvI+UdJFBYtp1FOp508*|%Wvv=OiLMnu zbx;AYD1;EjCI!}@1MvX;ISls9ek-}>^ z$Z;V3Py%8h#9eSvu;Za-A*lt)L;Z!OLC)FUu2gtY$F!+0p7gybzJ9jy=dqt!8_nPC z5D0WR?QXIqq3C({>}Q+8tMcz{<$(xgx$##l{eJ0LW&Yh-L!j3FjEu*XlW%J86*oIu z{rle24y7o&MGLL$;ik&&I!@(j1u0^lm?Fl zNXSDH9wZUMrKl4@kXR(%EO6=qCwaI-V5tL=@bIP%A~FO`6Y;<5ttLyCbWQhMo-S&% zx=2~jHKb4|_ubpKbFV~4OvsO!Yz@r#qRJN=)4de8Tf|?UZViktFh6S{u;38YzxY7` zR1AbTl~^p5p1hAgbWcvP_r&w_YUD2d3+hz6->wxGtrqOEr8z*_ zS|ohSTJY`qZRZL@rsgM=mkVA@vFgsKPnLBL{TQ_J-XTFd?$$#;ZmGHOUk&JAp%s~4 z?S4^cR%Y*`drmqo{CZ2;+*aLrKh5c*PI*kO&_(4{>pYiDz7{m~Zo1ap$)|b0%{>2H zdXnzM9UUDn4(<%xWSOZOTDjaM_O7d)@=T$l9$V^l*KU0ry7QgZlG)wY&d2!s*CrQ- zC@oU1`VcdVCK~QwlL>FvxAl%A%y5Nhui-7Eh%b<0<8m#O`pa zjmc#(%C%Odq{1<78Ix{QLSfuSO?!^PBkS3o{o|bTJ@4=Rz3=;d@9%rw6YJz)jb4Ob zghHXvR2#qrg<4>YJc>WS7Qg4KCGclqpp6F;g_3!PJPV2=Tn?a6ibtt{h3m2QKEcF+ zoky4deWct;jbiR9A_M)egqtF7CT-^llvQmDYBw72)v*3h_2b}YwJx%T*4iEpIrb-Y z1ch1qvv~Gt>P>6)({65|(;m}F8fYe-bWgMT3*Ki&eFDcS#-i%Cbn?4uE?7}B zbK^XJ($HJzywI7-vbA)zbj5)j`~CAfFV4{ z@3HNU8hy`glh^`V*+Wil_qY%D^6Re;tQ3szZcSMD#aDrg?F+o4=4f6b%4A>Tj|Qv` z@E;>UAx$OBeP3wm%wxXb~p2lVn7y#+Hev{S1!-v?uzhcW$|kBONcDvA@q~(>1Bjpw_kEGCnSf%HRl&f4zq^awUY2Zs z-xBs(DXLNqiXQNA-ybbl09tH~8#pI>p@!&?}1OJnIMA@A8KhTx-q!RMj24@)3(g6&~4FY(LZ2rrjuRjem0Jr=}# zy$6W*ur$A{OaQ6*K^BMfp^TnFT`;;e$n3Z&kSNS_Unz-WeCo*>IAa3DtECAPwgHLW zeD=eyns{C)c>`$8ysZqa7wrwMEdWB-gfE87V^5r6D2l_ncza{zt4BUss5k@n?0DV$ zQ4B=|`h?5p9*6cX8?;{2lcJ9-#+OUEEpQqVC#Y}iTHG`HEbf=2anhQ zSPHzvs=_oFvqaXDhFLGy`JhQc7MylA;gl{MM(^JdV5dolJ(n;m`CMq;SV;Y>MYB`R zR67a%XL6)Cgg^C?CY07SW0e*!jWx>`!Kd~$htN&{iG~=8Q6}&qB*5V5GKu8sG8Oth zxh*Ws%bP(9x2|h1if^DDJ5TF^v08XhbI-mP)tw57hdMShWkHtqIYz^|cfXCi$`9`O zYe)U_yuKUTTiscfdZm`G!DfIg`D&%6 z98O}nwz>6@oBOM@CUcrl$STgr4&Y`^eq33LpszAeJNs-oDOtDf_S!h(O#~|y=swoV zaOfiV(o2QDPT73#5y=v`b4FJygJ~%pPxx$gvsifBr&AaWW$!c*qyku3V{$+s4n@Rv z9*4$9H_LVQwy_YeBu2xPR-auH0dnw3;axxrIW4gkTmvk&807Gz<-k#-Vw$eMlw zTxe2^Q^K4k%-b|+qoxEjhcG+&9BAHH|62gxB>(n0NN?3tT{F0d_>Y?uU(+2BsEq2yjJEIZ|(k4BP_SB8xqZ?M*h6`!@_OazA!HS@P7fIwllzFw) z(6kZ_rKc|kJn<3r!frA(KQ#W20G31g<^|Bjiz=1AW=W#Fni>WT+f|vHgitOqq*7HmLf)2qD~r)Sa7>?g6CmLe;Tg6*yye$uS_hEL>ew;CybO5 z8@s*w8zLu0G{Zl0XgBQ2um6cxC$`gXB}r0KABvyU)p?hP?6CPIhQ(-TBvOPlT{quO z-0;?Z11Q=3*E{3ggP$@K)uD{$YaayzdKPq57Z*Ver%Dp?MO>VT!gkSXl;r zSJ~3WM>ibvy)V>sDrd+jD6P@GTjFjm^LO8hqEl4;fL(B4ZCdF5ifj_fdJ8*{|Q zPPtCUPxL{3>H3T=pQ5UhCx^&Y<1t;2Q%=2^sLcju1};30r>60DXYO|g^6W9+)E}k5 Ya(}g^bMH@9zHY?z?l}JNvuSf9O;9*I!k2b#+%&ch$+)lOe!;z`3(O z%8%c3r{(;`^FPYvix)3kymFa}>dNISSE#PuxJpHRo%+g^Yc$uc-}vPhnqR1{($dlX zLU;QAmmfgR{P^u3P~C&YV4cd+`#@W!fur zwSt>)@M|Gr4+-hy9d*A5{D+I!^Iix_JKbh10i6G-poHp1DYU>HL{< z7ycmi%vl`~I`f_f7@@SI?b} zlI9!@Kp9YYe^-E1SnGu`1=DO-#ON3$vazCVDNvh`r z&@iC;2YOD%vVQOQ69DV+#@~_O_zU-+&GW`fxHN?k*=k}13uZy2!_#^}h@miv9}D&g zD93?7&_#WfZKlpT-QFdaomaQ$XTbDR6`hDRI!?;8-C94>@u7TQ`F!Pv60(7dlz}F7 zXA#}eAeSf*;=b_HGv@@L1zhbW(7R@T{BJo(mAeD~GF$&M?+kt1NTsf;_Pvgy@B3u!U|)fD)_GE9+)S;M%Beg1tA2+k0Fb@0tV?pf zeb?=+iO;dKbs7JswS`=AShPe={cR1CEvQtGcj(JR2yt?g^l3$#U44;XtV@5peQ5aA zbm;!80)K6Z-1$xi>~WW>T}liZBMUV+iaWA=U3YJu?`hjCjzh=OG<1a6sMSs6cUE00 zJ=(ozDSt5h^9XKb{+^Tf(Zcnu%m+ya{(*Sa%@KBrmFp|~mnvtZ+nY994+uQRS$DrW zEU^uo+-@sr^q@wn#QKQ!73xm)oft609+}zmDSW^R7LaS5-~~Sr${gD3{*rc1osw6| z>X|k{u~d@iKQ5%nm-bc=2V&(AZaNaQMLGG+oFQnhw|*L3 zI*;bx{Y2wce*F&z2AYphCee7Rk4Z`xB#U8;&6gspoVdX4l_Psnx-GV~p8+hJ@_EDF zh)Qxm9{I7_8_OB)!swG=Q`~E;r!KKjQnjh;u_1Cp7kVzayJ8jxUD34#>%4z2T~t&~&lS%jol6a6?F`%8nLvESb-N@O?zWR0beha74h)e5WpwQqGf zZS_(zAFr=l1T?G*j>zyMtUDo53$YryNwlE=^N#__&#)nIPJ{AIuiXZq-kiW{Vn)Vi z%5Oh`=Fn_lJpeher{|z2K_`HcT=HvS*isVO{nD$3)H#{`2rISTFA)5c2EnJo5NtNE zTvfev0`S{ZV3N=12OAElW37vD*eNxpeg1V-l@6F0=45QvmLO-GT^DES<%5-(+ zPksjce~?cmmBaY%z_tzjH20VA`iC#Qg@qk30=aPcL>eW2t{owH2Bs;cd7*Dm1~tgu z7MX!8-ECZOy>;T#&lLXIwKEPa6TS;yeg=CvRAwDfw=uNA8tB5*DX`TqE|@Fd8G=tM zExc*2xndXsQbgu%YWZW_gWc!U*Xwn^QTN|aTZOuH-k|pvhCDw~JJlCBs+;y>F&NOk>@Hr#uL8h`WMhxh4HD$+O1cU5IkI0r6nz&ssHBNY!RMgK+WUL&{?xUjtZbIg;UU@KI*Re5LaBut~Fzf)0Oy!TuT5<)9VMgG+3&#zp_;fxq7 z`t4`Hw+{P>ktcv|w+_dpG7IUPe$#5?n;Dt?d3e`He}C~B%RTz#v;>mGG`eZ4C6B-T zit-b2Qy}MOXr0Urtnt1=kY(0?pi!>lhL+9jYbN(F+IQ;9Ed@*uIH@o?9TQLfMgU6% zKZ3P0Ymn~O&zsret)ek;U-DcE+aS=hHMQvKwPF*zYdZ4ih50SnWDBVt4g+$ULSW3h zIV3n*k3#(L88}J?a`VQ~d0U%tgV_mOg>BPJ5u$cn8UU%o&{s=7?IOKZjG{U6HKP<` zO0bOgwPzSVKDZD9%VW(@s7--F|^f=485x%IY}UXyCRkyro)XDoWSOO(Y}{<;Vu=l`YmPcssgajfG@l*EwQt%ds0v^&K+;fW0uC<*ki7c8 z4TK~}yfiF(%^FN*nNms#te-m|dhAK-7bbuJO3~7%PVZf}Z;{HwANHm&@AvhNytnGk znAAE&JABqChO>D8cFMYQSB&*~vIe;+xV`A02xkF1Mrki(@B%3(EAPL)T9L zHDkwM9d^;rNu~46DK>*rD7j#%4ugaiMzuy_(fLH%D1R;++>{5xZO+Cmz0QLqXJFN# z^5%bYV*cgxe=dD-fw*b7--{06{CHR(QN;N6+b8^^kj;Cv3$C z4t^G;NJj(3yfR~LC;acR5PW80{0L9P26t}YjzKOwVt#vNgFcPRZUJPVGHkr&?mJOC z6+P_w)$HcokCP0yCCav9Q0npasu)b6lg|+L1P~#idx1{ww+nC1Y&zy2|NcGnJotF( zRktYgMo;oW5pI`iWW&@+l?od5u>BA1aI=tqN;`d=Ds)u(mwhEAAB@c0m92?+xmt(N zsm>4r7ur&^{8daGTN^!|KbJmxt+Yv zp%13^rP^}nq0i8r`hfVg7*@Y0og&iys{Adx^G?BMdon0_v2G+rpw zo$1A(`Nh!O{p37PFnM0}T0ryE$MTh2TVmX*$dVO8-lQWF6*;}K_t1Q{JSFwlOC)6W z-lgb68nuHY&b#IM${H4hwUyt5eLLN8%z_32=QPXM49k(|O}s^ZW#GQbq)quRDzA|d z?ZdH|^IubHzh}HeT1lvYhR(Un7Ee^*Q%fl(Yfga_IYYRcz)b!}ES>q-ZsK^opJapg zxtxW_k-Lbb86%{}DC#}PbGlf+#dK0-V@t%mDpcrp3Wk@R#i@E#TT}Wi<#w$g!lUHD zD8(sd(kzjIshokS!|3{LfObkU6}tw0$F{2SekpIRF~+gSjlR8&vQa)fv@}xbI(fP+ zTgX2LDZAG-xYpXU>&^HZaOSc=C%P?wY-lIcQiyA!~UN*&m#UQ}F>Ydj&`RHMx(esW(XX>iG4HYos4#M;C)U3DCtk%!pm zdYMyeNb+7CI!h8YqX@BLlQQO-P5?Z4h{Rt}X+tV|1N4y@t^LA~VxOh2QH^|Lu~El{ z>5q<-=sj8AJR_Mf3j6DqTZ!9yw<3x>7W=Rn>8{veaav=`m&PJHLC>ai?LG`*#b8vG zxn7%Z-zYdD19oIy!-X?yCvFKiC$W)gnvj<29D%D;PFHF3r5HEd!?HlSK780*_(2Su zAq_$IIT;r^TRTB)f3S}c@%bF+Nf&|~^N--s-%(h`F|E7pUH&mMeHr9)ozl|>Vp3UF z{fZa*=%>AT>r+=-app5z@<1t=?LZq|JXO*qQ<9#Vnd~Js%P@nS)bCLlw_DN6jZHzXE!;an!VND! zN^W|Hy}m9|pznr7w1~i(tUN_z7aGm%Mkll>h+`GA*747ulgjLv4J`6^2G%mZvs4)t zmK~LVhXu3GqoRf<)wo#jkYgM%im83X+g(l_DZc-r z^8~OQ5rPoEQkL_&l%{P}>sb+fM}bU*Q`6aEAqOW*L*z^I=9=nG^WKp{r-WgB=J%7d z0KnUVYSA^8xPe&@>g$nHTiZj4cfGy5^|z}m=vQk{(+^s>oN)#iA@L7Ci~uX6=`{Go z2V9+#HumaT>x-q&N`*<_Y@0(wG4xHBOih(&pg@zHSSfa zb(HAiWHMM2j@_ftf65n(G6jeB^0}P=yfn9{>sT*4fSSCr4LZ9`gF#z+rGg)P3GP|-CxgC}UqTCm=y_)@XkvCWIA?q2n+6=B33YJLzqF-T-8**#i&PPTMh03%>Eiy20>aqL_cQ#9Gn*^R!@#cH7 zN>OfAb7PF+vvS2>u_{{+YTEdQI~G^q!Unw*8!a=@JI= zpDwRn)cP|2ZqO$Wp$;`EO0`e7e`OU8gTP=WlNdZ%w{sF)I|rwWCiVFQQ^jv^E_IK? zj%(J$WAc0NNJiE3O*BLna!B1|_rAo`RQ`&!YNXJ>=uvJ?K6X0ZkpW^?F1w`HOP1j2 zFw#aA^kKgo?4Y}qA6V{7XAN|EpOQr80e5-8l~#RfWQGVY9Z5 zomhK4GghRGvC~`;Wk}qI?T@bGp6a`rpOcVs57mQKT}uw$!q!!Hwz+C>fd{`nWl&_n z`*Ky8*5qnKz%=#~2Q5XHQ>FrOmDgO#G^IF*h41q)xTsJM4Zo}=U2l#L-`f1__pOWY zQUz^7jxjk#ZX3Ui`a7a$rqI!u!(C5j2WSY}p29wKbj-*dZ<&=>ONtZ1m(cYaL;7yM z+?j4ws*S5yuldaQ#^d9oO87pE%Nd2>Yi#Nz=+^sSDQhg?25r%D&Nn^%B9atg)3+Tt zDr$b7$u+kOGy3y0{o_y>#BitjD6`Cpfyb;g4TY~)6Q0&JIl1MbVlp{{h+=LrEO00g zk}cftfBAvYpn(5adECQ%IyT>Q zE5FmpQ6r0b^l;ebC*^3#P<6h+DT2wLHI*p8l*4R1$9;Mv7y@ZbdqG@Q*7PIe?ko*q z+3x($daaBS&%5_Gw&2NrG1A8Ar{jyYCQu>?p3T_Ogs=K)Tt7yrjoQ7ap65?l(OI8Y z$tQeu;#AY?9WkDALkBVhe%;2JpQ`=VT2F`clFZl6aYJQCy*WFLq4I$J2dCzv;vD_f zzzFuPj8_KW((ae7Q*CLz-wwUhVtN1^;XW+ zCZNH#Btu7WANZhCCUQxG80k2nAI}=jxt((%9DQA>VRZ~|Ctxc<)L zk-XMQFs%fkVo0A*wdrahKEP(RV=26xrK#j-_^vmNiW|rVC(2i0fBpc&nya%zB)nC)V`#@kDg8 zucmOnw}mBLM|fuVAI0T4fBb|0)u#WC_y1JKNoPE27?sL}EM6@u3tx3=%DZ!0EQPa1 zjCx;9oRp=_j3{8xfxo-3u*$LkB3nGS-PdYnuqqAM8jZS4knuyE;3H zvBnP|eXi*?WuWf|<*DP7%4<1wQ%PO$tt}Ns{b{TTK_U;vF zZKE7q^gy?W30$*rdXFZKl+C&5ZPjnp3OEC=xltF8v9TG(nIlcChUH&8=`69$^9IDYn9WyT4vi4Fw9~tlWH+n24pKBA{3*q!fmz#@1DiHC7sfR_; zbL$A?EY6GshB7cPJbVq>e>{bKx+H`s?0sCT40Z+1n{laT}Q~m5RS0 z5_bQ|%z#~r?RLk)rRr{{>Op(wO$v>oYwwD6LRE){Yrjk&dnBqRQk9STkOb6z*Qd?b ztyg*QuY=&TI1~cO)36HCMISd1oT&kI?Ag& zHqvlWy*l4ic;OA;+${CWY!lVD$6-dbuV`KxmcM2o^=$1NG}ftb?Yn^Um<1sqYRnl+ z4i;1MqbM`SU9VmfWM5$J!nTBw;(?&hC;`WX*^z_^VSy10kjerb(*@)K3>lE5jKNz* zIPsnFBflPfDujcjF!C>zs8f^66I8MDHr8?Mlx;|**T~fg7daD#>rT_*Q`Jgvmws)J z*~A_a0f#7XVkn07$ipzG*kKPY1ag5m=?N>xxY79$0Na~|BldJQCaBAoN`EXJoC(k;b zIdOEsjPVCP&nT|8Dw;fA|YD%&(1 zx~xl!t=Jie(05#b2~$fK+jXaUyLWm@JYIcxM)OC$S#o;B0aNszwR7}gj9yu1p479b z=z$tjU1GXiJ^cxw+Tqq_P|%XTQxDxjQ?FalX*@yuTr}!)reXQl5&*!s=>E!R{@tTn zuVykv=Ty@AYgU~|4!o^-9c+UeHWFCtR3L& zw*bCE^01$E6eS}PC-H0-cmqWUp@WI-N7K-Wo(vXWb#n`&h}G2i-+vcIB%J_^ zK=!b5AN}a{+<5+jj)+bRcOr;6@loD6yGH;qH^jseu>Hl53ww#DBqg9qPbG_j<|V2qkfr&%H-W2xJYPgf%jPq$9vBoh) z$yoE|5I$2W8O{xF@2XHmRZ5vRLbZ=H2b-3s)j%?aDR|@h+tp4w#li+RUJY?o4iuDi zoH_%sRRwODu$nIDNSDWU6%j+gpy}i^(EAT|Yc`FDV+eex*G$72K5;Et>&9lX$#Vv< zkN(!fMnXo^9si*jz! z>3c(+!nH8LAE$((il+>_wmTb|Ww5~LrV&}ApF+0rE$$dZ#VLQAVd;O?TVNla!i63` zfH+PMVH2*`$PDc`m+8HI4NLBJC-7q<_8@k<_p*1Q&nv~oW@4fP?gjhdqgT>6_ktz< zu-pl!mOC|cHu#`-COh}`5epJJQFDhULEHZ&n#h1d%&=3NVBub!jkUN?{hj7sKgLJoi@sK@?y_^7_)Z$> zS)#N9{vANX?fnpQmgaWuv|F?uYk+2OAwR}PzDLREX2c$?z|P^M6j5B$$FHu{s`-vN zg*vy#gD0iah1%>WAf+!e`>^M|hP(0OherSJ#oYC6sIg1?IM!{2KJtgiz8N?b*~hct zTLfE9WVyxfh(A=*>}F}eS6p3Qud*uUk9Dwyy$xVuAgL{wrf(wZb{@09qBI^`XNrgV zIje2r#ot4zBtV8jk0@$ZW89WS$kc^WBPsT}IQA#OyxEG-U%jHqwb`$6zt8Bj8T50* z20#^hCxGwxQ1?F;WO>r5EB*c^#}WhMwKHTBUTcO#`a98xEW4sW8yEHmlSd9nx+p_~ z?tkN2qb@BA#V&K_;enqJjq-l(Fo@=z===ir6kZons{4o|i~h!XLU^#XWl zq>l(1=*R(WC}JuUG1h4- zt*BgH&BK7zWN()V|^T_-h){VGjL1sDwCa<6exJ0TKyZT>NlMQ3`d}H~Zh=yCGkw zb>xGQ^B%&zg*BrowHToY<6dXsC>58=B@sn zz4_azXC4=*_bd@SU#Kf5y>NYKXUlC{kuQA63;HatQ{VFoMJci(t3ny7E6nRQ1wS>1 zzFq2(;V=UR^Dy+r^Ssel9k2@Um5G!5ZMWN|E19^$tK+_NKCK=(r{)8bm zw=5gCJX;q@jPuln=e^lIaNvIB(#Qagu7n7^c1;X*o?NeXqcVnDCapXCcaU&_G(^qp z4HO|HNyRA7umtnZ<{L4gtMhdm?iVsZm+^6}*M@($(Q*b$6j;-+_La-3s4T18XN*jp z3phBMut3lR%cA;T)1whDDS!`!ud{xsZCieOs5;ME6bLG@Jz&bo%uIx8nPnQHY8E3} zQQdYbFduKn&P;D_aV_rxPw3WtT2jW@HPl|Y2gJBwRisE|s2~fp7{g2ohKx?BmID)) z2IL@jqHxc`wq{HuM}PH}T|gTJ5fcpRusOL-6w<>U85kx%b{_{a>$jQqsA?aak_)eB z_LOt2QubRPP5D zs~%@Hlg;HdWEGCz%$0DTIA9#n*VB<%+)Z2L`E@DrZu?*qUI;Nm=ZGhl-wzndN%eUS z*B;ZBQV20_cTWHOunz+=(pvtC;fAhQledKAv4fQRe(9wtrRRD7oz3JwX!=uhH_Htw z)&!fL8k@?=fwSVz)U|<3a*{FyL8x$wXIo>J&tubmGh@4@>++rb+2|vwb^SPy3zc* zYW%U;34LZ(Fc-!5+unT0HI{`59?DmAd@bKF^Qsx)TPVQd~kRu<9sjuap z04`6iZS05WK$OLczHPeYADSk7S3jm{`#!UIn1Kwju=qSXrn_6k-<)vBozT)fxAzCB z&;Q#{`ijAzlnjMvYkfR?t)Al*G)fy)F;{Wmk-%~}x^h26y^GJPZ~vHi(?ilg_Q7zB zQ-YViSR2&d&i%K)$r5$qZ1EOa?@-x&&+rd#@~PLSqq)ZxJ@O&1*Z*)HJ)r<`iznU2 zVrhqL;yre^v5axgb@A4B^T{{-%#{6gEchZ5dmK*ppPyn19#tIQTC=EN-DoIZcW@AY zGlX_cvIidU)(dh&llWFn02)njg4>J)6b$5ko9|7_F{)PbkEPft-v$*N`fCYV<{?8Gv*Y}L`8;`0AwqHtd@PJqHl7^II}N%fJR$zLk!7C? zJZP{|&Lag=p}?m%vXF}yfN?0uf>ySDltu3PfJ{@IxwCFs$*1@_H)=#+lDehq(MrVf zY1q1faw~x993CE{Lm1T6VH;PD`mzbuw4^c@Y-$qef~9b>g0>F zfpzK@^!Vfg*4zh!QZ%5gbNK8f(!zI zte!%ixrsZNDfqgCc})p%DcN&J01KnWx&E-+Eq;l=|5=`czNU}|nh<=g@kVB?~?3iZ@ zl&0ZQyLOkR(ysh&YhStYH!G5M&9Cex?TupZg2OGhmQ61)W-h*;^y#dE@+}2hCv=Te zItT8^Ku03CR0h*rsGxFicU#l96d8JN8fcF$58bEjHu~Z!<82@oFOSJYp-_>LPs}XN z1Q|otIP%T8h{D!dJ4`R*%nUKn#=AgGVZ-dcMd$FWydwe^5M>ROb)@rki^-y!yYrT8 zTiAlOidAUNi4PQ6C^f)kuH*zJ?-dRC2<;~?4TjGwBeCid-n@Mz0~0KN<*=YF5|fws zrTc1!fs!CACdMhP<`g{&RYMHx82FO^rj#ax~V z8J+;X3eWiFsq!CD_ji^AByKALqYr&DzIel6f}M`lT@sutoJXVE0he^hAog@c42fCm z1Wu%VCkXlr4rBOd0fkXGfJ0_O3kF}BaTc{N8W#_3Iq#5 zd=5~+xNO~Hp~{Qv&-i0U^P~N`^P%F{ zAy?aFL1}Z>GN_Gmvm8^MOD37QD&Xc(~fKq=gppCn(84x+NIi|C4A~C)3}UyggKA! z?vp;d1zyZ&rCTP~WO$@k$-{jJL!Rd$Mn+QB5#XUkbSW4NsV)N{h#jM@132nAn@$NQ zZ&~F+=J=_{pL(M!)4g8j7a8Pd8D?bacMWw#ar(M0;1ko7)FW$M;wv`Mt5`Fw1d49b zP!<~B0I^pC0y`(-PBUR5%+KTM!`M(ju{32zM3Si7rxLBO@seD(kKX$9guO)5n0U}( zMnqjn=A4AeR?bVR{R!$w4wDJJ{dVO0(X^y}H7rV`_d)SP(#nhz1Jv{=**1{UHB{=Q z9VZ6*o zI;r&pV0X9JFdOaAKgAuTd*ziAOv57Q;@io6>sh9W*b>da*&xNm?0SV5TU~9+F1P#v zp(bP4g7ouZiIPk=}b?Z$|P`S+n)e@Nl$jHk}*T_ zQUGTv*>A0FZDZyrQqT2_S64+nv}|gk5#m9>a~Lrs#@Ae$9oO{uhB>n2KTChAbkfFbNuC$O~WYFYa6dfi~Ws{amJ*SG#3j2^o+XyOgxM z%lg`6B#zVs5#rC%uwQSU5zp)hay-&YP;2wUPJd<9dAm%H5sdf8uBXA4>L8-2&=Wv{ z5AZa;@KiqYUtT`YQ!tnA8Uo2ECC*XycODOzusAp9 zYE%p}g{Jr5$uuk)whGCi#+COw28Ec}DBv&6QzJ%KO$vt=)2pE7O9`p%C9Encj|w`6 zJo7SzYs1p)BOUwS@xQKZ7U}hgy?P)xAHBUMeSm`+F{RjyBh+!jPjBTX66w?duCNW7LeK_0xvq|Dwo|XPYGL1 zL(79c?uMjPlg$~r@s@f>B}+GYO_cI1p~28*ikuX}qX-J6+Ezc0%3KWe1#RS8A&KE=I;O8F>2m$2 z+3|-TPXJq?Cx9NoCS1K^EL{LOd|^9R8|^opeDtDk7@^DdJI8>qRRKz;`?AVB*Ze4M zfMYa9U(H9T%FH1Ol$eU=K0T%XPnNT!*v6IqcR%<3<=ANo6gpEmExkP`o(5hhG>1I! zOgr+Hu{XV2ojm&CFw$3BeKuu7e`5c8Pr}rTkbs%QpCSBzP%E=uQ{0;U8PR#=v^}uJ z-qKz)up(;uZNNhE+aC7mIx}sf{u|=FI|a&InPj~HzPpq=wI4Tg_bmHJv%jJ`xgrsa z8r_!?{mpwleECx~osfFfNs(!&)QEA&v$PzLyf!a=KU0*B;7k)^_UE_R#csXs%O)8+ ziEhdIlU3InU7!D>UEbAm6k4mJ`DRgd_Ac1*kVXA~@#uci3~;3?8B;?DI`cLtl8!SU~{BgwCl&elim2U0R8E;KjpBB z-B^68+I%~C@}A5X!oE{OMmhI;yXccU4Y;4_RoLOI+EV^nH;pd5zvs9X=I{0$TMq_- z?#eu@%|b{AdGHIT)p`Mun!@JyJ`!!F$v1>gbF`BX9^Oq8V3vMU)X(7l^xB`{cep#$ zC9MSxTEt!M4~fW@5$HWmh!v>-e7|1yGr0@HAv3)v0IL%~8nWuf)M=jPR9#Hb70|0< z{})O=m-v6~{ioOd3Fh5$(cJPz=F_%Me;b^XEPI;a16GM^yBZT| zINVZvn%Le}QVywMxJ%UF{Fel_E7Xi%fO?(Mb+`JoJa5M2(>3LJF=jvVy7oMBOO0G8FzS~<9mu@gyq7(lce_1g;+mTg zRb8HmG_2tm3@ZGRJx{Zwsq6+g#&&nBtHmdGay61Vk>@Ri#`Bafev>MmzD{YABZ^>f z;M=F<_wR94edHmRGEWMHLTnYB`xb2zZ^VxJarKAII0Y9mh{=tGiGB8TQLa+6>%P4( zE%!L>JUS+R#VswyzP`{?PsIl3l!%#@rx|h~K<^Sk%L*T-rQ)WU(tWAuDvEOt7jY4EdGM0DIHOheES&f3qn z<|s|S=L_!nUA~2!~<-Md@|rSv-4Dols_Y5vLOm|SQ$0ia~Q5l*worX ztLATJ_}hNC#O(d zD?eXlt50O29Z;1~_wQYt5J3wRKB%Is9Ex05L@&<6_V4Yk1?ynlxm%-I>S z?Gp)n;2=M{AhvS>iH=(w>3!226RZ+R8S=JqjvKB?$NFp}rqDi)m5p z6+0dmL&etX^&nH*%*#`2M!!5*Z$ouAeU4(9kx|{HiokF+b`JDqdU?5PqP7+8#z)as z8ZA{avq02k250CsrFG%*MGpqLwh;(Kz7(Wd8+_$kJ9FPC^_>@AgcT;Mx^A{PYk3;+ z_6+C^V*E^}1{At1bXkQkT=Gk&>8D&`3m+m8VCfDnb_h%LbQLK3T8m>k*t-r!9ulzh zijL+%rK$eN71MX}^^B8)s_4q!xg}?~dv(I+1b~tQ%H@7y;b?ASmo&xL7QGZe>)COC zSJR0xsG6sMCheu-n7mbVdhURo@}G+qoOmz4K$ zvRPDX!EbX_p(s!l(1;I>zPiM1qSr=FdZe~$vttSVuFkVgkO{4>Mti5HV}6>9_TVy_ zrpxZw)yu7P7=?g`-;sR2bzh@&iKTu1gV}=?`%-g3;{iq%h9a9{LWmJ}Ak>7L$#$R< zdYa^3!$5208WANY9;SO_9I&;Tr$$0W>Mpv!|MHnv2DoQlHOZll zmJwzAX3PbxroWAx9lQKA@u6B>sxewWGHT{9%*#3T<$V1jbq-a_@2!1< z`d^0GW5JIYpJ!xKhoxl6iN$Z`EKeMq%v=Q6ORyeYH=(%bfV3x__|=! z2kti)X44o<^3P_IHDYhtP)OQ)p)}6P$w4em z;|=#{pA0m{pcPf<3F#>hJovGYq&v7fIlgd!`_s~!_)@;UuWGlg!4Cjj6$n3p52|M-$a|bT1m0$A34v$PrT5w2qZA z!z{U^KEmc;Bdn8{@>4s_M^6I^h>?+*kw!2=-r#*SD=A)%mdvhEapYmJ6)$<-$vO4{MeQH!`8it~8mZ(UAQVV62MLmh(El>Ka zoA~{!Gb2INnpQ(&sMExeO|NN5t%cJ$vIzuITlc{D3dPB&@IRMam1%i?6fiy?so3>? z;&PIs&4YBG%3fJa9FO^QP3I;FvsX1ZayS%@;YmrkH}&R>_5Q8M(@Xtx86qTi-3)8# z{t?v<>!?MKq&zyfL9c{`PP4ch-(?n9QxV^klw?VxcUMwV1LEy%xgr6sd2DB zgz9N?Xz3RZG{ZUcM62nsYUf{d@CUh-#V>$ zg0+>FJ-Me;ru3t6`er0pF!3?^B~EhK{Kg&U{>-}-(+ZHn)IwmwH~DL6#s|clh!uTHKwl7>z>X8PnoES1GF(x;w6F~XTq)kt{rK*nQAiWD~0wPk`}YDHF+GN zyegeR|Jp>kC$UhzenH6bLd>2Kyagw_562VX@@7=9KCLd-3R`%-Q9G+jb55nolo^3Y zViQZt%iMIB2Zb2r7?+35>(vRieAq>;(7$DpSxw?*Cq{76dajhp&vARmRk0W9>rl8p z4qZVS-%4}pE3!`=-j5CGUJ1Dyp9g=JMm1-pAu~Nv@RW6BB4xA@F6UAqPV)LZYg z!94t~{NtU1oiK@kYolLU7v@=?0^O#YSC@Zxxu z`wyd`8qa?MNQsGA(xRj)53CsHo2NA89TE5Sr(Y5&DK!F0Yd$0BG zwcoYZTJL(x?;SMbjt*7YYS(c$$rU!g9qP8^6GW@dXCvod4WebQXEyj8IP{LJX1tM) z586w_E$#n`xp(Z5uUCE2?pI-UlR?P`1L%?6okFZ+WxuB-!ICmL?&#?2g53{7o3@v{ zHwVvG4O?i1w)(SV1nIijFFA%;j;7Nn9fIS6dy*ni&AZg3bJ|rSmuWqs&`<-+W+z-t z{vdl3T?Y?}dN82app~GzAmc@?8%%Q+;ABf77`xH{1XgDyu@ZjPP+ZkZs^e|ewhd}XgmGl+=cKh@kyH#$=a&=I_RcdhOy=5NftPGD;=0R>L@jxV`e{FNHIY1q7VovUSn{41AAA^rp{9O_O3W zyL}d2I{8oMS3eZqp*R;C*LiT8h>Qjp3hm`PS)IZ z*w@^UQ~FE8Ks*LF!qlg_&gp73aEO6+$1>Xi4_gG$Y&_z zRD`BQ%)|}qRDm%#5(B1f#1*eNCa;whR9Y;WFqym19tE>76IlYj?6W|lfve)xwsd(D z;5Os8L#FWJtU4UU=1PFL#1%*Vr0V;sso%yc4>JS4@+IO1OO1G1<*vuQ{D;8HA!Q3) zHpkSPnd=P;Rrr0T;!z)Qhl7YC{1AH$=;!su(N5azmOT#T< zGe0PE5KX38Plr8)ow94PYjEmNLL6K~72}UQ-XtsGH(PE{GMhNQ=FvPjO)GG@yx89W z%UX2Wf7RHZN?SyHQS{5{3xiWjHXoGU(JOWWe$2NQt~>u9F74IkAgOrM>qoSlOr#rz zv|(XwPc&Ya=a6H~+azuCh!yT2pmBxn@<`6_S~{Zlo@YE))jGCXf7=ScD7y{q zpKohhnpwDtspAZVR7MTPbaMwIjEroz9|Wj;exG;f@h>7rdp_M8JNn{9?-gD6Aj|)X zITO!f&_QTJ*BSXV#~nc4R&Z+)1EfPRD-dU&PJGukQ}RsDuPN?vu*j`Z486y`-N`F` z{gKtAfq}UW4uoYf(&R$f`4fGpcqCR<#bNjEJ?Fext$ zO?#r_M1cjBu_VH|ZVGEJX{A;9piBc)1yf3ca8ZpJ9s40tD$w)GkglJ)OE9}57>5O0 z*k+y*1NMv&p~@^8btF~CB{iQ9bpotCS)4_C6DlKTM`{@=5@CKKR!%Zuwos^?HERK& zQ^Pj_`4hJ`{E5`)B)2~KUk98=g&XzV6d}eyPP@x(xVl-BVjP3~@Eyl{FdP0z41P(Y zSZX!2)pee!xS|SdF3P+o340~&6Wtc+|LI!Bfy>a-DJARg4sLh-c8Fx-(kzbO1&fO9 z6{_F+NklvpG6WrCzWLGU@GPE?_OeAxEW%*LId{ZHmq`3xs(R=W!m2FNEA@7zPk!>b zvyZE0(57SIJq|#$RrKD8Sx+HOx!l6?)AE2BRIR`77w8|fmx>h>Hw10eBpELhTWR$>uIj&+wA-N+exrWN6cWuy4&EiDT+`;-qPL!3a zTNIjhF z^y$X@)`$hQ+)j7!DJsb(sE&;?kheGsv3a+q-s>{jInLEzG2;6{M1>pt2i{w-O8*Ow zHcfUy3D1jz<95u*r7wihtE(n$FxbiC&#d5s&>kCz&0`B?4Z|(>DNF#9D6|r=ladng zgb7>nt?1jK3ob8xU!6N6bN-~0DZB+Wl82GVPId1biG?!!)4C>-Wor$?PEAl_OfXE5=8k$HM>t1rDRR(;ek^d)s&gbV)rgtK(xHp)$(?;T~E?v=g6& zZDx8YcgZBKIk$Ko*b@Q(_wJ3!3Sw%$vHKQ$tf2Kt1xyd4-#v?G$(KnDmYt=NmcITH z&;)C1D?@NpG8?8}ItL17hoI1Ib_89U)<`jF$SCAz3X_83eSlfH+fTG&;B(wJo z!%DBPnUa+f=X;qbq9RIl9-ovaiN(Ti)is>Bj(i(oOzSx^aQ4IJ9w?Qh4=2EM=TDjZ z@YtlTNynFvOBGb$C@w?K>7_3p&fVR$%q9I2>+#q~<_b!`&H>Q;7Y0H__l70K-+a=l zw=&Yvq%KI8kyQiRE1JGlS-u<4GD`C^elh$(tMRALG$vXl;B9krx|h*UZLT(8!^eg* z#$`+F#%@9tkXWQL>n2gt6Qqm0s3IVRW7&MLNI^pCSZH}Ej%p&8re34so@Q4GaZF?s zn(K}dCaT=Gq}?{d9Bx~Fu{P?hi*S~jt|>`mdHb7b$ofGL2kE&1?56&7MX+S02_N4M zkUgEYNHgLG<28Gf(pMfYX5OhqJ;0l+)^c4HwSGG^;qsAE3i?=_W7cAFI&vnkbg0YA zlSs#a*L73Ue9|MIAJ13l8Bc5AV;BPCOA-NhwamSzNLG<~!}~us%|%+9iY(qK_4fMuiAkf2$WNaGP%<*EUt*<2Gdxm1L3E}EEALlKGFgo|;9s=p1- zWe$Dw#<|#9c`Qjc7CL<9ohbq2X{=lNeabC&9HNd?Ac0ca%hRxn&7g(uSEGdhSen=6 z-tRe89&gQ*PByJtG#}@Yr;&!M{z=J`QsYd2ENgt0ShVxB={?dywc_0da*YezRw)XLqFqZ>*EDU%+?MJvR#x5?wRJ+WVkXQSa$O8w=+uBU+ zTwg8xLZdj%@jW4%Bhyb+@gYhaKwrgGiMXCE@*H93`zT!Ct|1a8QeEzNxUyRl74-gK7V0mDx zkn=q@k2HGXWn4}rpLE+e8nb-D`mcq*Sa~1S?_RDWat(3UqfQ8VowWm^pXG`tCi9pa zCODjrS`q5Nl8oh-$Jy2yfvO9Xt{*=0m=KUQ4m49av^AMERC$JUu;B8g%G;+R1o|ri zy(h-W@zCBp}*uQ1%XqH(rF23kJiqq3#d~jD;cch*w|>_Ef@?U@$fMyNYBX zs?mE?5pLh3cAJLN42sC-8d5?b}%}kPIvM|Xh1EA)4iCa z1lI6^ZY09i}J69d9KM-x}3l0W5ibYj#9RwMHFgW(82_bN2`dB|)?dO_b6^Ma4Xp zfxcLqV=l5+*&ptz+;|S1VmiL6y2M|1O!vL$>zM%1?vhST0!0DC)PcL3+M8Aiz_uQGvnV}G}FI2U4P;%^-P>6p`U0O z(h}_1Us_YMANDw1+~ERBBaD06tD|{oF=BNEczZm%jr9S8aG>V$vrwL({>;7nAVh#i z-wej5(B17`_(~&@?CwP1KU+Ci6ZNUoh%zd9aad_s#%>_YPpy1FbL@L`?v9!C%QooK zHS5GK00jfrahw%`nD;YT;ZPPt9Gm>Xki}xAxR0a+cc0B!%rsw``Jih$?{Kr`rCssQ z?$2f`&mKS1YKUmU)WJelfGT%1B9NA73;n^y<~;pjzdiC8+jJ%gR8pQ4W^CH#&K5cY zsCVK?yuZ@7bi!6wlXSZXx-(Bra!>`9Lh_)0OFon*6s#H|L`BbtY2T{s{8Yel!(ptyhMX<$|%!A%ox?`Rv0QP#8CPjy7$>n$Bv3pao%4qjEw>3ibl4QT()q}byW>PGxqU(ZlF9C1 zTWZtNmU4KLdH)=VW&||v@l;kH8VW5B&6l>auC(i|n1xPO-x6>A8Jm;Y7iJZ8gLJ<5 z=I5QG6x7YY?BLbbl?-?BPvLq6CJsJDDHn?GE*VK63HI13^>hQB9pTVNH8_q4H7wR| zy|QtUw#jIu{gxWC3f6K0S)Pup~B)+rOJMr{B_wxhK4H+BHkd0~{R(m5=rc7Yy9OiB{YZ9xC0V5P?g7ilKa zgx1xl4HW@>d=yY0pb4?PRs^=fQE`M(S)qc$&nXcvtdW1;Nd4<$kb?51W|E)ED;e6N zHEb%$$vS5 zZjU^c_!ZVZU!E{{6Z=+AZ$*i` z?FuiB(3E%zK9K;&Tsy2N zi2acGO+IN~UHa%%+tjUOY~Ss%MWp}+d?Wt69cv~Xr4U)0nnlD6iuN?=TOtBeY+$c~ zfB%#;R5Pi;M@a1DO!y+zd8)OeC{rqE?}&=_%`P3C;ZKRIzE|)8STiR)0-u=pI)|?J zMZ{ zwQhO5_&1gR*oFUTEcs(^_3xGX=MzK!y;lAsuKh!R{IAxy_Cz-E)jIF{y)qogeTs@V z>&QeN3V!JL_f15vTn}B0uZ-`rb9%TwJoWARWC!AYQOkJa+w*#dGk*E|!vE;Ae+Wp@ z2^Gn8o*Kqt{Q_WhP-C_f@O&tECiAuQt(?$gmiRYOtuE^OnQ)Nk1kv2f|1e)wx+4tZQ1{UXcj zG-GB?x<(#Ad>AnD|g)PUhhX-O%!|aaAeuu1ye`W*;(evikDfp5H4a-UO!von_t9ttLBm9Xb6^SP+0m+IG7p=N!J@T zNcB61ClZ?yo6&wS;Uf&U43J(Yi+6QO#(6JLybBIF9y-->L>kK>Bt4-ZH-!o)=0HA&`(it513YV0I4{QEob`#Qh+4?JAnwtx97dPXSL=9_&RP9)vWD5auv61P&V zhN(%$rd)dahOE$L6zWUUu*y|nvqg4h7- zM|9_tQ$%IhOry@#GE(IQ|_qaS@pUj`)9i#yOhEAT$*Is=)J)KB_b!@rI{hlJzmv|F

    =By}Fs+DkD`pgfA##yc>dW<;lQG&k25Pn2$Ch)Ff4c3RGc668=aq0j>Xl`=ToJT5Qb;7^#0a^zl1unjv@#;c zz73@_WFX;`%7PrX`6{PMt0xOu!}%dHq?>s~Ph{Y_=T=I+1LfM4*e{{s+X|gKv+hyT z(VgjFp?h`DxfQZMIs2vJUgYJEk`NOo|I7^y1 z2S()R!7%ou=I%rs5jb|gl^(rU9$9ca)i<^UP}iIrllNUQ!|B<=q$1Kz_6#*z76-u- zN#oonFwxV%K;-6<*z*S#nRtt!=xHbm6QDk_wQ5{?Ww`agx*`td;;j?GiQ}#Lyqjp| z7)YyGd~9+bT%37Lse&xR<;LKMo27>7TH8O)r7P$lGK~d+qv0SyzydoZJCUg6<}!4E zQq8`lt6r+rOobT-NFiT=fS|6O7I@LqUG31)qTYCn<6iOt_7sf$_-$CAfnTQv0^TAaA< zKQeKw&Y-U%^V15h#xEjs(!xK%YLIMVm_&_t&!9=th|M?&e6_mxhm`7jQlnNX!wX@f zZB({_4EmfwI0;=f<#5^NRNFHxdGr-=im5GrCF=p6Sj^w^S`b002lT4ayPEvlA7&$hk5%c)VFL zzI=>SCW6%iR1cIhosB4d=ix7PE7%`mwh3FDDc@&86 z!_XpEG(2Y!&6*Ap9DWrrpmxTM>-&`8T28kk<@(}g9OKKf@~?G%WXsX}ZWx3ypQ1N? z>D`oc4-+uo4;C)OOIqc^YHKWAM5C~7j%Q2ig(_>wE*b_#Qo7X=tV&fJzDd+7nu2dx zo1U53y0nm;JkgxrBsABiS*h!JY8c%7(6zynsu(?vqj$a7)_0qIVxUq7@K28(n6eu| z4_Z`5AqJ|5<=K|Q21ca|zP!AJTBQ>Hn1R=edY6k-*lO*#vN%l1k~X9fSLNUtROatP z!NjU|Crw_PzY7Ga$qhgaqV-LTXiFm9sLfZ0DQ`kPTeJ7Nk&OZJZ!@P%0OgK}3lM3R zSeP(sK|2()4fAJ%QW805=()bXETn=9ak@+R?0_C{SXODZa0&M-DJd^Ae4OJ|U_YFX zC$Z+NM-_Vd=s=+CgG)IaFA>67uVfDaD8l#PDdJWgevw^WN?O> z+f~a+(-6Ba8g?7@{ohJTf8hT=p^z#CX%*N7zty0e=~Yo>Q~MIxBsVL8iIQAs17ZSd zWV9_|1^^9aow3nvaGExz&NKWi`w%svegSSV z5hl(O!&Xxb++zBuhWG=ab+kd6-2ma`dO(+<(JRx?WxnjC5!;XTANH16@kT0>%J)6h ztrXBp7l(s}kdOPH+3@e9O9FnP`+b$;E67Ji2GqcBJaS%JM0Img(nr{YB~_bA@>0Pg zOfDZs#Io4bpp9?~s}Hhw{hv9-+%UnD-wAX4hLd>m)UN5CqRh&ShGZ~MH?!0|!7#|( zC5BWn~`u*?#=|&{jz7O<()U9`N^<0dU>L8l}}#c&hfl()hN z2c|{$+_1MC^$+?c41M-1MRGQ}?E2A0=e4t^64HpzwoU};DmfOQdB%!+oh~VLaC@(e zpLfb6sJo#j+!J~JHpI^P(_c;CJ$u-S+Y;3JcAg?LzU^*0$lR`YUn_^pgJM zM?PWz;<}Q4+52-~?8mk9zvg)lJbP9qcRjao>FVI~`$4W2**44fjn({|U-p(mYLbmZ zl_k&DyW%ef`}ot61IuG?5Eg&-J2Q>3PZB1hYSQKeaO(24bA?&0zx2=YlYL#Wi+R0e zRB^G?Q3)65DH1bc3z8d2{B&mY3VgeAu^s%GR8?fk9Xvw$adfRdwg%!;AaB=t5SUI| zt3}4i`k9^9o>(jxQ(xB$~6E}JObOZ)0?pZ0T8>rQ3QoG5Yhz53#fJf2YF zaa=~_Al(e^puBw=OkSKIvC|qv@sn4gooh{KqEOeZpJct-8R8B#(sC>U&F?QGGDj*1 z{&DIbkI#tV;xocDDytg|m_g9VPNJ{LBDU0lMay7^0<6qFlhgHHHpDt|5Hf7H!}W>%6$^O{3BmmNn~Ua|N@;7Rqd<}tSFCQQb9(hBzhwS> ztW5bH|F@otWb1Pp08S9xwEQ>$qih7#y# zqr%nPlC+$`IvXSjQnC^lPFk39{i=}To86#rc_AOjY;7;LElbXU!9+zx-ED#m;5~A^ zw*~DNTigr=b9una(dNr@CIMqz7f%(xR=sw_0<>mA?6_7)PreF?PN;ebw76hhns|4Xe?1FrlsE&9I zzii{^+i=~~;faSgBc)r5+I*(#ohXuQ_HTy{-O(w>-;v8tSGKgV+}6$~RRO6JZ^w#n zVJr$;Y89U>oD(7B);(t}DTgnp=O#PH}&^7QCf`l%fNrf7P&|nbK_?+5?sAIXO z_T6Ciz$SIBB8xA@%v-791rjVEiB37bFX%swE8vh;iby>-VUjXzW56tw1>4VW?Kmb3 z@u3NTeJ2YuppiZUn@H(&?HTB{eTX?g(EzYJpZ2oKSR-x=_0ub!0HcR15777~KO;;{ z>&ap%SpIEuoplw+90^q`sEsE1zce{~b`jT)fr!TTZM$BPc-I}s;_CFFPi?(TNl!Mk zO=rly4V1Xd3$U(x;{XxPIA*d6NtXaKuJDmf0)6@5z&QozeXmk1b@WUhdb!{XND*=Rl=w+(MOmX8k?fkajiS7c`%yT zP8~K-NR^6zIM^pEnKrRjq(_QyQ#ioEgi(%KO41iouzBV`j$({XJGYRdDR=-f;Ppnr zq{9uN`C2YP#VZ!X?YH{QCwM zC0ngloc6H>ko>fjAV`mi@Zg493HV~#XHP9zQ&q2J*A>CdK0Hmve{?--(Zvj?LoC)! zbA(VWfqmHb)<1&u2ax2oz;;7!HaiH3HI`O{e^_njA-* zb4hbhmKiqtb#*7TXT7Jia@3*#5<#lFMj89s)&{Bkgih$hSCgb?P@VWW;H$tuCZ7*n zmur%FX}_qP&gDNd)wW&-<732Z&E7-%GV?`=9i@h#L4i{vN~j>Lm))=ODXu- zUNx1cNfI3aJldA;rCx?lN6eYX-txaqa+bD?Nus7jWlvhs1xj_$Wt3&Fq2tk=7sq7| z_8v_XH@au#F2Q2-w$PfelL_#k$?9x8-tNmP|A&sW2&KZ<3g8GiwK>&zy~{?W9hPJ$ zkZyI(-=8n}SO)PD|H+x*%wBS*CM|e2z>rJdJAc5J<_wy*2^?pMp!kqGOI)zj&5A6k zSl)L2G~(Ev#cua8BB^A(&vbtqhCGbzL^n9vES z+OAR?f_VTpc{1jJuViz!+KYw*LMM%WRI!`1v793|EJ>pp$p{dUCO18X6$svmB4ffUe)WZ-COLA(h`u91iYL14F?~zuUyJ zf@VaUfo&16U!YVQmIqYSEn;|B52?u}tv;RJIU;}L$et|Si9ms%#V<2Q%{0R*m$6-9 zPQ*uneJFo!My0_W%mc=yF8*oyl1#ZQ9fG7LrcjH^$>~=?X?p4QZ2TCXzFXq57Cduj zVTyIl0*j!GiFXEuJ2F$;9P?tGo(_>DAh5+h0mT9AcFr}AC6+x){D;S6rY*x6M{PN{QyGht$b3F}`d!wKWm3xs;O zaKlyC%jZ^PiGbugMk?1N^LXT6`x}Q^Ozb~RVHgd##71KC3MWHM{f>89TxZaZRX=jn zBAQAc>#K9HL*85{4N(kHdPZa@=IFOtPN?dfyAfIVg2r7P11u`p$w(XlTiMMdrKNIm zD%HCQ0HIq)is7V(;KQe#F2V_wByL4ie)v2i zc|17|oByFVf{3x)GK};9~dhMHHu7o6R85$CpL>O=CzI=|G0RwADRgmcR=))HZ zNfkJ6Ql`|?KC~r?w-c+qmg?%sA!uhC6}DuduEjprRrG2|`LOv!^v1!c93()7~ildIDV9!wOis9=$ z?&JoA5)TC68?j7t-<4Ckm&A7Ylit4_ikt4UyI7+>5ij2vY>}aMrb*B|>Dl_iya zG)-(;=xsA%#Vkx1TBUbhvGQa-YQ~QC=0Vn#Qlzof3+46ZFPpBD`*xi7=Pj96l5bFw zPz5FLex<0M&!6<)TnTCTxrCa271zTf3A?+3@e-T;Mk}nUaq3Dx>Fn*^s=U(0A~|^b z?qYc#lZF{=?8c95i@7Oy1z(Q*`ES>`Kk{Fht$(*g%^yMk`XInU^0z}`Ybg#1Xq%NT z*!kUo&(|G|qw-)0w)r3TKP~osa!eL1?{=^2&oM}0ln&YkCD_J{n5Q zRSf$)GZXrGN?xbWPQv)p4mcipuB$r7^*Bd11|ZHQ(IeDehVNUH5jCMgE5v)~RPH1c zQ8FtuliX@6e(a$`w#n&i|D@kUbLHbU-8j<;4EOyD6f+`*oW4 zqANN0b};jt`g3;mmfGmm`m2kN&kXP#cC(hGouttwkGuuseT%JB)f2kK?HYUVxYFGY z$**M~Q)l-{*KPORlkcVC*B%`(pA+IL+ur>7fd4#;YW}qk^fb3w1l+l9U06tjPG1Ny ze&Ym4RL8M|)VV?nfa``~NxZajRUsMx&l2(-dF;x@apHgT*Yqd(KRNIx2ma*1pB(s; V1AlVhPY(Raf&T#ynB3S>~Vgaea86#Bu}05o_D>jd-Cdmw&sarXOA5?aNxw9 zzi;UtIB>Z5z=12C4_TVy}O1a&oc>G?MqHwf_bBAgY-JF74cn(jgh*rMvFg3W;;`~#X* zhtUUl_#E&nkRA91Vg?Qi9X@d2Iy*2{A?AYz4zLFU$C+>ZpSrwdF#-->QJ0YS`kP?UDdUY_q17T7%erZP1UK5YswTo`-O|Opa+#so z+2d=Ih=h#gNPI~6N)96+_AcW~5-POmWC|G{Ld$1N&fMSoion$Jivz* zt^-w_A`_RMHfcK|Ye!Cj`SVx~9ymO{DChpnlG|l}Sx_JoGxJplZCgh3?PjDYx$j7V z6mUBm{S9LZE<{a;6K45^NI0L=Fc`2{kb+-9#g4y=fXyRUZMJ#^k9mZk($gxT6v)0h zL177HxVSmbgIDvIFz|CJ-hZ8Oe9z-BVA7CW=Qy6VrH5UoQj`NFBh4uUjPxz`F1@ij z>Oa>kM-aW)B06W6qfP;SAmz4~$x^;x;w2@+BbJM(3ED+wqSW%J>*MZViS)|O&&dTl zS?8!q2M;jUKTE%|H`d+6NW=(*BjXoO2CpZeipFxD)GN3QRNNOl0$AU1mf5S)UA!rN zK`S$z)CDCD%z0*FNuMUdeZ0_?!=jepo5T*tku^q3Zr3|QcAL?1q}X0Fnd4Y}bqity z*6U3Z2zFZ)Sn#)1O9osjbA6E)0t-^U*FgfEG1MW)Hx4^%UuGtXW9!_P4IPtKTEq-i zw~ql&^fLBJH#AdvTnVGEF zq1E%J5ubsnWza8jm1NB56#o6~HRCv}Cui?CBcLxw=obV@F}o<+Bw-%|BX~f6hQgVk z6>6s3=6`vn8hoFN8VINZ{T)ZfAG6dGb%ut)lE93B?-@dT;h-~r&SwB|=I3~h0P6hj zb1wrShn+rX;2q3ACt!6Hh(4g%E5LDf;2;N&+^%od8FxmfhLO*W$ zSMU#jIQv7!w}21KH-I(#_XFtVe}3r7eIZ`F@=;a6Y>cL7t+87u+71C}=G`C$T*dD-R5#Hi2wQ9g?&dTM0KVW9$o{nW z!*s!)XFf?E{0{-Y1eW`U;Qw94bN>$Shav%U{WU+jQv6(=e`gG-i#1I4C7N$nxOZPP z+@l%OHR~4eVQVJ&4vNQA`Noz_j`bM{Nn2tF{Wqav%b*ohk5jUWqlaQL;8 zyv^Z_vcjqEGhC+2RV(MUo>JggCECYn12b!s>Q+1N_cq5u-0{865CPct&zft2GbcQz zq?%nycPkq-BRr}O{g^f|kNSgb^-^KlDV1~m$b!-)r7{ub=)<+k6^QfWquXj9tKNLm zA?!_a8iG++J2?unJcHokvY`@m~*OQ-}KHq*Hf`bW|xo z!l`caz0Gwn&{`y|VKc{B?H#sv!MWVHv5r_hzn|SCE|*Ip=k1AgBVeDL1sksB>v%FB z`?*dYX6$x8$bS{rSTNW=st2dE%(jfi-zmK2J6&5usv)cKQ0Hkf2y*K77D;Mj=s7pI zn0K(-IOPG z94}bG9~ZC&_8;cS{9nQI1nLqS=QgHeE#DKaw;pvS`biP|tcUmHrF%S8g2Wfe(0up- z1ht(Ymr$8?^TBV8)(0hoDt~|1K-*X%QzY_T5X7v$0TVELTz^Wc2c6;UKJD*}sS&8QSMwLCbhAYv^M&Bw4>wpfjO<_!L%}( z75=5l^?5>kGEl2XLoGE+t|;OZU?SP?`s|F_q<$xSIV?PC5)@ z>b*CvnLhPY6Es+KRT)Xv@4pkKw%U8W;_?sY^FzP8E`Sm;*X0TOL)ZT@FnHHGWECXG z93o!q+SRbQH`#GlvM*$3!KJ)WkN_*H^-jv}w0R5~Oot`I%xiY^Y$_cXUGU*oY4FF8 z{6jzNmhJ|}%>;vu?_Bga$y8XH2HR4;z-{5g&S>ed(wdXb|1QLL=}3IJuMe+F<$Yn1 z=8eyq>HF2D?R6b~poCcS(iZ1Uj-7lkt&q0B5L-yyJJIL89gn4I8c4cN9sOm<#kTBr z)}DZvZn=%H8N11lwD{!KPfz*R_w&Q+m$}XJ4@~y;{+Cz!m3a} z;z&U1?d|TY-@tCelPQnW0+yaHD$W&i{PKR5?LsO`JJBNIuTPwEpGqRNCkYs6r<9IR znFP|*_7@0L!;o`sYq^lk`BmapnYCZ4)2M|TcWXvd{!?hP`S$Exc4&F40jG|Z!_*$H zODET9$0B91+wr^QJZhb1B^?XuK5r>6!&kEmy{c|oj`*yTDoi!A@gm|WZ`En<+t=bu z?fY_%N0_U`gCF<4Pn1;gq(p3w(!Nf4S(DTs#f+1O4~%Z3j{WoDy8(W&cibYd9a+`Hz^3+Xye88TS@uvJ9NAep zf|(F^KQ$ogqxDF=Wauds3Et1^n~Q;2;Un=jmp$W0x2SWbSSNDKC1pcX$GQm<`B8Vx zd=6S6dS=ho(5Nmai2t}u@osAl!r2ciQMa!O8oVn_j*y4zQVvu1xv|>O+oUZC>_k%K zawrltI&|>Q0E@Q0N?FYYv(VF@&b~C%79Usj9#}(znz+ew-%T3T-(@_=LMHc0=$PR z-s2LlaUU569CboLvW z^O=}>=%|b5OFOaqpuzqOO@VpJBWuQ}qIJNt;&@*;-6zDo?0fE=s!%Q4O?j~@Tbs`K~4 zHGG^!$({fi{dw>E(fXFKZ(fG2Db5KI8fS}=ogWWlmTH$UQ4LzZV^hFf92_d}z>>zm zCis#fJQFI^@$$X_6KN^c0zO^g4DO_+^bXwJRAVCZyCw)N-ZJ2Dt{v1hxQMLnpD`tU z-Rk`eWHa3*7k{sp8lz>T0@EyvSIuE0L@+?tZ6Hc@bpw4iSbo%3b6|Pndqb2x*#TM# z+eX~UCyJzbc0CU)zNwf~P7?9?dQP*yi-S6fM>y4nllCt(DOCOuYCN=+rQx9Y%LxpV zKwi~0o7#RA+qRnF;c=+n;=rczsOzK{9?GJ??)>`T$57?Et-a*Kmc;dsKMWQ8Mc*Jj z={O{HusPj7yK{M&Nl>h|ex6nIj~$knE>&+oI~Xv}s_?P1pu1uqSx$#>Jor`nQ;K%k zxX)&)+U5p|X(B{*{7cW(r41?*_9C-#ysQtL8U{ARMiyaL?KB2-)ECf|4X^x2ey=m{ z{*m!=+=a+AsdqY~?jnT`DF;|pc3#3Hn9FW{x;`>jA13;cVq@Vuq|e}n?W?_{Lg`o! zEH+#_*OG&PdPt9#;p)D6Jsje7!Hk~!BW3uJagzn7YwvW-v+L@}V@#ZE-%Hzz(zXLv zp2u78zf|V0`BcwPUSVBPx2;??p^aUi5D6?s*`>I;ht%G!T+1AQM4ngr@JG1Y(AN3q z$HPsYzDuv0?>yxm*Nf&3W>a6=xlR#$GA$kJw-^8n)_&7;BX${ciJ80tY6TLyVdB{i zllvltrInL+e$SRN9|xw*Y?pl>YX4Fh+Pu=ltDXpqt5SK1=N%a-03G$kr!q}wqekqS z=k>*pSPF*o$gjp@_nZlV#cUkNgTG>}(ef_0McNVE*p-}g^ExmA7|`z0fzjpku>kA@ z5Kmlto>ldTRdNM0Sk*C1qVA zO$=1^El&@~Lrw>~0ae3B9wWhj9dbcKV*c+_zk@G#jqSVbl*^0P0&w%zBa0Z-s3YUX zM2l;tfv*2_iEson_)3ohp})`a1bm}4-O${_Jmk&q0;9G^Y=GdiAnLP~hr1rus#Qc! zd%m;OpQ#=EK-k|RX$P(pXGVIk{IPDwQTNs?!_Gj6OXmH`JhhHai|0T#!#XUKQa-h| zygyf0DZ3LSSht#W?gHP=r;|N-es)P9+P9SB&JbUifVsUOA@F zs<}$zl|@?*^nAm}y+jTG9sqK-v_UMDgxGY5?Ouk{n1GCU^1n!MdWb9?65Fo=X zLhW*ZByZ44hllvA>4`Y3tkyk?{?)&Jdn~wT`*lGNZfG54X})m-fFztYLcGWLtKucd z^8R~7Y*(RBhqM-AcL7n(&sc!@1SFI|jdwXD=J#@w$Hb(3JA$9Vw*aR}25d3IMfDP0 zq;}!?6L#uAk-@ONCWdY~)raL~;0_K8Pd5wLvqJCBJJQQ9yj#6T7k2Q!TK68WGvF}H z8KuzhbfwgnmYCEZk`v^bqL*-bzg!bFMzUj;P z#>rsIFkT;4l&}e^qLz2k_T#bogyo6>!Xv*}pl;lxS2CEkXdU%r$hZFp8<@jDEwT@L z_ArcfL~r|xo<7IaTloNmxXx#ujn0_eXw>0xvy;K9q%HWM9od{|*4}^9uc&i^Uhzyw zAU5&y%AJR_8o2mOy&G9FQ2dWnrZ>v?P5;bYi@iy^XPfUGQH<$xy1z+9+++a3zlu%1 zw(ab~qmh{+I7Jzx0K8<|f^69+1__+LzOOJTEI#UW0=L9y$t4>A)b9DqtANw9fHuk| zSx}miU5YSJMge)C*89(RdbA!scKf+?q;kn#A)C5`h7JlPGTYGfBGA?A$avkhs*zi} z_n0REc)W0$zXl#0y2LnMBBSl#7e!t|Jju^z6O>)jEW#QGZ2GfG+jYN+l>BXm^jy*8 ztzK*m^+SLs^R+t_J`s2-^hN)ZWMDew?4sG4@decgc%^L8ydtqQ|_MZ0k2=S8|0lwvsUo|ay^C~kj zR47Hkwt8N^^@RLrf1{wyNbr@!hbrxXk~ypfxL0BZo^6UH{9})2z8VlrUYxHbhq3%H zXP{Aub)#sTf=>>*wZY-2k z7C#r`Z0I!yWf$;zMDA`0H}Zl99TzVjOjf7BHc!}Hmu`5=D*I<0#F-}-1_&duIgS9x zQ(@k?y2GJE!kLdeUEt@GPa~m^jE|fOHZ%(`-!z@hHeH%+({Tfe+NadouQVYu&rVO7 zJ;MNrZU4z+p4*FkorReGJwe1?{Csj}v5kuh*Kb*+dkzn1&k;Q;x)_sf9_8#=z}N98 za`o=`=MaAL0PbX$iXi%GOOh{^2bj)Wcmby}L()7zMevh*Ji&?5l$m68-gg=33sH)g zT860K(AIu^Yff4par}9NJbs3LDToT`A>>PI&HiWBO%df!=Rt9?E*KuuPP*T-wM_tsBr&h<5;|T69)Pz= zn>we-hsQ@Rauf7 zw$#gSpDFzMlwlmi=l+0jG8LF)<-e^RjdvSR?Z-bUi#141;xv;R z@oBHyQk`8~7l-d967vl`uJoJnycFUCaAH9Wb+VET-cj|+9A>Vquv%V;>w`1#&HR8J zY~+~60Zz!Gd_9k#WMw{cK1!g1+MeSq#>{k+eMZ`QWH&-PvRHhw4 zx@rDG5MXv)Z1pUAs@wZv<_K9{+sm~^ZMH&zD**6-#B6uuS|BpTYBp=8WRms+K4O{+ zR?7G9Ix4Nv6VSv|kb=in*P#nVct_7zS#Q|>>NV zZOQ5|E%q)3(BS$I*XcgTx(!VOOJm<%39d8}lzk=+&zh{h+AHIXgD(aZVD|tRs<~ju z>NH@#K-QtkY@K_%c?{9=h(0IZrY3+-Icym&AahO_eB#S9pHuk@)k-v!m}4IxG3`YWc#>OrT18?D5Q&rJewX)#;K_jLcg z0p;Zymxv1agoq+TMi!6j>8Z1)?2J2R0KeBhEMqJv+p{&St$8}w;|4pIfpLI?1*THC zMRpTVR=cQZbhPQHk71ze+BXpc?DpD^dU#_TRnl?T@Wg4aSrf#vUEi5Neye-!| zL{N6JL^y59rYu^Jwv#i&E0bKwHfx{%gYBw^AF+(;JWAB|7OdJ@&vBZQ82lcCykcN% zotl#44PXY^s*@=!nda_u`u2^Jk?M+iGt!c_SI;ttLE5HMD@P-Hq7-~J#{75fRxK*q%z0(8 zO_z4@jf;rfACLHe1yyy%&{j7is2m>gH{;1UQVrPoD9(SMTMr_xOjGT18fon>cSH94 zj{M@9g2b7<(|2_6ku>!eUGg32qQ5vczNerw$r4*&th7xP*5nsys4xoJ-wUpB!WT=QF{z_xE!eHT{RuCI0gzJ;GE-G6$WK z1LX39${ciCrA`UlQbgNvp{-&k z9febu>aMxU4cp{Tz#^Y>8`pD45AaAk^(N`b7XYSY-#V=-^D_%o@Dr{2YL%1XwdIYa z1+6L6_5+T1VLwcqSKjiji_4bQO${g1tj=%uUdOchpJtcDbt2vk-}txUeS>sD+Vm@ z%5f$E|1Zn5744qMGLvO2ZTyvRdiO3%UG9R*{)866*{|%mrXa#$H@5$Du&39M^YR2E zc5{}4-(q@@M>rNYKfIuwUo~|%UmF>46k1IwoHvE9RFKb9iEzBB+X)ae;E3ovErW>lt$488eUjT?I&BTbw+*Ij@^+~$PXJC}Yg|)+ zHan@~DB+5e$0z~;1wZDVoy>L9G%Nh*R6o72KQ4hePopEKb(CiHJ`175bIc1PUd^hF zCj|TlyZJ3_H!J!j(!T-JWW~hWijaZTb}*%Kq8`@W?p+U*QG+oLeJ|?WRNvhws#r#K zoNW<&HmuHEG1<4;>^;U2{A*Q<3+t%a!>2pm3?{cnX^}u-;lpt^4_--}#CqM;=F5Zs zB~pMkc>j>Se+a-(LQUIm)moUZhV?KLXvKZ@!LWy+uzEVt8E@vRkMCjj2({mxF9HbH zz}KwEy0LOVHqCtAR`~pasJq1hDgMCIv%z}y2~x!$w?W?7wJ#a7@V(CJZWJjq&db@c!jE( zS%HMEzsgCwBEAlAPst=@Rp$EY+Zxq~t#xp$#1ABUS1@>89Q}y>XPrELJ(qu_dZva~ z8Ex=_+~#PGm_$Z!4+h{Uj*z%Ye%{5ETg@zYrvIwZlBk{Us$FVd830nTL@qa&jCi28*B#9Mv9qNP_D}XY-0euB%JPR&~vV+U_Ox~|2DU}2SB1}036qK zc)*w|7&fI&Yb**gZU5&^Q6ZTv=OmmIGjCtFdoU#GYa_uRG6%ZPQ z?zx|q-;7SDyhjam>X@_A?2wV!@pmS;xCa4zc0HW{TaBGi7X~PPowChy?GPc}M+Pc0 zIcZd{9>c3HWih(9(bGKn6j=1$?)8i%jkS~4i68|41EUkmD(YJR%Ad>I)>Y-0-D@EF zG*Rxs&B2_~I37u$wcRP`=8@zr{4Gx0;x)5X7-9R>ZP2g&5Yfog6uUAGb& zjeNyubC&v^E)`T&ZusuT_&iU<6>e{5v$_izy8h>1hhApXmQgLL^6z23qa5INXnbBT zd2ABElnP7@EA1a&JJD4ml!D#}oo3>y*aF}T)*#8{5WzaCo!hf;XS<&D8Yv>0qzrSE zr50C!5+d~5p7ms}!5udb$<9FahGL5Lo@*P)QU1x)W;~G0dKI(ZwvD%tKhC=CY$Ks) zUiDp1n;Ef`Ckxd(4Q_gL2w z;3cOdRom02*vq`m^)xN!9=F(+1Z^r70Y=(^taD4lTKG0=D#R%Da1vi|0q>GBhF zMYt^|p|j~gZf?_Y8(&Ms8?g|D1|%%q=FwFS2^mDGmvS46e}tJ&2|zNH_f4z~O`p&I zZg+O7{60#1E5&o^cH?6^yimt=+v)?lV=58JQZuSx3)MHTx#c}xth;HvNGj`cF!<6L zJU=1z=f$YZkcfSonF-Mb&Gv4#B2 z+Fj1}e;|d)h#AX)G?tOwYDC4Um1!}X^M${Cw&HEl%HNS`ex9Rz*Ww4nJl?-9TWfQf zK7*n~$y|`UQ<|M+$l`I4*yiV?ghI+Ohkbtk7kJdx{jI(t+ZMgSL*|hTwgkE&<6f2i zIe)@R@vXpDA<+6}}x0GV%eCR9mRSsO`5$t;6oYm2+|D?i7SxiP_DdcV{$;*%V*%K=VqJ z?R>B;`-CH|qtvP82`5J%h1RUbw77@0qw&#!_aV`Cflpy%B;&Y9l#^`{ z;?}v-2Asc)Q6cAYPU!SkG#iA;_Inl|tAnRWFF+f1B&BDKNUGkHipW$241TrFpaI0A zenlegVZ5l?(1sO{hKNMv!V;Oqj6KdzWn=3)*1%v!6#AF>L*h~W&QUc(lVRfX%m+;D1?ga?D zfqIv_j~LF2(Dk`}W3=Yk$neqh>A5gPa5)Z@@~WsW`K685Q@2(yWzV~=E?zhtUg=+` z1g^gO+mrqyf-Amz74U-74|Hv8X=@9LZ;JMPtD76Hw|~H_Y4Zy6^fOup=JZ9_B$T6# zx+Dv#YHc8HC5xN#*FgzaUN%Y^&dk}q%*LVg{LWfxCoJX;wP);D8T?aF=RZ+4S8Ox1 z%fkazc_x|c5tCC=q3U*R_o3MuP@m^B*EdBANq1KQ`T7Ou9><(rhpfc z%7!ls@@#nc7x-(h9R!V{q#4S#z6_*UEIrXxV?Z)CIObsCt7LseC;VTZ91IHPaLUHN zreqmU*=bf6(-E9+XC6;h7x51GShoi-c=`f`vZ^k5IQOsVb4kWW*O&a3aCIM4JkAaCmyiJap;vLn<3K5hkKYE*DK6)FM6;pe5*;A zPT)A?=THf`%w5uvr^0!mJT>MH7t>YoM7$HHI!vb@-u6|FdHu@u>Y4ijh$b1lnv8M& zOxQ&S#F~M0=7fKv0VrX7b>4Z;LGS8%VNuJ%5-9==fGXR z_@Mo|)J=2v`LC_H0lUoaMtCpOUf6;LujCTjlpR!f^?prz+(}P4W*|gosr{l+sT!n5 zrssVhW~{CP=tLL=+IOa3S@wN9$_YvcIC*vHqnYEz%S^~q_j^MdUy2J4TfRp{2al8!L*_jmvI}EAK+Dxi9x2LzH@Jc$!JFVg z(@snDH+jhVc3@1~ptkkt(0uAhyHH2-d1t1HwiqR#x$dmQYdEwf#IlE^G+*d9dIEKt z&^Cdp3$XsM&}Q026dH0VGl5ClO!8)TDh8(`7x3eLeUYdFTd_nQCA(?k7*E^C@ zXvJ-foC7iP_^MtTK^vZ?Cd#bz8|mW|;_E`U;9|GKnQqp5l^~;%rY2G5dX`AeFdI98 znX03DHJdjeP*=q;Y2hGFuoIe+Us#v1V^F;~wF*|w^0i(a7ULUE6E^T0uPM6+jQ`ck zx?}Yca<6@+$*G8%H|IXPze!et`4LU0xww&mlHLPb7P@-Krsy)|+mq%*+q>VV#mwbz z3>pPY-}oF66yiJ`{YLw0dG{EZe|)zo9jbrRH&vs7`)W=loon_GO6$%OeNOOU#iLILPgh&=G?Hk?&1=Op?OxA_@O;c2 zRJ?G($usAqolKMaO>A~qSlOEZ7(>hC8F}(QwH)E=q-py4VKdQ>$}Ls zvjiNI@r>=vsBG5}G23_c7RTzPT_OQUm5TjZQG5J@xUU*MA!7%ZkA>gVDMOM%mob}R ziAUb@UDZL}dv>iZjO0C5w+^eX5NYmBy*x-1>e$Vy$aEfhfN`__RH>U|%y3C~Etbs0 zMaRqxK!aX|c3qO9&EFO(7cMgi%bYQi%1d->G}w-fFT#Z(`n7pFdBPdCy)PwS?}z$J zF#n_$T(zZWFQuk!DpO$ks0#1rr*FX4^bKNKkHS5)>ooASZ1e}E2uWGl0K?XVI&(iz&3B$+Sq7w;uATFz`#4iCN0 zv6P4gXz($;GV5C~sHJ;NPLQe`Z&0z9#OpC?vGH0t8fqY!B)ecZ-DhmK+jscf54Zx@ z*Ky^WOzL9u*B+~ejh4>=n}3y%1$;iLN39GIEiOZat>5x%BU14IyjeAUtsYwUbsFkp z{P+@117>29A922{_^#rR}F$L@NM6xb1}G z+Kuv5?69RzLFrzv0bbi?2GSTYwR+9`Daz{&E<8iuU+IAx>v#<>)MV`Mrf+_})uday z)i+&)nK$}DA$&vQFU0@k5VGT-(TZTo`#&=4k<9`Qs~^P<9s+A+sbU~ub}}}7R+;2 zAwBr*kgo^$q>pFLkA9MQCaIYICkXQAkyPJbuUdp6?uX4o< zBj|X-edaO)()GiZI0*i+jkL$m!{~V9+@+etL&I|ErRQ$tQ%*SqNeYJ9WMrm!)qWcw zDZXJc>wolD&Rj{efG%ty>-i#Zm2+3P*vDPUB zz>w^l_ju0TxiO{EWTjO;>@xkKVpvvdp)ifa$ik5dydiD!1cwlM8`5aJ32fdM?cPuK^O?Rf-R^=+{0jqqf-{*_#8bDIXVuM>_p?H zJUbM9hU8>;63eKi1PxeYcKcNC(oLfdhc41o{N?C#JjZw2!&w=h@D$rFiH1386T3u0V4x2YG z4s91~&7vPhrj^-EqE80nRLH3lHCLjSFkdQiPI6frsPZp!86DPdJQ|#Z_K&z3=ILH( znXki9!yDX~oMR@s0c<%ib!ss3hChDZt93RzXR~R8K<(1vY0D=+$TV;$o`|Ww^%&UD zuq}mEo0faaX=-L;BLNAnq_~|8Dpt^ufaLc_mKe@L*tr;TDsCqANq<1o+tPk}>GRgy z$uSp34Kz`&vRDirv58b9-AfpHrK3i1lDgNu@k!oVnp10d>RquJw7fsrg<4=FrT$Ec z?Xaa6>t)7A9G`%082l(VYU^5kiydQMJg&TMxE)gSIK(@K$MqCWXntZAkf~+HC?AzBz1bkNBNDBciggb9!RE)YFh)sV% z16vrddqD|61BiG}5bv^TgRk+Y+%x(MHn;|~T+Bo;3Te8Rux~*4Rt?c7vRHby#wduI<4n-7f z#ybfEA=Vnt>^F!q#d3nB9j~!nk}qwC`Vqac>pTbR0Di;4ENvdK6I4v3?*8?jhH&_` zuW3eY+8*9|6xWneV9$Pt`3CM^D0VjU-mVB&RtL;6v3B9;$>4uEwv)juT#C;mIYci+ zZ>aDFvj1$lUNZc6^+ZYL8|ij(2B0zNb0>qTpi zfX&t*&>>p=fdjlU^#2R+V{=@+q7pN9cSma%lAnQf@_*crY1sXC=b)8@`K=1;S65T!DpYL zB%?d7ddBa5dws+Oy*}>m*n{+%`-_?Tj4E_0;V772DbFx!Dt|qSude0P`U!AV^l{?3 z2n!plrH|`)K`DpslbPHLq;(nE%aZEMbL&xQvLFTj-m38n-1eInqR!U(gy3)^g+4MJ z*zbcD<_iG3Hx*%s5!vGlhE=aWg6uto78@G2HY`omgVTxzmdCJI&iI|SuaQgV+2B+4 zlj~{reyt;q#Zyd|Rz5TQ(wh|dAlK^H0k!r0{B;Q?KKPAMTLTMgia!OTnI;H8@diNC z$L;2zsJe-oTK5un*7@6pW2LPI%JQmLRcBW?Bx+|OZ$>I9(lGUT3#lHfo@}a$GMei+ ztwN0FW-hP1s*rYtfZsPo`O!^Rsn4=Y)EOD$DLVibDpCmV(v3!ql6Q#lh?Sv+C{;1d zPkM327ukfGbW93YO~S-WI!?-HV=25krw5XDKNeOy_aMDnGyFqv4p2p5_L-V(wS6-; z&F3jbMrN1pJn*+|?CZZjL-JcGK@qlhM@OFypel!8MWq^X#%{Q%T*og&J0 zzS?k#u+FHkx!5k?v)?#j(wJKeKnOaj;^>JPGgX%~O9ZY9U1jQwB~K5GJ;c;XYwpF> z3Z}ZX!5sG|qhF&Q6xPx#n~4PZVW$u@slCiq=9`-RTx>F$jhnBQ+JqPIUW38h+VME$ zsbD<`V9!$?r;ZCI*)euGLPcix=_Rbf{i0ZK3R-^&F{Rx2e7!v($99gh-^sTfCNs5N zh;|*>?aW!sKI+h^!&Y#L<^RzBjhmAo(`sUfg#m?yH+(_L~&*c2LrG?>n&_!`;5>?IxNQ zw8jV29Znq?5psl#dto)oO4BLrAuNvSCRL;2P~x$*1hq^i*CIbT!|ZzK!EvMl3!**T9{J>=*r{XOZP|U>aB3mc-jXx(pBL zYC-90R%h1aTn@4ZIydJ{c*n?JJ$4Pw%UuYy4V!7COpFQoWmI(#i^#_D{bM(h&^uPE zXYADKL()VDGQ07z1NZ{!{fZ%0S(jzQHr)Nt@RZ6%*85B<+at6Vvz;(aeGZr0FEvtq z))+4@lJkt_WkmAY?v2q1$erYc+bN9<3$AZTC%ijY+9|AxgFu$oR^_>9|;qhg%#}rOx$c&(z$KURPJ=PiM*A+nT8M7l~cpJ?YQNL zN!dQfX>!LKPj?(Iykha(#uYXm9?I=9bJ}N@iX#!3TFJz69HaR`0OnG!X1w}T+sF005=F*09pNzW1!03#kZ_rK_76n@q=sx2*2elQ^s1ICsC%ixo; zYoWCMc3-CKjU(|nS0{GCA|wWUkCB`0f``IF(_it%Zk-dF%DaLgb8X$#3sAD1hO)Bp zBfGt^5Y8gMu{h7n{>BxP`MT(I6mz{*Vpa`45$M{uT_WhWR-KCW^SESbmnEm&r!CKw zImB%a^XTEwbVN8xTawpxEVfiWuAcsE)sWEPNU;j`3Q-L^hUCvU^2;zTGeZRY2b}*- z&_k}p7D$`yLtG4b%>CEa8c8}P4q0~A-V*VdQWaXz(`DB@Ow2>JOPk>##I=F3r(o-> zse|&W^Qz?cMe>Z}8p%-F?&)T`oWAJ<%;iLu(Wg?(3raaeLGJ)F%RbMuI#)$7`rck( zLZGDio3gIZxtCg^)mGiKR9bk&@_Terqoh-~@zc9fFzF&cDJug;uk0u;?>8P7ush$s zSM`J*Gk-Gjr3o*=$hOYFty_;nvrlAz>51CZg_$6(srAY?&otGb}SB2nJnFc8in+mHbTpK-Jy^o-E$tY zVQ)}qu0}(5&0U1v=2ldAcpTE>I3SkZ zSI}Z2Uh%DZ!mKK0mk0ukU>7&%C#dA{ajPt&+WmF4QO8yAI2*Pr(m5pXsyAsUKac+I&y zHr$vJ>g{4u5`9*pFzrqTatzhD*po_yUxMhWbxi-+2-JDV6ejDPdM)cBCr~p84T&0gqmN zZ1QV0x?635m>IBL{l;>RYg<>lShU$o+DSLu*jBcY>u9-!H9J>WZn?g9shN6^D>CU} zQCgC-q8e|$|C9d1mUrJNOiP@)5#V!ylTAThS7o;`H=!}S&8jZ${d*ZwrBUYPGA>8r z1ebT}i5n)VPYli8ZS{!)dmExEkJlT9>f3zNy00TEYU>dePKjGCaVLa@#|@-jHact> zmu2s(Y`mQ%1un~TP7E|OQ(qrV9-o~UO=dF-Es8%r7$@O2s-$|~_8ul$-g&ev{$US8 z)Q-t$;HTWLEHbPM(_2yWO7Ta2Ps|kxw}P9OaNl6%afE!81#mM^WcVkWLFAHX_SyqX zIw;}Dxv;)VJ)9AaH8!M9puIt{X>F+TVC#!)?>7+#0T5&Gf%taX`o`6JPbxjfQ}}`# zhL2cE2^kxF-sysWLL~Il1_Qf)@ zXU@)?nccJd&pYqDTfTe0@4kD#_xs-WGdB(D-f;E{D9`4ut+F+EX8G{#K4dBJcH6wi z=Viwj!`S``^oQ=3(Ixd$@s$dOIwn&OYFbw`7`;@vpbzUcXqiHUV&6t5@*2U?XxtD| zwg#n!{(4ja{~&zVvT)jL8r$R5U?6Oy5Z>j_ebgslYdjQNReXYXEwrPtAS?5Xg1laV z%}9$9%Z$bHA%cS6W|4z|NMx1MQ3F@Wle^Cv7J;Mf~_%mztE|C!2^J>03KT?!KC3NBz9P5LGB3 zeFp{O%}c7>ERF7Gq{3)pQyzf(fP0wws^O#c#rfpFtF#13PGLE1Y-Aq%uu(T1J4+>rEHaP0Q1$s} z^*(!az7NgrBP*pypEU>|vfB=nDsG*oJ!@GlI405Qi7Mj=eaFasyo&Cen=a!_D4#3K zi*{dU9vh6IX9ts7^}uM#X(A@CfXvmrPik-0VwVKsuKw#OF|&%g+>OYE4;IR$0(=|a zCnm~eg)o_}$9`NoB;3ARc_B@1XKmX&t6xd`v487bp$HiBunRV`Ux~FBSH(g?>4DKR zUgAlSvF>N{uNG&$i0h~_oV;td3ijUGJ8sq0<=hL^9v09(LeY6T2w z@K6H>KhpAT<>+prYJw(cN7UL_Bruv zd;0_D2Wq(_lOXlb{IJe(EO+|2_+n+U&X!@2d(3FSUVMSxAZ=Y>{JNUChau!P=ypwH z*UgP5jN0kdtk-TalD^PfX2_}4Ig0#dr~cXb4-W?2E!s$6Q&~7&(=oq(AZ*^u2t!Ao z$sX_xs)-C7u#8y$HWD|eABBztd^;eG>C&R2Lc74%y>W+6iFGzJYJ4R2Zsj3vN;2Vs zxkQ)GMcM#_2a`PrxY_Mz91Y{Mb_*q!wx_vbl{~%0 z$T;e7-#$Fqaj@1bLLUYm9!Yb=juwWl{GQ%b^YxA;%adS4@Rl~)N5IKH;m_zLk&+ITG~S}H9JGSN7vP0ZixA}ukfhHbwz(F7LEW7sNh5~D={7A8L1lX$t3 z_QZD3bbN-Sk*p)+PJ|Y~c#*!BQr(s`pN6`a?nFY!FSRIXFK9UB{?O(Ve$w#S3y!dr z?a;W_lQo^c|eRTEs&;O#0|{B3MHkrN@kE6NzP!3162DiA%_;;G4Jn+5{jC!o0NWW5@MIz zFTeuc5d+-WCud*O%l?p$9pSF4m&%!nu&#@z9)j$}->gFoh4#$*v#o~h?IBcRAg1F2O^yRcY@}!YAk9XLIb5FU=xYG1M^0;aV zy7s(R86q;Al0qtWm_081b-OOQt>x_Znx;@v9BOD#(JVC^t%aFnyZI9aAX}W(u=LbO z&YNL`OKMV68tYUCdeA7YFv7G$_NEFrUmx~FLN=%!n+X7Q0Q}S!P*<_0plh@r=H+{B zG&Q692^`l4r1V8w4Yrz-gDV=bHLnBKOmwfke}^$t_p3F2rGsn>k2p1c9}oBt?IlAN zI9Kf6MX}6h1TAD!FD~OWc4V*YQm2IpxKq*^`_1A#dvb@m(c#=Kv4v*jRK&6(#ViE$ z)!$NHbfqJE$`LmtHG6g_e|9wZ^mtO|t-PSYC}Lt(ru?CECouOZmJmLW`6VGDK6HPE zluGgiHWhu+L9#uO%Mq>cq>c4Z_2mDCrF^c)rvO7zi7PPrD{Bq%6+a3%*&kq;{ItLT zZ^lfo{hK_vx5_J$|C>h-Y8u})JwxtEoavm*xz|-48#n|x1(O2y%KROGOaM&(ikAP! zH=%Q3YeMI&;`+062bUl)^bqC^n-{xY!;Ag6%p;g{c6)4g`9ed`^^EH*)9|AS5iN16 zH!^whnB->YTFAN%@AakprLIr#wD^q#kb(${sixbo(!&&+Gvx9B7B&6|pAJ|5V>DTh zHg*T1XO6wbv?+1i_}oVH$UaYNw~delRdtj>neAt|To_1@N#;>Z&d)3pw$A+eY_ajj zyTs}tzb}a?_$Dx(!Q0p&_$j@FpRWUmivL2p$0yPRR;4gzv1JLOtqkz)0UE{wY3EXT z?BNUzm(R^M4TJE4=zUgAG~t=<)R)J~HnwIHiRSFW?0D$~HjsB_PM#0h(M}6J9z>3sX#8#vLK=`P;(w4U4xL&D<&n@c8iU`GoxX+Mx zB96{)@>ocOWG9Sy8D=P^gNot@13E>|$sufxWD`w1hl2v3! z$aRqF$Ss7X^Z5tlvliSdrd3Dy3$hZ%K>P4}D(51XQ0du3&|@r?=ZclTVH)uniEf zjc;4v!ngVFGW-5v;h*f|uT>2y!i^y=PO_zUje)L3P|J&wgIS(y@geQyWcDQlb!tKYX4>+f4Pr8oYrr8+jWmm z>io;3e^dIunmu2?|0hv=qh3*V1q}VWCJz>-f9(uJxUD_qq3+b@%*{$zKsw z_=SP`{g*$0ocZI)bLTHpAN=Lom21>r|DEOZ6M+8mSfAm}b0-(-J9dVJC?#lT~7p?#RXU+)P*4A+q(?#_Epkl%)YLPYZDvqnK^wJZ>*Pks7>G9JsWn^5&dn(R zjX#JW{@~<=q4r{>2L}f#Ryf|c2<9#rg!dC{0`azAxblsm?C)}2f`RSl-FA&mVSy zw)g2!na=_@r^Y2Rk1eR(@_%+`2KzItiAa#9n@FtE*Cit-(g5pvyAX;HoC;mUu-u6QLPHPLMSnK zn{J%rYjCrAU}xvNN<6)ZS#pPHht*Dxja&3y@9x%It^H){H}3&Q7MpLzqG{z}#~Y#1 z84H~|+muV?K9?er#uiHtMX_S8P5U=g%I&ow1mUJa|9YkYS20=^*N>AtZlMbYA*Ao1 zb98Sjsy{U+hj!TJII9+GoZp7D1x{7@r=9}*HyV81dj-9~T{{YHTO4w`tsTCoX$4nu zJ?IorFTb^r0bR{}f0+4Uf303#muPVJFq*RAe7wF}pt(VEKWZI4zSJAAzL9~dp&RvF ziw|0hsgt%%Boxfb&&|vGt;Hn#o2dd824ry*1(98a$D8B+{skzk;_e;7^!VY_npW}* zc40rJ=728aaB4;lg5aoL8Rt0#jC1@0yMW%W{=4HGe2eJck6WGgB~JDZ2l9R3_&}@G zz&CUCd;4IBNyw^sY#Ir|G~Z$A69W#0LCN*JDy~Q04jN3#LpLA`w_o5NnCx z{S-Z`D%^tE>n^?y9G5NqF?AF)NIlVs8Szac))_HjQm269pi%2nK(KK*?7GN%^mm*- zTHr2dHoMSSRW^v#04F0og37$IP$5s>w>95;ks^O*jkmzXEdKLmBG6aX%9e!YlE{?( zkG|xU^Ikm!Z<%84fKh^uu0kuD=))5*8u_m9`A(Y;(afimaDDT<4PR zRchTc9D22AZBx9EP7tcmew0$v6PH+2di-W4%F_TRtG1d)ZpIgwk<-Ut?x~FOWf`c| zT06!s-8lu!H10XSS^At}{gF?Ki~=E{GO4%8qd;J20r}+`Hn^-%b_xyEj6cTTKN=kH5vO& zg<@pks}S2Bxk#H|bWgw0;E}c-Z>zeJLD|WC@p3W zWn3DkPxEaZQjd05efZN1e|_WXwgPJd^ySZh?T<(#<)DeGF8h^g;bFe*abdnM>;pmA z>GkiK-yS7(KmrkW3c`+)Ic`?Zu@asJ-gY?F+{T^)T3Zjgv5yYVAADicTe-cJm?cFn z_!+cxl{3yGGroPcC}riXV;K~Y=%qtc)M?gpe(0&e%2?>TO=_&HtMc^cr=+2ImWF}_qI>&?4Eled91 zPYbc146;#e7LsaN?avHmRnV1#H>|Ipl*1$IKg)j%VU$sk<1Wkon{RB~9@W|;H_R~**GXIXRky;bANqFADdT6@iCU^0$j}O4sbU(VfAmxAiqA2%QW5CNV~ftaj*(zzjFMB&p*##?(T?p=5Xw~ zMzkxTqF^Gp_n%B-xroO^h!G!XH6k1wk#?&F;lB2<(T7Y3wJp!ivSq@Ja41EDMzcxgc3`o6 zU>2nJ@vB84VC-OjOFWnswRAyuGRnZoR$PKV+o>?MB(iCUNItKr)uLzdJI$@*5*Drq z(?!>#RD&O#pq{X{jud|Kj2Oe086`c{(lu3}r=D5GvL5%%imfJ*G{tX?I1VuGI)Bj* zw#mlWR;Agpyd88T#Qs`ZI7YSD$qZtePYWJSF;`q+f2vQz!=U zDJzAk7@=|$9*eb#_0&f_NX^dPb^ymWykY5^>|A$fWatqTY_RYFVvil&qr-5CBh`x* z235-`F_vgAFpHClCA{xJ)9iNFKgsjg)QpRP5`nn?AFP4>5^VS>pwapL0NKU7On0f? zO!uu^{wct;ed@EqM{D5()X}sInBnk|JfCZiglEFh!{LMECDT(tOw4wwiS^Ev?YENu z3rWGlX&knsz#HGK3nX7Azo@9G?gQtbCBOdzg$s(ipt=g6nPSyRLF$NtwhFINx))CX zQq;M7?rNZ2XBVQNvOrFaFp>n1uvP@W-#qz$O5EtNDb=Gi}ePDSBN zqp1OHeRy_#PHJ|3*rozf!c0FKwQ}5c9&|9z_UII#D|CFLcUxn>?&}PH?1*uZ;cUrw z{dAQk9gHATqS}GeK^Rw(&C@+f*C2%a#i}+S_2x*qQHM@gkEpc@^FP-3zgZa+?NJT} ze+F_6JX?O-z)!!78y%*8 zn=OL{P^l;Y)S7WfIes=0(y#0gta0RIEq!1_lV{KS*t z*1@PKqY>QdtS!znqSK2`DnB}wWFA6%+Mn==iu$>(jsOShhW)khIQ6X~_vT=Le)gjG zm7Uy$-RbQHtwMQE2{U7{#l|3H?mrg#zghjKx?1@;@Qy24sEs=f+p=SQ2jL>pT}w5h z%SEYy&aGRC^!>gcdu|akS>P{$L+VXtZ!LE5wQxRSu^G|hgRiQtD#SHf$^wzi&y|A4 z3w1;sPfuMRU~Uo-5A~}SDzfh>P&CpmNXBGxMvu)tD%x4h@A|!F9yRF2zwH!dTF=b| z>-LNlkzsxu{4br%Ds0|TaGc$W01PJ}hcg^fK~KK6hipHpqP(C{RomKw5(O}Vj=v{# zsSJfy?}Dn$vI`CE(HpQG&gFRB5yoQkkbPB=@gEOncU2S6f}i#_C;a4#!^!G}eMU<> zdhok-1L{gd$SGj9PWs*{fH~s%SY221lHe(T=IdbN9c9_#L_TPY)wgLk6C$WjTenDC zw?!|02S6)#kk8!Eyy@X16}-Y*1>9?5WoaPK-;LVVy}{`Zk1P z^3ay_3hl8-w@YmOwUf5TBk8GoPh|?FQ2LE!D+)0(3>4LB2GKKZv8_Qc2 z#xv<*>rba0oc2a$1S7BYA{cxdJ4?NuRvXnq#8b*n0RiQ}r7DoQU94dyhhjf}P<7Y* z?wbUZ^2BfpN1?b{nJfoS<+x+KumG%(-&mBseT1lA@_L#g0b4GbdQuctqEx_;(OUW3 z-Pw!G1B4gWzc2_FFvZ8Fb1R!VD&7s|ImG%ASqAq8l{B}0i($5PSAFLX#cXNYYq)$ZPvD3(16!fSsau3{>1$rn~TVoc+V-(_pX1iiCZ zV3Y@fB70)IrJm+G@g`gP%*3(9Tx(k)5lmG#J=_^-Q-FFaPAib%_9^8hFbkt5$d>OZ zuUyRY#$P#F>taj$)u!Qw;dA^uoV<~=y4!{>1E+v!L)!(rhOSKRpz|I%%^yo0(5&6X zVl^sUemS*Jf!HOGu`0hhO>K$346=QYAca-l(^k{e)Y3`Na@GR?fO&Ia(HyQzILF}q zV()a?7K&^F&b@qe>c#JxtpaAPKm&IKKR>@;q1MASIT0GTBH!n2*7Jh|hutWJPDh^$ zv|>vjpmKdyxk|fs;fy8Pj|tgrTG#wUyqILqz)%`{+xqS72szi+(Jj0)b5Ssa1DkQP zFg#_L{#3- zvN?2`lPQuWGEC{wGl(XzvP><0oG3U2uzl?9?+Z$ne|mCxNi{;g$xT*QzDzmJ!si0x zB2jdl4U&M!{k^W+G%X6@A=HT%8WYpw5&@>=y-(Ybi>G<{uU_o`Z;DD9j>40Ni$331 zNud+q*A9!v?$zyD3oJ3#WvS_`llrq&XBj@HJZ3hL}`CYOZiM z-CcCn+|BVxyf}Ve9~`ki1~Fd~m|2+Y<+X|KsaTR35a^gXcojCf%yeGMrqNVu{y=5N zO~jyRz)H2OTfH~Rasni+Hz}86RDbss>YFgZIDa|~_WZ!Y^Qvk#G z9#_Iq?DWsXMnw@KM2&wYeIxiyTHB&S+sIf%(tZD}J5=jxo$v6>>o zjd-Kb1hi3@aZz@iVZe~HH4R7GjpMs5vr$B(BmwI6@@S2D;0_{5u1laly3e{53jsdz ztkLFDg0p1y`=u2QRkh4~~zgi@4n}Y4bTR3;3ma^`vouv3SZWSuPH$(_{IRLqwmPQY)oe&4d&iRFFiVbckwaE+ zTo!&U^T#P5MR)c#uzT5A)Y#lPc4>@sncjC2S(l!=yjBLo&KFv4MYQO2I|9=tT;kW& z^9F0>KR1~|J{vtR%2vfD;)zNtNBhMRiXNuHOXZ_iwGRU0b*C z%hq_u9%V8W);+629MaKgubP}imMHIuk2X!|$P5pbn=Q(RFV@HEDPPR}Zs2!SPs*5v z_|W-0RtpE`aaym_mQ|b4@u+hw(|-ScWM?m6l1X-AT)d#8lx5*wR_wB4|G>TQgk9=V zziln6W;=Imfkx^V`LidtBGo#KF!|`JfzdVg!DXJ#%t@q%9BN;!1Mel&Hk*AM&ldJ= zr-qHh8`iD2&LK@q>CyQX)|>bHd+Q;5Kr#AADFYVDA$y4k6N;~)`uCKmY^QlNXcoxZ z+j6Y#po{wbo%%~awmi>qX-ek)xYvP6NPpv^B9v_X+_Z!4`6zm`%sgv=1rLVans5N+ zm|7{X`!y<~!|sSB61CdwH_(sdQH>@iSR>CLAN(5j5S*OC)rBOFjpa%UON84Y7i{TC zBDRvyBj|@JH=SQ}tTKjZEG+&S%NRG%%UbDX&=Rf6dqkJTz`%^#5gd5M&Ob$}W$I5f zHX-)7zQ5hk>{sd0f)t1I_sKeq+q73%A@2;vD1q1<3&SsN_vO)vrYTzc@?}ovPD3nG=hdh=_pshOeL|PYiTm$ z)iHyMCQl>s^UL}+h~q+n&JaOHl;gKOc;JHzEqPKN3fMyDxQWo12Xjc#5^OG}hSHV z2w|Bj{r4l!1J3i~DNoGf_IqjWpt5V`gPxS&rm7!%Pj&B#&i5|vx;8-p4& z1)q^0OqV~(s9GRi>SE&)zrGoZU$Rfh9BpiA&PfuFntdAlE)R|4rVD4 z(5Cl|PbNEdt;{5-&RXUBGO>Q?y>{D{cF$T)4#)`fG&Vk`zv-jT*?upg41YVV&fy(; zFbY&tsVY-aJ~wHpb?>A*e29OH+g_G!>0&dE_h$8kR9-eKGJEN2qxN~sc#$6)aRoj? z5HLx%D-2J!v*CeDH8L<4W*Ui264Y=SyaVvJ(a4=^kqM<;vm3=<0}>vgylbZ1?o{o> z*K-iLzTmZOo%t%B>0b(ljhx9u<=9hs*M@!NQP(59_AeJ9@tcZ zn{H*2y$Hs4!I}xbmt#@Lurf$CFMJBdsX&RM_pMFY?%FWiTXg!TV+3V4SqEF|!XLaK(=+(tRmXyHBb=Zu2&q=6Z8? z#tXMCBsIY928F;s1kPiX!KH~x6xJ!YPx@eOc-3H)qw78i#t%nz z$bw(iyo;;_xn=E#c5D3M-=dT#kj}x-aC8}GYP^VHk6x4QS3)4OcR*`3Vt_?fh}5S? z;T=J3yTU!89XRk6-N1^d2FsScSP3&6qNJy(c2dhRoTUHAF^(Gc{jZk)WPX6FA*-o= zcCgwI=VP!$MPPQMR=M=5<{`h$c#0f9qj50b_1FNQBgic9-2 zN)NM%zU*%}|U(W1%oyb+xMFsAle*ZS>Cn%%99(DUc3dVW?`_8ElzPiC9;g zr>x_yx#mbe6-z6|Z_ZV++vqM?uI*n?T^{AK7tY98#4+i90^@kW4ZN5GkH?#(_>JKL zebyt)uK>mnip|cm&quF>``MiAC`P&wxZFM3rozqZ{2zTa-h$#XD6+c-K;5A0DOb3| zg7Eq+4WmX;QaakXw$_6javuR_^9ef>5r`$UfI?W-cE}xHa-R5c?xz}M`Ta_u%dd6reYK2OuAM=*QV!M zS!LoW?j9mQ1-phduH0>lG(q$eF_JV1j6(*6#&>IH+9SjqwdC&a zjTZ@qd+7X9^bl}UwQ0OkRQD7hLyhRt`2D~zKn-r}P<*ZC@iHqi&{Jbe+R8wE>B*>I zSOvToaMaF*XqnHmGHcDobt9ajl~gHid1K3-=6dxK4{f~GoDMGPha(P7 z$b4Eq1(9$M8di2T=R~c2pM^85t7el%yC zXDQ`;TTz3+`)wstg5eymQ%77=W2Bl&B@x!u`>+jnjvsH6Y~Atnux>JM8{%=pvu1Uj z(>o=s3|KT68X7kEc9OF+K}0n3Y42f%?0w(FDVm`N8|3!HX}$LO0NJh|D+zR<0eAD# zM7?3tDY%sJAZkl&echu#UtA~;v5?RU9Qs$!JaycEQIq@4q*l7hDs9;uroL?XU^*R^ z-KD2SyZ7WAVc?me@!=lr+?BUK2t#M#f`I+4o@4(P@(}cKc}x*2OF0f!*L9yOB3LOl zJba;yWw+tGnPKWdN^s(zMsy9!x1Ruyu}k;pWz-*bAe9!l+D2OrYq9yU2Hp1MIUadt zLd^ko=lchiTGGH*OVrtoZQVRqC<2_~B}62Id~H$Q%6isXzEbEE@Vj1M_ZRWF{Y81S zwukKbLml_S4d3wsJq{Vx62TM?i-wMVz?uJvHoIH%A+%P94ACv?b)&IL_3;%WXnV+O}P)c0DqxUWG#9)_7j99q3+%FXoy{B~KsrBj94mq~n2MH%+I3kv0<(l!^O^gj2Hh_&)oapu^Sp`1nI( zXJU=4oTD9aq`9m!Pg!_+&P%mHXsNToY5dAo3g+aNnh+X)DFL zucfM}Kj?8fwx`+pfo3|Sur;iTZM{Dl#x`cW9sJ`iDalxJ(m3xaC(}60`GCmiLE^g| zF*MZDHf34TQl{YiSr@Jnos2Xr9}OPmHRNvhP8=|Pp*g4j!rcSwyu&xGPB{fEgn=TB zI^wW(c4j`C#=@d}+ofJduXA>s=qr+XwW&g4(RbdF_=55Hp=0R}``;)&4g+Y~6aC)- zR~uK${q8?M`7LSTx`dchaZ&RKiPBByC`f4Ar5nx?RTOFEPr}pD+bivUe`-#Jl17k@RDc3$pfjT1({Z=X(6a){aO2-(x-hHD~$vv zu&d4#mHQ;N_O||MVuNZGgNQi97^(2o5i zo%y_|`T6|(3<-zAx^NP(eLXu%?qf^yXBVkvS+>XD*JuE{vBai|1TN|a?RZu%mfc)FxNl6z;)%dmfKlX z4uZI9tP0R@q|IYbd09=X@adZ;LQ{M(IR+5o2g*y}Y50HA4d5nK0EH&!FQ_i(c-hj?WoQIk1-7Kd7pUw3tflkYGy+nRZ zzy*t4qq>BLLBDEjg|Mbb=<7|cz*lEODibNwej&?W6JrOh=!&Zbl)V90QL9)#g(>so z!EsQrgu7F5Ve`o5VPfDgYs_q(b3b3?!X3qHuwfA6cL2WzK4j&6$R;dgC;rcf44$FK zqaSu$I!*z=dk5AcQGeQgp!T`dXJ2l^88Xii*{Wy?!>l|Kw~drSi$+>Br>)|@>u2-( zUkw>3Uef1AQ&r~Do*Ae7uVWRc!#o`01C2xpgoi)9KrL_IAg2dT*1xP0M3j+M@vHMq z0U;{OmZj#~C22igviOB#d@5Xyb0r+Gu(nkH;;=1!7KolfFLVb5Y#V3g8c**WF85qP zaQ0qL*=c7r*1ze#TW^3@XP>KE#JZ&sP^cYL(N;>QCY8ZooH0+2JHGzDzu)(3!!=7s zmLvF+oZcg$QSpcONgjwg11r_$Q@}9)y1@8l zrreYQ}KX4Y^N-8cB9PDhcG7tT)U^S2)?D$C|~7%BDcfGEvKm0VNt zaJxyOmBGP;?rL|dyT;fTjZPccEwUa>-{AC=LZ58uAv~mR?vsl95s6(|uBqajZU3?e z@fS%DiaOu1slOD*jXwrDRE(DI*0Mf`1J=PJmGvl|OXL8O6NdCcK9hF7s((vHm(E#f z)!yY|Qb?9Pv8icTM5OLE6I7%LqFiaxr+Y|$vfr~`>rIWvBNw z{S`9jx9wX_c19aMbF4)>vn#aj{0;bLQWVfSm0ID%+y)*|Tvas~-iH_4w4uT?hv;9? zOU-JVUg+wuIj_`!|;rvt=nhzA$q4_-lmC!I9JAtUr6Cdspu zfH@x-dxOuw`LHS{_7Br1Lj_*_th6O}xwsb4CG-^OQ zqQj@aH+b4wrP?s*g<)lG2m-}7o0HoxMHcE7{T3aTq?D^yM~vn$Rvu6enJX!pS$t(@ z&yqHNjWFX|e&Pkg#jrjP3GhGyS&CE8Nz7s6AD@4@%LV5jtC(KF0FRh48TSWF2?^doK;dV=b zaT=BRnZlK=q@HlehnkYEA8=Vt>^@zAdf52EcwgPhpMgfrKs!j;?qw^JTDfp--@Zs{ zEQpi;s7Cins!b`HSzPp3Fl|Gan;g7IxUP&w?BHmf&B`Sg9lvHX;tacVD zSWq8Bzz(R~pMTQPvNB~^o!@Cm|3jJB({9ezy!aQCK2k4>^VFiA*AoA1-(;r1gH0tu zo{E5h&Q#X`uw{Ivog1y!4P~|{Yzg(*Pc5;vU1`P8*+R}&W zSMB`l9miCw1G}%--%)vZ&>0|R@DhN+F3y#o0Qb{DTO*BLDvKSFrX>nBwkxsKCouhE z&i6gBgAXe)34iFHxrD;N;m{!Q!XSI8x}0sQiRi_h4mw+!l1&|OzV7Y+9$l56qVZCI z3-8s~+|r%YT(UP)w=p8@5FU3>S{1lmY^5Emxk6y(qK_IcW$(dJ=AG9kc$DXFs{=Y9c}l*oHeB#8EqM4ZL$^xvhORP+P@xnRd1RtDMuwdQZ9gM zm;$X*ir9AXL&`Uu*7=+19@WX8_X`wZ5!-E-tiPPhs9)>aS-hox_|Cryj)QJwZ#-}p z_q~U3tGk`9-9#A(B*~F^R^8(LP60x+&lYNNV;GAqUq6(T=Ot%UVt(qKx}lMY6g?&X z;@7q+(Fk50{v0pUx_(GHtSN^oB9#4GeHld6mp}fYFPCQT)lEW)jh-nQ9tHl4%#axl z4U6m`b1{OqZe7EXWS_PH1p@c2snU4(abNv77KgLYFfh)WyI)5%b0Q)oSTRF++l< zsC^i3EV-t0%0M9Lg!gM`2g{-U(x;fKrSt4p7Rm*)V75|XGy%@iPD>vA%dT$i_^KEA78Vy~a#63PJ|ss+t4+hCN-Xm`h{}t4dZx&m zSKX&#-i1fAZ=dU{g+(iW-Y_y3EL|YP1v{4ouqGYK!J5s6JUq~B`6t(TYOQ6UyVzoU z8iT8<1&*T5ysVx%i zi)I$AlCQpA?O5Ekd4B=3*$Lr2ws3w`f1}P|f1W%=32bL*C9ST^R9n3k^g|qo*@{*w z9LJmj%o<)vI#rZN^kWiK+B1)+S*oci=7Y`YVEi_T3u1cAJ$5_BO~&l??b3Kma<+Z)8nQ zWm|WQac;JU!)76H)r;eApgV-IcLf?i{Y0%`lN*~~>-^n&ei%?hc5IRqj@)W8aTWKe zd16ruL+-Xh|J)&={-9ljlfv$2Njd@gb;9lmVq2y&^K=0#eVluyy#A`>23uhReBPe- zQ97dCvl$l88DMi_e)jBB2}x6Mz@{EFR}m%i1O>Nud@-Jt%%u_^{pYoev&DGFW8 zJp+BtxE;6(I*{>ht#_sV#(1FcO_kA=qIN}nq_9Hwbu+bzg=<1&!vFJr{v_{m|_BS4oPNAhh}7l7@oOU;Ky*&N%o za7wgR9u{HzH7vnTJB9>GahLA_&fV#)Sh_@HLpXq+xu&qrpgdHiGm26->gcuETX}k- z7VyinC@Bfkgg--Y!a~yvW8UxbZNb)bx%Ka)PJi1_Bjm}}F*=AG(ax%qut7H1CWt*2+-e;~s z?82-GYXn>ZcSL;OO5a*F8ykb{MH;IO6}M=%ulKiB|i(7dyzs;xd| z_HwsC;whyDueBfVSl46L@Un+TfzPDOvVxe_znAqKa2eg~b@mjXxAVc+tpviMVHRRE zRk2(0A$`9e0T!#{Rq$7>JQg3VMeoS0k;+WpMYXpW-G#xmoEomlUJL+9$7>gwq3Yis z_~{MxY;Ikv-S<`J3{p_=SFfks`a}QFs6v-Wz8}rCj)lT{>|Z>454arP%mkp$n3ylB z9RN8N+Aw}z<(2utbhklej*ywV7JBG&DCJwZBHY+Iy_EQL1!Uhn?~?gxZt!!Osha|X zPP0C2#MEKU`LRrI&Y0cw+}v82#EG+Gr50s(ao9B?szb#{6bkFmy_tVzpmx}inK2*R z99TJEB1rs!zlwssk5kK!YA;WjEz!yT5Z0N0{@Re)3?yUCrLcBB+WrnQUdk*H-f1o< z3#-4s$lT2Z&A8{r-Y_CwlsnUB2aybsEYv^qVaS^t!r! zNr8nUQ3rs(!EIQ@#R?B*Lq89d8xqv;Lcb8`;TT0US17qo_Du%{Q|j?VvI4YPRpH(^S~Cr zpyb)#O|0LQN7Vni&Drn_k#Sf0e5#$`7ELp8{h1EXAnq3b5YM3#YR)08$1Ul__=|7( zvO14K4X9hhr@=&FS6l?dI_P^xu>*K+Ab#b3xp85p^;5|#w6d1^C|b65u?GkD1f_SZ z9Nl~z!0F7a^umCSulrHA$4kJ&W0U?`U8vZ}N`X(5u*PHe2xJ+MAvZr+dMX2G)>=yD z_fEnvxkHqZj$&yOVUbh!SP%L*jwcjOcuxU`w9y`i0@Drd4HFHjh`Or-Z52y*2TQc{ zJolNt){MiUQuchLk`IuDyg5su#j$1>e-(zlFu~GHSgPqox)s%zuJf<^(*LS(+Hu|@ zpO^pSME|GizsB+!SUp%$QaSGdf#55BjpAn12IH=hg9MK%^s_y0kj z=-G;qU5iio?!)EIo`zTpFo?<2IBZN`VD}m41%BF4nU|BC89ON9kWbnTk?EJ+tk;6S znvVMF>)KhjZ6+Teyms9y*JsW@jdZS^^~2UwlHX#j|AF}!+nU;D&;EZ!bQOcEfL+-+ z8HQ!#PWHCZ*&5tNHcneYS$S6QQ~y@9enW<5t3SG>&qYcmP;FT5Yq~6ptEmQ7^1x#F zo!+y#TcPyU<2HFc7q`6{8A{pHO;*4xo4h(GiH|PeD=o=dV1^Qo-nCPJllGTUX6ZZo zn)10+t5ntTy}lju+yB9P`Y#G;X>O(aC}*B9e>5Y~%HEk7etR;>UNsl}VcH4x^8%Je z14)A?+$XTa?}3;A3p0rYa=+n4k@)eCU9aEpw+OizuU58`wKa6FF3*o;{?OB-FftWs zL#S#D*gho8fwg%-N>digbH~+Qtk(8MU1NUD?>|rQm$&{R?|(!z$8+BXzP|kqt7y3- zg_|PHLj5u729Mh))Xa^4Q_hg8k4uV(XZpN^piUuvBPs&a7_%VrjVm!2Vh{F{;g z5nun3Jhc!eHu+E6fx0=H39W2?LV@?K!cFto2qe z^Bym7R);lytNn6x{lm=ne=LyA1ENo*M&+wcrZ&mu7iZ2Sh~^c;uz;qO;i_&yw;zIAuo(dJWZm>v~%o)KGXaBx+yFu z>0mHT*eY%r0xM|B<>8U$=5?oI5bSZOy-Jy{cTO}~zWEdtl`&&{N0hB-5>}_{vByx{ zr9`%3kaD!R70Bm}s3%pD9ENJ;pC%DvBLn*H*H9)^&_w#qADr0fg6r#}EfwCCZxN~w z920qQ%f4JGv)K7*vu5S>tn-;4{#+c*HC~dOXyZ12W3JJKlcx>^JYnU=_xq!5D{Z8D zVf<}F0<0v~llJ!EA6fTvyFgiC@59*KLbukjSf9gu7-R-cflMue`U zQGHHkdCK5l-oKxZhgTUJt2*XnOu3?i6B848L9&}_k~{qthL$;ZE!$!7{Pk(F->VNq*t8{MkXi@sTpU2oIG4^ywJ6xsn5IQm^^FR- z4D{;HAb>aSk4?LWWA&W6m6!A$GbS&DT1ke~Tl`LU?&cudB^hYb=go+VN|n1nWX3y_ z3G|wmOrTzTwp$IOk7=0@d84G-1`Z_CC^aqn&Hk(D%zurnQFTInd^Y22lr|TZzST5naNc7O$KAW9S(( zmh!-E$?ucFntWSIaNIf;}n4S`QM3^ReNWG+w2wF=8s5z zSHQLE0#6S=3>m{3(BA9j)i*GPy)cr#4uL%-4vQOc!O8cWhuNl;E!WDCPGOP0Gcp!e zsCj@vFXo3p&@%h$appL)syJ-iz!RicAMTJ_uS~$`yxsKp3;!5PXHuC=5IqLkjX{;! z-tWG;=P;2m(Y%C`jGqkNbgk2&EOJM8+eBw={lH%y!yxvqMn~U7NEKT#qH3vmhijzL zu(0;PrvexcyhCi&>RCzM`jK(RZGnO+DdWyNkPD7Vx-AVus%|K$AX>J}GkR8LG6REX z{)uu$She35tZ&f5m#VwC10c{b<7u;5Vq(~jFJW5Khc{aR5y+ z3q`qxeZVhxYPwzRD-@)8FMeHhD zNF9$fR9K@-%a&hfeT6Q&i;lvr9h`hy&x_#I*`i?l1RI>e3uVYUW0PjjvxF_N?xkoU zRtN7pRnHd73)-D)+r>N&?B?^K9muf7cE(@zb5aHo{B8|MR8g7Gv2yGipR_Vnvq#oP9H;%&%IdYxd|Qk;Za&XRt^izPiclIkF;q*(6h=i1(b3YJFB z9e*`r-a6zeY+l?*S*o*UL(}T6+|(+3&6K@7yM@BQch)xq>Ut<&yIq9sy2EM}-4?I~ z-|=-}12!W*zd!b>7_8~bEzL=ppLQDUYis3{iUAFH*3eV`rlMIHx?)s3!>81=_2uq5 z*D1iRGI;+HU9LXs?V!9Df~2=Iz(j!Z7}XoB9rj~QHymoRYg(TAPA)v<{=u|6Y&Fg_ zz9szI0q_XM^xQyZ?tAdP8QQ6w_ZQ?7?ac%V66Sjkf{9>t(d6NK^G!yXCxhX;K@|pm zaH#eD$Q&L6BUO+~PR8rXTb*EC)~rMcUfplg!)*;`vy1LTesFg4#1?>oGKSthc+Hu_ zPFE;ipHO5vwke-tFVFr0YCS$G?n;d%uw49jz+;i_rM?Cs(MmMBBieaLa*7@Hc2+S} zx#2)9Ol?r7hNh}&baK@j$<#+4G8vD+uMHO0=z!aF{_o{=?^Q$y4{Lyh#nh(vnCjl2 z0!~W4h#Vjq!n7hMqIb2+t}b<#gDP}dR^uA(*Wodiux<4FsMqJsU-cFRj$e~M3zfA_ zkJOq6nK-q>zqksRNvZ5ScKS&EkR8^m2REXj=c0%B(bHpqvuiRO6N;SGF z4L2gvSH8+wC1wveyARG!uZ*Y)XfGV+yK(LzHLT8Vyq$zpZAF;6mzzH5AKU5_C?Kdl z#W?C+ZB^FRoEd)+$D1uzND%5FBRx%#o&q>Qb?U!Ggnc_&+#%TKzxzrSf+GD=$YAdx z=u=fyRY6tR!c-K$3W?vtn^dSDAMlo%_Fh9|m#uc~kBlq0QESbZWQ?JSpnY-67g*#d z7D^D{;6xjBMc@UXGx{ige$H(MEbR*O7g6uv#3>m5TEPw3hocLSPFmBAMDP80>lu## zhIseAgz`(-iI&H9TGR}4icQrZWp#UNi<+D+?HisFc0)2Ns)&%WD^rA_9zh5&TXg_nFt|Uo5nsv7Kx2CL3ypN z60wqdUVUA!a~RsnP^s@0qehYL`YEb<_~aAuw&Q*=gg3dnD?{uF= z_{W|(VGE3k^w?-$d-3r&!;H{bVJC8aXXQL9{e_@qdsrOrf7PW49F-9O*d=B6=!OB=i{bN~9i((&KV5b^Rwy0;`}88Ee0PRhmQW zQb1Y9SN#S0(3w?-+-YO;8%XsuFRqU>L(&hDZWH<`f(Ezae4%(F9kqPRy^-mYEouU* zw(r+`OG`w;PAy1-7$DoX>@lpLYpv%ggOJIwnuEB_29h_FS+&i%DwR!B!U-Nb%ov*i zYLqoSj$`34-$V%H`jk(ohV2)0jo*fb%+O8Hp(m_3HK?@VlX3TI44+lov* zTAS}3hoF&Uq`Suhc*?M)uM>$=ieA^B$9*?2-+q`n&UxSWL`Qd6jP}t)a`q?Je`f)f z<)(I_>iD_tha_OeHKQgj4vcDJS%QCl`4i7l>A{1*mV9n-j`FiWaqSe-a>@3Em$*!5 zP{vQwPHRE_zALiHH-`x%Hm~-?p@wDD2VC6>XO$ntUrY45@&We{k-%J0jF{go7ZkT` zp<%6N?3ZK;dP(5ZMtI)j9m^@Z;Qknh@QVxYdASM>M;r%3Z`ZTsfNg@{b5oq3JNkIS zWOAO4Zrhwp!~3+}hIH+q=NeclJew4+Mkc+9(K7Ms8w)*h+Yj4JQ#)??rt4}^QvI-L zqm|pY->zDQX%J7%X#Rj?NAqm?ZXC2zf8p z?7vNr#-s)r(68z&{`PlGUuCqegqlv;&*DA4TO4BYOufiuh!d|lY+YJcf0gm)|11lo z_|ynOGnV8#W-8dXG^;avY}u7FB&(n!XaJ!0SPzZRxC0R$fteAgmum^1%pOJ(d9>!o z_haRY^!Qqb^ub;Eyc~thJLLubgOl!#Hug+*;VNdKtFq=q-d0#;qJwP9W?WO=3a%GW zJL>xKqLc$Sl^@Vw<#}3A{Dopv@K&b~70b$7wd+ax1n3J3Q?CvCwV0bCJ>&#@`|Y1a z>TR3(&gE!M^U3+VOlHY%$P|V4+<(zE8XY|I5uAc684)-Dr3Gjw*~DZku-t8LKF^5z zlnp6KYNl`r+|IZ0mVeTFU;QM04tS}~U$Mp#?ubnw@M0Nts|nf*V(xJ+EZi|U$g|q) z1&_SVB#URXSMzSU!jDLn*Ovlw+2L`>z~`aBB+VxOZ;4;eWD+BX62Z(7siCp%UUzxb zaDRs#=R&$YnZr*`P2=$fI=?LpKV}F?tsFi;@Ipb>6%=L9Ve3LWf9kW#_vX8Q-P7^g zjN~0;%XMxq@W)MTj-cduz|4WQ0AlYaopxvndZHaH3T6`qv?lNuK3l7I8Qx4vZPBld zocBn5y00Y=?D$@8{AH_AYX4)+8$Kks&+=Rk*>jT|fJ$Sn)sWPv#h|n#F0Nz=ukVZ( zE=6eu^<6R?XI&vI9!Md^c6_vkk+ad+o>Q=~Ch*3lS|t<&}Y<2Uu~O&e|%;_`a#- z>ClIWt`{Lfbv&lpBQFXS39Wvf-!uvyQ)`V%JsC`u>HTFoDk!yhv!#%>N- z+9ovW_J;f;jVS{{)EnYS{x6qXr{C{5qFLAIsFI-&*~m8UC2`Bt&6z#7l{8bw8k;I~ z{ANd!<< zgQ6-aq?nqR@JIzB|Kt z;+3(|=BhT7m`h*gknpe~ zA|iK;DZm`2w!@tpwZ9F;D%_@wY1*&$D@XJ?(Tkjo;^V<(7LToU_6PuceYYbN&)qx_ zKFp@^k<^xrRp=NT32+L=?t5yD z^!_3YRQJ~8cD?vP$yU8Z%4=m}yr}N(9DfUcQ;&ujqI*$cHKqTYZTX;m`!1-i8&!z1JDJukCkz$rf!D3; z$K}z{T&lx_N}in3ynA*(H|~~?AykY6s;{*QW!=)cAu<%GA@7QBiZjd4 z0`9OqpH`l_{XupQW_ACaORlbQcmIPO%i#m4^DHcr*13`4#&Wh(Xd?B=U;f=M)>P`Q ztb>Qc_=qMw(V?S4al`U_(czN}5_w4U6145M3eB78TB0H|lG}mFg6QS-NuVa%gX@ ziR`OK>B~^_6@=VwTgXijD|0^-Y`moaiKxlS?{!Z=VYG*bGiUBr=9W>2FMg#A#YILQ zON^j;01LFM5rcAggnv(x%(Q-9{M_2}K%2RTE@~ta7%6dt^)S<`+6FsUBxLHk*Cym$ z@m&(PyB*wL8Y@!OE%-LXd+K#fJQ6q7HLgQflSG1mJ_;S#((X?uA->%g7|zU9*o-gq z*=YE$7M6pCu4Qs9ubn0$|5&G~t(A;`h@7o_0_yXF+*5K8^mpM88RL@YD+wr5{# za5z|0uf5hUBh7osGQlna`e@$KS7^L>t|ZNFZ3zgZ255=rONQs5)76I-Oz>VdBEiaz zmCu+UdA*)^DO-RlBU;W|oF(>WwF(avObW z1?bzRvUhZKqIYFlG05gL4lnuP^FB*iV6Oi`9`j1d2AOtJO{osNoPqbyrx>; za^f0L;-d=e7NqQC`F^Sy`GygkF`pKcMp6^Z>-2-iJaE+@jo;FScMh?3ja|N;8ABs( z!3m8l*^2 z@suLlByQ5W0olZ)TF#Ws1vb0Vz-;UQejpcBu9~1QHEzw!ma+6#;0z}R*GMlx}LPTmMfP!kg*cc=S- zP0JEgeQy%0HKr|%dpR?5q)@yIbCl3e0X=eFI*sZ@_WWYE{h}|)T$8z9P$fI$^4QFX z6sj(>pG6de&72Z*P<@9qrj=WdvW~}vd&RAOOM-TS)ZLo9V~Je&^yC=ShwUHQFEZ>u zwTsr>9B=kb;^~O@<;fusSs0+usQ*%5xO|3I5p~a2)t;YPzZEj*Zju~Nn$y1(@Jq+` z-c4qW&CVWI389F~&{W4zCCcGmLhb0z*E4!5$JIJh6rWLBpUP1gv3SR1GFe?hU#Pr1 zL;_pyQeei?c+WOd8xdC>sM3BDi_(3h5pZ`64tk8szzjlR3o1>uT}!W)3ggo#IEV@s z0y@3klqWntUKjv8!87Pu)(=N6->-O<+s}C3SZS^O%AhQps=4+lILl@YkZP)r$Ggru zC0z7RtED=m)3a_#GcwwR>fqBy1 zfJ}SUp{7_^m;TTW*0@Oh=$AP1UF2Gi428vNf9hVz$GXskD*ZX{8l%=m>xC_Ndr$CY zLowKY$?&Kt@dP_6INkOj3FdljyVRO;p#vr74IZ?3(${TkrE;gZIKHn_bjYQgBX~Ar z@6E;YQv~DVAv{;NbH_Kjvs7_G`Dkl}*_;IQvrMAsm74n3QHot#FJ|B5>@!7T7W#8j z?sFLU=Z;F=?f7H6ivD{wTM!+!h| zm^{d~W9Er1N*6joSvinwcw3&3U-vpwO_81ijOX+8YEhdZxpk|%IFGN!{QQ8&qA=tq z>q(#PS2Jd6g;8|&QmOIWcGLeB;S zmU>83$6sh5XpEe`0MDiOtaRd2W#(#C<^e)OJJ|uh^d3im@NL6EDcfF`1qN zr2kkfTs1IQXXN!o*UI$9_SVE?46Mijl&my#QI#Xs$H8BMwY7m>LFv#JRrmZg^r@F# zUY?}b?FSZQ%@zB9)SZE4Xr!g~deYl^2K88UqFod@)?a%z-X@AvAOP^BMn@OUUGOd( z?fvtT&bjm0r+ZE%)ta#rN}9mD7)W(MqYAe_inZ#G<$ygoO<@PJOw21JBvc~Q$0*_B zBJP|BCg%4_b#a%Km|Dh6*0=T;kVR4WgaF`45417=yt>@4hbfT=Op14Y;r5t}ts}Z) z%J-$l3VG0Okr4Eptsy9Cv+C+YT`%p}A7lYab=?OnfhZtNXo>hHstQTt^AGQ@zT97I zUXbp@0L!@zumkB5=!)kX z2>bkp{+4DtXP@O<{R#{LD}vWXpiB%UdVh$~>=<1uGjkvFd{jdxVwG z$t`Jz&#b6$b$oFae7eX28ISl|8-A{o&;=GuZj7eoia^!ZOkT@kCSIiEXLzmwsOUT^ zxgLSW7$KbpqW7%Yq_$^^G6Kftf2$p_Kfjn3dzq9;a#>(j01{9y`0m^XO|SJe7r+@; z9=-=+z1X=6fb0uh<;x-yIgU>b1?}|%s{5MFEQbfJg}VGm+G*gZfiQTDZ~_|$A&kUZ zGe=sQ5K2lZ0W;MeKiqX`%G45grmMQCEQLspNPtJ%aikWNZw@cqV&aF#Df~7%V$0pq zgAsEvQeWaXK@-%4k%st(bB_8vkfn4Tc?*;_-0yuj{4pae$pFRJN)$xC}{?2J4D)9iPU0XjRf| zE$`9QsbA!{by^~-`g(isR^CgOe%wrsa}r=Y?G2F>e4&&`ejHi&_=jK5Y>D4K3>V5h=0)ko-f5(o8tq&~X1QN_;@y=1 zm!R$_jgnsv(s^sZ0u;Tmx)MSx?eq&jiAekYO>UIcSjlMs^tcH9^~_+lfT>U2gYBcg z2w41Y9se4f^u2dqcE2NT=HAZ1-J2Tm-FPfyz9O}q<|hex2jjSUPgXdkTeo6xVC z(sL&!B51cg%X&527Oah$tt5Of>Q+L810J;zo>j1x3>C*#PSw(Bfjvv74kiexLal4W z2XZdHoU`Iqzqd3@DJD9G==W=pf~fb6eTXl<@o%C64Y^^tBzxCYAFpBr1s(DZ{9!UK zK;>y^?SQ(NJ@5Pwz$X720(O5-^4?x*pn9Q>TAbq>|E%m=&2pB!!M37-PYd1_yWefe zKMRk_4JFhAq%$)YQg>A&-g@0>)G3^%@}rl&Pmh_gmg$BaIlEVt59kqV^X5nEqGoId z!6h*S0+GIxJ|wUchc(NB*mdp$zL0IsUr|mmk`6r+!N|~#P#-P9Ws#EVft_;8Nfm7+ z?M_;{Ab3t^g``;mq;UOPMkzsBvmU`1LiE6ocP=IvtT=6hZJoAtV~d39TwA32>1 z8k*#-8ud*V5mCQ0hct;oydaM$9g*Ko3CDsR1{H}_?Gw}=0;Nz zXE7SS`JRCVI6hP22301@QRjYmv+DoGt=>9np%MZ8vEF(Djq^7;x$N%L5trFWVT%IWGI|s~>OH7cQhu$QUkx~f&3_sa)Bt(M5nSE@Leg@Bfv~iEq2K=vWX#7_j(JWf`&nV+LkcbFSd9OUVytl1|k*JNz zn&zOJs63aI69PSb=fZR7Tk@MW7g3h|45utva7fiB%}!R8UR|8&FHr;gmmGyRdb79< zI^7X=u?rC~R$^s{^gFsvMY(N2xI41G*>)c{7lzNHY{ zloLss8Hw(QDPbppFR-pN=hH>X1qCL=Rym?GN#J_wn{(PYeZBy3+ML-9WW!mW9>*6F z*gI0KbpZuVJR%%2cKn-Mb=(H*^5wgVyAR`IP-{Th@riE zB~R3F!mWXZDs}6FR>e0TRs#X0i41{gR@qMC$eDb zMF+mCS$hOZDQ)J6ZGPs=GoQ8@-K#h7tI{^d>I-JqH8Q2e8J63cjJ!)pi}@?OTd|x4 zM6`T4s55%FL@CFIeWiZLy_h57B_~~ZCpx+kp8w4qqpq$w>1Cv*<>&rLv_qY7(#-H> zGdm<-R&Y2CYXEWyi0>0a#wAUR`hwZEMQP29AQ7`Ht-3hDKiBiE%jWPAuH4@?pr`9} zUap3Z5VBfDR%3fXYypBoCv$LF#T~^eP?m=2DHs0veopcA7M0*zCV)3EDMcWmY9=e0 zcD|eYqCvw=4RoBb;{I!;B2fDrGO-fT>H0IeI#ygIf z+6Tq2XTs=V*9|k8HgwH7Ar1X|9=)L#OW%#DQZ8>_53Vw6}v%yp5|Iu^gnp;Li^NCcXOrh;WB1r zY56fPgTmyzar_7W19IuF`-=bR@4sb`>3{0w-(L7rO<6G*mVwE#L(*@q`r(IxV^F<4-4jdWB<#5 zP~G1b{+FNqTlzu&<=^r@EBv=aJzqh;@;+Nkf0Z@nb?F9mxz^g;KZ$x*%sot7L}|X& zS5X;DJ_^pJMA7&88cXdkcWewseIl%KW@+*o&8RJ*bcAR%YjntB z<;(Y@qcty<2RQPE|L4cQ<)i&xI`%zKqO-o5r4{ktXdh%%5Y04u z{4Ex(x17T@H;$>I1seN?At<5sMU$e>0@~W5NcoQ${on;yZTWzg=O-#=#XXVzkU>B` z<@g8;9m1k)!@Aul2Y&k^yL>5~;4p%Uy6a+C#9ejrN#l)4#kU4W8C*AavKZ|>o$kQz zc~im`w<{=mqz%swf`k043Tc&7tBz9_piBOxK?%kUAJ=;GW7!zk>3Z3sY{P(iQ^ArPWKu1y?Hy zqf+lSJH-%m)zZ{wk^>}qCSKrn+#S+CL@mxeC>>Q)sg}$y$V$qzoC`P+9nc_E?D$ui z>-u2ptcQn3to7yq1d3w_FM}Lx;iP3kHN7q~CwP@!9&HkpH!IC)&o$G#iwcDR9{%{g zs#dzFX&DxrY3x&5KXJ=xhsR^$`J49pH&9@*_Oj&+7;M{nLHq7Hp101G(?<#-W?Sq2 ztn27dG%B6Dh(COH!l!zykAP6{8;}e4cv5Hz5gn=6HdoppAIDY{WUpsVuT#R^4c?R7 z>L6AR3KoR}F#|!ye0_*{H;>N8^F`xZR@aO=L)DZ;&5|eE)mgpEAi_1o=tB!Er2+raI6_w;>hA@jQt2(UhoUaJ+WZ-^AMKfphs(AEDXLCD< z#{`9ybv`E(`(N3;IC^@IMyf;8l8*WC5O9&4hloJEb{dT}emzz~vS3#Km!;iGm}JXtj2;?O|zT?5`TU@ zq>L2`kS5TqM~7iOF}aC800K#C);39f$X_Ympifq5;&NZV`__hR`xub{a4?;3(Fwg?&L-k(J}hJAc4<_S=rw2Cev05 z`s4gBUh`kNEfw6bYFVpxORq zl3TK0E}|xxC0^A(E@upbwJNJxI(5$?MH&K#vVUc}tco^}_lUpU~BqF!Z523tf@CCQBA4K1lVu?^37Px7jaXK*tFCXFT( zX3;ToH4iK(2N-EXn~w(jMYJq_5qCNE&X)VBbBc!tt}uRP0zC>vLf)Bq92m%}1SZTo z@LsO90<7+ZzFQba>;L*?7dgi&Sv7b;E~cLAhMxE%#W3;UCgt^2U@SAFXw$1m@rw`-62$n$>gnFp19sHF?tMU(XoJ?SRg;WPxm=1!P1W zW1Zrie5h<|5f75q@H6uitEMW~4DVngBM84RU*wXVMv_H$>f(wp)X`VWAWEXVSzF^) zM_o*-7P0#anhpy7-fka~*lANdC>5)<-Q#}g&VaE~t@n2?`h)})Jc|mPX?aCy{+4lR zw6?({x>Zt16vtJwje^h2uunqu2hm>ZQx}!wejV)(EY-Nyx#Ov$a_rHL4~$oEjB}*f$21Enl$aS*gTVmqZs1k)I-d4$VztHh(pv_sf%tKx^qt?g zI_+dVolO1FPP?;AOW8dWOGjb6fEs!aY`ZsHeAR1;#NW}WUFCslU031z({IGNiLGe8mSPaWLaEKLAF?2+#wli8O>d9-^sRA z?v&6?M7U)3nRTYm2yH53%XyyuR^)Qr55n&nes1s>Sm(n-o#5+UM7Qh-C-LAeBS@`t zd%~CdKUsNV4v$)>))lfrUCr-4Svs!wg^8ai#OPHAC_k?r;cJl(k&ccc+fT=gOX6%V zZ#@BgCq6LKn=4LwTg9}V&-SXfms#k0D>ZylBN`*VZo?7B2~jB0eNF?b7^y>YaFV9K zDxu(LA~X%0y0{uW^Mr3=>u#Tw-K=BBjSO%lxPx%ALD<- zFtzQ^pxpE;@;WeVaUW%7Bb%nXs=l7NIk=43(eTYRF6flMR^;=D=#~(HlRjW|9*?j1 zf&%y00TT{&hR;SH%KM}ed7~F{Mh-a2@BiHKZyAk`9-}EN&Mwm6y;%3zYEHG^V;RS7PhGk#xsM|CysShY{ z(XF@CV-*GF0SnU6C*N|O)15*`D7O@@scZqTQ2E1`AlerCOR)I6sU&qnl3X>S1jgKw zB?x{a=N3I>=VU_RcS+&8x4~WcR!DB@s?YNvv&8iVOuvl#p7|Otk@oX_)4UzC06JqZ z^r7-h)pd3++OW5U5-xV8!Xle5Y=nUnnRc7zijPo_ZYY!&#Y!i-%2rhWEQ`~eEruh6jF#il2}-0<;NRZYFjDwu~+P++xLZM*tH zjxwsDKW!^I65hhwl~fApR|%zz|Jv|P7?0Iizm7p3VGUtLF-uCgP!d=cDcz?JBOgf+ zd%Lwwil*7;A2i$%IP$%_IU@;mF^V)*uH}tG=@dEyMfyZ^@|yZ>zei9?19VNzgvh~p z<4NNeWx;K^sL>(GnmQ%fd&B-zb)R{c${SV9wc{R!CFz&Ho{1r;7?~GUUvehNe%{u( z0e%@2X~F1IR@>FQIiBcm+#irh7W(qp+8V{}MiX;dK-Pf*H)tz!c-26{%g&mR{$&Ln$Ov4CQ9~&kmpZd z4k9~X)HD0ijxmcAKH*-A?%9cZ^+k~I@JUCf6?DR)vIDmVF@@O&(4+Ke@xN!`6T zkcr+YAMi7nzul2A4W0pyU?#@Q>(t?I(wK2{a|RXx(l~w?eBqg$4sOc`ahvGkb@=-I z{(Y_O$kZ3lZ9>`%{pzcN?!2l9wP)Yk9YzjK^Cn`O9J#lpPYq6s@^oUIhnZ&yLDkW- z86AS+Xcv9?@if^*!LzO}or8N}a|96rpv$%vgE8_EUWJVf(Pfr#)8&Qn)fP%^vpO8{;We8&;_41ngJ(2YH70euT6LV{|72I*|hoG(>_R}1V@+fvVaL=+;%1#KpELY-Dl;y{DP z$rBQUX`ji66|$Gl2RDKT-W;YLS_(suSZS}FQPJ%h@Lq7OsC0+>w z@@-nII*RDl_}C{&pNnCaRKyIe)FtbJ6}FTn1YP2Z>vwbPQ(LGS#c!kI;adADr`*yq z3NYs*a}O?Az0t*g?C+0+Ak-2X|- z6cUQIKOK3y<*Jl;=y&&!>G!U(%FKyRQ?_g@YtP)K;t**NQNGwJ=K~`7h^CPEob9TX z9;?fBJ8TJ`S9MK&u_~mnry^6 zIMQ{qnW}GwDAx54=Sw&3(=jR}>w-`2Eri6&gUBNlS;*Cs-`42$J89*Nj&U~}yLOec z5d;OyXj|H0OQoBOXB!O;Q+i$S&Bd|CJFFY;RSPUuK`sviV~RYOnM*8t9vV;u!>CXr zJg8^TGu~_29=xuf*nDPOE}Qz{-EnnP>D<*0SBwx}Tq)Kji>xkisVF@mvcbg;_B7Km zd|6+ZVT7s?$|hhv%j5Oy69ww!mbATH)q?GOg0JFTf&z<%wVCN#c3lydx&P57H`vhFR6d-E}JS=J}};-wOqqvR=6sVJ#R+*V*1f* zZh*=+OjDdsvgOchSo+^*v1pJ<3UGnZAJ-W+fqUS(e}@ zpZZ*B7YW%pr4b1iQNLQ~tFU*anB`#bgIhFHeoDK&`-g7ienDPn)Kg4?1cfK7iE4?t z{2?OG+PItAZ~lA7n}P(jX0fE2lKiJL>lse$-0W44XX9J1gz|>X+@hL}S>hQQM*GHv zweTNp(zD3*L5CO?ek8@za&Mq!J_#-8>~oS_49B%Mz?Y#NoP3VG$CAXzJSLbxGZFSb z&(Rkm0d9lznU$@Cl&^(Ep~ zABA@auiANjAT|OOLGM}|Eg}-pNNY)589;m{!%hO%UJ)kE%&zw7f-ye~RXIzU`_z}3 zc%_`r`e$Vf{w<>oe)2bWUfniGA9lwaAt5GaAFb8$xscjRdcph$-wQ6&Ju57rYbh=N} z0*Vc-w|iQri+s0!S~K&@k4~QkRTzX@Hx|jdC40ru@ynt@(RSu8sEr~a)$BV{^lna+5 zuBJ}`;@=JX?Y`HB3T!DqpBG)YS-)h1uMK;bTkh%B;T%=u=%hSZm5WLvvjVZn?0{+u zsJT(L{y8K0bhY9SLn7Fy%;=sAal3W39%o;Ul*p1GAu^4RwS8T6ZHd^6=-%VL8~!{i=5-=`TmV-BQQG<`*(AiKVf8^`;#}WI2-wl!SS#f}o8! zh=@Kjep+tECai5^;NL3*oG(xFFYi~X8~{W`H6?4AxN?Xd5{tDWKQc4pD(98swgLln zvY+ykv;dhNf^M~z7S-t>!UDhOD0^>a)^Z{vjPIGuq+Kpgx=c&6_6T{Q*9&QFA2x9%U20?CAIz(vuFlRInz}tQl28v>h2Gq(hSehCd_ttkh(KaS`sgujnzn- z$J0F+VHYz=xXN5t2?-HQ4a$9&Bc^32-ZH2Q_DEL^-%j~`=)-=0IicAEY*M($@_5Uw z^p}ABr&E?Zq*MG`AQ3=Me;JcmSJrR-VHg`c*cya`cy3EGuWrBe{*87AWcncUu`(oThXMn01%6gBs!IiDAoF5;(~g0-QPyO zFbL8Uyn&venvt}OhuEShV@`!4qS)IVm(IluTHE?iN8F?qS3TX+s5iE|5)6u~Lvv-b zq9`1ZY^dib7Olc>l*Dze=e+~NSl2AD;uEyfBbRFFNx(UgahXKAzCaBRY}?W}CtLAJ ztdV;%XRPl9RE%t13ZZ46;1XsY1KHvLr^{KA%eBQS!ZEQGSVj2rUyYc)FC8SYcA8Vh zs#`z4#nHygf_c#LH}tQ_nX@K+5mP2Dx}W#2n0nXVk!oVN-b zqyc{GYFy+mE-M-mJ*f-g4v=iY$w#Ahih&O0wy&8$(nIpQjoZ2GO(U?(29Xhwkd_SY zrx_qKsCQ;vde}lGBzwN7dQYxbu+r@&V$57%=J3cna^B}*^{(Z|*QxMZ7K17a(pG}g zrq@Aj*#ya&`et5En7lvB8%A#Pb-oD^%{JG4oZ*OBYWktZo*O02Qq-AQfe>&j_EC`C zVq;ecmvS_jaWx0AQ;`t!^3```jiw%WgHb(}XRMnHHyY>q>T~-*p1^ZkeWr`IqNa)* zlBtn5*uwItGc!ilKCyuGS*j(&gQBvA9``6!e$HV**4L4$AJ@!xY zhuvghbzLP95vs`?^=TTrfnDzWA2Z3#B1hbvHG8F{tEQfz#iA9T*iwa-Pz$C7&27-4 zJdi_7ET%uAW%YQ=b!lxIerVm!Hu8qIjCqfpZ~Ph3%uf5^Q%iDrSj9km(!xgg>?Qc%~z*A^a~%s#G?w zR9%s&^&*{Cem!H#$(-TF9ErAFKMn%89Ia??E`L3veE*~V9)>OLTYBxj=c`_#+5}QD z!}TD+weYCcBPI7~;8cikyjA^?SxD`}E?-SaHp?$(>Fh_r&)dlEz0ug2kyFRag$Jvw z!a11m^NH^YAfELD_6i@jg#M#iN%h~iTJ|*sDnoa%2bi!ovq7e{v;`3JyF9h`^Ml!I zRKCv2<5rcvPZx~LY*++Q?{&$|uxV$CH|=poKCekY}+&Cc)rtf?tpTGf7&H8QH z6SHaFk!kBRkxgx=U~aYYev*-QeR{)rBZ$iJr`8)QH@@7=HnF`WVy_#HH^8{kW4)5pr z{oZK%b`3{5cyj95Cg!-eB6zfI$5Z`pNml=y3-W)zbjS=Z=^vH8YT$V?tJvtd^zE`s zl4bpaqV<$74-|5Le;L8b+xPh~ z8rD(H0i`B0+y%snF&X)-^7aavUZJm0{u(l!6!_ymXyH2mH?Kh(EKjYN^TphS%->t3 z&G3fUO$Zhe>Y)9f9x-u?bDg5Ffv;zRU(48gKlumM{omf^DPsTl<@y1ywp9}_XH<+- z4OP0GV%D#cWnh&x;Q2z-f~LmN4`nUe#O$zz2qTc-l+r!fv8D62shD zkcErLE;jh>B~zdGNBKfB<4z6cDCTeQ!h*M0WW%k(5(nyza!qZ(C^c9V1rAg@l9T}f zb+B|`-ZVt)A2st2dhri$f5X8{%7}0v!%|%R7W;qtl5Oe1ZHHVRDPKx^oYrqSwR3Bs z4-^b`u=LYdV-n)n;GjXHW*k2=z1nVi?rIF7K4*vj!8I+nuvaQ1xh2Dco#K0bdkZCB z&lGYl3G|`#|G4mnJ^q>DU|4B9R`R7Ut!>v?{m*lf@p~7=znvAZ%inVHWTIN}Uk+)j`G;rRcfz#kU) e!vcR;;13J@VSzs^@P`Hdu)zQS76|(~^4|dc&9K)1 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/opengraph-light.png b/site/public/brand/ocaml/workspace/opengraph-light.png new file mode 100644 index 0000000000000000000000000000000000000000..d52e77008c061efbf5a15ddf36cd3d371cdfe405 GIT binary patch literal 23424 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

    XT##pzeuc5-x+&K3*2LD_izE9_gixQ!_>t?l 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/safari-pinned-tab.svg b/site/public/brand/ocaml/workspace/safari-pinned-tab.svg new file mode 100644 index 000000000..4c5a59f7c --- /dev/null +++ b/site/public/brand/ocaml/workspace/safari-pinned-tab.svg @@ -0,0 +1,2 @@ + + diff --git a/site/public/brand/ocaml/workspace/site-dark.webmanifest b/site/public/brand/ocaml/workspace/site-dark.webmanifest new file mode 100644 index 000000000..35c4c1eb3 --- /dev/null +++ b/site/public/brand/ocaml/workspace/site-dark.webmanifest @@ -0,0 +1,36 @@ +{ + "name": "libtmux for OCaml — workspace CLI", + "short_name": "libtmux", + "id": "/", + "start_url": "/", + "scope": "/", + "display": "standalone", + "background_color": "#12161D", + "theme_color": "#EF7A08", + "icons": [ + { + "src": "logo-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "maskable-192-dark.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "logo-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any" + }, + { + "src": "maskable-512-dark.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/site/public/brand/ocaml/workspace/site.webmanifest b/site/public/brand/ocaml/workspace/site.webmanifest new file mode 100644 index 000000000..54a2730ed --- /dev/null +++ b/site/public/brand/ocaml/workspace/site.webmanifest @@ -0,0 +1,36 @@ +{ + "name": "libtmux for OCaml — workspace CLI", + "short_name": "libtmux", + "id": "/", + "start_url": "/", + "scope": "/", + "display": "standalone", + "background_color": "#F4F4F1", + "theme_color": "#EF7A08", + "icons": [ + { + "src": "logo-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "maskable-192-light.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "logo-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any" + }, + { + "src": "maskable-512-light.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/site/public/brand/ocaml/workspace/social-square-dark.png b/site/public/brand/ocaml/workspace/social-square-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..9b265a2519389dde2aae7f946bb48b9b0f0e45d4 GIT binary patch literal 26370 zcmeFZcUV*Fwl`{7R#cV+5h<}D5}JVYrm&PHT?rsvsUl4}0YY?1ks=5fB3(q9lt>K_ zNI;~8rqWv?C4?3Np(YUW&8TbbefBwf@9&;_?tPy7-0u%yCi9(d8Si+<_>JEflL!Mn z&7+6U9^SQU*U{U*|8{rRu3zNYKL_^!-`IL?4FZ1-J^tO)Yu7H0lkA_}yOLAS?Amp1 z*X`eKK>UXn#{6ETu05sBRtIj3Dq*D^r*%edJ=ycSy1GJ~SJ&^C_Fg!^arK<1o`7fb zF9~HOlJ^t5WE-aJPDbk^8ZAK@yLatkAmB@MDZ!W$skKN{QJ0|0SJ&wsN3n_O0)W|KGXz|BirsM6cN` z;;SB3 z>y~@?9C!d;Gxx+%p8zg8A;(uWE|t(s7u^?f__J1ugya>W!mi;^t%b6WxM0J)&*f^? zu=*Y$W|5JAlH2scY&*>BC8rTE8?m#?B(q2Z;gLtn$1>GdRB@if+#P9%Vp?hA*=MJ( z9ytPxPK-XII3>7pH$>|NPXbmD@{oYxrta9~8;OtD);-V=JGlQK*Bj2lWkE>IQAE01 z@de1V2aEb59OvDxZ>u|vLJltvE0oogYgLwP+~zpQRZlu) z#s`+Ht8N3UhiJbXo=0J#@n0>BJ5G$H}e!w0`A<|gIs3w**$3LSFj&nWkkdp zaORUMKEG@L3Ao(02{|mb-jH2}3DM&F5V89{`(D}5i4_G+&AiW^@Ve>xVFTz?Rnny9 z3t9s(=9?13Tvm#gcgSJN(rBCcKqdarNb%w`ZeY%~a_)|Q999pl^rv_5J8O`>*gA?! z1-J4&2`JlRheV!^);cZ_OP<&4hs>}lYI zIlp9rc4zK^;AiuH3`P(v!yHB2bNDI`!U2El38=t1$gkj4ltJ6D^|J#K3n$O~3Vvd6Bkyypx?p0OGC}AnU??*GFvx_5;-?El z7yr7CQ@6*xFkU)zYnAu^_pgzZ+g_^OyZUX3HKCFr&b%jstULKfaIMDSKh; z>mLhXPn$hbB(NBuF?$Z|rvY33x7NRc|6S|vWBhGAU@W${{=Ns*ke@61TUX!50iOJ8 zVBq@alYe$~0qEuLrp}h|U#)>D|LfNO8w>rrzS*t+I}2rN!Jk4rtbX%92=U*G<;MhW z{#_6I{@k>`7We0-{V9t7(E7(N{@k=b#q(n=e=hFA&n^CI&;Ow{d(Z!k=zl2p|1Hsf z`-T7S2l>ZEH62p?n`ZpiD*2Dn{ErI!-;;eL+Zg<9;QyqO=u7c?H^9bf7bg6)Bl0<%U?;Qx9$$Rm)@7<4`_3d?NSJWk|ncJsn z#tDBH?9*m>pC)WIiB;XndOh?~qhnUALq8`DQqOLj2EXDj z4<=88|7`A==RIf<8b7~bZSte{)hL7657mcRq{_YhJIeyjTR*J+40mRHr%}!e{(W&t z+CLu#q{xQlY(4+Ee*gsjzMDTz&}PE!A2w&tpX$tp{OrT}XLGi=0kF(&4#*rI^epU% z)#Iz5-q6E0qrbaGVA#^d5IDw;p?00GbepAM_jF%S2LKt^&oSb%Oc>#vEv#5N8MMHL zBR@T-eg71zvf(v+dp)T6$?l(x4f8&kWwD0B#eU2IaHv|MYBXyY8-RT8%>V=bS%(o+J%;;a`0$GZKfBHV_C8}39(_i+^#A|~zB^`6sFsUL!}QN%6&idR{J`s{ zgH*?HaHSOd^nMK6yidtlthWE-QrXzy-

    HgdP4gTR)M;|8c4R#7_TE%m3q2{}Cwu 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 literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/social-square-light.png b/site/public/brand/ocaml/workspace/social-square-light.png new file mode 100644 index 0000000000000000000000000000000000000000..ba44411f3e79802124ab41862b6a6bb4b9c2e278 GIT binary patch literal 26331 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 R27C#-z=jrAOE0^`{vG#g155w_ literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/twitter-dark.png b/site/public/brand/ocaml/workspace/twitter-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..3f33d8ac04fcf1e70a24b267489a4f7a5786eb89 GIT binary patch literal 23302 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 kef|r(e~>A2yZbnwK6F?dEv(20ndmR;s5{u literal 0 HcmV?d00001 diff --git a/site/public/brand/ocaml/workspace/twitter-light.png b/site/public/brand/ocaml/workspace/twitter-light.png new file mode 100644 index 0000000000000000000000000000000000000000..f20a3b339a2af5d0199e420944864fbcd9d43ed4 GIT binary patch literal 23278 zcmd43cT`i`*DkCg5=8+IDk2E6qSBNoMM@4f^dO)jO`1rrp|?O#Kv8KT(wmBa(n1fA zgdE_68iI)Q5-FjD5Fii;A<4J#Sbp#L#(3}jKMW~*@3q#PbItNRbNS+quGYRi zNA_&nwr$_7o7e7b+qSc0+qNCXpdG+B?C|G0z@OdjH%+{@ZQ~c-`nP>sYWm@A+rZmy zUDLepKR7?a_sV?r-83_0B>xuD*VoR^zRIqkY6=?>9bJD&r9ZKBw_@w#3!*~`DkpCL zp*acmY?@5pe;jm8_c-WP_^X@8wVs6Ucq=ik0<+u?A|)2qO&z#!m*P&n`obOm_Xc?@_76#`x~LEE-H2JhUq z?N1?K5&vVC{a+mF`@}(4w15Tv&#vKr{j~ovas97{`mQ6P@EAZz{|D6d-;V#^{`fy= zKqWMeVn}Zva=3IcGfc#+v?~>86DVpHG@_UN!EZBN6&rchJC5H`k2Uv88(VZUIeyvC1v3hb`2FH5UKdNRt+r$#EH z_^j0Y`!DlP2Ok3&9p-kbHwOnX>x8wa3QUZ;h6Hqj!t2GpyaU*r+Eu$OYl1nuxtiXx zBASO|voLtlA);`&^lOto$@J4vM)ImQM7aLuz3&&dkWP)6!H7Xr!97*>3s#9N2vQ-8F8=2pC818 zxuZjZhhn%_rP74=G>}_D&|d$1fQ6mUC0%ICJ@Ea3f6gm8M7$uYgC>Yj4iZAjI0G^| zDQQ_s`X}}D=C>{iyKZY8BN7sX1^N|dreH&I5dEfR^>HSYcDYs&Bo#C0(`zcfk-!Uh zCG-@GZr=fALJMRxTgqmsk!v4a8|KZptD6G|kL}w)4NuJn{TBsZoC2BnqE2o4^1u9| zr8hh;A_8od`7c3TaDhbQ&{wv-T#vrzwczxig%Vy%#JJ!0pF??*xPLv`eI?O0zH_js zcsDd?^9BwLXwgb3)cq^;udNa1SLqQwykl=78RfjZThF{9l({Z>DiLgBqR4))J{Nl4 zP8Z&Uln12UZ%L13q5jYoDwBavzg8CuTO47@F(~|ib7H81wr&v>Y=}(TIaZJ){;h9o z1_#1J?+6JrfujPl>ZnSG|Kpp@pyg~t7_h!8nrA?~V-NQ>#Aa5v!p;N30H5E1#iKNp zgI84k>m_}~DsBJelJz;;i1mHD05Jl$90(7)0Ln9~K$0E;TDl{&=ZdEC;V}2*n#Rpt zJb*s7zG|pH96t7YB71;{v2*KA;I|z=pRyG^{++}Dz%af~5Lnwz;0XdxfJ?Wc4Dj>* z|5x68pZdRI+*--crJn)9;=gOY0tCVzs`zi$dkk3kpF;1EJO6#N=gNP+aW}aH8=aT8 zBRbeJ(&bsJ(jJ`QmwZ_ed&3ZkAYyvHk%r%b3pak}mf(*A!ZDD;ZnlM(1>BSlQCUvr zsI6nyNR~_A(3_5(z=!A7dWHUrckQz%A+LckzYn#gfgd*m69J|!^sf?j{?ZVjP|y#9 z`L46?SAEy>mI=L9VkQ_dR37?EH)naLax-{;J-0YnbG^kn)*whN(tXS=%d(R0m2h?_w}*nD7D#PemTTUoR&Rdy@Jw-emG{NpQnShUKwF- z6Ze^43b@LxXs&AnViC+i<9rBqd9GO^?R0D2%cRo!XK9AwomHbj zlxSUxehLg@xCHLb!x?yxkho0l%tY+8agmaDysp6f=``-b7o0_0=Pjt<)Vzvi?%diS z?VG`~!Xd^jqX)JfB%0cMt|?5cS|J@`?~A_>WVgA#o&8RNJHP(YzO!_0^PL8BGP^3P zU@rC=m&}U_-WPvb&v(zBA2!%-CS>PdG+yt=?9SBI0Ch`b6IEa>gI85s6KZcnm+0bRy(Uqh+>@yA3vB_>$$U{9bA746`nFdvQv07jW8;KBMunqc%@rVmvHzWln zrY(aKlPcO?t+Ey|1xQw8dvWz#0dmTl-Fz)OxUl?CU_}a>n;)r zXq&b7QP{>Bh0|P7-C4D(AE2A9wKcMN@Fr~K+< zcc;thvP8&utFB?pY*>PkX`X32w$NWQIl;WF#dUSN*_yrBT1fEQFZ;D5jo9AY&BjY* zp>YtsU)xwV?7W!R-Vuk$Cjv#Te*KrSMZ?a4Ao||mrd`e>zRelYNZGU-o8Ou#0>kmA zb825-l(rCR`s#?Za|50}?AkxdPSG-Nb8sC}lJ-i-@cpGm7t!z(-{dj0ZesPY4c!&e zpU_uMmt5-)qEJ~Sx~-!u$uC3nZ{*7$J@tvgCy2^{{gV@Vbr7-hVpll+MOph+=ytR{ zn*D9jN~AB0ZFZD5h&m3Y3;F=tfjEyF8WSAw`r`Oon~9qKOSVZy!(g$KlY~n{Nte`% zf~H6O+^T1LSH__1hpPft$J6QZb3K&K3HxTo<$+r4_}SN2qy1)w)z?Ny3E-gdPkHAA zw4EkDpNJtII?#zbf9!e^vqDs(PL zr7|v`ldLhyy`8ee%&TF~4?rMR>op>oxTQqXc#^9Y>aT%5U7;$^Z;OpX#i*5Gdgm&0 z335;cW}C*o(kr^bVbN5kcm8y?#usdqFb3OB@;0llxJSTu>t-nW^k=essuyPXg-@^0 zss59t&F37cP4imE!%WJT3I4T&Pc#LSwp)20TJf3Jp=I;LV^ zu_1((_(8-u3Gua8!n(hVMT+68_)zy$c|mFspX5dc+WEGXp@Tw;qR0dfu zOCu|=uOa-4zUxX!G)~juAx4qP(i=#+>o0qn_Ytz&Nh5XzlZ?RDcTBE%yp@0ZfDu;G zr8q=;;8$v?*R0w;9g3}z4za6soG3o#$Z`qliSimlEI?Yi!o7;ZQVYA3rlEEA`B%P3B-)W@yLu!jgBmI56w3p z@%QAT_g$Y(|8hPSe%d$UYdx!*psID$>kbFuGer+It6QgV6unD6{dPPnZdK;wN@$4Y z;k}y5&b=b8Yu>F1?=1=GU9H(iL%uk=lGbjY@yXo%GsP(B8+nb_tu0e}aID~kA=KQr zXvXWbtd?dq;F}?9WzwD1t2Dn^%r5TYba3smTOFs#xktOjuIRp|F_nBv7?OvgDoVK8 zGc?Y-nGKPH%KM|@Z~sy{b|Epn#J9k-t;V&7CHc=mBg^szzA;-Pvz{V*%*G%^wXpua zgWTEqUbW17g~Q{Na;U|xYX;AYMPD3M8v45;m_)0EM|Ere5?zo@+yLRc{P#Q5IGgvtz5U z-iwR-Ph^<>wq$FesVJ|?HFn>SoV6;DrcNjRO8Qt|WK*n^-}2v`uUmVP z&{^junHgLIYEZpF8d;SJUY^Yxa@(sc%A5buWNyff!w` zJFknTj@p3(TLQZ+(x(3T<7a|rC5b-eY`%Bq9h%c*I%xKU(ZDZlBUH!bz=8R?C|j^U z;79@ee+HFLTY5X<;{}GCLp1wq3hT=`@`^^jZ`JTvqV_i2)F*mhzAr|ZGkH)RgxVO<w4v!EgahJw&-N(|IN|vl*n%1^k26t$)vNU$g8Tl7kAbhp%^Aq?T1f^m z2BawLp!hoA{pklhzc%}5FV6B0*v!DRxiQv~1PF`Sw>@yQr+3p4PuE}#mjjCwRA2rG z76(ma9mRb)=e$z2YfW`Vo_O+?)P3KXZZN;8n-8iZQAt;1S(^Spx+4pOLEE+in$_aG zR_T8Ar?C0;@5EqB5Ckg4(;1Dg5-p+Ne=*Oxg&_s06I$`gK726o_x8RzXww zt%&f#X0!U`!g?SZnFhQ|#*N=M>!QR1|LM~HHe+D<N=X)B>u+T2 z97`~=q=^5PSzj%=T3F9~hZgNcUS_^VM~B5zKn?58Dg@KpIoSKHDb1CR!pXV| z{8pOti07QBz3h|hHNyH*k9{p*--p6O-Q9PMZ8E*e>O$?WI!b zWjkX=C-l@zf>Tw2Sh+P45v&FTqRWQE+P7 zS+A`-8o-1n>^#ZB(E@`TAy~4n*EG@h^zW(hkCaW<@c~ow>l?Ao@AQCf&hP-?pU?FB zekwphDg@DAQcG!s(86Yfdg9+*?O&evNL6ExE&;x&gxhPzP13#q5|P=Q z^Hb%N3SK%adLILu=g~d=YlaMzY1OcA^C|b08yUfFc<1%4?32m^lr{Y!1;wTH_x3hG zh?h~YOU9h97}hA7DE0f+0@Ga^>1g-Ak3|^C=gNb4t+J0f3m&aT$+MISE80@Er9tI{ zFHo*~bXDWy9;JTY2y+pcs2zC%XDl)=mTvG41ODl|rHDZ6?}sQV#3=n4u@r;8A)f$N zTMLa;B?W6l%G$=im=i;mjy}Vhe-QZ_j1C zs(XDC7>Pl1YQ_iRm4cO%I$rqTtp!FL_%*A|c3SD7v64+1%5IMZCSX;AZoB!$?6ZQ) zMmv>0A->3zT(s9^ACeKh0#p6y&j=8?jQSmclfY5HE>`-pSyrl^#Oiu*P>(&06`W~o z)J?zmY5YPTd!Q-QJz#f(4(j8c^4lfi&tcPHf}=3>Gkd?V^O30>kG0@}EDvB?09k6~ z?1-R>%eB>D$m04}NT)LPKZlv0*1vxgg|oQJ{%T|vtfPlQNzXJkJqvYraoN!(v* zVTqp)0@r2G<*GkW1+V*sExv9qc3?#*je0s4pgU6_6eHYd?ZyIAwIweLF~3*%S71Vh zozFg1bN>^C&$Ye*sQ@n@5Ab3elX@H1C*xz!X=(Qo^!Xde$3c2fdiqN(B4e+4h;+H< z>;|si`_`^8Ag8_`8{hn-Q4ooEg(-)wFV(st`H1IobrpW^138d2fJ0C=G|{uYL-|=3 zlSCNQIIj$Y)f4t0pc)j>^lzR)7m(VtBttN0QoBK)SzoK(HB{(%=}#Q*MoS}TpSiw<v#^8bBvjg8 z0m$uf5Gi0SV@|Mju~Ex=NsKu&AqdI#f5B@dceF55*tBr&jq@YbpuY+4iVzihulug? ziGH`rEiCCRsNvDmM!5wZ#EOS&rXLW3E{1T1HK3eBL-Ti*z5!5x-qtD(Zxs@&_oPP# z?d7}A4i(RT83ALK=bVQ$?%t454f)%oyzX#q*Hn*S^7huf+LwEND;N!qYK&2y9V6qB|&DkZQiSyLP9Y4dKdmO(!(-|7u_Q@Cx8@Yy)SSO!t1iGir&% z)S`J}f1zfZXfGn}V`n3OEP(KwyV^_Z+`~HB7USBZ7x&^h48yDin=!)N#~PTfN#?CP z()84r_brpasg)$nkXfppCN%7P!Np2!zkER~gZbqjmu~}jZQ(6Y0Dx2*G>?Q2bk_FV zt`dc4P|}rNSEYKOV(6HB5n2!b)ZJ; zdL}-|mbZ@m383Wqd7Fz;uDQ4EUDG(06G=4#1D@p@F9eh)-T$4IHWY-*Wb`Ll>)NX* zIIo;VT9zTf;y`&bH}3_*(Tnpnt9q1_CrkF%ggOH?BIVht276@!faAtL=xbGG(E3JN z--k$^Oj&Yl+6GrWSW+act6?rAHwKQPxK-EC*BnN&T+^v%JX5v`dMIaL33)r^^+B`D zpp98mH}u3;2yxIY4{Cs%x>s1EAf%}bCnf;^Dy2%EQ{JgD+s5+bTu-XvzCbe%FXUT>7V>=yR~z%Jb}kEOoE^ED30xDNUPmBc3EkZJO-M zxJ)&$&-^|n1SDc^cG146+kT`o$nZ8XH+Nbcw+k()}$ z`nP;P2nJ1ztc_CL`_?tuNeUY4-`L}`wG!c|5fA$z5qH4p`>qu+0e4tt2OE;TF-=IJ zPHs6+8^>K^?|nu!;IyT9-+LzQNm4OGe+daZ14j|8oK<^@paS9uf5QyX=cuXdSg3ey z*CBvv0ySjfP4C=Cu6~g;c}iYY;$#Ml>}yc-9I~Px^<#St6-ctc6eNc(*k`O@8nv}~ z_cYY;SrLNl+p?S8ihxDwMGxQjK1wHUT}H%m-#;(>|0tkXhxv#IS7j(mfs!J@Q67TO zFTRrP8vT#bj%sYqgbhl~J=((3Sbe5$M(iD1iI0!`+sGRkUKT?q+yVES5waD}WyoN& zi#6ngJPC=?r)>}FqM&1bq3-8*T6tK&Coh~Rm$63?8z4N3b*0uxe~Z1jbY($Y-L6rm z>W}btxX=y5=O(b3)8>UnBF?ctdjaar29riWl+2t+O=SS$&A0sX#-c>PeCZR`ro8dG z!4PiB=E+Al*+u^Eh#gBJe2FNGx>ZOf+)abRmuUbO1Zucq=seFoNw`nejF4c~N6_S3 zQD-M!-AXEi)@)q9$~(3!79QtgDInSP6sKded)V+)ZxLABix%u^d81e3=!{@UakN?R zh~<4;)O_PokC9jU(;sV%a`dw-1SBdbS&8S*TL6RjZV4TVth9L=rGx4(7R>v$71V*q zx`|J+c<_>Dv}>=|m8^`JKkQ5hb}aK}w$zlu*i=WjYu<@H4YtQX{98rfP#1T+2+kZ7 zzTfLvwI5$I8>>Aw(|iPEifbvAFxjliHMPF%kcy9 zfevCwe|CI_E~0cPaX<``RwX!NTd+l0>}f#oTE%wkPST6bs&4$Jobyeo|J$3Qv!``a z-%wWMYUW>-6S3e%hvtmr0QYH&paF7fHeN7ob<;d(`^(=EOMg=C>S{lv(hZ_PA-J zvcot}-@48gUCMimy{{n&rnWIi;_xTRpLoV8=(7wW$V>kiC5*VA!fhYB%AJnQ#f`5W z{KwhCUm4CtvAsVp0Qjiy8r{11zoYU1K6VE%c*GB(|A^AZ zeux)nhxtGDjrItOhErlwXD@h7O~*9-odS>*9_iLV;1>Y>7}Too_0*V_B$gVZ$_*s< zpn$@vIzlpFqN9(+E#W_eSRL1vj}CSpjz$d!&XSEry(z9+k()SWRFaMAf>m*v6C(Zz z5V4pmzv!OnKlf=|xj9NS>oT}KgO`75i`}TT1OcJ2>cr1dU%R=`#4wi0Y0$Ib6k5#j?(cQ;uRj@_|vZxF` zLdX=(&oc>1Erl%|L0q)Kru!NVFH?}yf+lbWrp2&(cTrDlP;ZUM8zn@*_%+R&S%_m% zBf&JDkcvRMCCJ%zu^>A}T_Z%zDR501SyzQ2ZvoMa0VSYJ8?R%ktXljl9YC?%g<3H; z3&2%fREHK+0?=b8`rB)w{fzor109IL)J?R=${gSBceKhV!mnns zOu8+5W0T)Nssjky_gII-l{XjXv_=t0R(M$>Q+l4Z-}_v!nS?rkZkW1t&&r3Jb1J64 zI_mQt`%%CP6h`eo3R(UzNH0k+G&wQN))EgM{$!u-v*IDOpy)!A-1HwA6q~Ok)dTpC z8>=P7?ZIBx1clSDw8Q{f5y&Ofxy%SCtsL;k&ahVmp>Q7tbiHJJJ0Q{~0owAHcKM`; zmC#7}f@)jptWV(@UFV!zx)OHtd5JtjOzS#{l@mzL6;a9=GtGB^T^9K`~<2dU&oGS;B*-@*EpNoEyLma!vd3samM=5Nj zG;(2MA$9gGMPro!IjDr7uJ-kgKFnTb9ITJ$-_ic=@f*U^q|Hkr0tUF(0Lyvn;+}@f zK-O%t1hwBIffR?rTj=N_PkZ?TpWx@whF+whuyDuULebW=})X8q^Z`73ck za%{>$SDFI3=d3B)O-d8=-COPt=Q(rY30e6b@k?2m!w`D%2u_k?GXjec?sExjwOqEI zxsjG6a=1_PU^~b(LrJP3Qf!i-+IR^c(&^w@&^+wX z2NgjvmmWY(=Ty}}4dkh>4xHgEw{^;LN9|lHC2)yK^Y>c=)A&)oXDh8C4kg09IG8;$@e!C@pt_Fc82*J(k%&upr2%Pmg$P_AIr> zc1?ZpvvmwqC8E^hoM%R%l_^H2GQ`239o6nu(u%@k%&rzWP_%UF0R=yle+8y$IU^8&Db!kklqCfg@K34K z6szMJMR)Ymu#75t5>B}8ol>7>oyL9LV+K)9e>2yU##xe*v?GK}zR1g&qeET`QkSGM z5@C}-V(JPf0jq$nv}7|6El<4Szb43Oznhm8K#bRenq&WRmGYGJVCs@VYjlxN@Qpey{aU21FRkD8B?qDb zOW7&feh!wd&kZ_dmBK!JMDmj* zKA?W8v|swGNDNk`GZ73Kxgh!OC8yO_MwM$7izzYe%!Kj{`_pAJFe9+K)f-MV)eFU+ z0GdM<<(LrK+BJT!Cs*rRCToG#+3X+Rfs&OhLWT4Rh5ws~Xe!@ng0j|luPEep6|n63 z-!1LLimRRFo)yzw;rfgQcVaUN?_}M|ztyZ8TEf69oolYs)nF4|rk#R3=tu#oysefC z{8d{*o}gc+!|j@C=ZU$ayA#IccYJ#O=-b6^`pY4u=vNi`OsZb0TFopZre>|K*2gw& z*NyIPh5QY(Fq{FW{(Wx|iZoy)G(}%5uneJF*tkH_GW()crmab>S_MmKMf)0D3hxP| zD<*WB7ASqZ;Fs2x8`J~yZYZ0TRGzchRxeCz2fOs~^1FcI2% z){c55H+n!{Bpm-fwdSEhn03IU3nIgHL!ssZ+$ssxx`~C;Bu!(Aa{TEZ;ymz!+VAF` zrR_Qn+5&I!R}JJD-G3!6oUwFGWPW1xIU;qWIcHDQ;*At^*E?*(BP0ga9RRcAToU8? zkb4C7YW67^WDw*2%#^Ou`tkm03puDs+ zs{r6R{-NCvnDD1<&9-|QYSC#IrXZH1>T$1>l)RqNr=#{>vd`!#e4b{Kjd%VCYOr+M z7Gi~BRnh~5?^Xf7 zyuTR0pA2csJQGbl0(+-i+stNKk(k#JZRhU1_*>2Y!sCI%;i5C6?(s!!EIS7!=p)fZ zLNGlmV4zZj#}7fZEZP~w1gU%o75V|bB^|76JfQ+#=n3}vVm68*ytq=_Ce1xNU9E0z zoVCb2Y0~{g`dQ6uFET_iW5`e}9RKj{Yvh7rO-p_{AA0uCknJ<4DW%?h2)T_W`=HeN zf^j>Qc!|$onFzx_9v0QH6>-_8b!BjrNO?47!7~0&Jk&P0Yg}4XO6JQW?7Os!L}9tL zoEC$mj$D9FlJ_Hk$EqVF+=4_DEGvT4Ywi>s2eqF_zdYCYUg2z(=kXaJb#kbUyHTSa zh!8q=sHOFSOZoxxT~=dCrmjgfpL|fa^iMgr?;p%HeRi_+T<)Ezw5@gv8HrF?spDtce9yFWb2{@GNH*C}7*=b6x9dq88Do5@qCZ z6ii9ebS>kV*pP))GGM~e8%HSb6+zuuj`^9RNQG37iAO%^Ee3HqMrEy}{cYw#8|OD3 zh=m7a6eYT}TJVdWm32!j?a1U5@eHrT9@Uccdo;3I8eDzl(mj(Rk+c+p7~v@~8WnZN z&0F+4Cic@!+g?{Okja}0uD*PRN1p6{r=b1)Xb2a3ijI9FmTP||*P|j&5d^90b5cGt zAw}*`n0t+vN*k4FbRc&u)WQjW^IFw3Uxn$d;Jie~ELb9fuZuq(wIirn5I){6-J-vu zc`zxy{Z64Cr-cpE?YZ+wxKD>W351?y4~2x%zGp+s7)!sdeUINwa7lo|;NwjrMjCFRVkBq>8X*fztlg`I+%V3ddz)R0F`>H-n$P zBN`R|@ynThYm+W~y(hRDuJY!9$pCIMP;OEhXR)w!{ti24&nf67|3=HYWDkgSp%&O_na-fs5wPFarzeTlI$qdsNq3y zp?ZGwvQ!u%CN`n@WC-{pE06GZA$GAcFG)4^jn-RgPOxZx5tErZS|F8gUYZNdviX%+ znKL4zQ8Mz9bM2t9Cet@)jjyA@)6j*xnZ=i|Zuy;_U$SOXO?G?H*n+L)AJn`=jo)vQtDja5$tBZ^JSGhmq06HqtNqRL$~S~a|#WE zRWe4xt@jFi{LZ4B&NPRXU9(@s+f|x|RSeD-&sL`TNMaN~5dR*AX~DjR!QBME;Y+pI zf<1h+q_D}#*!Uhd1@o#vsWk-<-9E00$HVq7a{%6rR=NpQ8fh$<^*!pd#%_;mKEQp0 zhrwC(H~SJ|({W)oxDF>W{#CSOG7)*qg*EUi%vVpoF-oeeJy&>zvG-yK%friVn^*qmk)-9ZUwQ0Q4RJj7HTgYhgF-l1Unltvp4~FO5 zzB9jx6chbJMx^Fbe5@bm)A0Cv1EHzeK@DxE{2qT#-#mw)IgHM3Owb3)4Ukv?((FvN z$6`s*rtOFLJ+9vLBGlU4i?&#OwT<#)Xz(6lJoj*&*4^D00i*FF~hxE*(_0w+Sy=P-t*z zGIpEk^Y-;nER)X~Z;aLWh)^f{ibShCKwk((YJ^wzlu{XJGW|1isTKb+K(gJhNY~K9 z5z|nzw?X%>LbKBqZW5kUyG-UQ`!mW<2K`5@0}eV^3nezTq`7d=qlj}iVr%k(7@MsR zvv{8Qo#_sPuU=!0+|%f)5iyei{oswPp{6^<)tGG3-*W2pIThgryupD zPDjen73d2`rb81IK35#)wMtPEF$*%`l4b@+c<+g*M=IH!;gC+mXcXrS^!nm)ZY5*y z+d=VH$vFvUU*+m~(Ad_hSyES#e(jVb-;>{JLJF z#p$)^;J0~p&Cizy8z#N=_~0&zyR4`dU@Y6Ne9|$1RQRyMrWe_UrVmn(yMH+Z!w>eC z2V&pl;h)XM#k1yaJwnrhABI?r(R|mh0;`Chci*5aON6U5%jWF|wuhWwWBU$>$`P`y zW0B%ZLc=-oB8+Q+g;W`{6TyJ?}cf95!o4DA7KAN^R@i7u*`=T=< z`BXR`y3Z9u2ok%cZwnDjRCWCda&4QAPChw(HS`K@W!rE*h z4>D-I7N4tk?6guDQ=EW~1SWM;fr3nT1s|dU@F_zUYYAWE`mTMF7^;EI_g7_i?8bZY zH@jR(u5{u%4uT(og~hcJY_)WH!r>eqT9wNt?2eDRM`q=5D5`JWbO$(fHZK5s~!yHrw!=s1F9i zIleci)A&I^b-8iY$*+p=x30NIFpwju;N)R=SOaTaB3r%urh z6!m7d?ts{;*e91Rgc$)zxM6zqRWd-9&H!AeEV_2dK7UyHRMK*<&MjGv#%pz1C+Lt4 zz-e}EdUlf%ktZcva?RK91W}W>XP}RLEIUcwoVq_c6;-Qh?JmK{kcnpd$gcg(nV+Wx ztu+3qDhE0;Cz909r7R9p2;5z(JvjJs3Vnyn0mQCoGigJ;DtfcJOf0nJ`MZTeZpMwLBY^L4$r!r zxHhkB&C8xx3HT=#x56_{+0@bd!k=NqYXJhroYp4V#XQhc47;z(*YW2#&Vi^{GM1fMn4jP^@*5v9il0?0G%;k)vqwr z3)EF%Z_1|&2dW?K1bpA7wFl|VEkDvY0HH-*D9DWQU-NC8wNS(sC)OL2dW=TWUsaXnD6mlfphm3Rq2^K zG&iqU`lkNnoK=ot{BDS&T7#Gk|GbiH(_97eGF{jvb++E&0$Fi_dP8!M!?+A2)mh|=1*kIq+$x8t} zRp~yO#x3OM%ulU(mr0(rC^}6^y7Hu(SM%nb55CJvkuN=+r6D)<-CA4BywXlUr$$+q zNgWD(l6EQ|3)f$pWCvUbc-3XS(AtTZhU^GD6_9e(oW*~PoQS)&!Zq6W1FC9S&chJo zRmL1-+EaHOdkpqI@EuXOlBK0>ClYyYsLk|c4zCWg*aN;~F|BoDd z17^L&b^+(Kz8|OhL8g5_P6aIE`(d#Ez0+>*>i+n7x^Mr#hvv49t^Hsj|L5NP$&b{9 zv!4w$4STcH1$ckbVv+GveHPH^ac6#1w1lZg`)+wXIamNKES71|so+NF*YX{lSTtu` z{_^hU=`oju)+PDL4>cu}QLT>j)$0YOneI)e$g-W-mCLxfq1u&vQ(x#}wSH&K@VnpI zZTA*hsO^hmb{bv{0VuE~B3xoWTBa@qJbx|bUQCZip2f@^K(j!A*=oMA1&)?LX)iaY z$4+#*1(usG)IzzJmscV=L4TKim+h~kc*S=#*H_AgUv}Y8qX^W3VhC#}lqW{{6nAB@ z@pa#>ZQG7K-}-+6COWNVl`5>Cr*&^)2 zS+^u+UZS*{VAVC~b*b@Eskn!uuXi^DX?aZ%-Bx8oIQZ$K5?N&PC97mrm@aZ5;p!Vf z3+AU8FQF+a@f~qxR_!5j;dRnTYc!4%h=4({c&!V~He-Es)fx|rO+w01EJy938)ha> z1VP^1_tR38{lnbnD6sTEq9xt3xMsGvcIbAh!X-;?H{!$;F=ON$NCY|K-?_gzDrSjXIaDk2FlnW5C0~pt?lE3tWabCwu%z`ZRhJ0b3X+%B+Cn6}mYMRpK{>O#J@Qu@ z+F@$n7ULs#7so}el(lqFfVnG26Ys^d!~-9BurM5)1>BkV7~lmnFpvGYje=sd)v;zt zbKj04xFC1RBEUc^D`>P)PmS(lpEseBA25lj!Z%Zs$6xHJDJiMedHr_1O8Y+Qn~j-ZUJDbe*E?ou7d0F$tR!UhM&`i;=}ZbU z>2!i6#%HDfx~1AIM*L+H`Xnb3jkyEl%bsDwGMyT*(cwX4=Z2@<5~w)~;W1(ljzF#F z)xu6Hwey{pOdD?$3gDN+F{<>Stiq)L2v#N5y@_cwg`4I%KNniyJ2d@q+yb9da!@lF z7bp&&ds+k6Q1imcE@El~HI^suN@eOJYL^uls`Ha{d9;S~xt>vV$#=tRgK0EkNXX{w z^m3^@vZ3Q9YsGKWHK^$ys(z<#%T+3OM2}XJWX5V*K}ie1IG5JWLB#@YF)6nZ?x~~F zP-W)FO%Gglq}X)Cg$Qz`(x}r$3-kQsbTP(b-s5u%hT{>dLA@sM%LopKm8{cLRtv?X zZ-$X6%+Ad7eQD~B?oxZjNBH}@)0QeB2-byKxTJr@g6g>h zo@bK5%eR&i)JEc@(ntK;o!unNG0Deyada%r@3ytifrtxwBNaDZs-8wUMcj_>WscXM z&_#+xYRj{&NY|~hhMiQ~-cYn7`9d7O_$hEwrY&VG-Obm@I-MfilFsKqQ?IFMk;&sc zjP}xwHk#kKG_qHn=7So}2>I(M`Nf>T-CfP+LKn%cNP!`4@}~ZA#S<@WBd0ppta2LU zeYMUQfgd@?B<|1_5wVo9xH{QHwm;1!Gex8n5g(nPqhylK%c!9FPxfg7{-d7L!M0*r zu9%!ZC{6d}>&9~jn+d2p8s?n3J8R!e?o~6I^VTP>Tj3gYJ&*H!@A%p3xrowCE~k%U z76*3A1IXtTQBKzaqHDZA{8nLQR|P*|FF=LF|_lngjekgbI-_^JnZm zMaCs5oHrH;SK;dFsx2-Gw6L)26S83n$=szc?<2#ffm{&dx^`o2gRaQn_OofB6$|6(nO6gA2xxGpc1^E;b>gYVNVyxUjzOX6Ue^dkd6=IIimLTu*O^~6-eo0mzWjzW_pIi)*8Qz%srg1lwJVvCbzu5}M!h3am zaow5vw^7$7DmI{G^N~Wezi3LM$yz`%qbUuKGGvv?gq;_-JXaCr>s$7b;F>LYW^^q` zhH|4Qa;)+zT#5wSAC6bh_KBr4(6mE%M7dt z>^HlI@RS;QX2cQs{W6MCt(e~BNG9d#-FKBIDt>kM@Q%HYr`7J;?e(eWeQqs;GpU5fU+nCsgb{V35+u7I*=;&v44u>UJ?Slg-a4dz>}Jyt3sz|mSr zV~Ic~Axc|qAFAZZ|8@GRlKI|-TH>dnRgbocz9aJIq&c4!=IVf>F}25yG7fg{Ck4>3 z@42d631{f_0HsK){_8rd0ek#pD~5)DZX(*BqOn2MTIj%W$G)YSzTCrhxe?#a8(H5N z6oxnZTnlyy9I!DL%8iu6ZX}LhAH6I5KIeFto(AQM1+UdJV^jA2lUI9>%DwdJrmkI- zTTC149q*Zv`ba(T;eF(Jx4>x1fn%|-N9G7q35TwQ&1{P37;k`{m<&J9~aR&7|WdxPdX9?korWI4ds;W$srwY zbqahQS-|NrnU-t@xI%SU3{t)?v@{31-c{^iFvZZ zXSC`{?YigiMw#}*a$M(#B_6r1>mo0up0 zO;@hgSz*mcqqGZixwPxgt~x`pCUqYjrUuh&t9`njlW$G0dY4o=E&07{BEM}rwlco@ zrfD5r z_i8I@Xzx1jrE`Dc_{E&TRv(iWCoNkC^K`P_t2rb0HJB+SBj*Damqa}s^ZOAK{Y2l_ zGv`4RyQV|MwPVEbBkj38=EENIje6dv0AxsZ<#Lf)zDZoAnNyAzzS8|HeVp47-g-U$ z3JvkF>kf7NU5)3f8e>A0@zIL=GRM5|J}3jpf>m{#wyF1~ zNK?V`Mo(`olT-WOn08M}hnBRAyfiX3nrH5B2if5BP`(%P#=FxD=RY(>qV4ZF6m+^? zV0o_u3ntKS#;1~BLrjb>@zHZ`>2FkF_iUxrTYjkF;5m?&omqOhos(taK@)Ea)<2LQ z&1AHAh5rGEuH74p!e#fapZ;b$ZgzmK=q!J?z|^*4w%~HHiICib+si}ovjk-Oc#h~5 znarH@hbA%9NwvDe5;@(;=@3*Hmo9KT0+bi;N@RQlZIZnwxwFBP0iedXMiz7Bvt^gQ*&?{gw` zzzjvzHz%t!jSG**TQ~)NvO1e)YBTTGN84p87t-Mn0ASVEg{mF|oubrToTBKH7U(tW z-SFP`db9*3k*v|p`keK^n#ZopLw!Zv-S?X&RhgfAk7A=zErKV^efW3eU4amkQTXT5 zzvQF2Km0BMDb2Xja@LxDSPSf(XzfAU^*k2(H+X4@JBR1UT&9ki)^@1c`ah&2%j zzw09Q%Edv0e+mC0TGQC&Op<-4PvF5();Bg;287GF*nbWbxxKY)PwGO4u`KDj$C}xJ z2WH9-boX@lPrN@jL}|f9?Y*vu&8={#3hL95RO>$S|J8DxQB7rA7$+k{1z|>dK(J9W zN>fCd3@Gx{K}QK4qy&UelL;C_Q&2`QC@nywC@L_N(4++j8Yc*$8)*TI1fvL{*APP9 z1)N#yy|vz2&YSoC-h0oz`|N$rxo3Z8e_tH7hX`{BFubT3Z2(OVcHq2xuw1>Q@q6y~ zIPT--uA!UEb=;F+qY5wuCZm8aIi}RA(;WA5{<-UD-tv0P-jZDu!an-o;9lqILdFhe0RiyXnU1-=~vC@OWMn> z^*{L)>KC>(`@QRmQRdj!6aBPx(&MBcb@_RVxieI0Wpp7=(k$(i6L1LWG(XP`wB@TK zYJ)Or9<)s4}kEpJP$4v&QP7@a4wLys6EW)6kC*9_>VQQ*vku}QY zbu0MKMbBwlRH^suY7SMef|QWaqi3Ex!F$qT`+?`cclPCpMF7rw6h6m}1e!*bF|JTH3&%t=1NsJCg!B689sEn~H3ABwut_uW@U05*8B!o20?Bm&vPRXuzBNc1=OuJf}`?a*0)ty}|gRx0Xf{f+>m`gYDxBsn0x3wbe} zakI#M=IO6xtcBIm(GFT=5T>#v(cLYv`ILL6LLoF7b)lVd@b+9H1(-)SD*JhE-9xSX z`z>9ru$}7fZu_0=lZ^&o0rtaz$9>Fhdg(haZM0Sbep}OS)3fQ5_IU4|^`DP1#{$nQGZ?EOi! zs|gX9f%HQUk9yGp1-XM0maRt`r0x_ej3by_AIy(l*SjQuxKw>qrji3YnBBu&3NQHbWm%ccclSXZu46|ilsWCQIoqm zlHW2~o&kwb{dvL2)VJzVL*swGX}7*tYD{5n7l4`SUQ2 z9>aao`JfF$H0m$lBLUcyS_GvR2Wng`N#M9j+MuxEn``7`0 zyk>NEy<(odA2N*TtZ~1Di+%Z^?RjmyGT?AmHPFH zh7R(RU1Fk}B&3aL!xx4eoFrVVi{1B+{0lPCTRZekakymeb^GG7V0jlG9{QZBW~mi%2rhrQmH_k*{6DTwnqBC|fpC_UGl zBL-SB(LglV8G+2eo1pjRcFtb9zwH~yz?2cB1YXIX2vkfmmMu5TK46{==f4TX6NoB1 zmBEVJH}T8AkKG1wk;{)Km|Xv!k!@SVIg(<<{m?{5LcO72@57+0cD8+MaP^s}N z^ahV9V$f_toua{llAVjf`h0|}$wGvY-xC4QJ3uEf((ZHP`hij?WNuVRa04e;{nR5! z*;J9cB_W)ey|(fiQC!)30#RJXmKVV9?-OMHann{pTChy7gbju-3aqx!ZgA9LaGZe0 zCTLDqtv2r2f~hG09c7KlKor+<637>fdGh6BRxW6Ui$AeD|9f>I-5$FMSWW226iC@O* zF%@5oLoXy)9-q7e?^<^3lrd%}C-J8?h&awOOAGoyHOe7XW@!<3wxIB6@k?}{^YZXD z=2G2;IAO?ZK>aOvPOP;TsiPUziPQm{5@eNjbYlK7#P7YN0$xhcKR5oexQc;X;-rTo z04@(DfG|Tr6^2H@RavD_J9LT?@KUj3{a4;RP5q+ocx^hZu2Enu;5aGZmtcELuR26c z6jgMXiyM#WZ_thu)I6pemn}5~FXRlM2#C0sUl6CCw+6_ZN<@Q9uDxB1F8vTTtt9ZN zw6XO^4?jxJ*)VJ5dq)qIiFiibH~2KAZ~?EdgnWapsB#*2;+4jx-6M(2Y%OfBxIOx) z>V#HM;obEao~FL@g$0?$6{>n(hG(N0Ky9kgYtQ7dYebr|wB~9utC-R5Xd}{rRRdnYNbs(b3+0qql2?7>nWlhAUnQjroJau- zuK&OI?!O7Pew}e&*@v%q%xp{z=;g*y*njHk3js4+@eOca2t2_gNY(^eM}o9~X(uGR z(MS}Sk3x4gJZcWOD{|krLP9Tq87_1MSTcnE%47eFcl;HL%<};&|AxJPA!Q$ dzkVvxUb4QA)xcct1e`8pb?PSz;*VEu{S%P-GBp4I literal 0 HcmV?d00001 diff --git a/site/public/versions.json b/site/public/versions.json index 92c408cda..df4f0b6b5 100644 --- a/site/public/versions.json +++ b/site/public/versions.json @@ -128,6 +128,14 @@ "kind": "trunk", "supported": true } + ], + "ocaml": [ + { + "slug": "latest", + "label": "latest", + "kind": "trunk", + "supported": true + } ] }, "defaultVersion": { @@ -146,6 +154,7 @@ "swift": "latest", "powershell": "latest", "julia": "latest", - "elixir": "latest" + "elixir": "latest", + "ocaml": "latest" } } diff --git a/site/src/components/api/ApiDoc.astro b/site/src/components/api/ApiDoc.astro index d7ff727fc..4bab85ae6 100644 --- a/site/src/components/api/ApiDoc.astro +++ b/site/src/components/api/ApiDoc.astro @@ -77,20 +77,20 @@ function mentionOf(link: LinkTarget | undefined, kind: string | undefined, title // A symbol is written the way its language's own documentation writes it: `kill()` in Python, `Server#kill` in Ruby. const owner = symbol && index.parentOf(symbol) // A tool is named on the wire, as a command is, and is not called by that name. - const label = symbol ? writtenForm({ + const label = symbol && span.code !== false ? writtenForm({ lang: index.language, kind: index.isMcpTool(symbol) ? 'command' : formKind(index.language, symbol, owner), symbol, owner, label: bare, chip, onOwnerPage: isWithin(context, owner, (scope) => index.parentOf(scope)), }) : bare const qualified = !chip && memberReference.test(label) && Boolean(span.link || parts.some((part) => part.link)) // The accessible name is the text a reader sees. const mention = mentionOf(span.link, symbol?.kind, symbol?.command?.kind ?? symbol?.kind, label) - const name = {labelParts(label, qualified).map((text) => qualified && text === '#' ? {text} : text)} + const name = span.code === false ? label : {labelParts(label, qualified).map((text) => qualified && text === '#' ? {text} : text)} if (span.link && mention) return ( {name} ) return span.link ? ( {name} - ) : ( + ) : span.code === false ? {label} : ( {parts.map((part) => { const separated = labelParts(part.text, qualified).map((text) => qualified && text === '#' ? {text} : text) if (!part.link) return separated diff --git a/site/src/components/api/ApiEntry.astro b/site/src/components/api/ApiEntry.astro index 9ca0a8037..d423edbf8 100644 --- a/site/src/components/api/ApiEntry.astro +++ b/site/src/components/api/ApiEntry.astro @@ -343,7 +343,7 @@ const hasBody = role={signatureLayouts.has(sig) ? 'region' : undefined} aria-label={signatureLayouts.has(sig) ? `Signature for ${symbol.name}${symbol.signatures.length > 1 ? `, overload ${symbol.signatures.indexOf(sig) + 1} of ${symbol.signatures.length}` : ''}` : undefined} data-code-columns={signatureLayouts.get(sig)?.limit} data-code-width-status={signatureLayouts.has(sig) ? (signatureLayouts.get(sig)!.failures.length ? 'unresolved' : 'fits') : undefined} data-code-width-failures={signatureLayouts.get(sig)?.failures.length ? JSON.stringify(signatureLayouts.get(sig)!.failures) : undefined}>{sig.label && sig.label !== '__AllParameterSets' && {sig.label}{sig.isDefault ? ' (default)' : ''}: } - )) : {anonymousDeclarationLabel(symbol)}) : <> + )) : {language === 'ocaml' && ['module', 'interface'].includes(symbol.kind) ? `${symbol.kind === 'interface' ? 'module type' : 'module'} ${symbol.name}` : anonymousDeclarationLabel(symbol)}) : <> {keyword && {keyword} } {prename && {prename}}{nameHref ? {symbol.name} : {symbol.name}}{alias?.typeParams && } { diff --git a/site/src/components/api/ApiReference.astro b/site/src/components/api/ApiReference.astro index 1883c82cd..ba2bfa2a7 100644 --- a/site/src/components/api/ApiReference.astro +++ b/site/src/components/api/ApiReference.astro @@ -602,7 +602,7 @@ const bases = owner && 'extends' in owner ? owner.extends ?? [] : [] {mod.free.includes(o) && legacyIndexAnchors(o).map((id) => )}

    {o.name} - + {context && } diff --git a/site/src/content/docs/ports/ocaml/core/index.md b/site/src/content/docs/ports/ocaml/core/index.md new file mode 100644 index 000000000..357c6a049 --- /dev/null +++ b/site/src/content/docs/ports/ocaml/core/index.md @@ -0,0 +1,23 @@ +--- +port: ocaml +route: core +title: "tmux client library for OCaml" +description: "tmux client library for OCaml. Control tmux, connect to and create servers, navigate sessions, windows, and panes, send keys, watch for changes via control mode, capture pane contents" +cards: + - label: Guides + href: ../guides/ + body: Capture, query, streaming and workspace guides. + - label: API reference + href: ../reference/ + body: Public modules, types and values. +--- + +Use the native OCaml library to capture sessions, shared windows and panes. +Process observations with `Iarray`, `Seq` and ordinary predicates. Typed +expressions add inspection and JSON interchange; client calls perform I/O. + +The core and workspace library depend on the standard library. Blocking Linux, +Eio, JSON and the workspace CLI are separate packages. This port excludes MCP. + +[Installation and first use](../guides/getting-started/) · +[Captured graph](../guides/graph/) · [API reference](../reference/) diff --git a/site/src/content/docs/ports/ocaml/workspace/index.md b/site/src/content/docs/ports/ocaml/workspace/index.md new file mode 100644 index 000000000..0b0cf48ec --- /dev/null +++ b/site/src/content/docs/ports/ocaml/workspace/index.md @@ -0,0 +1,13 @@ +--- +port: ocaml +route: workspace +title: OCaml workspace manager +description: Validate, preview and apply JSON workspaces through the native OCaml library. +--- + +Install `libtmux-workspace-cli` from the source checkout to run `tmux-workspace`. +The CLI uses the JSON decoder, pure workspace plan and native client packages. +It retains a receipt for recovery after partial or uncertain execution. + +[Run a complete workspace](../workspace/source-guide/) · +[Workspace API](../workspace/reference/) diff --git a/site/src/data/api-destination-evidence.json b/site/src/data/api-destination-evidence.json index 72ed2ad5a..234f08304 100644 --- a/site/src/data/api-destination-evidence.json +++ b/site/src/data/api-destination-evidence.json @@ -1,6 +1,6 @@ { "schema": 2, - "checkedAt": "2026-10-31", + "checkedAt": "2026-11-07", "inventories": [ {"name":"python","source":"https://docs.python.org/3/objects.inv","kind":"objects.inv","entries":16493,"digest":"9b186d22c55bd3056145d7009198a34a0274d7e4","ok":true,"missing":0,"checkedAt":"2026-10-25"}, {"name":"julia","source":"https://docs.julialang.org/en/v1/objects.inv","kind":"objects.inv","entries":2545,"digest":"94ff52276c38e7feea3d68234092a72496935b01","ok":true,"missing":0,"checkedAt":"2026-10-25"}, @@ -711,6 +711,14 @@ {"url":"https://luals.github.io/wiki/annotations/#documenting-types","host":"luals.github.io","status":200,"via":"html","title":"Lua Language Server | Wiki","ok":true,"fragment":"found","terminal":[{"symbol":"any","at":"section","reason":"the wiki lists the recognized types in one section"}],"checkedAt":"2026-10-25","names":["lua:any"],"sources":["builtin","prose"]}, {"url":"https://luals.github.io/wiki/annotations/#overload","host":"luals.github.io","status":200,"via":"html","title":"Lua Language Server | Wiki","heading":"@overload","ok":true,"fragment":"found","terminal":[{"key":"authored:Lua overload annotations","symbol":"Lua overload annotations","at":"review"}],"checkedAt":"2026-10-25","names":["glossary lua overload"],"sources":["authored"]}, {"url":"https://modelcontextprotocol.io/specification/2025-11-25/schema#toolannotations","host":"modelcontextprotocol.io","status":200,"via":"html","title":"Schema Reference - Model Context Protocol","heading":"ToolAnnotations","ok":true,"fragment":"found","terminal":[{"key":"authored:MCP ToolAnnotations","symbol":"MCP ToolAnnotations","at":"review"}],"checkedAt":"2026-10-25","names":["site/src/lib/api-glossary.ts"],"sources":["authored"]}, + {"url":"https://ocaml.org/docs/libraries-dune","host":"ocaml.org","status":200,"via":"html","title":"Libraries With Dune · OCaml Documentation","heading":"Libraries With Dune","ok":true,"terminal":[{"key":"authored:OCaml libraries with Dune","symbol":"OCaml libraries with Dune","at":"review"}],"checkedAt":"2026-11-07","names":["glossary ocaml package"],"sources":["authored"]}, + {"url":"https://ocaml.org/manual/5.5/api/Iarray.html","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Iarray","identity":{"via":"ocamldoc","declared":"module","kind":"module","path":["Iarray"]},"ok":true,"terminal":[{"key":"ocaml:Iarray","symbol":"Iarray","at":"identity"}],"checkedAt":"2026-11-07","names":["ocaml:Iarray"],"sources":["builtin","prose"]}, + {"url":"https://ocaml.org/manual/5.5/api/Iarray.html#TYPEt","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Iarray","identity":{"via":"ocamldoc","declared":"type","kind":"type","path":["Iarray","t"]},"fragment":"found","ok":true,"terminal":[{"key":"ocaml:Iarray.t","symbol":"t","at":"identity"}],"checkedAt":"2026-11-07","names":["ocaml:Iarray.t"],"sources":["builtin","type"]}, + {"url":"https://ocaml.org/manual/5.5/api/Seq.html","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Seq","identity":{"via":"ocamldoc","declared":"module","kind":"module","path":["Seq"]},"ok":true,"terminal":[{"key":"ocaml:Seq","symbol":"Seq","at":"identity"}],"checkedAt":"2026-11-07","names":["ocaml:Seq"],"sources":["builtin","prose"]}, + {"url":"https://ocaml.org/manual/5.5/api/Seq.html#TYPEt","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Seq","identity":{"via":"ocamldoc","declared":"type","kind":"type","path":["Seq","t"]},"fragment":"found","ok":true,"terminal":[{"key":"ocaml:Seq.t","symbol":"t","at":"identity"}],"checkedAt":"2026-11-07","names":["ocaml:Seq.t"],"sources":["builtin","type"]}, + {"url":"https://ocaml.org/manual/5.5/expr.html#s:value-expr","host":"ocaml.org","status":200,"via":"html","title":"OCaml - The OCaml language","heading":"7 Expressions","ok":true,"fragment":"found","terminal":[{"key":"authored:OCaml expressions","symbol":"OCaml expressions","at":"review"}],"checkedAt":"2026-11-07","names":["glossary ocaml function"],"sources":["authored"]}, + {"url":"https://ocaml.org/manual/5.5/modtypes.html#s:modtypes","host":"ocaml.org","status":200,"via":"html","title":"OCaml - The OCaml language","heading":"10 Module types (module specifications)","ok":true,"fragment":"found","terminal":[{"key":"authored:OCaml module types","symbol":"OCaml module types","at":"review"}],"checkedAt":"2026-11-07","names":["glossary ocaml constant","glossary ocaml interface","glossary ocaml module","glossary ocaml opaque"],"sources":["authored"]}, + {"url":"https://ocaml.org/manual/5.5/typedecl.html#s:tydef","host":"ocaml.org","status":200,"via":"html","title":"OCaml - The OCaml language","heading":"8 Type and exception definitions","ok":true,"fragment":"found","terminal":[{"key":"authored:OCaml type and exception definitions","symbol":"OCaml type and exception definitions","at":"review"}],"checkedAt":"2026-11-07","names":["glossary ocaml attribute","glossary ocaml enum","glossary ocaml exception","glossary ocaml struct","glossary ocaml typealias"],"sources":["authored"]}, {"url":"https://pkg.go.dev/builtin#any","host":"pkg.go.dev","status":200,"via":"html","title":"builtin package - builtin - Go Packages","identity":{"via":"godoc","declared":"type","kind":"type","path":["builtin","any"]},"fragment":"found","ok":true,"terminal":[{"key":"go:any","symbol":"any","at":"identity"}],"checkedAt":"2026-10-25","names":["go:any"],"sources":["builtin","type"]}, {"url":"https://pkg.go.dev/builtin#bool","host":"pkg.go.dev","status":200,"via":"html","title":"builtin package - builtin - Go Packages","identity":{"via":"godoc","declared":"type","kind":"type","path":["builtin","bool"]},"fragment":"found","ok":true,"terminal":[{"key":"go:bool","symbol":"bool","at":"identity"}],"checkedAt":"2026-10-25","names":["go:bool"],"sources":["builtin","doc","type"]}, {"url":"https://pkg.go.dev/builtin#byte","host":"pkg.go.dev","status":200,"via":"html","title":"builtin package - builtin - Go Packages","identity":{"via":"godoc","declared":"type","kind":"type","path":["builtin","byte"]},"fragment":"found","ok":true,"terminal":[{"key":"go:byte","symbol":"byte","at":"identity"}],"checkedAt":"2026-10-25","names":["go:byte"],"sources":["builtin","type"]}, diff --git a/site/src/data/api-link-review.json b/site/src/data/api-link-review.json index 4ad470b0a..e4cb026fb 100644 --- a/site/src/data/api-link-review.json +++ b/site/src/data/api-link-review.json @@ -189,6 +189,10 @@ {"label":"Lua class inheritance","url":"https://luals.github.io/wiki/annotations/#class","heading":"@class"}, {"label":"Lua overload annotations","url":"https://luals.github.io/wiki/annotations/#overload","heading":"@overload"}, {"label":"MCP ToolAnnotations","url":"https://modelcontextprotocol.io/specification/2025-11-25/schema#toolannotations","heading":"ToolAnnotations"}, + {"label":"OCaml libraries with Dune","url":"https://ocaml.org/docs/libraries-dune","heading":"Libraries With Dune"}, + {"label":"OCaml expressions","url":"https://ocaml.org/manual/5.5/expr.html#s:value-expr","heading":"7 Expressions"}, + {"label":"OCaml module types","url":"https://ocaml.org/manual/5.5/modtypes.html#s:modtypes","heading":"10 Module types (module specifications)"}, + {"label":"OCaml type and exception definitions","url":"https://ocaml.org/manual/5.5/typedecl.html#s:tydef","heading":"8 Type and exception definitions"}, {"label":"package reference","url":"https://pkg.go.dev/github.com/libtmux/libtmux-go/mcp","heading":"github.com/libtmux/libtmux-go/mcp"}, {"label":"pkg.go.dev","url":"https://pkg.go.dev/github.com/libtmux/libtmux-go/tmux","heading":"github.com/libtmux/libtmux-go/tmux"}, {"label":"`github.com/libtmux/libtmux-go/workspace`","url":"https://pkg.go.dev/github.com/libtmux/libtmux-go/workspace","heading":"github.com/libtmux/libtmux-go/workspace"}, diff --git a/site/src/data/api/ocaml.json b/site/src/data/api/ocaml.json new file mode 100644 index 000000000..366cfdd47 --- /dev/null +++ b/site/src/data/api/ocaml.json @@ -0,0 +1 @@ +{"port":"ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","repo":"libtmux/libtmux-ocaml","sources":[{"product":"core","package":"libtmux","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"core","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"workspace","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"core","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"workspace","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"core","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"workspace","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"}],"extractor":"OCaml 5.5.2 compiler-libs .cmti + odoc-parser 3.2.2","nativeProvenance":{"files":[{"path":"lib/libtmux.mli","sha256":"eb15691c82da743bb49170e408ca50500b38d21aeb248bb41a171e1e0352bc8e"},{"path":"_build/install/default/lib/libtmux/libtmux.cmti","sha256":"2e9a977a5a36625b0d0e8499051a36d13deab0f4a59bd699f2ab430975fed851"},{"path":"workspace/libtmux_workspace.mli","sha256":"10c5cadc58269906f16550a7bb703a8e05bee163d9b1716bf2be994ec8ebbeed"},{"path":"_build/install/default/lib/libtmux-workspace/libtmux_workspace.cmti","sha256":"dac59166f00e4c248fb2fe84787faef28f4e838a8db7b2b17768f9f0cffcfaf2"},{"path":"json/libtmux_json.mli","sha256":"ae672cc3b970fbd3fe9f68bb8703bb961e8d5968d9920b2626cddbffeb85c94b"},{"path":"_build/install/default/lib/libtmux-json/libtmux_json.cmti","sha256":"1574d45efd30dffc97a5775dc90f55a6aa935593dad025b98e9027325f06c78d"},{"path":"unix/libtmux_unix.mli","sha256":"638e260745952dc3db2ec4cd4cd28733326fdb74d65668b46fe29398526a9421"},{"path":"_build/install/default/lib/libtmux-unix/libtmux_unix.cmti","sha256":"cf23cb48ff8f22a9d7ce5c606f9cf8117db1d9cbc9286f87987c279b156a0e36"},{"path":"eio/libtmux_eio.mli","sha256":"f4b35be04f35f5e6fe99c139f1f8bbaacf4ed82e1faa55ad0f73bdd9803d4386"},{"path":"_build/install/default/lib/libtmux-eio/libtmux_eio.cmti","sha256":"62e866a1e8c8c9789a8261ac7420c078c73d069d31e900f6f40dc82b262a56d9"}],"exporter":{"revision":"ade2f9787024a5426710cec06f864648c217263c","baseRevision":"ade2f9787024a5426710cec06f864648c217263c","files":[{"path":"tools/api_export.ml","sha256":"403353de9340f32586cb522a827be03a9693142eeec01c891175c4e76b069a5d"},{"path":"tools/api_doc.ml","sha256":"94d9b4dff3f86d570a31161019e06cea250926200b8cc4562f7d14f9f3cd0d59"},{"path":"tools/export_api.py","sha256":"5188348adc7e3ea577889e144de30da6204ec14ec6fc1577f86a732bc7625973"},{"path":"tools/api_modules.json","sha256":"233ef409440fa5015f522a11933e74f059a301aecbce5ab5126f14e8a35614cf"},{"path":"tools/dune","sha256":"777e122d729870f9f8dc6fc13485ce0eea29f0e741b9bb22cb0245d433ff9442"}],"compiler":"5.5.2","schema":"libtmux.ocaml-api/1","publicManifest":"tools/api_modules.json"}},"symbols":[{"id":"Libtmux","publicId":"Libtmux","qualifiedName":"Libtmux","name":"Libtmux","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Native captured values, typed queries and explicit command descriptions.\n\n A {!Snapshot.t} owns immutable observations. Entity accessors and query\n evaluation perform no I/O, preserve captured order and remain usable after\n client closure. Use [Libtmux_unix.Client] or [Libtmux_eio.Client] to acquire\n or mutate state.\n\n {1 Typical flow}\n\n Capture explicitly, traverse {!Session.window_links} and {!Window.panes},\n filter with [Seq.filter] or {!Query.matching}, establish cardinality with\n {!Query.exactly_one}, then submit a command with a bound target.\n\n The core depends only on the standard library. Its abstract observations are\n safe to share; live clients and subscriptions belong to their backend.\n\n See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md}graph\n guide} for window links and the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} for native predicates and typed expressions. "],"declarations":[{"kind":"module","text":"","source":{"file":"lib/libtmux.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"doc":{"summary":"Native captured values, typed queries and explicit command descriptions.","body":"A {!Snapshot.t} owns immutable observations. Entity accessors and query evaluation perform no I/O, preserve captured order and remain usable after client closure. Use `Libtmux_unix.Client` or `Libtmux_eio.Client` to acquire or mutate state.\n\n## Typical flow\n\nCapture explicitly, traverse {!Session.window_links} and {!Window.panes}, filter with `Seq.filter` or {!Query.matching}, establish cardinality with {!Query.exactly_one}, then submit a command with a bound target.\n\nThe core depends only on the standard library. Its abstract observations are safe to share; live clients and subscriptions belong to their backend.\n\nSee the [graph guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md) for window links and the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) for native predicates and typed expressions."},"slug":"libtmux"},{"id":"Libtmux.Captured_text","publicId":"Libtmux.Captured_text","qualifiedName":"Libtmux.Captured_text","name":"Captured_text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":690,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Captured_text : sig\n type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. *)\nend","source":{"file":"lib/libtmux.mli","line":690,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-captured_text"},{"id":"Libtmux.Captured_text.t","publicId":"Libtmux.Captured_text.t","qualifiedName":"Libtmux.Captured_text.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":691,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. "],"declarations":[{"kind":"struct","text":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":691,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Captured_text","doc":{"summary":"Ordinary rendered rows captured over an interval. This value has no implied relationship to a subscription cursor."},"signatures":[{"raw":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-captured_text-t"},{"id":"Libtmux.Captured_text.t.bytes","publicId":"Libtmux.Captured_text.t.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":692,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string;","source":{"file":"lib/libtmux.mli","line":692,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Captured_text.t","type":"string","qualifiedName":"Libtmux.Captured_text.bytes","slug":"libtmux-captured_text-t-bytes"},{"id":"Libtmux.Captured_text.t.finished_at_ns","publicId":"Libtmux.Captured_text.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":696,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":696,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.finished_at_ns","slug":"libtmux-captured_text-t-finished_at_ns"},{"id":"Libtmux.Captured_text.t.pane","publicId":"Libtmux.Captured_text.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":694,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":694,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Captured_text.t","type":"Pane.Id.t","qualifiedName":"Libtmux.Captured_text.pane","slug":"libtmux-captured_text-t-pane"},{"id":"Libtmux.Captured_text.t.source","publicId":"Libtmux.Captured_text.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":693,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":693,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Captured_text.t","type":"Source.t","qualifiedName":"Libtmux.Captured_text.source","slug":"libtmux-captured_text-t-source"},{"id":"Libtmux.Captured_text.t.started_at_ns","publicId":"Libtmux.Captured_text.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":695,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":695,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.started_at_ns","slug":"libtmux-captured_text-t-started_at_ns"},{"id":"Libtmux.Cardinality","publicId":"Libtmux.Cardinality","qualifiedName":"Libtmux.Cardinality","name":"Cardinality","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":663,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cardinality : sig\n type error = No_match | Multiple_matches of { at_least : int }\n\n val pp_error : Format.formatter -> error -> unit\nend","source":{"file":"lib/libtmux.mli","line":663,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-cardinality"},{"id":"Libtmux.Cardinality.error","publicId":"Libtmux.Cardinality.error","qualifiedName":"Libtmux.Cardinality.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error = No_match | Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"type error = No_match | Multiple_matches of { at_least : int; }","params":[]}],"slug":"libtmux-cardinality-error"},{"id":"Libtmux.Cardinality.error.Multiple_matches","publicId":"Libtmux.Cardinality.error.Multiple_matches","name":"Multiple_matches","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Cardinality.error","variant":"struct","qualifiedName":"Libtmux.Cardinality.Multiple_matches","slug":"libtmux-cardinality-error-multiple_matches"},{"id":"Libtmux.Cardinality.error.Multiple_matches.at_least","publicId":"Libtmux.Cardinality.error.Multiple_matches.at_least","name":"at_least","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"at_least : int","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Cardinality.error.Multiple_matches","type":"int","qualifiedName":"Libtmux.Cardinality.at_least","slug":"libtmux-cardinality-error-multiple_matches-at_least"},{"id":"Libtmux.Cardinality.error.No_match","publicId":"Libtmux.Cardinality.error.No_match","name":"No_match","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"No_match","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Cardinality.error","variant":"unit","qualifiedName":"Libtmux.Cardinality.No_match","slug":"libtmux-cardinality-error-no_match"},{"id":"Libtmux.Cardinality.pp_error","publicId":"Libtmux.Cardinality.pp_error","qualifiedName":"Libtmux.Cardinality.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"lib/libtmux.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux-cardinality-pp_error"},{"id":"Libtmux.Client_name","publicId":"Libtmux.Client_name","qualifiedName":"Libtmux.Client_name","name":"Client_name","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Client_name : sig\n type t\n (** A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. *)\n\n val source : t -> Source.t\n val to_string : t -> string\nend","source":{"file":"lib/libtmux.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-client_name"},{"id":"Libtmux.Client_name.source","publicId":"Libtmux.Client_name.source","qualifiedName":"Libtmux.Client_name.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_name-source"},{"id":"Libtmux.Client_name.t","publicId":"Libtmux.Client_name.t","qualifiedName":"Libtmux.Client_name.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_name","doc":{"summary":"A name in one connection generation, with current-name semantics. It does not identify a stable client incarnation; tmux may reuse client names."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_name-t"},{"id":"Libtmux.Client_name.to_string","publicId":"Libtmux.Client_name.to_string","qualifiedName":"Libtmux.Client_name.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_name-to_string"},{"id":"Libtmux.Client_observation","publicId":"Libtmux.Client_observation","qualifiedName":"Libtmux.Client_observation","name":"Client_observation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":343,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"and Client_observation : sig\n type t\n\n module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end\n\n val name : t -> string\n val pid : t -> int\n val width : t -> int\n\n val height : t -> int option\n (** No height is reported until the client has a started terminal. *)\n\n val control_mode : t -> bool\n val source : t -> Source.t\n\n val current_name : t -> Client_name.t\n (** Address whichever client has this name when a command executes. *)\n\n val session : t -> Session.t option\n (** [None] means the captured client has no attached session. *)\n\n val same_observation : t -> t -> bool\n (** Client names may be reused. No cross-snapshot entity equality is offered.\n *)\nend","source":{"file":"lib/libtmux.mli","line":343,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-client_observation"},{"id":"Libtmux.Client_observation.Fields","publicId":"Libtmux.Client_observation.Fields","qualifiedName":"Libtmux.Client_observation.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":346,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-fields"},{"id":"Libtmux.Client_observation.Fields.control_mode","publicId":"Libtmux.Client_observation.Fields.control_mode","qualifiedName":"Libtmux.Client_observation.Fields.control_mode","name":"control_mode","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":350,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val control_mode : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":350,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val control_mode : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-client_observation-fields-control_mode"},{"id":"Libtmux.Client_observation.Fields.name","publicId":"Libtmux.Client_observation.Fields.name","qualifiedName":"Libtmux.Client_observation.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":347,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":347,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-client_observation-fields-name"},{"id":"Libtmux.Client_observation.Fields.pid","publicId":"Libtmux.Client_observation.Fields.pid","qualifiedName":"Libtmux.Client_observation.Fields.pid","name":"pid","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":348,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pid : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":348,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val pid : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-pid"},{"id":"Libtmux.Client_observation.Fields.width","publicId":"Libtmux.Client_observation.Fields.width","qualifiedName":"Libtmux.Client_observation.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":349,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":349,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-width"},{"id":"Libtmux.Client_observation.Relations","publicId":"Libtmux.Client_observation.Relations","qualifiedName":"Libtmux.Client_observation.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":353,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end","source":{"file":"lib/libtmux.mli","line":353,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-relations"},{"id":"Libtmux.Client_observation.Relations.session","publicId":"Libtmux.Client_observation.Relations.session","qualifiedName":"Libtmux.Client_observation.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.Optional.t","source":{"file":"lib/libtmux.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.Optional.t","params":[],"returns":"(t, Session.t) Relation.Optional.t"}],"slug":"libtmux-client_observation-relations-session"},{"id":"Libtmux.Client_observation.control_mode","publicId":"Libtmux.Client_observation.control_mode","qualifiedName":"Libtmux.Client_observation.control_mode","name":"control_mode","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":364,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val control_mode : t -> bool","source":{"file":"lib/libtmux.mli","line":364,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val control_mode : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-control_mode"},{"id":"Libtmux.Client_observation.current_name","publicId":"Libtmux.Client_observation.current_name","qualifiedName":"Libtmux.Client_observation.current_name","name":"current_name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":367,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Address whichever client has this name when a command executes. "],"declarations":[{"kind":"function","text":"val current_name : t -> Client_name.t","source":{"file":"lib/libtmux.mli","line":367,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Address whichever client has this name when a command executes."},"signatures":[{"raw":"val current_name : t -> Client_name.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_name.t"}],"slug":"libtmux-client_observation-current_name"},{"id":"Libtmux.Client_observation.height","publicId":"Libtmux.Client_observation.height","qualifiedName":"Libtmux.Client_observation.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" No height is reported until the client has a started terminal. "],"declarations":[{"kind":"function","text":"val height : t -> int option","source":{"file":"lib/libtmux.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"No height is reported until the client has a started terminal."},"signatures":[{"raw":"val height : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-client_observation-height"},{"id":"Libtmux.Client_observation.name","publicId":"Libtmux.Client_observation.name","qualifiedName":"Libtmux.Client_observation.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":357,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":357,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_observation-name"},{"id":"Libtmux.Client_observation.pid","publicId":"Libtmux.Client_observation.pid","qualifiedName":"Libtmux.Client_observation.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pid : t -> int","source":{"file":"lib/libtmux.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-pid"},{"id":"Libtmux.Client_observation.same_observation","publicId":"Libtmux.Client_observation.same_observation","qualifiedName":"Libtmux.Client_observation.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":373,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Client names may be reused. No cross-snapshot entity equality is offered.\n "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":373,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Client names may be reused. No cross-snapshot entity equality is offered."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-same_observation"},{"id":"Libtmux.Client_observation.session","publicId":"Libtmux.Client_observation.session","qualifiedName":"Libtmux.Client_observation.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [None] means the captured client has no attached session. "],"declarations":[{"kind":"function","text":"val session : t -> Session.t option","source":{"file":"lib/libtmux.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"`None` means the captured client has no attached session."},"signatures":[{"raw":"val session : t -> Session.t option","params":[{"name":"arg1","type":"t"}],"returns":"Session.t option"}],"slug":"libtmux-client_observation-session"},{"id":"Libtmux.Client_observation.source","publicId":"Libtmux.Client_observation.source","qualifiedName":"Libtmux.Client_observation.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_observation-source"},{"id":"Libtmux.Client_observation.t","publicId":"Libtmux.Client_observation.t","qualifiedName":"Libtmux.Client_observation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_observation-t"},{"id":"Libtmux.Client_observation.width","publicId":"Libtmux.Client_observation.width","qualifiedName":"Libtmux.Client_observation.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":359,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":359,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-width"},{"id":"Libtmux.Command","publicId":"Libtmux.Command","qualifiedName":"Libtmux.Command","name":"Command","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":861,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Typed descriptions of explicit acquisition and mutation operations.\n Construction performs no I/O; a backend validates and admits the command. "],"declarations":[{"kind":"module","text":"module Command : sig\n type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }\n\n type 'a t\n (** An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. *)\n\n type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view\n\n val view : 'a t -> 'a view\n (** Read-only inspection for transport adapters. *)\nend","source":{"file":"lib/libtmux.mli","line":861,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Typed descriptions of explicit acquisition and mutation operations. Construction performs no I/O; a backend validates and admits the command."},"slug":"libtmux-command"},{"id":"Libtmux.Command.mutation","publicId":"Libtmux.Command.mutation","qualifiedName":"Libtmux.Command.mutation","name":"mutation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":862,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":862,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type mutation =\n Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of { session : Session.target; index : int;\n allow_kill : bool;\n }\n | Link_window of { window : Window.target; session : Session.target;\n index : int;\n }\n | Move_window_at of { from_session : Session.target; from_index : int;\n session : Session.target; index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of { pane : Pane.target; width : int option;\n height : int option;\n }\n | Resize_window of { window : Window.target; width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of { pane : Pane.target; beside : Pane.target;\n direction : Geometry.direction; size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Backward | `Forward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of { pane : Pane.target; spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of { scope : Environment.scope; name : string;\n value : string; hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of { scope : Options.scope; name : string; index : int option;\n value : Options.scalar; append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of { scope : Options.scope; name : string; index : int option;\n commands : Hook.command list; append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of { client : Client_name.t; session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of { client : Client_name.t; width : int;\n height : int;\n }","params":[]}],"slug":"libtmux-command-mutation"},{"id":"Libtmux.Command.mutation.Clear_history","publicId":"Libtmux.Command.mutation.Clear_history","name":"Clear_history","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":911,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_history of Pane.target","source":{"file":"lib/libtmux.mli","line":911,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_history","slug":"libtmux-command-mutation-clear_history"},{"id":"Libtmux.Command.mutation.Clear_option_array","publicId":"Libtmux.Command.mutation.Clear_option_array","name":"Clear_option_array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":928,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_option_array of Options.scope * string","source":{"file":"lib/libtmux.mli","line":928,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_option_array","slug":"libtmux-command-mutation-clear_option_array"},{"id":"Libtmux.Command.mutation.Cycle_layout","publicId":"Libtmux.Command.mutation.Cycle_layout","name":"Cycle_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":896,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cycle_layout of Window.target * [ `Next | `Previous ]","source":{"file":"lib/libtmux.mli","line":896,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Cycle_layout","slug":"libtmux-command-mutation-cycle_layout"},{"id":"Libtmux.Command.mutation.Kill_pane","publicId":"Libtmux.Command.mutation.Kill_pane","name":"Kill_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":865,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":865,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_pane","slug":"libtmux-command-mutation-kill_pane"},{"id":"Libtmux.Command.mutation.Kill_session","publicId":"Libtmux.Command.mutation.Kill_session","name":"Kill_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":863,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_session of Session.target","source":{"file":"lib/libtmux.mli","line":863,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_session","slug":"libtmux-command-mutation-kill_session"},{"id":"Libtmux.Command.mutation.Kill_window","publicId":"Libtmux.Command.mutation.Kill_window","name":"Kill_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":864,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_window of Window.target","source":{"file":"lib/libtmux.mli","line":864,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_window","slug":"libtmux-command-mutation-kill_window"},{"id":"Libtmux.Command.mutation.Link_window","publicId":"Libtmux.Command.mutation.Link_window","name":"Link_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":872,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":872,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Link_window","slug":"libtmux-command-mutation-link_window"},{"id":"Libtmux.Command.mutation.Link_window.index","publicId":"Libtmux.Command.mutation.Link_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":875,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":875,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-link_window-index"},{"id":"Libtmux.Command.mutation.Link_window.session","publicId":"Libtmux.Command.mutation.Link_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-link_window-session"},{"id":"Libtmux.Command.mutation.Link_window.window","publicId":"Libtmux.Command.mutation.Link_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":873,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":873,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-link_window-window"},{"id":"Libtmux.Command.mutation.Move_pane","publicId":"Libtmux.Command.mutation.Move_pane","name":"Move_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":897,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }","source":{"file":"lib/libtmux.mli","line":897,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_pane","slug":"libtmux-command-mutation-move_pane"},{"id":"Libtmux.Command.mutation.Move_pane.beside","publicId":"Libtmux.Command.mutation.Move_pane.beside","name":"beside","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":899,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"beside : Pane.target;","source":{"file":"lib/libtmux.mli","line":899,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.beside","slug":"libtmux-command-mutation-move_pane-beside"},{"id":"Libtmux.Command.mutation.Move_pane.direction","publicId":"Libtmux.Command.mutation.Move_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":900,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":900,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-mutation-move_pane-direction"},{"id":"Libtmux.Command.mutation.Move_pane.pane","publicId":"Libtmux.Command.mutation.Move_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":898,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":898,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-move_pane-pane"},{"id":"Libtmux.Command.mutation.Move_pane.size","publicId":"Libtmux.Command.mutation.Move_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":901,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":901,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-mutation-move_pane-size"},{"id":"Libtmux.Command.mutation.Move_window_at","publicId":"Libtmux.Command.mutation.Move_window_at","name":"Move_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":877,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":877,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_window_at","slug":"libtmux-command-mutation-move_window_at"},{"id":"Libtmux.Command.mutation.Move_window_at.from_index","publicId":"Libtmux.Command.mutation.Move_window_at.from_index","name":"from_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":879,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_index : int;","source":{"file":"lib/libtmux.mli","line":879,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.from_index","slug":"libtmux-command-mutation-move_window_at-from_index"},{"id":"Libtmux.Command.mutation.Move_window_at.from_session","publicId":"Libtmux.Command.mutation.Move_window_at.from_session","name":"from_session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":878,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_session : Session.target;","source":{"file":"lib/libtmux.mli","line":878,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.from_session","slug":"libtmux-command-mutation-move_window_at-from_session"},{"id":"Libtmux.Command.mutation.Move_window_at.index","publicId":"Libtmux.Command.mutation.Move_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":881,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":881,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-move_window_at-index"},{"id":"Libtmux.Command.mutation.Move_window_at.session","publicId":"Libtmux.Command.mutation.Move_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":880,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":880,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-move_window_at-session"},{"id":"Libtmux.Command.mutation.Refresh_client_at","publicId":"Libtmux.Command.mutation.Refresh_client_at","name":"Refresh_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":944,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Refresh_client_at of Client_name.t * bool","source":{"file":"lib/libtmux.mli","line":944,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Refresh_client_at","slug":"libtmux-command-mutation-refresh_client_at"},{"id":"Libtmux.Command.mutation.Remove_environment","publicId":"Libtmux.Command.mutation.Remove_environment","name":"Remove_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":919,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":919,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_environment","slug":"libtmux-command-mutation-remove_environment"},{"id":"Libtmux.Command.mutation.Remove_hook","publicId":"Libtmux.Command.mutation.Remove_hook","name":"Remove_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":936,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_hook of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":936,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_hook","slug":"libtmux-command-mutation-remove_hook"},{"id":"Libtmux.Command.mutation.Request_detach_client_at","publicId":"Libtmux.Command.mutation.Request_detach_client_at","name":"Request_detach_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":943,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Request_detach_client_at of Client_name.t","source":{"file":"lib/libtmux.mli","line":943,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Request_detach_client_at","slug":"libtmux-command-mutation-request_detach_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at","publicId":"Libtmux.Command.mutation.Resize_control_client_at","name":"Resize_control_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":945,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":945,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_control_client_at","slug":"libtmux-command-mutation-resize_control_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.client","publicId":"Libtmux.Command.mutation.Resize_control_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":946,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":946,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-resize_control_client_at-client"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.height","publicId":"Libtmux.Command.mutation.Resize_control_client_at.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":948,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":948,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_control_client_at-height"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.width","publicId":"Libtmux.Command.mutation.Resize_control_client_at.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":947,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":947,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_control_client_at-width"},{"id":"Libtmux.Command.mutation.Resize_pane","publicId":"Libtmux.Command.mutation.Resize_pane","name":"Resize_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":885,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":885,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_pane","slug":"libtmux-command-mutation-resize_pane"},{"id":"Libtmux.Command.mutation.Resize_pane.height","publicId":"Libtmux.Command.mutation.Resize_pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":888,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":888,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_pane-height"},{"id":"Libtmux.Command.mutation.Resize_pane.pane","publicId":"Libtmux.Command.mutation.Resize_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":886,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":886,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-resize_pane-pane"},{"id":"Libtmux.Command.mutation.Resize_pane.width","publicId":"Libtmux.Command.mutation.Resize_pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":887,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":887,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_pane-width"},{"id":"Libtmux.Command.mutation.Resize_window","publicId":"Libtmux.Command.mutation.Resize_window","name":"Resize_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":890,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":890,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_window","slug":"libtmux-command-mutation-resize_window"},{"id":"Libtmux.Command.mutation.Resize_window.height","publicId":"Libtmux.Command.mutation.Resize_window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":893,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":893,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_window-height"},{"id":"Libtmux.Command.mutation.Resize_window.width","publicId":"Libtmux.Command.mutation.Resize_window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":892,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":892,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_window-width"},{"id":"Libtmux.Command.mutation.Resize_window.window","publicId":"Libtmux.Command.mutation.Resize_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":891,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":891,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-resize_window-window"},{"id":"Libtmux.Command.mutation.Respawn_pane","publicId":"Libtmux.Command.mutation.Respawn_pane","name":"Respawn_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":906,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }","source":{"file":"lib/libtmux.mli","line":906,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Respawn_pane","slug":"libtmux-command-mutation-respawn_pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.kill_running","publicId":"Libtmux.Command.mutation.Respawn_pane.kill_running","name":"kill_running","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":909,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kill_running : bool;","source":{"file":"lib/libtmux.mli","line":909,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"bool","qualifiedName":"Libtmux.Command.kill_running","slug":"libtmux-command-mutation-respawn_pane-kill_running"},{"id":"Libtmux.Command.mutation.Respawn_pane.pane","publicId":"Libtmux.Command.mutation.Respawn_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":907,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":907,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-respawn_pane-pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.spawn","publicId":"Libtmux.Command.mutation.Respawn_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":908,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":908,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-mutation-respawn_pane-spawn"},{"id":"Libtmux.Command.mutation.Rotate_panes","publicId":"Libtmux.Command.mutation.Rotate_panes","name":"Rotate_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":904,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rotate_panes of Window.target * [ `Forward | `Backward ]","source":{"file":"lib/libtmux.mli","line":904,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Rotate_panes","slug":"libtmux-command-mutation-rotate_panes"},{"id":"Libtmux.Command.mutation.Run_hook","publicId":"Libtmux.Command.mutation.Run_hook","name":"Run_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":937,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Run_hook of Options.scope * string","source":{"file":"lib/libtmux.mli","line":937,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Run_hook","slug":"libtmux-command-mutation-run_hook"},{"id":"Libtmux.Command.mutation.Select_layout","publicId":"Libtmux.Command.mutation.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":895,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of Window.target * Layout.t","source":{"file":"lib/libtmux.mli","line":895,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_layout","slug":"libtmux-command-mutation-select_layout"},{"id":"Libtmux.Command.mutation.Select_pane","publicId":"Libtmux.Command.mutation.Select_pane","name":"Select_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":883,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":883,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_pane","slug":"libtmux-command-mutation-select_pane"},{"id":"Libtmux.Command.mutation.Select_window_at","publicId":"Libtmux.Command.mutation.Select_window_at","name":"Select_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":866,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_window_at of Session.target * int","source":{"file":"lib/libtmux.mli","line":866,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_window_at","slug":"libtmux-command-mutation-select_window_at"},{"id":"Libtmux.Command.mutation.Set_environment","publicId":"Libtmux.Command.mutation.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":912,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }","source":{"file":"lib/libtmux.mli","line":912,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_environment","slug":"libtmux-command-mutation-set_environment"},{"id":"Libtmux.Command.mutation.Set_environment.hidden","publicId":"Libtmux.Command.mutation.Set_environment.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":916,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":916,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"bool","qualifiedName":"Libtmux.Command.hidden","slug":"libtmux-command-mutation-set_environment-hidden"},{"id":"Libtmux.Command.mutation.Set_environment.name","publicId":"Libtmux.Command.mutation.Set_environment.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":914,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":914,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_environment-name"},{"id":"Libtmux.Command.mutation.Set_environment.scope","publicId":"Libtmux.Command.mutation.Set_environment.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":913,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Environment.scope;","source":{"file":"lib/libtmux.mli","line":913,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"Environment.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_environment-scope"},{"id":"Libtmux.Command.mutation.Set_environment.value","publicId":"Libtmux.Command.mutation.Set_environment.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":915,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : string;","source":{"file":"lib/libtmux.mli","line":915,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_environment-value"},{"id":"Libtmux.Command.mutation.Set_hook","publicId":"Libtmux.Command.mutation.Set_hook","name":"Set_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":929,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":929,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_hook","slug":"libtmux-command-mutation-set_hook"},{"id":"Libtmux.Command.mutation.Set_hook.append","publicId":"Libtmux.Command.mutation.Set_hook.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":934,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":934,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_hook-append"},{"id":"Libtmux.Command.mutation.Set_hook.commands","publicId":"Libtmux.Command.mutation.Set_hook.commands","name":"commands","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":933,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"commands : Hook.command list;","source":{"file":"lib/libtmux.mli","line":933,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Hook.command list","qualifiedName":"Libtmux.Command.commands","slug":"libtmux-command-mutation-set_hook-commands"},{"id":"Libtmux.Command.mutation.Set_hook.index","publicId":"Libtmux.Command.mutation.Set_hook.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":932,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":932,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_hook-index"},{"id":"Libtmux.Command.mutation.Set_hook.name","publicId":"Libtmux.Command.mutation.Set_hook.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":931,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":931,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_hook-name"},{"id":"Libtmux.Command.mutation.Set_hook.scope","publicId":"Libtmux.Command.mutation.Set_hook.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":930,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":930,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_hook-scope"},{"id":"Libtmux.Command.mutation.Set_option","publicId":"Libtmux.Command.mutation.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":920,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":920,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_option","slug":"libtmux-command-mutation-set_option"},{"id":"Libtmux.Command.mutation.Set_option.append","publicId":"Libtmux.Command.mutation.Set_option.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":925,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":925,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_option-append"},{"id":"Libtmux.Command.mutation.Set_option.index","publicId":"Libtmux.Command.mutation.Set_option.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":923,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":923,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_option-index"},{"id":"Libtmux.Command.mutation.Set_option.name","publicId":"Libtmux.Command.mutation.Set_option.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":922,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":922,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_option-name"},{"id":"Libtmux.Command.mutation.Set_option.scope","publicId":"Libtmux.Command.mutation.Set_option.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":921,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":921,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_option-scope"},{"id":"Libtmux.Command.mutation.Set_option.value","publicId":"Libtmux.Command.mutation.Set_option.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":924,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Options.scalar;","source":{"file":"lib/libtmux.mli","line":924,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scalar","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_option-value"},{"id":"Libtmux.Command.mutation.Set_pane_title","publicId":"Libtmux.Command.mutation.Set_pane_title","name":"Set_pane_title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":884,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_pane_title of Pane.target * string","source":{"file":"lib/libtmux.mli","line":884,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Set_pane_title","slug":"libtmux-command-mutation-set_pane_title"},{"id":"Libtmux.Command.mutation.Swap_panes","publicId":"Libtmux.Command.mutation.Swap_panes","name":"Swap_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":903,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Swap_panes of Pane.target * Pane.target","source":{"file":"lib/libtmux.mli","line":903,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Swap_panes","slug":"libtmux-command-mutation-swap_panes"},{"id":"Libtmux.Command.mutation.Switch_client_at","publicId":"Libtmux.Command.mutation.Switch_client_at","name":"Switch_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":938,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }","source":{"file":"lib/libtmux.mli","line":938,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Switch_client_at","slug":"libtmux-command-mutation-switch_client_at"},{"id":"Libtmux.Command.mutation.Switch_client_at.client","publicId":"Libtmux.Command.mutation.Switch_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":939,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":939,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-switch_client_at-client"},{"id":"Libtmux.Command.mutation.Switch_client_at.session","publicId":"Libtmux.Command.mutation.Switch_client_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":940,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":940,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-switch_client_at-session"},{"id":"Libtmux.Command.mutation.Switch_client_at.update_environment","publicId":"Libtmux.Command.mutation.Switch_client_at.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":941,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"update_environment : bool;","source":{"file":"lib/libtmux.mli","line":941,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"bool","qualifiedName":"Libtmux.Command.update_environment","slug":"libtmux-command-mutation-switch_client_at-update_environment"},{"id":"Libtmux.Command.mutation.Unlink_window_at","publicId":"Libtmux.Command.mutation.Unlink_window_at","name":"Unlink_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":867,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }","source":{"file":"lib/libtmux.mli","line":867,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Unlink_window_at","slug":"libtmux-command-mutation-unlink_window_at"},{"id":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","publicId":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","name":"allow_kill","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":870,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"allow_kill : bool;","source":{"file":"lib/libtmux.mli","line":870,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"bool","qualifiedName":"Libtmux.Command.allow_kill","slug":"libtmux-command-mutation-unlink_window_at-allow_kill"},{"id":"Libtmux.Command.mutation.Unlink_window_at.index","publicId":"Libtmux.Command.mutation.Unlink_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":869,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":869,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-unlink_window_at-index"},{"id":"Libtmux.Command.mutation.Unlink_window_at.session","publicId":"Libtmux.Command.mutation.Unlink_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":868,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":868,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-unlink_window_at-session"},{"id":"Libtmux.Command.mutation.Unset_environment","publicId":"Libtmux.Command.mutation.Unset_environment","name":"Unset_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":918,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":918,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_environment","slug":"libtmux-command-mutation-unset_environment"},{"id":"Libtmux.Command.mutation.Unset_option","publicId":"Libtmux.Command.mutation.Unset_option","name":"Unset_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":927,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_option of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":927,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_option","slug":"libtmux-command-mutation-unset_option"},{"id":"Libtmux.Command.mutation.Zoom_pane","publicId":"Libtmux.Command.mutation.Zoom_pane","name":"Zoom_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":905,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Zoom_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":905,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Zoom_pane","slug":"libtmux-command-mutation-zoom_pane"},{"id":"Libtmux.Command.t","publicId":"Libtmux.Command.t","qualifiedName":"Libtmux.Command.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":951,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. "],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":951,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command","doc":{"summary":"An immutable description, validated by a backend before admission. Constructing or inspecting it performs no I/O."},"signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-command-t"},{"id":"Libtmux.Command.view","publicId":"Libtmux.Command.view","qualifiedName":"Libtmux.Command.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1006,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read-only inspection for transport adapters. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":1006,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command","doc":{"summary":"Read-only inspection for transport adapters."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-command-view"},{"id":"Libtmux.Command.view:type","publicId":"Libtmux.Command.view:type","qualifiedName":"Libtmux.Command.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":955,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":955,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type _ view =\n Capture : Snapshot.t view\n | Capture_text : { pane : Pane.t; start : int; end_ : int;\n scratch_dir : string;\n } -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : { name : string; window_name : string option;\n width : int; height : int; spawn : Spawn.t;\n } -> Created.t view\n | Create_window : { session : Session.target; index : int option;\n name : string option; spawn : Spawn.t;\n } -> Created.t view\n | Split_pane : { pane : Pane.target; direction : Geometry.direction;\n size : Geometry.size option; spawn : Spawn.t;\n } -> Created.t view\n | Break_pane : { pane : Pane.target; session : Session.target; index : int;\n name : string option;\n } -> Created.t view","params":[]}],"slug":"libtmux-command-view-type"},{"id":"Libtmux.Command.view:type.Break_pane","publicId":"Libtmux.Command.view:type.Break_pane","name":"Break_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":998,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":998,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Break_pane","slug":"libtmux-command-view-type-break_pane"},{"id":"Libtmux.Command.view:type.Break_pane.index","publicId":"Libtmux.Command.view:type.Break_pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1001,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":1001,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-break_pane-index"},{"id":"Libtmux.Command.view:type.Break_pane.name","publicId":"Libtmux.Command.view:type.Break_pane.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1002,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1002,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-break_pane-name"},{"id":"Libtmux.Command.view:type.Break_pane.pane","publicId":"Libtmux.Command.view:type.Break_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":999,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":999,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-break_pane-pane"},{"id":"Libtmux.Command.view:type.Break_pane.session","publicId":"Libtmux.Command.view:type.Break_pane.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1000,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1000,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-break_pane-session"},{"id":"Libtmux.Command.view:type.Capture","publicId":"Libtmux.Command.view:type.Capture","name":"Capture","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":956,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture : Snapshot.t view","source":{"file":"lib/libtmux.mli","line":956,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"unit","qualifiedName":"Libtmux.Command.Capture","slug":"libtmux-command-view-type-capture"},{"id":"Libtmux.Command.view:type.Capture_environment","publicId":"Libtmux.Command.view:type.Capture_environment","name":"Capture_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":970,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_environment : Environment.scope * bool -> Environment.t view","source":{"file":"lib/libtmux.mli","line":970,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_environment","slug":"libtmux-command-view-type-capture_environment"},{"id":"Libtmux.Command.view:type.Capture_hooks","publicId":"Libtmux.Command.view:type.Capture_hooks","name":"Capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":973,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_hooks : Options.scope -> Options.t view","source":{"file":"lib/libtmux.mli","line":973,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_hooks","slug":"libtmux-command-view-type-capture_hooks"},{"id":"Libtmux.Command.view:type.Capture_options","publicId":"Libtmux.Command.view:type.Capture_options","name":"Capture_options","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":971,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_options : Options.scope * bool -> Options.t view","source":{"file":"lib/libtmux.mli","line":971,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_options","slug":"libtmux-command-view-type-capture_options"},{"id":"Libtmux.Command.view:type.Capture_text","publicId":"Libtmux.Command.view:type.Capture_text","name":"Capture_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":957,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view","source":{"file":"lib/libtmux.mli","line":957,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Capture_text","slug":"libtmux-command-view-type-capture_text"},{"id":"Libtmux.Command.view:type.Capture_text.end_","publicId":"Libtmux.Command.view:type.Capture_text.end_","name":"end_","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":960,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"end_ : int;","source":{"file":"lib/libtmux.mli","line":960,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.end_","slug":"libtmux-command-view-type-capture_text-end_"},{"id":"Libtmux.Command.view:type.Capture_text.pane","publicId":"Libtmux.Command.view:type.Capture_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":958,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.t;","source":{"file":"lib/libtmux.mli","line":958,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"Pane.t","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-capture_text-pane"},{"id":"Libtmux.Command.view:type.Capture_text.scratch_dir","publicId":"Libtmux.Command.view:type.Capture_text.scratch_dir","name":"scratch_dir","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":961,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scratch_dir : string;","source":{"file":"lib/libtmux.mli","line":961,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"string","qualifiedName":"Libtmux.Command.scratch_dir","slug":"libtmux-command-view-type-capture_text-scratch_dir"},{"id":"Libtmux.Command.view:type.Capture_text.start","publicId":"Libtmux.Command.view:type.Capture_text.start","name":"start","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":959,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"start : int;","source":{"file":"lib/libtmux.mli","line":959,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.start","slug":"libtmux-command-view-type-capture_text-start"},{"id":"Libtmux.Command.view:type.Create_session","publicId":"Libtmux.Command.view:type.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":976,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":976,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_session","slug":"libtmux-command-view-type-create_session"},{"id":"Libtmux.Command.view:type.Create_session.height","publicId":"Libtmux.Command.view:type.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":980,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":980,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-view-type-create_session-height"},{"id":"Libtmux.Command.view:type.Create_session.name","publicId":"Libtmux.Command.view:type.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":977,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":977,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_session-name"},{"id":"Libtmux.Command.view:type.Create_session.spawn","publicId":"Libtmux.Command.view:type.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":981,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":981,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_session-spawn"},{"id":"Libtmux.Command.view:type.Create_session.width","publicId":"Libtmux.Command.view:type.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":979,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":979,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-view-type-create_session-width"},{"id":"Libtmux.Command.view:type.Create_session.window_name","publicId":"Libtmux.Command.view:type.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":978,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string option;","source":{"file":"lib/libtmux.mli","line":978,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string option","qualifiedName":"Libtmux.Command.window_name","slug":"libtmux-command-view-type-create_session-window_name"},{"id":"Libtmux.Command.view:type.Create_window","publicId":"Libtmux.Command.view:type.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":984,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":984,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_window","slug":"libtmux-command-view-type-create_window"},{"id":"Libtmux.Command.view:type.Create_window.index","publicId":"Libtmux.Command.view:type.Create_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":986,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":986,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-create_window-index"},{"id":"Libtmux.Command.view:type.Create_window.name","publicId":"Libtmux.Command.view:type.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":987,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":987,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_window-name"},{"id":"Libtmux.Command.view:type.Create_window.session","publicId":"Libtmux.Command.view:type.Create_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":985,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":985,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-create_window-session"},{"id":"Libtmux.Command.view:type.Create_window.spawn","publicId":"Libtmux.Command.view:type.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":988,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":988,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_window-spawn"},{"id":"Libtmux.Command.view:type.Mutate","publicId":"Libtmux.Command.view:type.Mutate","name":"Mutate","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":975,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mutate : mutation -> unit view","source":{"file":"lib/libtmux.mli","line":975,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Mutate","slug":"libtmux-command-view-type-mutate"},{"id":"Libtmux.Command.view:type.Read_hook","publicId":"Libtmux.Command.view:type.Read_hook","name":"Read_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":974,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_hook : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":974,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_hook","slug":"libtmux-command-view-type-read_hook"},{"id":"Libtmux.Command.view:type.Read_option","publicId":"Libtmux.Command.view:type.Read_option","name":"Read_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":972,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_option : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":972,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_option","slug":"libtmux-command-view-type-read_option"},{"id":"Libtmux.Command.view:type.Rename_session","publicId":"Libtmux.Command.view:type.Rename_session","name":"Rename_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":965,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_session : Session.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":965,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_session","slug":"libtmux-command-view-type-rename_session"},{"id":"Libtmux.Command.view:type.Rename_window","publicId":"Libtmux.Command.view:type.Rename_window","name":"Rename_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":964,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_window : Window.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":964,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_window","slug":"libtmux-command-view-type-rename_window"},{"id":"Libtmux.Command.view:type.Send_keys","publicId":"Libtmux.Command.view:type.Send_keys","name":"Send_keys","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":967,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_keys : Pane.target * Key.t list -> unit view","source":{"file":"lib/libtmux.mli","line":967,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_keys","slug":"libtmux-command-view-type-send_keys"},{"id":"Libtmux.Command.view:type.Send_text","publicId":"Libtmux.Command.view:type.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":966,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text : Pane.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":966,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_text","slug":"libtmux-command-view-type-send_text"},{"id":"Libtmux.Command.view:type.Signal","publicId":"Libtmux.Command.view:type.Signal","name":"Signal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":969,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Signal : string -> unit view","source":{"file":"lib/libtmux.mli","line":969,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Signal","slug":"libtmux-command-view-type-signal"},{"id":"Libtmux.Command.view:type.Split_pane","publicId":"Libtmux.Command.view:type.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":991,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":991,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Split_pane","slug":"libtmux-command-view-type-split_pane"},{"id":"Libtmux.Command.view:type.Split_pane.direction","publicId":"Libtmux.Command.view:type.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":993,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":993,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-view-type-split_pane-direction"},{"id":"Libtmux.Command.view:type.Split_pane.pane","publicId":"Libtmux.Command.view:type.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":992,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":992,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-split_pane-pane"},{"id":"Libtmux.Command.view:type.Split_pane.size","publicId":"Libtmux.Command.view:type.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":994,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":994,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-view-type-split_pane-size"},{"id":"Libtmux.Command.view:type.Split_pane.spawn","publicId":"Libtmux.Command.view:type.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":995,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":995,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-split_pane-spawn"},{"id":"Libtmux.Command.view:type.Wait_for","publicId":"Libtmux.Command.view:type.Wait_for","name":"Wait_for","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":968,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wait_for : string -> unit view","source":{"file":"lib/libtmux.mli","line":968,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Wait_for","slug":"libtmux-command-view-type-wait_for"},{"id":"Libtmux.Created","publicId":"Libtmux.Created","qualifiedName":"Libtmux.Created","name":"Created","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":757,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" IDs reported by a successful creation reply. Only the requested kind is\n newly created; the other fields can describe existing containers. "],"declarations":[{"kind":"module","text":"module Created : sig\n type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }\n (** IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. *)\nend","source":{"file":"lib/libtmux.mli","line":757,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"IDs reported by a successful creation reply. Only the requested kind is newly created; the other fields can describe existing containers."},"slug":"libtmux-created"},{"id":"Libtmux.Created.t","publicId":"Libtmux.Created.t","qualifiedName":"Libtmux.Created.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":758,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. "],"declarations":[{"kind":"struct","text":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }","source":{"file":"lib/libtmux.mli","line":758,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Created","doc":{"summary":"IDs returned by the creation command, without a second capture. Indexes describe the creation response and may change afterward. Only the resource requested by the command is newly created: splitting a pane does not create the reported session or window."},"signatures":[{"raw":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n}","params":[]}],"slug":"libtmux-created-t"},{"id":"Libtmux.Created.t.pane","publicId":"Libtmux.Created.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":761,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":761,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Created.t","type":"Pane.target","qualifiedName":"Libtmux.Created.pane","slug":"libtmux-created-t-pane"},{"id":"Libtmux.Created.t.pane_index","publicId":"Libtmux.Created.t.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.pane_index","slug":"libtmux-created-t-pane_index"},{"id":"Libtmux.Created.t.session","publicId":"Libtmux.Created.t.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":759,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":759,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Created.t","type":"Session.target","qualifiedName":"Libtmux.Created.session","slug":"libtmux-created-t-session"},{"id":"Libtmux.Created.t.window","publicId":"Libtmux.Created.t.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":760,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":760,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Created.t","type":"Window.target","qualifiedName":"Libtmux.Created.window","slug":"libtmux-created-t-window"},{"id":"Libtmux.Created.t.window_index","publicId":"Libtmux.Created.t.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"lib/libtmux.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.window_index","slug":"libtmux-created-t-window_index"},{"id":"Libtmux.Endpoint","publicId":"Libtmux.Endpoint","qualifiedName":"Libtmux.Endpoint","name":"Endpoint","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" An explicit socket description. Constructing an endpoint neither reads the\n environment nor starts a daemon. {!Source.t} adds the observed daemon and\n connection generation. "],"declarations":[{"kind":"module","text":"module Endpoint : sig\n type t\n (** An explicit socket description, independent of the environment. *)\n\n type kind = Named_socket of string | Socket_path of string\n\n val named_socket : string -> t\n (** [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. *)\n\n val socket_path : string -> t\n (** [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. *)\n\n val kind : t -> kind\n\n val equal : t -> t -> bool\n (** Equality compares descriptions, not server instances or resolved paths. *)\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"An explicit socket description. Constructing an endpoint neither reads the environment nor starts a daemon. {!Source.t} adds the observed daemon and connection generation."},"slug":"libtmux-endpoint"},{"id":"Libtmux.Endpoint.equal","publicId":"Libtmux.Endpoint.equal","qualifiedName":"Libtmux.Endpoint.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":43,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Equality compares descriptions, not server instances or resolved paths. "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":43,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"Equality compares descriptions, not server instances or resolved paths."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-endpoint-equal"},{"id":"Libtmux.Endpoint.kind","publicId":"Libtmux.Endpoint.kind","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":41,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : t -> kind","source":{"file":"lib/libtmux.mli","line":41,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val kind : t -> kind","params":[{"name":"arg1","type":"t"}],"returns":"kind"}],"slug":"libtmux-endpoint-kind"},{"id":"Libtmux.Endpoint.kind:type","publicId":"Libtmux.Endpoint.kind:type","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type kind = Named_socket of string | Socket_path of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"type kind = Named_socket of string | Socket_path of string","params":[]}],"slug":"libtmux-endpoint-kind-type"},{"id":"Libtmux.Endpoint.kind:type.Named_socket","publicId":"Libtmux.Endpoint.kind:type.Named_socket","name":"Named_socket","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Named_socket of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Named_socket","slug":"libtmux-endpoint-kind-type-named_socket"},{"id":"Libtmux.Endpoint.kind:type.Socket_path","publicId":"Libtmux.Endpoint.kind:type.Socket_path","name":"Socket_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Socket_path of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Socket_path","slug":"libtmux-endpoint-kind-type-socket_path"},{"id":"Libtmux.Endpoint.named_socket","publicId":"Libtmux.Endpoint.named_socket","qualifiedName":"Libtmux.Endpoint.named_socket","name":"named_socket","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. "],"declarations":[{"kind":"function","text":"val named_socket : string -> t","source":{"file":"lib/libtmux.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`named_socket name` describes tmux's `-L name` endpoint. Raises `Invalid_argument` if `name` is empty or contains NUL or `/`."},"signatures":[{"raw":"val named_socket : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-named_socket"},{"id":"Libtmux.Endpoint.pp","publicId":"Libtmux.Endpoint.pp","qualifiedName":"Libtmux.Endpoint.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":46,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":46,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-endpoint-pp"},{"id":"Libtmux.Endpoint.socket_path","publicId":"Libtmux.Endpoint.socket_path","qualifiedName":"Libtmux.Endpoint.socket_path","name":"socket_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. "],"declarations":[{"kind":"function","text":"val socket_path : string -> t","source":{"file":"lib/libtmux.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`socket_path path` describes an absolute `-S path` endpoint. It does not check existence or resolve symbolic links. Raises `Invalid_argument` if `path` is relative, empty or contains NUL."},"signatures":[{"raw":"val socket_path : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-socket_path"},{"id":"Libtmux.Endpoint.t","publicId":"Libtmux.Endpoint.t","qualifiedName":"Libtmux.Endpoint.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" An explicit socket description, independent of the environment. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"An explicit socket description, independent of the environment."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-endpoint-t"},{"id":"Libtmux.Environment","publicId":"Libtmux.Environment","qualifiedName":"Libtmux.Environment","name":"Environment","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":771,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Environment : sig\n type scope = Global | Session of Session.target\n type value = Value of string | Removed\n type entry = { name : string; value : value }\n\n type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. *)\n\n val lookup : t -> string -> value option\n (** No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. *)\nend","source":{"file":"lib/libtmux.mli","line":771,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-environment"},{"id":"Libtmux.Environment.entry","publicId":"Libtmux.Environment.entry","qualifiedName":"Libtmux.Environment.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { name : string; value : value }","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type entry = { name : string; value : value; }","params":[]}],"slug":"libtmux-environment-entry"},{"id":"Libtmux.Environment.entry.name","publicId":"Libtmux.Environment.entry.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.entry","type":"string","qualifiedName":"Libtmux.Environment.name","slug":"libtmux-environment-entry-name"},{"id":"Libtmux.Environment.entry.value","publicId":"Libtmux.Environment.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.entry","type":"value","qualifiedName":"Libtmux.Environment.value","slug":"libtmux-environment-entry-value"},{"id":"Libtmux.Environment.lookup","publicId":"Libtmux.Environment.lookup","qualifiedName":"Libtmux.Environment.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":788,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> value option","source":{"file":"lib/libtmux.mli","line":788,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment","doc":{"summary":"No I/O. `None` means absent from the selected table and visibility. `Removed` masks a global value; `Value \"\"` is an explicitly empty value. Names must be ASCII identifiers; values preserve non-NUL bytes."},"signatures":[{"raw":"val lookup : t -> string -> value option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"value option"}],"slug":"libtmux-environment-lookup"},{"id":"Libtmux.Environment.scope","publicId":"Libtmux.Environment.scope","qualifiedName":"Libtmux.Environment.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Global | Session of Session.target","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type scope = Global | Session of Session.target","params":[]}],"slug":"libtmux-environment-scope"},{"id":"Libtmux.Environment.scope.Global","publicId":"Libtmux.Environment.scope.Global","name":"Global","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Global","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.scope","variant":"unit","qualifiedName":"Libtmux.Environment.Global","slug":"libtmux-environment-scope-global"},{"id":"Libtmux.Environment.scope.Session","publicId":"Libtmux.Environment.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.scope","variant":"tuple","qualifiedName":"Libtmux.Environment.Session","slug":"libtmux-environment-scope-session"},{"id":"Libtmux.Environment.t","publicId":"Libtmux.Environment.t","qualifiedName":"Libtmux.Environment.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":776,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":776,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment","doc":{"summary":"One captured environment table, in tmux order. `hidden` selects hidden variables exclusively. Session tables contain local entries, including removal markers; they do not merge the global environment."},"signatures":[{"raw":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-environment-t"},{"id":"Libtmux.Environment.t.entries","publicId":"Libtmux.Environment.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Environment.entries","slug":"libtmux-environment-t-entries"},{"id":"Libtmux.Environment.t.finished_at_ns","publicId":"Libtmux.Environment.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":782,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":782,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.finished_at_ns","slug":"libtmux-environment-t-finished_at_ns"},{"id":"Libtmux.Environment.t.hidden","publicId":"Libtmux.Environment.t.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":779,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":779,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.t","type":"bool","qualifiedName":"Libtmux.Environment.hidden","slug":"libtmux-environment-t-hidden"},{"id":"Libtmux.Environment.t.scope","publicId":"Libtmux.Environment.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":778,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":778,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.t","type":"scope","qualifiedName":"Libtmux.Environment.scope","slug":"libtmux-environment-t-scope"},{"id":"Libtmux.Environment.t.source","publicId":"Libtmux.Environment.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":777,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":777,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.t","type":"Source.t","qualifiedName":"Libtmux.Environment.source","slug":"libtmux-environment-t-source"},{"id":"Libtmux.Environment.t.started_at_ns","publicId":"Libtmux.Environment.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":781,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":781,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.started_at_ns","slug":"libtmux-environment-t-started_at_ns"},{"id":"Libtmux.Environment.value","publicId":"Libtmux.Environment.value","qualifiedName":"Libtmux.Environment.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Value of string | Removed","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type value = Value of string | Removed","params":[]}],"slug":"libtmux-environment-value"},{"id":"Libtmux.Environment.value.Removed","publicId":"Libtmux.Environment.value.Removed","name":"Removed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Removed","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.value","variant":"unit","qualifiedName":"Libtmux.Environment.Removed","slug":"libtmux-environment-value-removed"},{"id":"Libtmux.Environment.value.Value","publicId":"Libtmux.Environment.value.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Value of string","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.value","variant":"tuple","qualifiedName":"Libtmux.Environment.Value","slug":"libtmux-environment-value-value"},{"id":"Libtmux.Error","publicId":"Libtmux.Error","qualifiedName":"Libtmux.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":52,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Expected input, capture, capability and transport failures. Cancellation\n belongs to the chosen backend and is not converted into an ordinary error.\n"],"declarations":[{"kind":"module","text":"module Error : sig\n type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":52,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Expected input, capture, capability and transport failures. Cancellation belongs to the chosen backend and is not converted into an ordinary error."},"slug":"libtmux-error"},{"id":"Libtmux.Error.pp","publicId":"Libtmux.Error.pp","qualifiedName":"Libtmux.Error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-error-pp"},{"id":"Libtmux.Error.t","publicId":"Libtmux.Error.t","qualifiedName":"Libtmux.Error.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":53,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":53,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error","signatures":[{"raw":"type t =\n Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string; }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int; }\n | Stale_target\n | No_such_entity of { kind : string; id : string; }\n | Command_failed of { command : string; message : string; }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","params":[]}],"slug":"libtmux-error-t"},{"id":"Libtmux.Error.t.Busy","publicId":"Libtmux.Error.t.Busy","name":"Busy","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Busy","source":{"file":"lib/libtmux.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Busy","slug":"libtmux-error-t-busy"},{"id":"Libtmux.Error.t.Capacity","publicId":"Libtmux.Error.t.Capacity","name":"Capacity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capacity of { resource : string; limit : int }","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Capacity","slug":"libtmux-error-t-capacity"},{"id":"Libtmux.Error.t.Capacity.limit","publicId":"Libtmux.Error.t.Capacity.limit","name":"limit","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"limit : int","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.Capacity","type":"int","qualifiedName":"Libtmux.Error.limit","slug":"libtmux-error-t-capacity-limit"},{"id":"Libtmux.Error.t.Capacity.resource","publicId":"Libtmux.Error.t.Capacity.resource","name":"resource","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"resource : string;","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.Capacity","type":"string","qualifiedName":"Libtmux.Error.resource","slug":"libtmux-error-t-capacity-resource"},{"id":"Libtmux.Error.t.Capture_raced","publicId":"Libtmux.Error.t.Capture_raced","name":"Capture_raced","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_raced of string","source":{"file":"lib/libtmux.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Capture_raced","slug":"libtmux-error-t-capture_raced"},{"id":"Libtmux.Error.t.Closed","publicId":"Libtmux.Error.t.Closed","name":"Closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Closed","source":{"file":"lib/libtmux.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Closed","slug":"libtmux-error-t-closed"},{"id":"Libtmux.Error.t.Command_failed","publicId":"Libtmux.Error.t.Command_failed","name":"Command_failed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command_failed of { command : string; message : string }","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Command_failed","slug":"libtmux-error-t-command_failed"},{"id":"Libtmux.Error.t.Command_failed.command","publicId":"Libtmux.Error.t.Command_failed.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : string;","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.command","slug":"libtmux-error-t-command_failed-command"},{"id":"Libtmux.Error.t.Command_failed.message","publicId":"Libtmux.Error.t.Command_failed.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-command_failed-message"},{"id":"Libtmux.Error.t.Deadline_exceeded","publicId":"Libtmux.Error.t.Deadline_exceeded","name":"Deadline_exceeded","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Deadline_exceeded","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Deadline_exceeded","slug":"libtmux-error-t-deadline_exceeded"},{"id":"Libtmux.Error.t.Disconnected","publicId":"Libtmux.Error.t.Disconnected","name":"Disconnected","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Disconnected of string","source":{"file":"lib/libtmux.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Disconnected","slug":"libtmux-error-t-disconnected"},{"id":"Libtmux.Error.t.Filesystem","publicId":"Libtmux.Error.t.Filesystem","name":"Filesystem","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Filesystem of { operation : string; message : string }","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Filesystem","slug":"libtmux-error-t-filesystem"},{"id":"Libtmux.Error.t.Filesystem.message","publicId":"Libtmux.Error.t.Filesystem.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-filesystem-message"},{"id":"Libtmux.Error.t.Filesystem.operation","publicId":"Libtmux.Error.t.Filesystem.operation","name":"operation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation : string;","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.operation","slug":"libtmux-error-t-filesystem-operation"},{"id":"Libtmux.Error.t.Invalid_input","publicId":"Libtmux.Error.t.Invalid_input","name":"Invalid_input","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":54,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Invalid_input of string","source":{"file":"lib/libtmux.mli","line":54,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Invalid_input","slug":"libtmux-error-t-invalid_input"},{"id":"Libtmux.Error.t.Malformed_data","publicId":"Libtmux.Error.t.Malformed_data","name":"Malformed_data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Malformed_data of string","source":{"file":"lib/libtmux.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Malformed_data","slug":"libtmux-error-t-malformed_data"},{"id":"Libtmux.Error.t.No_such_entity","publicId":"Libtmux.Error.t.No_such_entity","name":"No_such_entity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| No_such_entity of { kind : string; id : string }","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.No_such_entity","slug":"libtmux-error-t-no_such_entity"},{"id":"Libtmux.Error.t.No_such_entity.id","publicId":"Libtmux.Error.t.No_such_entity.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : string","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.id","slug":"libtmux-error-t-no_such_entity-id"},{"id":"Libtmux.Error.t.No_such_entity.kind","publicId":"Libtmux.Error.t.No_such_entity.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : string;","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.kind","slug":"libtmux-error-t-no_such_entity-kind"},{"id":"Libtmux.Error.t.Not_started","publicId":"Libtmux.Error.t.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"lib/libtmux.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Not_started","slug":"libtmux-error-t-not_started"},{"id":"Libtmux.Error.t.Outcome_unknown","publicId":"Libtmux.Error.t.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Outcome_unknown","slug":"libtmux-error-t-outcome_unknown"},{"id":"Libtmux.Error.t.Stale_target","publicId":"Libtmux.Error.t.Stale_target","name":"Stale_target","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale_target","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Stale_target","slug":"libtmux-error-t-stale_target"},{"id":"Libtmux.Error.t.Unsupported","publicId":"Libtmux.Error.t.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported of string","source":{"file":"lib/libtmux.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported","slug":"libtmux-error-t-unsupported"},{"id":"Libtmux.Error.t.Unsupported_binding","publicId":"Libtmux.Error.t.Unsupported_binding","name":"Unsupported_binding","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_binding of string","source":{"file":"lib/libtmux.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_binding","slug":"libtmux-error-t-unsupported_binding"},{"id":"Libtmux.Error.t.Unsupported_capture_hooks","publicId":"Libtmux.Error.t.Unsupported_capture_hooks","name":"Unsupported_capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_capture_hooks","source":{"file":"lib/libtmux.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Unsupported_capture_hooks","slug":"libtmux-error-t-unsupported_capture_hooks"},{"id":"Libtmux.Error.t.Unsupported_version","publicId":"Libtmux.Error.t.Unsupported_version","name":"Unsupported_version","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_version of string","source":{"file":"lib/libtmux.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_version","slug":"libtmux-error-t-unsupported_version"},{"id":"Libtmux.Error.t.Wrong_domain","publicId":"Libtmux.Error.t.Wrong_domain","name":"Wrong_domain","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_domain","source":{"file":"lib/libtmux.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Wrong_domain","slug":"libtmux-error-t-wrong_domain"},{"id":"Libtmux.Expr","publicId":"Libtmux.Expr","qualifiedName":"Libtmux.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Inspectable predicates whose entity and operand types are checked by the\n compiler. Combine native closures separately with [Seq.filter]. Evaluation\n follows captured relationships without acquisition or hidden caches. "],"declarations":[{"kind":"module","text":"module Expr : sig\n type 'entity t\n\n val all : 'a t list -> 'a t\n (** Boolean conjunction; the empty conjunction is true. *)\n\n val any : 'a t list -> 'a t\n (** Boolean disjunction; the empty disjunction is false. *)\n\n val not_ : 'a t -> 'a t\n\n module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end\n\n module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end\n\n module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end\n\n module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end\n\n val compile : 'a t -> 'a -> bool\n (** Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n *)\n\n val pp : Format.formatter -> 'a t -> unit\n val describe : 'a t -> string\n\n type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison\n\n type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view\n\n val view : 'a t -> 'a view\n (** Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. *)\nend","source":{"file":"lib/libtmux.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Inspectable predicates whose entity and operand types are checked by the compiler. Combine native closures separately with `Seq.filter`. Evaluation follows captured relationships without acquisition or hidden caches."},"slug":"libtmux-expr"},{"id":"Libtmux.Expr.Bool","publicId":"Libtmux.Expr.Bool","qualifiedName":"Libtmux.Expr.Bool","name":"Bool","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":563,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":563,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-bool"},{"id":"Libtmux.Expr.Bool.equal","publicId":"Libtmux.Expr.Bool.equal","qualifiedName":"Libtmux.Expr.Bool.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":564,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, bool) Field.t -> bool -> 'a t","source":{"file":"lib/libtmux.mli","line":564,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val equal : ('a, bool) Field.t -> bool -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"},{"name":"arg2","type":"bool"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-equal"},{"id":"Libtmux.Expr.Bool.is_false","publicId":"Libtmux.Expr.Bool.is_false","qualifiedName":"Libtmux.Expr.Bool.is_false","name":"is_false","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":566,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_false : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":566,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_false : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_false"},{"id":"Libtmux.Expr.Bool.is_true","publicId":"Libtmux.Expr.Bool.is_true","qualifiedName":"Libtmux.Expr.Bool.is_true","name":"is_true","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_true : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_true : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_true"},{"id":"Libtmux.Expr.Int","publicId":"Libtmux.Expr.Int","qualifiedName":"Libtmux.Expr.Int","name":"Int","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":569,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":569,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-int"},{"id":"Libtmux.Expr.Int.equal","publicId":"Libtmux.Expr.Int.equal","qualifiedName":"Libtmux.Expr.Int.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":570,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":570,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val equal : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-equal"},{"id":"Libtmux.Expr.Int.ge","publicId":"Libtmux.Expr.Int.ge","qualifiedName":"Libtmux.Expr.Int.ge","name":"ge","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":574,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ge : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":574,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val ge : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-ge"},{"id":"Libtmux.Expr.Int.gt","publicId":"Libtmux.Expr.Int.gt","qualifiedName":"Libtmux.Expr.Int.gt","name":"gt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":573,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val gt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":573,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val gt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-gt"},{"id":"Libtmux.Expr.Int.is_in","publicId":"Libtmux.Expr.Int.is_in","qualifiedName":"Libtmux.Expr.Int.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_in : ('a, int) Field.t -> int list -> 'a t","source":{"file":"lib/libtmux.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val is_in : ('a, int) Field.t -> int list -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int list"}],"returns":"'a t"}],"slug":"libtmux-expr-int-is_in"},{"id":"Libtmux.Expr.Int.le","publicId":"Libtmux.Expr.Int.le","qualifiedName":"Libtmux.Expr.Int.le","name":"le","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":572,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val le : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":572,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val le : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-le"},{"id":"Libtmux.Expr.Int.lt","publicId":"Libtmux.Expr.Int.lt","qualifiedName":"Libtmux.Expr.Int.lt","name":"lt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":571,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val lt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":571,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val lt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-lt"},{"id":"Libtmux.Expr.Rel","publicId":"Libtmux.Expr.Rel","qualifiedName":"Libtmux.Expr.Rel","name":"Rel","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":589,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":589,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-rel"},{"id":"Libtmux.Expr.Rel.all","publicId":"Libtmux.Expr.Rel.all","qualifiedName":"Libtmux.Expr.Rel.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":591,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":591,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-all"},{"id":"Libtmux.Expr.Rel.any","publicId":"Libtmux.Expr.Rel.any","qualifiedName":"Libtmux.Expr.Rel.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-any"},{"id":"Libtmux.Expr.Rel.exists","publicId":"Libtmux.Expr.Rel.exists","qualifiedName":"Libtmux.Expr.Rel.exists","name":"exists","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":598,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":598,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-exists"},{"id":"Libtmux.Expr.Rel.is","publicId":"Libtmux.Expr.Rel.is","qualifiedName":"Libtmux.Expr.Rel.is","name":"is","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.One.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is"},{"id":"Libtmux.Expr.Rel.is_absent","publicId":"Libtmux.Expr.Rel.is_absent","qualifiedName":"Libtmux.Expr.Rel.is_absent","name":"is_absent","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":599,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","source":{"file":"lib/libtmux.mli","line":599,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is_absent"},{"id":"Libtmux.Expr.Rel.none","publicId":"Libtmux.Expr.Rel.none","qualifiedName":"Libtmux.Expr.Rel.none","name":"none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":593,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. "],"declarations":[{"kind":"function","text":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":593,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Rel","doc":{"summary":"On empty relations, `any` is false; `all` and `none` are true. One child must satisfy the complete nested expression."},"signatures":[{"raw":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-none"},{"id":"Libtmux.Expr.Text","publicId":"Libtmux.Expr.Text","qualifiedName":"Libtmux.Expr.Text","name":"Text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":578,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end","source":{"file":"lib/libtmux.mli","line":578,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-text"},{"id":"Libtmux.Expr.Text.contains","publicId":"Libtmux.Expr.Text.contains","qualifiedName":"Libtmux.Expr.Text.contains","name":"contains","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":582,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val contains : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":582,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val contains : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-contains"},{"id":"Libtmux.Expr.Text.ends_with","publicId":"Libtmux.Expr.Text.ends_with","qualifiedName":"Libtmux.Expr.Text.ends_with","name":"ends_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ends_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val ends_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-ends_with"},{"id":"Libtmux.Expr.Text.equal","publicId":"Libtmux.Expr.Text.equal","qualifiedName":"Libtmux.Expr.Text.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":579,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":579,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val equal : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-equal"},{"id":"Libtmux.Expr.Text.is_in","publicId":"Libtmux.Expr.Text.is_in","qualifiedName":"Libtmux.Expr.Text.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":584,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. "],"declarations":[{"kind":"function","text":"val is_in : ('a, string) Field.t -> string list -> 'a t","source":{"file":"lib/libtmux.mli","line":584,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Text","doc":{"summary":"Comparisons use exact bytes, without case folding or normalization. The empty substring matches every string."},"signatures":[{"raw":"val is_in : ('a, string) Field.t -> string list -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string list"}],"returns":"'a t"}],"slug":"libtmux-expr-text-is_in"},{"id":"Libtmux.Expr.Text.starts_with","publicId":"Libtmux.Expr.Text.starts_with","qualifiedName":"Libtmux.Expr.Text.starts_with","name":"starts_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":580,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val starts_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":580,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val starts_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-starts_with"},{"id":"Libtmux.Expr.all","publicId":"Libtmux.Expr.all","qualifiedName":"Libtmux.Expr.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":555,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Boolean conjunction; the empty conjunction is true. "],"declarations":[{"kind":"function","text":"val all : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":555,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean conjunction; the empty conjunction is true."},"signatures":[{"raw":"val all : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-all"},{"id":"Libtmux.Expr.any","publicId":"Libtmux.Expr.any","qualifiedName":"Libtmux.Expr.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Boolean disjunction; the empty disjunction is false. "],"declarations":[{"kind":"function","text":"val any : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean disjunction; the empty disjunction is false."},"signatures":[{"raw":"val any : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-any"},{"id":"Libtmux.Expr.comparison","publicId":"Libtmux.Expr.comparison","qualifiedName":"Libtmux.Expr.comparison","name":"comparison","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":609,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":609,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type _ comparison =\n Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","params":[]}],"slug":"libtmux-expr-comparison"},{"id":"Libtmux.Expr.comparison.Bool_equal","publicId":"Libtmux.Expr.comparison.Bool_equal","name":"Bool_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":610,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool_equal : bool -> bool comparison","source":{"file":"lib/libtmux.mli","line":610,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Bool_equal","slug":"libtmux-expr-comparison-bool_equal"},{"id":"Libtmux.Expr.comparison.Int_equal","publicId":"Libtmux.Expr.comparison.Int_equal","name":"Int_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":611,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_equal : int -> int comparison","source":{"file":"lib/libtmux.mli","line":611,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_equal","slug":"libtmux-expr-comparison-int_equal"},{"id":"Libtmux.Expr.comparison.Int_ge","publicId":"Libtmux.Expr.comparison.Int_ge","name":"Int_ge","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":615,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_ge : int -> int comparison","source":{"file":"lib/libtmux.mli","line":615,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_ge","slug":"libtmux-expr-comparison-int_ge"},{"id":"Libtmux.Expr.comparison.Int_gt","publicId":"Libtmux.Expr.comparison.Int_gt","name":"Int_gt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":614,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_gt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":614,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_gt","slug":"libtmux-expr-comparison-int_gt"},{"id":"Libtmux.Expr.comparison.Int_in","publicId":"Libtmux.Expr.comparison.Int_in","name":"Int_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":616,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_in : int list -> int comparison","source":{"file":"lib/libtmux.mli","line":616,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_in","slug":"libtmux-expr-comparison-int_in"},{"id":"Libtmux.Expr.comparison.Int_le","publicId":"Libtmux.Expr.comparison.Int_le","name":"Int_le","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":613,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_le : int -> int comparison","source":{"file":"lib/libtmux.mli","line":613,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_le","slug":"libtmux-expr-comparison-int_le"},{"id":"Libtmux.Expr.comparison.Int_lt","publicId":"Libtmux.Expr.comparison.Int_lt","name":"Int_lt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_lt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_lt","slug":"libtmux-expr-comparison-int_lt"},{"id":"Libtmux.Expr.comparison.Text_contains","publicId":"Libtmux.Expr.comparison.Text_contains","name":"Text_contains","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_contains : string -> string comparison","source":{"file":"lib/libtmux.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_contains","slug":"libtmux-expr-comparison-text_contains"},{"id":"Libtmux.Expr.comparison.Text_ends_with","publicId":"Libtmux.Expr.comparison.Text_ends_with","name":"Text_ends_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":619,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_ends_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":619,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_ends_with","slug":"libtmux-expr-comparison-text_ends_with"},{"id":"Libtmux.Expr.comparison.Text_equal","publicId":"Libtmux.Expr.comparison.Text_equal","name":"Text_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":617,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_equal : string -> string comparison","source":{"file":"lib/libtmux.mli","line":617,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_equal","slug":"libtmux-expr-comparison-text_equal"},{"id":"Libtmux.Expr.comparison.Text_in","publicId":"Libtmux.Expr.comparison.Text_in","name":"Text_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_in","slug":"libtmux-expr-comparison-text_in"},{"id":"Libtmux.Expr.comparison.Text_starts_with","publicId":"Libtmux.Expr.comparison.Text_starts_with","name":"Text_starts_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":618,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_starts_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":618,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_starts_with","slug":"libtmux-expr-comparison-text_starts_with"},{"id":"Libtmux.Expr.compile","publicId":"Libtmux.Expr.compile","qualifiedName":"Libtmux.Expr.compile","name":"compile","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n "],"declarations":[{"kind":"function","text":"val compile : 'a t -> 'a -> bool","source":{"file":"lib/libtmux.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","doc":{"summary":"Prepare a reusable predicate. Compilation and evaluation perform no I/O."},"signatures":[{"raw":"val compile : 'a t -> 'a -> bool","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"'a"}],"returns":"bool"}],"slug":"libtmux-expr-compile"},{"id":"Libtmux.Expr.describe","publicId":"Libtmux.Expr.describe","qualifiedName":"Libtmux.Expr.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":607,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : 'a t -> string","source":{"file":"lib/libtmux.mli","line":607,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val describe : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-expr-describe"},{"id":"Libtmux.Expr.not_","publicId":"Libtmux.Expr.not_","qualifiedName":"Libtmux.Expr.not_","name":"not_","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":561,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val not_ : 'a t -> 'a t","source":{"file":"lib/libtmux.mli","line":561,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val not_ : 'a t -> 'a t","params":[{"name":"arg1","type":"'a t"}],"returns":"'a t"}],"slug":"libtmux-expr-not_"},{"id":"Libtmux.Expr.pp","publicId":"Libtmux.Expr.pp","qualifiedName":"Libtmux.Expr.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":606,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> 'a t -> unit","source":{"file":"lib/libtmux.mli","line":606,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val pp : Format.formatter -> 'a t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"'a t"}],"returns":"unit"}],"slug":"libtmux-expr-pp"},{"id":"Libtmux.Expr.t","publicId":"Libtmux.Expr.t","qualifiedName":"Libtmux.Expr.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":553,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'entity t","source":{"file":"lib/libtmux.mli","line":553,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'entity t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-expr-t"},{"id":"Libtmux.Expr.view","publicId":"Libtmux.Expr.view","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","doc":{"summary":"Typed read-only inspection for codecs and planners. A view cannot add custom accessors or closures to an expression."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-expr-view"},{"id":"Libtmux.Expr.view:type","publicId":"Libtmux.Expr.view:type","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":623,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":623,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'a view =\n Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","params":[]}],"slug":"libtmux-expr-view-type"},{"id":"Libtmux.Expr.view:type.Absent","publicId":"Libtmux.Expr.view:type.Absent","name":"Absent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Absent","slug":"libtmux-expr-view-type-absent"},{"id":"Libtmux.Expr.view:type.All","publicId":"Libtmux.Expr.view:type.All","name":"All","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":625,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| All of 'a t list","source":{"file":"lib/libtmux.mli","line":625,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.All","slug":"libtmux-expr-view-type-all"},{"id":"Libtmux.Expr.view:type.Any","publicId":"Libtmux.Expr.view:type.Any","name":"Any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":626,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Any of 'a t list","source":{"file":"lib/libtmux.mli","line":626,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Any","slug":"libtmux-expr-view-type-any"},{"id":"Libtmux.Expr.view:type.Compare","publicId":"Libtmux.Expr.view:type.Compare","name":"Compare","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Compare : ('a, 'v) Field.t * 'v comparison -> 'a view","source":{"file":"lib/libtmux.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Compare","slug":"libtmux-expr-view-type-compare"},{"id":"Libtmux.Expr.view:type.Not","publicId":"Libtmux.Expr.view:type.Not","name":"Not","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":627,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not of 'a t","source":{"file":"lib/libtmux.mli","line":627,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Not","slug":"libtmux-expr-view-type-not"},{"id":"Libtmux.Expr.view:type.Related_all","publicId":"Libtmux.Expr.view:type.Related_all","name":"Related_all","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_all","slug":"libtmux-expr-view-type-related_all"},{"id":"Libtmux.Expr.view:type.Related_any","publicId":"Libtmux.Expr.view:type.Related_any","name":"Related_any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":628,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":628,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_any","slug":"libtmux-expr-view-type-related_any"},{"id":"Libtmux.Expr.view:type.Related_none","publicId":"Libtmux.Expr.view:type.Related_none","name":"Related_none","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":630,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":630,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_none","slug":"libtmux-expr-view-type-related_none"},{"id":"Libtmux.Expr.view:type.Related_one","publicId":"Libtmux.Expr.view:type.Related_one","name":"Related_one","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":631,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":631,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_one","slug":"libtmux-expr-view-type-related_one"},{"id":"Libtmux.Expr.view:type.Related_optional","publicId":"Libtmux.Expr.view:type.Related_optional","name":"Related_optional","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":632,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":632,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_optional","slug":"libtmux-expr-view-type-related_optional"},{"id":"Libtmux.Field","publicId":"Libtmux.Field","qualifiedName":"Libtmux.Field","name":"Field","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Sealed scalar descriptors carrying entity and value types. Descriptors read\n captured data and provide trusted identities for {!Expr} values. Use\n {!Relation} for graph edges. "],"declarations":[{"kind":"module","text":"module Field : sig\n type _ kind = Bool : bool kind | Int : int kind | Text : string kind\n type ('entity, 'value) t\n type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed\n\n val name : ('entity, 'value) t -> string\n val kind : ('entity, 'value) t -> 'value kind\n\n val get : ('entity, 'value) t -> 'entity -> 'value\n (** Canonical descriptors are sealed. Accessing a field reads captured data.\n *)\nend","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Sealed scalar descriptors carrying entity and value types. Descriptors read captured data and provide trusted identities for {!Expr} values. Use {!Relation} for graph edges."},"slug":"libtmux-field"},{"id":"Libtmux.Field.get","publicId":"Libtmux.Field.get","qualifiedName":"Libtmux.Field.get","name":"get","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":142,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Canonical descriptors are sealed. Accessing a field reads captured data.\n "],"declarations":[{"kind":"function","text":"val get : ('entity, 'value) t -> 'entity -> 'value","source":{"file":"lib/libtmux.mli","line":142,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field","doc":{"summary":"Canonical descriptors are sealed. Accessing a field reads captured data."},"signatures":[{"raw":"val get : ('entity, 'value) t -> 'entity -> 'value","params":[{"name":"arg1","type":"('entity, 'value) t"},{"name":"arg2","type":"'entity"}],"returns":"'value"}],"slug":"libtmux-field-get"},{"id":"Libtmux.Field.kind","publicId":"Libtmux.Field.kind","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":140,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : ('entity, 'value) t -> 'value kind","source":{"file":"lib/libtmux.mli","line":140,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val kind : ('entity, 'value) t -> 'value kind","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"'value kind"}],"slug":"libtmux-field-kind"},{"id":"Libtmux.Field.kind:type","publicId":"Libtmux.Field.kind:type","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","params":[]}],"slug":"libtmux-field-kind-type"},{"id":"Libtmux.Field.kind:type.Bool","publicId":"Libtmux.Field.kind:type.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool : bool kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Bool","slug":"libtmux-field-kind-type-bool"},{"id":"Libtmux.Field.kind:type.Int","publicId":"Libtmux.Field.kind:type.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int : int kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Int","slug":"libtmux-field-kind-type-int"},{"id":"Libtmux.Field.kind:type.Text","publicId":"Libtmux.Field.kind:type.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text : string kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Text","slug":"libtmux-field-kind-type-text"},{"id":"Libtmux.Field.name","publicId":"Libtmux.Field.name","qualifiedName":"Libtmux.Field.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":139,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('entity, 'value) t -> string","source":{"file":"lib/libtmux.mli","line":139,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val name : ('entity, 'value) t -> string","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"string"}],"slug":"libtmux-field-name"},{"id":"Libtmux.Field.packed","publicId":"Libtmux.Field.packed","qualifiedName":"Libtmux.Field.packed","name":"packed","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","params":[]}],"slug":"libtmux-field-packed"},{"id":"Libtmux.Field.packed.Pack","publicId":"Libtmux.Field.packed.Pack","name":"Pack","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field.packed","variant":"tuple","qualifiedName":"Libtmux.Field.Pack","slug":"libtmux-field-packed-pack"},{"id":"Libtmux.Field.t","publicId":"Libtmux.Field.t","qualifiedName":"Libtmux.Field.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('entity, 'value) t","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type ('entity, 'value) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-field-t"},{"id":"Libtmux.Formats","publicId":"Libtmux.Formats","qualifiedName":"Libtmux.Formats","name":"Formats","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":473,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Formats : sig\n module Kind : sig\n type t = Text | Timestamp\n end\n\n module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }\n (** Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. *)\n\n type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t\n\n type scalar = Bool of bool | Int of int | Text of string\n\n type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported\n (** [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor option, Error.t) result\n\n val lookup :\n version:string -> observation -> string -> (state, Error.t) result\n (** No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. *)\nend","source":{"file":"lib/libtmux.mli","line":473,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-formats"},{"id":"Libtmux.Formats.Context","publicId":"Libtmux.Formats.Context","qualifiedName":"Libtmux.Formats.Context","name":"Context","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":478,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end","source":{"file":"lib/libtmux.mli","line":478,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-context"},{"id":"Libtmux.Formats.Context.t","publicId":"Libtmux.Formats.Context.t","qualifiedName":"Libtmux.Formats.Context.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":479,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","source":{"file":"lib/libtmux.mli","line":479,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context","signatures":[{"raw":"type t =\n Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","params":[]}],"slug":"libtmux-formats-context-t"},{"id":"Libtmux.Formats.Context.t.Buffer","publicId":"Libtmux.Formats.Context.t.Buffer","name":"Buffer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":487,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Buffer","source":{"file":"lib/libtmux.mli","line":487,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Buffer","slug":"libtmux-formats-context-t-buffer"},{"id":"Libtmux.Formats.Context.t.Client","publicId":"Libtmux.Formats.Context.t.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":486,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client","source":{"file":"lib/libtmux.mli","line":486,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Client","slug":"libtmux-formats-context-t-client"},{"id":"Libtmux.Formats.Context.t.Command","publicId":"Libtmux.Formats.Context.t.Command","name":"Command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":489,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command","source":{"file":"lib/libtmux.mli","line":489,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Command","slug":"libtmux-formats-context-t-command"},{"id":"Libtmux.Formats.Context.t.Connection","publicId":"Libtmux.Formats.Context.t.Connection","name":"Connection","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Connection","source":{"file":"lib/libtmux.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Connection","slug":"libtmux-formats-context-t-connection"},{"id":"Libtmux.Formats.Context.t.Mouse","publicId":"Libtmux.Formats.Context.t.Mouse","name":"Mouse","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":488,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mouse","source":{"file":"lib/libtmux.mli","line":488,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Mouse","slug":"libtmux-formats-context-t-mouse"},{"id":"Libtmux.Formats.Context.t.Pane","publicId":"Libtmux.Formats.Context.t.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane","source":{"file":"lib/libtmux.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Pane","slug":"libtmux-formats-context-t-pane"},{"id":"Libtmux.Formats.Context.t.Server","publicId":"Libtmux.Formats.Context.t.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":480,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":480,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Server","slug":"libtmux-formats-context-t-server"},{"id":"Libtmux.Formats.Context.t.Session","publicId":"Libtmux.Formats.Context.t.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":482,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session","source":{"file":"lib/libtmux.mli","line":482,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Session","slug":"libtmux-formats-context-t-session"},{"id":"Libtmux.Formats.Context.t.Window","publicId":"Libtmux.Formats.Context.t.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":483,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window","source":{"file":"lib/libtmux.mli","line":483,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window","slug":"libtmux-formats-context-t-window"},{"id":"Libtmux.Formats.Context.t.Window_link","publicId":"Libtmux.Formats.Context.t.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link","source":{"file":"lib/libtmux.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window_link","slug":"libtmux-formats-context-t-window_link"},{"id":"Libtmux.Formats.Kind","publicId":"Libtmux.Formats.Kind","qualifiedName":"Libtmux.Formats.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":474,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Timestamp\n end","source":{"file":"lib/libtmux.mli","line":474,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-kind"},{"id":"Libtmux.Formats.Kind.t","publicId":"Libtmux.Formats.Kind.t","qualifiedName":"Libtmux.Formats.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Timestamp","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Kind","signatures":[{"raw":"type t = Text | Timestamp","params":[]}],"slug":"libtmux-formats-kind-t"},{"id":"Libtmux.Formats.Kind.t.Text","publicId":"Libtmux.Formats.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Text","slug":"libtmux-formats-kind-t-text"},{"id":"Libtmux.Formats.Kind.t.Timestamp","publicId":"Libtmux.Formats.Kind.t.Timestamp","name":"Timestamp","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Timestamp","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Timestamp","slug":"libtmux-formats-kind-t-timestamp"},{"id":"Libtmux.Formats.catalog","publicId":"Libtmux.Formats.catalog","qualifiedName":"Libtmux.Formats.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":524,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":524,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-formats-catalog"},{"id":"Libtmux.Formats.describe","publicId":"Libtmux.Formats.describe","qualifiedName":"Libtmux.Formats.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor option, Error.t) result","source":{"file":"lib/libtmux.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val describe :\n version:string -> string -> (descriptor option, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor option, Error.t) result"}],"slug":"libtmux-formats-describe"},{"id":"Libtmux.Formats.descriptor","publicId":"Libtmux.Formats.descriptor","qualifiedName":"Libtmux.Formats.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":492,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":492,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","doc":{"summary":"Metadata generated from pinned tmux format callbacks. `contexts` lists direct context dependencies, not a promise that a value exists. Caller variables from hooks and menus are outside this built-in catalog."},"signatures":[{"raw":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n}","params":[]}],"slug":"libtmux-formats-descriptor"},{"id":"Libtmux.Formats.descriptor.contexts","publicId":"Libtmux.Formats.descriptor.contexts","name":"contexts","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"contexts : Context.t list;","source":{"file":"lib/libtmux.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.descriptor","type":"Context.t list","qualifiedName":"Libtmux.Formats.contexts","slug":"libtmux-formats-descriptor-contexts"},{"id":"Libtmux.Formats.descriptor.kind","publicId":"Libtmux.Formats.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":494,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":494,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Formats.kind","slug":"libtmux-formats-descriptor-kind"},{"id":"Libtmux.Formats.descriptor.name","publicId":"Libtmux.Formats.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":493,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":493,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.descriptor","type":"string","qualifiedName":"Libtmux.Formats.name","slug":"libtmux-formats-descriptor-name"},{"id":"Libtmux.Formats.descriptor.versions","publicId":"Libtmux.Formats.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":496,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":496,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.descriptor","type":"string list","qualifiedName":"Libtmux.Formats.versions","slug":"libtmux-formats-descriptor-versions"},{"id":"Libtmux.Formats.lookup","publicId":"Libtmux.Formats.lookup","qualifiedName":"Libtmux.Formats.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":527,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. "],"declarations":[{"kind":"function","text":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","source":{"file":"lib/libtmux.mli","line":527,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","doc":{"summary":"No I/O. Supply the version recorded by the acquiring client's `version` accessor. Unsupported catalog versions return an error. Native typed accessors remain the primary API; lookup does not acquire extra fields."},"signatures":[{"raw":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"observation"},{"name":"arg2","type":"string"}],"returns":"(state, Error.t) result"}],"slug":"libtmux-formats-lookup"},{"id":"Libtmux.Formats.observation","publicId":"Libtmux.Formats.observation","qualifiedName":"Libtmux.Formats.observation","name":"observation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type observation =\n Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","params":[]}],"slug":"libtmux-formats-observation"},{"id":"Libtmux.Formats.observation.Client","publicId":"Libtmux.Formats.observation.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":508,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":508,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Client","slug":"libtmux-formats-observation-client"},{"id":"Libtmux.Formats.observation.Pane","publicId":"Libtmux.Formats.observation.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":507,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.t","source":{"file":"lib/libtmux.mli","line":507,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Pane","slug":"libtmux-formats-observation-pane"},{"id":"Libtmux.Formats.observation.Session","publicId":"Libtmux.Formats.observation.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":504,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.t","source":{"file":"lib/libtmux.mli","line":504,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Session","slug":"libtmux-formats-observation-session"},{"id":"Libtmux.Formats.observation.Snapshot","publicId":"Libtmux.Formats.observation.Snapshot","name":"Snapshot","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Snapshot of Snapshot.t","source":{"file":"lib/libtmux.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Snapshot","slug":"libtmux-formats-observation-snapshot"},{"id":"Libtmux.Formats.observation.Window","publicId":"Libtmux.Formats.observation.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.t","source":{"file":"lib/libtmux.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window","slug":"libtmux-formats-observation-window"},{"id":"Libtmux.Formats.observation.Window_link","publicId":"Libtmux.Formats.observation.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":506,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link of Window_link.t","source":{"file":"lib/libtmux.mli","line":506,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window_link","slug":"libtmux-formats-observation-window_link"},{"id":"Libtmux.Formats.scalar","publicId":"Libtmux.Formats.scalar","qualifiedName":"Libtmux.Formats.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar = Bool of bool | Int of int | Text of string","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type scalar = Bool of bool | Int of int | Text of string","params":[]}],"slug":"libtmux-formats-scalar"},{"id":"Libtmux.Formats.scalar.Bool","publicId":"Libtmux.Formats.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool of bool","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Bool","slug":"libtmux-formats-scalar-bool"},{"id":"Libtmux.Formats.scalar.Int","publicId":"Libtmux.Formats.scalar.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int of int","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Int","slug":"libtmux-formats-scalar-int"},{"id":"Libtmux.Formats.scalar.Text","publicId":"Libtmux.Formats.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Text","slug":"libtmux-formats-scalar-text"},{"id":"Libtmux.Formats.state","publicId":"Libtmux.Formats.state","qualifiedName":"Libtmux.Formats.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported","source":{"file":"lib/libtmux.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type state = Value of scalar | Missing | Unacquired | Unsupported","params":[]}],"slug":"libtmux-formats-state"},{"id":"Libtmux.Formats.state.Missing","publicId":"Libtmux.Formats.state.Missing","name":"Missing","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":514,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing","source":{"file":"lib/libtmux.mli","line":514,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Missing","slug":"libtmux-formats-state-missing"},{"id":"Libtmux.Formats.state.Unacquired","publicId":"Libtmux.Formats.state.Unacquired","name":"Unacquired","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":515,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unacquired","source":{"file":"lib/libtmux.mli","line":515,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Unacquired","slug":"libtmux-formats-state-unacquired"},{"id":"Libtmux.Formats.state.Unsupported","publicId":"Libtmux.Formats.state.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":516,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. "],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"lib/libtmux.mli","line":516,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.state","doc":{"summary":"`Missing` is an absence explicitly recorded in the observation, such as a client without terminal height. `Unacquired` means no captured value for this observation, including ambiguous session context for a pane. `Unsupported` means the name is outside the selected release's catalog. `Value (Text \"\")` is a captured empty string, never inferred absence."},"variant":"unit","qualifiedName":"Libtmux.Formats.Unsupported","slug":"libtmux-formats-state-unsupported"},{"id":"Libtmux.Formats.state.Value","publicId":"Libtmux.Formats.state.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":513,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Value of scalar","source":{"file":"lib/libtmux.mli","line":513,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.state","variant":"tuple","qualifiedName":"Libtmux.Formats.Value","slug":"libtmux-formats-state-value"},{"id":"Libtmux.Generation","publicId":"Libtmux.Generation","qualifiedName":"Libtmux.Generation","name":"Generation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A random connection-generation identifier. Reconnecting creates a new\n generation even when the socket and server PID are unchanged. "],"declarations":[{"kind":"module","text":"module Generation : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"A random connection-generation identifier. Reconnecting creates a new generation even when the socket and server PID are unchanged."},"slug":"libtmux-generation"},{"id":"Libtmux.Generation.equal","publicId":"Libtmux.Generation.equal","qualifiedName":"Libtmux.Generation.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":87,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":87,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-generation-equal"},{"id":"Libtmux.Generation.of_string","publicId":"Libtmux.Generation.of_string","qualifiedName":"Libtmux.Generation.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Generation","doc":{"summary":"Import a 256-bit connection nonce as 64 lowercase hexadecimal characters. Backends generate a fresh random nonce for each connection."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-generation-of_string"},{"id":"Libtmux.Generation.t","publicId":"Libtmux.Generation.t","qualifiedName":"Libtmux.Generation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-generation-t"},{"id":"Libtmux.Generation.to_string","publicId":"Libtmux.Generation.to_string","qualifiedName":"Libtmux.Generation.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-generation-to_string"},{"id":"Libtmux.Geometry","publicId":"Libtmux.Geometry","qualifiedName":"Libtmux.Geometry","name":"Geometry","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":740,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Geometry : sig\n type direction = Left | Right | Above | Below\n type size = Cells of int | Percent of int\nend","source":{"file":"lib/libtmux.mli","line":740,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-geometry"},{"id":"Libtmux.Geometry.direction","publicId":"Libtmux.Geometry.direction","qualifiedName":"Libtmux.Geometry.direction","name":"direction","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type direction = Left | Right | Above | Below","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type direction = Left | Right | Above | Below","params":[]}],"slug":"libtmux-geometry-direction"},{"id":"Libtmux.Geometry.direction.Above","publicId":"Libtmux.Geometry.direction.Above","name":"Above","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Above","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Above","slug":"libtmux-geometry-direction-above"},{"id":"Libtmux.Geometry.direction.Below","publicId":"Libtmux.Geometry.direction.Below","name":"Below","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Below","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Below","slug":"libtmux-geometry-direction-below"},{"id":"Libtmux.Geometry.direction.Left","publicId":"Libtmux.Geometry.direction.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Left","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Left","slug":"libtmux-geometry-direction-left"},{"id":"Libtmux.Geometry.direction.Right","publicId":"Libtmux.Geometry.direction.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Right","slug":"libtmux-geometry-direction-right"},{"id":"Libtmux.Geometry.size","publicId":"Libtmux.Geometry.size","qualifiedName":"Libtmux.Geometry.size","name":"size","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type size = Cells of int | Percent of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type size = Cells of int | Percent of int","params":[]}],"slug":"libtmux-geometry-size"},{"id":"Libtmux.Geometry.size.Cells","publicId":"Libtmux.Geometry.size.Cells","name":"Cells","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Cells of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Cells","slug":"libtmux-geometry-size-cells"},{"id":"Libtmux.Geometry.size.Percent","publicId":"Libtmux.Geometry.size.Percent","name":"Percent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Percent of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Percent","slug":"libtmux-geometry-size-percent"},{"id":"Libtmux.Hook","publicId":"Libtmux.Hook","qualifiedName":"Libtmux.Hook","name":"Hook","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Hook : sig\n type command = { name : string; arguments : string list }\n (** A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. *)\nend","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-hook"},{"id":"Libtmux.Hook.command","publicId":"Libtmux.Hook.command","qualifiedName":"Libtmux.Hook.command","name":"command","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. "],"declarations":[{"kind":"struct","text":"type command = { name : string; arguments : string list }","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Hook","doc":{"summary":"A tmux command and its distinct arguments. Setting a hook encodes these as command data; it does not concatenate arguments into shell code. Argument-specific tmux behavior, including format expansion, still applies when the hook runs."},"signatures":[{"raw":"type command = { name : string; arguments : string list; }","params":[]}],"slug":"libtmux-hook-command"},{"id":"Libtmux.Hook.command.arguments","publicId":"Libtmux.Hook.command.arguments","name":"arguments","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"arguments : string list","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Hook.command","type":"string list","qualifiedName":"Libtmux.Hook.arguments","slug":"libtmux-hook-command-arguments"},{"id":"Libtmux.Hook.command.name","publicId":"Libtmux.Hook.command.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Hook.command","type":"string","qualifiedName":"Libtmux.Hook.name","slug":"libtmux-hook-command-name"},{"id":"Libtmux.ID","publicId":"Libtmux.ID","qualifiedName":"Libtmux.ID","name":"ID","kind":"interface","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"interface","text":"module type ID = sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Accept a canonical prefixed decimal tmux ID in the uint32 range. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\n val compare : t -> t -> int\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-id"},{"id":"Libtmux.ID.compare","publicId":"Libtmux.ID.compare","qualifiedName":"Libtmux.ID.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-id-compare"},{"id":"Libtmux.ID.equal","publicId":"Libtmux.ID.equal","qualifiedName":"Libtmux.ID.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-id-equal"},{"id":"Libtmux.ID.of_string","publicId":"Libtmux.ID.of_string","qualifiedName":"Libtmux.ID.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.ID","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-id-of_string"},{"id":"Libtmux.ID.pp","publicId":"Libtmux.ID.pp","qualifiedName":"Libtmux.ID.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-id-pp"},{"id":"Libtmux.ID.t","publicId":"Libtmux.ID.t","qualifiedName":"Libtmux.ID.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.ID","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-id-t"},{"id":"Libtmux.ID.to_string","publicId":"Libtmux.ID.to_string","qualifiedName":"Libtmux.ID.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-id-to_string"},{"id":"Libtmux.Key","publicId":"Libtmux.Key","qualifiedName":"Libtmux.Key","name":"Key","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":702,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Key : sig\n type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char\nend","source":{"file":"lib/libtmux.mli","line":702,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-key"},{"id":"Libtmux.Key.t","publicId":"Libtmux.Key.t","qualifiedName":"Libtmux.Key.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":703,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","source":{"file":"lib/libtmux.mli","line":703,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key","signatures":[{"raw":"type t =\n Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","params":[]}],"slug":"libtmux-key-t"},{"id":"Libtmux.Key.t.Backspace","publicId":"Libtmux.Key.t.Backspace","name":"Backspace","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":707,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Backspace","source":{"file":"lib/libtmux.mli","line":707,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Backspace","slug":"libtmux-key-t-backspace"},{"id":"Libtmux.Key.t.Control","publicId":"Libtmux.Key.t.Control","name":"Control","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Control of char","source":{"file":"lib/libtmux.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"tuple","qualifiedName":"Libtmux.Key.Control","slug":"libtmux-key-t-control"},{"id":"Libtmux.Key.t.Down","publicId":"Libtmux.Key.t.Down","name":"Down","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":709,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Down","source":{"file":"lib/libtmux.mli","line":709,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Down","slug":"libtmux-key-t-down"},{"id":"Libtmux.Key.t.Enter","publicId":"Libtmux.Key.t.Enter","name":"Enter","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":704,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Enter","source":{"file":"lib/libtmux.mli","line":704,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Enter","slug":"libtmux-key-t-enter"},{"id":"Libtmux.Key.t.Escape","publicId":"Libtmux.Key.t.Escape","name":"Escape","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":706,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Escape","source":{"file":"lib/libtmux.mli","line":706,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Escape","slug":"libtmux-key-t-escape"},{"id":"Libtmux.Key.t.Left","publicId":"Libtmux.Key.t.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":710,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Left","source":{"file":"lib/libtmux.mli","line":710,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Left","slug":"libtmux-key-t-left"},{"id":"Libtmux.Key.t.Right","publicId":"Libtmux.Key.t.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":711,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":711,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Right","slug":"libtmux-key-t-right"},{"id":"Libtmux.Key.t.Tab","publicId":"Libtmux.Key.t.Tab","name":"Tab","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":705,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tab","source":{"file":"lib/libtmux.mli","line":705,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Tab","slug":"libtmux-key-t-tab"},{"id":"Libtmux.Key.t.Up","publicId":"Libtmux.Key.t.Up","name":"Up","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":708,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Up","source":{"file":"lib/libtmux.mli","line":708,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Up","slug":"libtmux-key-t-up"},{"id":"Libtmux.Layout","publicId":"Libtmux.Layout","qualifiedName":"Libtmux.Layout","name":"Layout","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":745,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Layout : sig\n type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string\nend","source":{"file":"lib/libtmux.mli","line":745,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-layout"},{"id":"Libtmux.Layout.t","publicId":"Libtmux.Layout.t","qualifiedName":"Libtmux.Layout.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":746,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","source":{"file":"lib/libtmux.mli","line":746,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout","signatures":[{"raw":"type t =\n Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","params":[]}],"slug":"libtmux-layout-t"},{"id":"Libtmux.Layout.t.Custom","publicId":"Libtmux.Layout.t.Custom","name":"Custom","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":752,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Custom of string","source":{"file":"lib/libtmux.mli","line":752,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout.t","variant":"tuple","qualifiedName":"Libtmux.Layout.Custom","slug":"libtmux-layout-t-custom"},{"id":"Libtmux.Layout.t.Even_horizontal","publicId":"Libtmux.Layout.t.Even_horizontal","name":"Even_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":747,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_horizontal","source":{"file":"lib/libtmux.mli","line":747,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_horizontal","slug":"libtmux-layout-t-even_horizontal"},{"id":"Libtmux.Layout.t.Even_vertical","publicId":"Libtmux.Layout.t.Even_vertical","name":"Even_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":748,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_vertical","source":{"file":"lib/libtmux.mli","line":748,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_vertical","slug":"libtmux-layout-t-even_vertical"},{"id":"Libtmux.Layout.t.Main_horizontal","publicId":"Libtmux.Layout.t.Main_horizontal","name":"Main_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":749,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_horizontal","source":{"file":"lib/libtmux.mli","line":749,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_horizontal","slug":"libtmux-layout-t-main_horizontal"},{"id":"Libtmux.Layout.t.Main_vertical","publicId":"Libtmux.Layout.t.Main_vertical","name":"Main_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":750,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_vertical","source":{"file":"lib/libtmux.mli","line":750,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_vertical","slug":"libtmux-layout-t-main_vertical"},{"id":"Libtmux.Layout.t.Tiled","publicId":"Libtmux.Layout.t.Tiled","name":"Tiled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":751,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tiled","source":{"file":"lib/libtmux.mli","line":751,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Tiled","slug":"libtmux-layout-t-tiled"},{"id":"Libtmux.Model","publicId":"Libtmux.Model","qualifiedName":"Libtmux.Model","name":"Model","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":536,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Built-in model witnesses and canonical field lookup for typed codecs.\n Untrusted field names must resolve against the selected model. "],"declarations":[{"kind":"module","text":"module Model : sig\n type 'a t\n\n val session : Session.t t\n val window : Window.t t\n val window_link : Window_link.t t\n val pane : Pane.t t\n val client : Client_observation.t t\n val name : 'a t -> string\n val fields : 'a t -> 'a Field.packed list\n val find_field : 'a t -> string -> 'a Field.packed option\nend","source":{"file":"lib/libtmux.mli","line":536,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Built-in model witnesses and canonical field lookup for typed codecs. Untrusted field names must resolve against the selected model."},"slug":"libtmux-model"},{"id":"Libtmux.Model.client","publicId":"Libtmux.Model.client","qualifiedName":"Libtmux.Model.client","name":"client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":543,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val client : Client_observation.t t","source":{"file":"lib/libtmux.mli","line":543,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val client : Client_observation.t t","params":[],"returns":"Client_observation.t t"}],"slug":"libtmux-model-client"},{"id":"Libtmux.Model.fields","publicId":"Libtmux.Model.fields","qualifiedName":"Libtmux.Model.fields","name":"fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":545,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val fields : 'a t -> 'a Field.packed list","source":{"file":"lib/libtmux.mli","line":545,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val fields : 'a t -> 'a Field.packed list","params":[{"name":"arg1","type":"'a t"}],"returns":"'a Field.packed list"}],"slug":"libtmux-model-fields"},{"id":"Libtmux.Model.find_field","publicId":"Libtmux.Model.find_field","qualifiedName":"Libtmux.Model.find_field","name":"find_field","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_field : 'a t -> string -> 'a Field.packed option","source":{"file":"lib/libtmux.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val find_field : 'a t -> string -> 'a Field.packed option","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"string"}],"returns":"'a Field.packed option"}],"slug":"libtmux-model-find_field"},{"id":"Libtmux.Model.name","publicId":"Libtmux.Model.name","qualifiedName":"Libtmux.Model.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":544,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : 'a t -> string","source":{"file":"lib/libtmux.mli","line":544,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val name : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-model-name"},{"id":"Libtmux.Model.pane","publicId":"Libtmux.Model.pane","qualifiedName":"Libtmux.Model.pane","name":"pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pane : Pane.t t","source":{"file":"lib/libtmux.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val pane : Pane.t t","params":[],"returns":"Pane.t t"}],"slug":"libtmux-model-pane"},{"id":"Libtmux.Model.session","publicId":"Libtmux.Model.session","qualifiedName":"Libtmux.Model.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":539,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : Session.t t","source":{"file":"lib/libtmux.mli","line":539,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val session : Session.t t","params":[],"returns":"Session.t t"}],"slug":"libtmux-model-session"},{"id":"Libtmux.Model.t","publicId":"Libtmux.Model.t","qualifiedName":"Libtmux.Model.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-model-t"},{"id":"Libtmux.Model.window","publicId":"Libtmux.Model.window","qualifiedName":"Libtmux.Model.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":540,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : Window.t t","source":{"file":"lib/libtmux.mli","line":540,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window : Window.t t","params":[],"returns":"Window.t t"}],"slug":"libtmux-model-window"},{"id":"Libtmux.Model.window_link","publicId":"Libtmux.Model.window_link","qualifiedName":"Libtmux.Model.window_link","name":"window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":541,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_link : Window_link.t t","source":{"file":"lib/libtmux.mli","line":541,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window_link : Window_link.t t","params":[],"returns":"Window_link.t t"}],"slug":"libtmux-model-window_link"},{"id":"Libtmux.Operations","publicId":"Libtmux.Operations","qualifiedName":"Libtmux.Operations","name":"Operations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1051,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Construct typed tmux operations for a backend client. Observations are\n immutable, mutations use explicit targets, and no command retries a mutation\n against another connection generation. Construction performs no I/O; the\n descriptions below state what execution does. "],"declarations":[{"kind":"module","text":"module Operations : sig\n val capture : unit -> Snapshot.t Command.t\n (** Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. *)\n\n val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t\n (** Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. *)\n\n val rename_window : Window.target -> name:string -> unit Command.t\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session : Session.target -> name:string -> unit Command.t\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at : Client_name.t -> unit Command.t\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text : Pane.target -> text:string -> unit Command.t\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys : Pane.target -> Key.t list -> unit Command.t\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : string -> unit Command.t\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : string -> unit Command.t\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment : Environment.scope -> string -> unit Command.t\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment : Environment.scope -> string -> unit Command.t\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array : Options.scope -> string -> unit Command.t\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks : Options.scope -> Options.t Command.t\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. *)\n\n val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook : Options.scope -> string -> unit Command.t\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session : Session.target -> unit Command.t\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : Window.target -> unit Command.t\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : Pane.target -> unit Command.t\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at : Session.target -> index:int -> unit Command.t\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : Pane.target -> unit Command.t\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title : Pane.target -> title:string -> unit Command.t\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout : Window.target -> Layout.t -> unit Command.t\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes : Pane.target -> Pane.target -> unit Command.t\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : Pane.target -> unit Command.t\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : Pane.target -> unit Command.t\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\nend","source":{"file":"lib/libtmux.mli","line":1051,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Construct typed tmux operations for a backend client. Observations are immutable, mutations use explicit targets, and no command retries a mutation against another connection generation. Construction performs no I/O; the descriptions below state what execution does."},"slug":"libtmux-operations"},{"id":"Libtmux.Operations.break_pane","publicId":"Libtmux.Operations.break_pane","qualifiedName":"Libtmux.Operations.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1235,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n Pane.target -> session:Session.target -> index:int -> Created.t Command.t","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-break_pane"},{"id":"Libtmux.Operations.capture","publicId":"Libtmux.Operations.capture","qualifiedName":"Libtmux.Operations.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1052,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. "],"declarations":[{"kind":"function","text":"val capture : unit -> Snapshot.t Command.t","source":{"file":"lib/libtmux.mli","line":1052,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture and validate the complete session/window-link/pane graph. The result records an acquisition interval, not an atomic server instant."},"signatures":[{"raw":"val capture : unit -> Snapshot.t Command.t","params":[{"name":"arg1","type":"unit"}],"returns":"Snapshot.t Command.t"}],"slug":"libtmux-operations-capture"},{"id":"Libtmux.Operations.capture_environment","publicId":"Libtmux.Operations.capture_environment","qualifiedName":"Libtmux.Operations.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1110,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","source":{"file":"lib/libtmux.mli","line":1110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"}],"returns":"Environment.t Command.t"}],"slug":"libtmux-operations-capture_environment"},{"id":"Libtmux.Operations.capture_hooks","publicId":"Libtmux.Operations.capture_hooks","qualifiedName":"Libtmux.Operations.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1168,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks : Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks : Options.scope -> Options.t Command.t","params":[{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_hooks"},{"id":"Libtmux.Operations.capture_options","publicId":"Libtmux.Operations.capture_options","qualifiedName":"Libtmux.Operations.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1130,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_options"},{"id":"Libtmux.Operations.capture_text","publicId":"Libtmux.Operations.capture_text","qualifiedName":"Libtmux.Operations.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1056,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t","source":{"file":"lib/libtmux.mli","line":1056,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture inclusive visible rows through an operation-owned temporary file. Require `0 <= start <= end_ < Pane.height pane`; scrollback is excluded. Retained bytes survive client close. The scratch directory must share the daemon filesystem."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n Pane.t -> start:int -> end_:int -> Captured_text.t Command.t","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"Captured_text.t Command.t"}],"slug":"libtmux-operations-capture_text"},{"id":"Libtmux.Operations.clear_history","publicId":"Libtmux.Operations.clear_history","qualifiedName":"Libtmux.Operations.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1333,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_history"},{"id":"Libtmux.Operations.clear_option_array","publicId":"Libtmux.Operations.clear_option_array","qualifiedName":"Libtmux.Operations.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1165,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_option_array"},{"id":"Libtmux.Operations.create_session","publicId":"Libtmux.Operations.create_session","qualifiedName":"Libtmux.Operations.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1207,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int -> ?spawn:Spawn.t -> name:string -> unit -> Created.t Command.t","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_session"},{"id":"Libtmux.Operations.create_window","publicId":"Libtmux.Operations.create_window","qualifiedName":"Libtmux.Operations.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1217,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string -> ?spawn:Spawn.t -> Session.target -> Created.t Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_window"},{"id":"Libtmux.Operations.cycle_layout","publicId":"Libtmux.Operations.cycle_layout","qualifiedName":"Libtmux.Operations.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1303,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1303,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Next | `Previous ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-cycle_layout"},{"id":"Libtmux.Operations.kill_pane","publicId":"Libtmux.Operations.kill_pane","qualifiedName":"Libtmux.Operations.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1253,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_pane"},{"id":"Libtmux.Operations.kill_session","publicId":"Libtmux.Operations.kill_session","qualifiedName":"Libtmux.Operations.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1245,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session : Session.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session : Session.target -> unit Command.t","params":[{"name":"arg1","type":"Session.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_session"},{"id":"Libtmux.Operations.kill_window","publicId":"Libtmux.Operations.kill_window","qualifiedName":"Libtmux.Operations.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1249,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window : Window.target -> unit Command.t","params":[{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_window"},{"id":"Libtmux.Operations.link_window","publicId":"Libtmux.Operations.link_window","qualifiedName":"Libtmux.Operations.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1266,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-link_window"},{"id":"Libtmux.Operations.move_pane","publicId":"Libtmux.Operations.move_pane","qualifiedName":"Libtmux.Operations.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1306,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target -> direction:Geometry.direction -> unit Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"beside","type":"Pane.target","keywordOnly":true},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_pane"},{"id":"Libtmux.Operations.move_window_at","publicId":"Libtmux.Operations.move_window_at","qualifiedName":"Libtmux.Operations.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1271,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1271,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n Session.target ->\n from_index:int -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_window_at"},{"id":"Libtmux.Operations.read_hook","publicId":"Libtmux.Operations.read_hook","qualifiedName":"Libtmux.Operations.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1172,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_hook"},{"id":"Libtmux.Operations.read_option","publicId":"Libtmux.Operations.read_option","qualifiedName":"Libtmux.Operations.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1138,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1138,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_option"},{"id":"Libtmux.Operations.refresh_client_at","publicId":"Libtmux.Operations.refresh_client_at","qualifiedName":"Libtmux.Operations.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1089,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1089,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-refresh_client_at"},{"id":"Libtmux.Operations.remove_environment","publicId":"Libtmux.Operations.remove_environment","qualifiedName":"Libtmux.Operations.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1127,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_environment"},{"id":"Libtmux.Operations.remove_hook","publicId":"Libtmux.Operations.remove_hook","qualifiedName":"Libtmux.Operations.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1195,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_hook"},{"id":"Libtmux.Operations.rename_session","publicId":"Libtmux.Operations.rename_session","qualifiedName":"Libtmux.Operations.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1071,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session : Session.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1071,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session : Session.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_session"},{"id":"Libtmux.Operations.rename_window","publicId":"Libtmux.Operations.rename_window","qualifiedName":"Libtmux.Operations.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1067,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window : Window.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1067,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window : Window.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_window"},{"id":"Libtmux.Operations.request_detach_client_at","publicId":"Libtmux.Operations.request_detach_client_at","qualifiedName":"Libtmux.Operations.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1084,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at : Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1084,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at : Client_name.t -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-request_detach_client_at"},{"id":"Libtmux.Operations.resize_control_client_at","publicId":"Libtmux.Operations.resize_control_client_at","qualifiedName":"Libtmux.Operations.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1092,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1092,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_control_client_at"},{"id":"Libtmux.Operations.resize_pane","publicId":"Libtmux.Operations.resize_pane","qualifiedName":"Libtmux.Operations.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1288,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_pane"},{"id":"Libtmux.Operations.resize_window","publicId":"Libtmux.Operations.resize_window","qualifiedName":"Libtmux.Operations.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1293,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_window"},{"id":"Libtmux.Operations.respawn_pane","publicId":"Libtmux.Operations.respawn_pane","qualifiedName":"Libtmux.Operations.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1327,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Spawn.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-respawn_pane"},{"id":"Libtmux.Operations.rotate_panes","publicId":"Libtmux.Operations.rotate_panes","qualifiedName":"Libtmux.Operations.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1320,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n Window.target -> [ `Backward | `Forward ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Backward | `Forward ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rotate_panes"},{"id":"Libtmux.Operations.run_hook","publicId":"Libtmux.Operations.run_hook","qualifiedName":"Libtmux.Operations.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1199,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-run_hook"},{"id":"Libtmux.Operations.select_layout","publicId":"Libtmux.Operations.select_layout","qualifiedName":"Libtmux.Operations.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1299,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout : Window.target -> Layout.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout : Window.target -> Layout.t -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"Layout.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_layout"},{"id":"Libtmux.Operations.select_pane","publicId":"Libtmux.Operations.select_pane","qualifiedName":"Libtmux.Operations.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1280,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1280,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_pane"},{"id":"Libtmux.Operations.select_window_at","publicId":"Libtmux.Operations.select_window_at","qualifiedName":"Libtmux.Operations.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1257,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at : Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at : Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_window_at"},{"id":"Libtmux.Operations.send_keys","publicId":"Libtmux.Operations.send_keys","qualifiedName":"Libtmux.Operations.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1099,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys : Pane.target -> Key.t list -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1099,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys : Pane.target -> Key.t list -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Key.t list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_keys"},{"id":"Libtmux.Operations.send_text","publicId":"Libtmux.Operations.send_text","qualifiedName":"Libtmux.Operations.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1096,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text : Pane.target -> text:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1096,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text : Pane.target -> text:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_text"},{"id":"Libtmux.Operations.set_environment","publicId":"Libtmux.Operations.set_environment","qualifiedName":"Libtmux.Operations.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1117,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n Environment.scope -> name:string -> string -> unit Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_environment"},{"id":"Libtmux.Operations.set_hook","publicId":"Libtmux.Operations.set_hook","qualifiedName":"Libtmux.Operations.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1180,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1180,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Hook.command list -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Hook.command list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_hook"},{"id":"Libtmux.Operations.set_option","publicId":"Libtmux.Operations.set_option","qualifiedName":"Libtmux.Operations.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1148,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Options.scalar -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Options.scalar"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_option"},{"id":"Libtmux.Operations.set_pane_title","publicId":"Libtmux.Operations.set_pane_title","qualifiedName":"Libtmux.Operations.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1284,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title : Pane.target -> title:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1284,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title : Pane.target -> title:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_pane_title"},{"id":"Libtmux.Operations.signal","publicId":"Libtmux.Operations.signal","qualifiedName":"Libtmux.Operations.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1106,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-signal"},{"id":"Libtmux.Operations.split_pane","publicId":"Libtmux.Operations.split_pane","qualifiedName":"Libtmux.Operations.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1225,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target -> direction:Geometry.direction -> Created.t Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-split_pane"},{"id":"Libtmux.Operations.swap_panes","publicId":"Libtmux.Operations.swap_panes","qualifiedName":"Libtmux.Operations.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1316,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-swap_panes"},{"id":"Libtmux.Operations.switch_client_at","publicId":"Libtmux.Operations.switch_client_at","qualifiedName":"Libtmux.Operations.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1075,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1075,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t -> session:Session.target -> unit Command.t","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"},{"name":"session","type":"Session.target","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-switch_client_at"},{"id":"Libtmux.Operations.unlink_window_at","publicId":"Libtmux.Operations.unlink_window_at","qualifiedName":"Libtmux.Operations.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1261,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unlink_window_at"},{"id":"Libtmux.Operations.unset_environment","publicId":"Libtmux.Operations.unset_environment","qualifiedName":"Libtmux.Operations.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1123,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_environment"},{"id":"Libtmux.Operations.unset_option","publicId":"Libtmux.Operations.unset_option","qualifiedName":"Libtmux.Operations.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1161,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1161,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_option"},{"id":"Libtmux.Operations.wait_for","publicId":"Libtmux.Operations.wait_for","qualifiedName":"Libtmux.Operations.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1103,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-wait_for"},{"id":"Libtmux.Operations.zoom_pane","publicId":"Libtmux.Operations.zoom_pane","qualifiedName":"Libtmux.Operations.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1324,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-zoom_pane"},{"id":"Libtmux.Options","publicId":"Libtmux.Options","qualifiedName":"Libtmux.Options","name":"Options","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Version-aware option descriptors and captured scoped values. Sparse array\n indexes and inherited entries retain their tmux meaning. "],"declarations":[{"kind":"module","text":"module Options : sig\n module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }\n (** Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. *)\n\n type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target\n\n type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string\n\n type value = Scalar of scalar | Array of (int * scalar) Iarray.t\n type entry = { descriptor : descriptor; value : value; inherited : bool }\n\n type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor, Error.t) result\n\n val lookup : t -> string -> entry option\n (** [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. *)\nend","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Version-aware option descriptors and captured scoped values. Sparse array indexes and inherited entries retain their tmux meaning."},"slug":"libtmux-options"},{"id":"Libtmux.Options.Kind","publicId":"Libtmux.Options.Kind","qualifiedName":"Libtmux.Options.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":797,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end","source":{"file":"lib/libtmux.mli","line":797,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","slug":"libtmux-options-kind"},{"id":"Libtmux.Options.Kind.t","publicId":"Libtmux.Options.Kind.t","qualifiedName":"Libtmux.Options.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind","signatures":[{"raw":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","params":[]}],"slug":"libtmux-options-kind-t"},{"id":"Libtmux.Options.Kind.t.Choice","publicId":"Libtmux.Options.Kind.t.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Choice","slug":"libtmux-options-kind-t-choice"},{"id":"Libtmux.Options.Kind.t.Colour","publicId":"Libtmux.Options.Kind.t.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Colour","slug":"libtmux-options-kind-t-colour"},{"id":"Libtmux.Options.Kind.t.Commands","publicId":"Libtmux.Options.Kind.t.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Commands","slug":"libtmux-options-kind-t-commands"},{"id":"Libtmux.Options.Kind.t.Flag","publicId":"Libtmux.Options.Kind.t.Flag","name":"Flag","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Flag","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Flag","slug":"libtmux-options-kind-t-flag"},{"id":"Libtmux.Options.Kind.t.Key","publicId":"Libtmux.Options.Kind.t.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Key","slug":"libtmux-options-kind-t-key"},{"id":"Libtmux.Options.Kind.t.Number","publicId":"Libtmux.Options.Kind.t.Number","name":"Number","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Number","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Number","slug":"libtmux-options-kind-t-number"},{"id":"Libtmux.Options.Kind.t.Text","publicId":"Libtmux.Options.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Text","slug":"libtmux-options-kind-t-text"},{"id":"Libtmux.Options.catalog","publicId":"Libtmux.Options.catalog","qualifiedName":"Libtmux.Options.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":843,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":843,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-options-catalog"},{"id":"Libtmux.Options.describe","publicId":"Libtmux.Options.describe","qualifiedName":"Libtmux.Options.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":844,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor, Error.t) result","source":{"file":"lib/libtmux.mli","line":844,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val describe : version:string -> string -> (descriptor, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor, Error.t) result"}],"slug":"libtmux-options-describe"},{"id":"Libtmux.Options.descriptor","publicId":"Libtmux.Options.descriptor","qualifiedName":"Libtmux.Options.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":801,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":801,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","doc":{"summary":"Generated upstream descriptors. `versions` lists qualified releases; user options have no built-in release history."},"signatures":[{"raw":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Pane | `Server | `Session | `Window ] list;\n versions : string list;\n}","params":[]}],"slug":"libtmux-options-descriptor"},{"id":"Libtmux.Options.descriptor.array","publicId":"Libtmux.Options.descriptor.array","name":"array","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":804,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"array : bool;","source":{"file":"lib/libtmux.mli","line":804,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.array","slug":"libtmux-options-descriptor-array"},{"id":"Libtmux.Options.descriptor.hook","publicId":"Libtmux.Options.descriptor.hook","name":"hook","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":805,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hook : bool;","source":{"file":"lib/libtmux.mli","line":805,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.hook","slug":"libtmux-options-descriptor-hook"},{"id":"Libtmux.Options.descriptor.kind","publicId":"Libtmux.Options.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":803,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":803,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Options.kind","slug":"libtmux-options-descriptor-kind"},{"id":"Libtmux.Options.descriptor.name","publicId":"Libtmux.Options.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":802,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":802,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.descriptor","type":"string","qualifiedName":"Libtmux.Options.name","slug":"libtmux-options-descriptor-name"},{"id":"Libtmux.Options.descriptor.scopes","publicId":"Libtmux.Options.descriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":806,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scopes : [ `Server | `Session | `Window | `Pane ] list;","source":{"file":"lib/libtmux.mli","line":806,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.descriptor","type":"[ `Pane | `Server | `Session | `Window ] list","qualifiedName":"Libtmux.Options.scopes","slug":"libtmux-options-descriptor-scopes"},{"id":"Libtmux.Options.descriptor.versions","publicId":"Libtmux.Options.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":807,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":807,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.descriptor","type":"string list","qualifiedName":"Libtmux.Options.versions","slug":"libtmux-options-descriptor-versions"},{"id":"Libtmux.Options.entry","publicId":"Libtmux.Options.entry","qualifiedName":"Libtmux.Options.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { descriptor : descriptor; value : value; inherited : bool }","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type entry = { descriptor : descriptor; value : value; inherited : bool; }","params":[]}],"slug":"libtmux-options-entry"},{"id":"Libtmux.Options.entry.descriptor","publicId":"Libtmux.Options.entry.descriptor","name":"descriptor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"descriptor : descriptor;","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.entry","type":"descriptor","qualifiedName":"Libtmux.Options.descriptor","slug":"libtmux-options-entry-descriptor"},{"id":"Libtmux.Options.entry.inherited","publicId":"Libtmux.Options.entry.inherited","name":"inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inherited : bool","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.entry","type":"bool","qualifiedName":"Libtmux.Options.inherited","slug":"libtmux-options-entry-inherited"},{"id":"Libtmux.Options.entry.value","publicId":"Libtmux.Options.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value;","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.entry","type":"value","qualifiedName":"Libtmux.Options.value","slug":"libtmux-options-entry-value"},{"id":"Libtmux.Options.lookup","publicId":"Libtmux.Options.lookup","qualifiedName":"Libtmux.Options.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":846,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> entry option","source":{"file":"lib/libtmux.mli","line":846,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","doc":{"summary":"`None` means absent from this capture's selected scope and inheritance policy. Use `describe` to distinguish an unsupported built-in name."},"signatures":[{"raw":"val lookup : t -> string -> entry option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"entry option"}],"slug":"libtmux-options-lookup"},{"id":"Libtmux.Options.scalar","publicId":"Libtmux.Options.scalar","qualifiedName":"Libtmux.Options.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scalar =\n Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","params":[]}],"slug":"libtmux-options-scalar"},{"id":"Libtmux.Options.scalar.Bool","publicId":"Libtmux.Options.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":823,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool of bool","source":{"file":"lib/libtmux.mli","line":823,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Bool","slug":"libtmux-options-scalar-bool"},{"id":"Libtmux.Options.scalar.Choice","publicId":"Libtmux.Options.scalar.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":824,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice of string","source":{"file":"lib/libtmux.mli","line":824,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Choice","slug":"libtmux-options-scalar-choice"},{"id":"Libtmux.Options.scalar.Colour","publicId":"Libtmux.Options.scalar.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":826,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour of string","source":{"file":"lib/libtmux.mli","line":826,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Colour","slug":"libtmux-options-scalar-colour"},{"id":"Libtmux.Options.scalar.Commands","publicId":"Libtmux.Options.scalar.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":827,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands of string","source":{"file":"lib/libtmux.mli","line":827,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Commands","slug":"libtmux-options-scalar-commands"},{"id":"Libtmux.Options.scalar.Integer","publicId":"Libtmux.Options.scalar.Integer","name":"Integer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":822,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Integer of int64","source":{"file":"lib/libtmux.mli","line":822,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Integer","slug":"libtmux-options-scalar-integer"},{"id":"Libtmux.Options.scalar.Key","publicId":"Libtmux.Options.scalar.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":825,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key of string","source":{"file":"lib/libtmux.mli","line":825,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Key","slug":"libtmux-options-scalar-key"},{"id":"Libtmux.Options.scalar.Text","publicId":"Libtmux.Options.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":821,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":821,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Text","slug":"libtmux-options-scalar-text"},{"id":"Libtmux.Options.scope","publicId":"Libtmux.Options.scope","qualifiedName":"Libtmux.Options.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":812,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":812,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scope =\n Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","params":[]}],"slug":"libtmux-options-scope"},{"id":"Libtmux.Options.scope.Global_sessions","publicId":"Libtmux.Options.scope.Global_sessions","name":"Global_sessions","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":814,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_sessions","source":{"file":"lib/libtmux.mli","line":814,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_sessions","slug":"libtmux-options-scope-global_sessions"},{"id":"Libtmux.Options.scope.Global_windows","publicId":"Libtmux.Options.scope.Global_windows","name":"Global_windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":815,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_windows","source":{"file":"lib/libtmux.mli","line":815,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_windows","slug":"libtmux-options-scope-global_windows"},{"id":"Libtmux.Options.scope.Pane","publicId":"Libtmux.Options.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":818,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":818,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Pane","slug":"libtmux-options-scope-pane"},{"id":"Libtmux.Options.scope.Server","publicId":"Libtmux.Options.scope.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":813,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":813,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Server","slug":"libtmux-options-scope-server"},{"id":"Libtmux.Options.scope.Session","publicId":"Libtmux.Options.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":816,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":816,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Session","slug":"libtmux-options-scope-session"},{"id":"Libtmux.Options.scope.Window","publicId":"Libtmux.Options.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":817,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.target","source":{"file":"lib/libtmux.mli","line":817,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Window","slug":"libtmux-options-scope-window"},{"id":"Libtmux.Options.t","publicId":"Libtmux.Options.t","qualifiedName":"Libtmux.Options.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":832,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":832,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","doc":{"summary":"Captured options in tmux order, with original array indexes. An empty array differs from an absent local entry. No accessor performs I/O."},"signatures":[{"raw":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-options-t"},{"id":"Libtmux.Options.t.entries","publicId":"Libtmux.Options.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":836,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":836,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Options.entries","slug":"libtmux-options-t-entries"},{"id":"Libtmux.Options.t.finished_at_ns","publicId":"Libtmux.Options.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":838,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":838,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.finished_at_ns","slug":"libtmux-options-t-finished_at_ns"},{"id":"Libtmux.Options.t.include_inherited","publicId":"Libtmux.Options.t.include_inherited","name":"include_inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":835,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"include_inherited : bool;","source":{"file":"lib/libtmux.mli","line":835,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.t","type":"bool","qualifiedName":"Libtmux.Options.include_inherited","slug":"libtmux-options-t-include_inherited"},{"id":"Libtmux.Options.t.scope","publicId":"Libtmux.Options.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":834,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":834,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.t","type":"scope","qualifiedName":"Libtmux.Options.scope","slug":"libtmux-options-t-scope"},{"id":"Libtmux.Options.t.source","publicId":"Libtmux.Options.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":833,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":833,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.t","type":"Source.t","qualifiedName":"Libtmux.Options.source","slug":"libtmux-options-t-source"},{"id":"Libtmux.Options.t.started_at_ns","publicId":"Libtmux.Options.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":837,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":837,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.started_at_ns","slug":"libtmux-options-t-started_at_ns"},{"id":"Libtmux.Options.value","publicId":"Libtmux.Options.value","qualifiedName":"Libtmux.Options.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","params":[]}],"slug":"libtmux-options-value"},{"id":"Libtmux.Options.value.Array","publicId":"Libtmux.Options.value.Array","name":"Array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Array","slug":"libtmux-options-value-array"},{"id":"Libtmux.Options.value.Scalar","publicId":"Libtmux.Options.value.Scalar","name":"Scalar","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Scalar of scalar","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Scalar","slug":"libtmux-options-value-scalar"},{"id":"Libtmux.Output","publicId":"Libtmux.Output","qualifiedName":"Libtmux.Output","name":"Output","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1012,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Future observed pane bytes, local cursors and explicit continuity loss.\n Output cursors are unrelated to snapshot times or server-side history. "],"declarations":[{"kind":"module","text":"module Output : sig\n type cursor = { generation : Generation.t; offset : int64 }\n (** [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. *)\n\n type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t\n\n type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason\n (** Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. *)\n\n val reason_pp : Format.formatter -> reason -> unit\n\n type wait_error =\n | Ended of reason\n | Failure of Error.t\n (** A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. *)\nend","source":{"file":"lib/libtmux.mli","line":1012,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Future observed pane bytes, local cursors and explicit continuity loss. Output cursors are unrelated to snapshot times or server-side history."},"slug":"libtmux-output"},{"id":"Libtmux.Output.cursor","publicId":"Libtmux.Output.cursor","qualifiedName":"Libtmux.Output.cursor","name":"cursor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. "],"declarations":[{"kind":"struct","text":"type cursor = { generation : Generation.t; offset : int64 }","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output","doc":{"summary":"`offset` is the number of observed bytes through the end of a Data event. Cursors from different subscription generations are unrelated. No cursor identifies a snapshot instant or a server-side historical position."},"signatures":[{"raw":"type cursor = { generation : Generation.t; offset : int64; }","params":[]}],"slug":"libtmux-output-cursor"},{"id":"Libtmux.Output.cursor.generation","publicId":"Libtmux.Output.cursor.generation","name":"generation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"generation : Generation.t;","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.cursor","type":"Generation.t","qualifiedName":"Libtmux.Output.generation","slug":"libtmux-output-cursor-generation"},{"id":"Libtmux.Output.cursor.offset","publicId":"Libtmux.Output.cursor.offset","name":"offset","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"offset : int64","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.cursor","type":"int64","qualifiedName":"Libtmux.Output.offset","slug":"libtmux-output-cursor-offset"},{"id":"Libtmux.Output.event","publicId":"Libtmux.Output.event","qualifiedName":"Libtmux.Output.event","name":"event","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1026,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason","source":{"file":"lib/libtmux.mli","line":1026,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type event =\n Data of { cursor : cursor; bytes : string; }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason;\n }\n | End of reason","params":[]}],"slug":"libtmux-output-event"},{"id":"Libtmux.Output.event.Data","publicId":"Libtmux.Output.event.Data","name":"Data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Data of { cursor : cursor; bytes : string }","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Data","slug":"libtmux-output-event-data"},{"id":"Libtmux.Output.event.Data.bytes","publicId":"Libtmux.Output.event.Data.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event.Data","type":"string","qualifiedName":"Libtmux.Output.bytes","slug":"libtmux-output-event-data-bytes"},{"id":"Libtmux.Output.event.Data.cursor","publicId":"Libtmux.Output.event.Data.cursor","name":"cursor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cursor : cursor;","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event.Data","type":"cursor","qualifiedName":"Libtmux.Output.cursor","slug":"libtmux-output-event-data-cursor"},{"id":"Libtmux.Output.event.End","publicId":"Libtmux.Output.event.End","name":"End","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1029,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. "],"declarations":[{"kind":"constant","text":"| End of reason","source":{"file":"lib/libtmux.mli","line":1029,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event","doc":{"summary":"Immutable event values. `Gap.after` is the last cursor delivered to the caller. Unknown loss is `None`. A gap ends continuity and is followed by End; recover with a fresh capture and a new subscription. Data preserves bytes, including NUL and invalid UTF-8. It is future observed output, not rendered text or historical reconstruction."},"variant":"tuple","qualifiedName":"Libtmux.Output.End","slug":"libtmux-output-event-end"},{"id":"Libtmux.Output.event.Gap","publicId":"Libtmux.Output.event.Gap","name":"Gap","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Gap of { after : cursor option; lost_bytes : int option; reason : reason }","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Gap","slug":"libtmux-output-event-gap"},{"id":"Libtmux.Output.event.Gap.after","publicId":"Libtmux.Output.event.Gap.after","name":"after","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"after : cursor option;","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event.Gap","type":"cursor option","qualifiedName":"Libtmux.Output.after","slug":"libtmux-output-event-gap-after"},{"id":"Libtmux.Output.event.Gap.lost_bytes","publicId":"Libtmux.Output.event.Gap.lost_bytes","name":"lost_bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"lost_bytes : int option;","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event.Gap","type":"int option","qualifiedName":"Libtmux.Output.lost_bytes","slug":"libtmux-output-event-gap-lost_bytes"},{"id":"Libtmux.Output.event.Gap.reason","publicId":"Libtmux.Output.event.Gap.reason","name":"reason","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"reason : reason","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event.Gap","type":"reason","qualifiedName":"Libtmux.Output.reason","slug":"libtmux-output-event-gap-reason"},{"id":"Libtmux.Output.reason","publicId":"Libtmux.Output.reason","qualifiedName":"Libtmux.Output.reason","name":"reason","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1018,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1018,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type reason =\n Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","params":[]}],"slug":"libtmux-output-reason"},{"id":"Libtmux.Output.reason.Cancelled","publicId":"Libtmux.Output.reason.Cancelled","name":"Cancelled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1022,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancelled","source":{"file":"lib/libtmux.mli","line":1022,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Cancelled","slug":"libtmux-output-reason-cancelled"},{"id":"Libtmux.Output.reason.Client_closed","publicId":"Libtmux.Output.reason.Client_closed","name":"Client_closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1023,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client_closed","source":{"file":"lib/libtmux.mli","line":1023,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Client_closed","slug":"libtmux-output-reason-client_closed"},{"id":"Libtmux.Output.reason.Membership_changed","publicId":"Libtmux.Output.reason.Membership_changed","name":"Membership_changed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1020,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Membership_changed","source":{"file":"lib/libtmux.mli","line":1020,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Membership_changed","slug":"libtmux-output-reason-membership_changed"},{"id":"Libtmux.Output.reason.Overflow","publicId":"Libtmux.Output.reason.Overflow","name":"Overflow","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1019,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Overflow","source":{"file":"lib/libtmux.mli","line":1019,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Overflow","slug":"libtmux-output-reason-overflow"},{"id":"Libtmux.Output.reason.Server_paused","publicId":"Libtmux.Output.reason.Server_paused","name":"Server_paused","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1021,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server_paused","source":{"file":"lib/libtmux.mli","line":1021,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Server_paused","slug":"libtmux-output-reason-server_paused"},{"id":"Libtmux.Output.reason.Transport_error","publicId":"Libtmux.Output.reason.Transport_error","name":"Transport_error","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1024,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1024,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.reason","variant":"tuple","qualifiedName":"Libtmux.Output.Transport_error","slug":"libtmux-output-reason-transport_error"},{"id":"Libtmux.Output.reason_pp","publicId":"Libtmux.Output.reason_pp","qualifiedName":"Libtmux.Output.reason_pp","name":"reason_pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1037,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val reason_pp : Format.formatter -> reason -> unit","source":{"file":"lib/libtmux.mli","line":1037,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output","signatures":[{"raw":"val reason_pp : Format.formatter -> reason -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"reason"}],"returns":"unit"}],"slug":"libtmux-output-reason_pp"},{"id":"Libtmux.Output.wait_error","publicId":"Libtmux.Output.wait_error","qualifiedName":"Libtmux.Output.wait_error","name":"wait_error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1039,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type wait_error =\n | Ended of reason\n | Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1039,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type wait_error = Ended of reason | Failure of Error.t","params":[]}],"slug":"libtmux-output-wait_error"},{"id":"Libtmux.Output.wait_error.Ended","publicId":"Libtmux.Output.wait_error.Ended","name":"Ended","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1040,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Ended of reason","source":{"file":"lib/libtmux.mli","line":1040,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.wait_error","variant":"tuple","qualifiedName":"Libtmux.Output.Ended","slug":"libtmux-output-wait_error-ended"},{"id":"Libtmux.Output.wait_error.Failure","publicId":"Libtmux.Output.wait_error.Failure","name":"Failure","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1041,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. "],"declarations":[{"kind":"constant","text":"| Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1041,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.wait_error","doc":{"summary":"A future-byte wait either loses its subscription's continuity or fails an operation. Neither result establishes that the text was absent earlier."},"variant":"tuple","qualifiedName":"Libtmux.Output.Failure","slug":"libtmux-output-wait_error-failure"},{"id":"Libtmux.Pane","publicId":"Libtmux.Pane","qualifiedName":"Libtmux.Pane","name":"Pane","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":288,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A captured pane with local geometry, process metadata and a window\n relationship. Use {!Pane.val-target} for explicit actions; reading the\n observation never refreshes it. "],"declarations":[{"kind":"module","text":"and Pane : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end\n\n module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val index : t -> int\n val active : t -> bool\n val dead : t -> bool\n val title : t -> string\n val current_command : t -> string\n val current_path : t -> string\n\n val pid : t -> int option\n (** The captured process ID, absent when tmux reports no process. *)\n\n val width : t -> int\n val height : t -> int\n val left : t -> int\n val top : t -> int\n val window : t -> Window.t\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"A captured pane with local geometry, process metadata and a window relationship. Use {!Pane.val-target} for explicit actions; reading the observation never refreshes it."},"slug":"libtmux-pane"},{"id":"Libtmux.Pane.Fields","publicId":"Libtmux.Pane.Fields","qualifiedName":"Libtmux.Pane.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":291,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":291,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-fields"},{"id":"Libtmux.Pane.Fields.active","publicId":"Libtmux.Pane.Fields.active","qualifiedName":"Libtmux.Pane.Fields.active","name":"active","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val active : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val active : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-active"},{"id":"Libtmux.Pane.Fields.current_command","publicId":"Libtmux.Pane.Fields.current_command","qualifiedName":"Libtmux.Pane.Fields.current_command","name":"current_command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":297,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_command : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":297,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_command : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_command"},{"id":"Libtmux.Pane.Fields.current_path","publicId":"Libtmux.Pane.Fields.current_path","qualifiedName":"Libtmux.Pane.Fields.current_path","name":"current_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":298,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_path : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":298,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_path : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_path"},{"id":"Libtmux.Pane.Fields.dead","publicId":"Libtmux.Pane.Fields.dead","qualifiedName":"Libtmux.Pane.Fields.dead","name":"dead","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":295,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val dead : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":295,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val dead : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-dead"},{"id":"Libtmux.Pane.Fields.height","publicId":"Libtmux.Pane.Fields.height","qualifiedName":"Libtmux.Pane.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-height"},{"id":"Libtmux.Pane.Fields.id","publicId":"Libtmux.Pane.Fields.id","qualifiedName":"Libtmux.Pane.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":292,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":292,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-id"},{"id":"Libtmux.Pane.Fields.index","publicId":"Libtmux.Pane.Fields.index","qualifiedName":"Libtmux.Pane.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":293,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-index"},{"id":"Libtmux.Pane.Fields.left","publicId":"Libtmux.Pane.Fields.left","qualifiedName":"Libtmux.Pane.Fields.left","name":"left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":301,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val left : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":301,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val left : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-left"},{"id":"Libtmux.Pane.Fields.title","publicId":"Libtmux.Pane.Fields.title","qualifiedName":"Libtmux.Pane.Fields.title","name":"title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":296,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val title : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":296,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val title : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-title"},{"id":"Libtmux.Pane.Fields.top","publicId":"Libtmux.Pane.Fields.top","qualifiedName":"Libtmux.Pane.Fields.top","name":"top","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":302,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val top : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val top : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-top"},{"id":"Libtmux.Pane.Fields.width","publicId":"Libtmux.Pane.Fields.width","qualifiedName":"Libtmux.Pane.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":299,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-width"},{"id":"Libtmux.Pane.Id","publicId":"Libtmux.Pane.Id","qualifiedName":"Libtmux.Pane.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-id-16to"},{"id":"Libtmux.Pane.Id.compare","publicId":"Libtmux.Pane.Id.compare","qualifiedName":"Libtmux.Pane.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-id-compare"},{"id":"Libtmux.Pane.Id.equal","publicId":"Libtmux.Pane.Id.equal","qualifiedName":"Libtmux.Pane.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-id-equal"},{"id":"Libtmux.Pane.Id.of_string","publicId":"Libtmux.Pane.Id.of_string","qualifiedName":"Libtmux.Pane.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-pane-id-of_string"},{"id":"Libtmux.Pane.Id.pp","publicId":"Libtmux.Pane.Id.pp","qualifiedName":"Libtmux.Pane.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-pane-id-pp"},{"id":"Libtmux.Pane.Id.t","publicId":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux.Pane.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-id-t"},{"id":"Libtmux.Pane.Id.to_string","publicId":"Libtmux.Pane.Id.to_string","qualifiedName":"Libtmux.Pane.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-id-to_string"},{"id":"Libtmux.Pane.Relations","publicId":"Libtmux.Pane.Relations","qualifiedName":"Libtmux.Pane.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-relations"},{"id":"Libtmux.Pane.Relations.window","publicId":"Libtmux.Pane.Relations.window","qualifiedName":"Libtmux.Pane.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-pane-relations-window"},{"id":"Libtmux.Pane.Target","publicId":"Libtmux.Pane.Target","qualifiedName":"Libtmux.Pane.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":311,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":311,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-target-nx8w"},{"id":"Libtmux.Pane.Target.id","publicId":"Libtmux.Pane.Target.id","qualifiedName":"Libtmux.Pane.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":316,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-target-id"},{"id":"Libtmux.Pane.Target.of_id","publicId":"Libtmux.Pane.Target.of_id","qualifiedName":"Libtmux.Pane.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":314,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":314,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-pane-target-of_id"},{"id":"Libtmux.Pane.Target.source","publicId":"Libtmux.Pane.Target.source","qualifiedName":"Libtmux.Pane.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":315,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-target-source"},{"id":"Libtmux.Pane.Target.t","publicId":"Libtmux.Pane.Target.t","qualifiedName":"Libtmux.Pane.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":312,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":312,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-target-t"},{"id":"Libtmux.Pane.active","publicId":"Libtmux.Pane.active","qualifiedName":"Libtmux.Pane.active","name":"active","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":323,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val active : t -> bool","source":{"file":"lib/libtmux.mli","line":323,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val active : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-active"},{"id":"Libtmux.Pane.current_command","publicId":"Libtmux.Pane.current_command","qualifiedName":"Libtmux.Pane.current_command","name":"current_command","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":326,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_command : t -> string","source":{"file":"lib/libtmux.mli","line":326,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_command : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_command"},{"id":"Libtmux.Pane.current_path","publicId":"Libtmux.Pane.current_path","qualifiedName":"Libtmux.Pane.current_path","name":"current_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_path : t -> string","source":{"file":"lib/libtmux.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_path : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_path"},{"id":"Libtmux.Pane.dead","publicId":"Libtmux.Pane.dead","qualifiedName":"Libtmux.Pane.dead","name":"dead","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":324,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dead : t -> bool","source":{"file":"lib/libtmux.mli","line":324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val dead : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-dead"},{"id":"Libtmux.Pane.height","publicId":"Libtmux.Pane.height","qualifiedName":"Libtmux.Pane.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":333,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-height"},{"id":"Libtmux.Pane.id","publicId":"Libtmux.Pane.id","qualifiedName":"Libtmux.Pane.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":321,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":321,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-id-19ve"},{"id":"Libtmux.Pane.index","publicId":"Libtmux.Pane.index","qualifiedName":"Libtmux.Pane.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":322,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":322,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-index"},{"id":"Libtmux.Pane.left","publicId":"Libtmux.Pane.left","qualifiedName":"Libtmux.Pane.left","name":"left","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":334,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val left : t -> int","source":{"file":"lib/libtmux.mli","line":334,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val left : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-left"},{"id":"Libtmux.Pane.pid","publicId":"Libtmux.Pane.pid","qualifiedName":"Libtmux.Pane.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":329,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" The captured process ID, absent when tmux reports no process. "],"declarations":[{"kind":"function","text":"val pid : t -> int option","source":{"file":"lib/libtmux.mli","line":329,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","doc":{"summary":"The captured process ID, absent when tmux reports no process."},"signatures":[{"raw":"val pid : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-pane-pid"},{"id":"Libtmux.Pane.same_entity","publicId":"Libtmux.Pane.same_entity","qualifiedName":"Libtmux.Pane.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":339,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":339,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_entity"},{"id":"Libtmux.Pane.same_observation","publicId":"Libtmux.Pane.same_observation","qualifiedName":"Libtmux.Pane.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_observation"},{"id":"Libtmux.Pane.source","publicId":"Libtmux.Pane.source","qualifiedName":"Libtmux.Pane.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-source"},{"id":"Libtmux.Pane.t","publicId":"Libtmux.Pane.t","qualifiedName":"Libtmux.Pane.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":289,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":289,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-t"},{"id":"Libtmux.Pane.target","publicId":"Libtmux.Pane.target","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":338,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":338,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-pane-target-t3h1"},{"id":"Libtmux.Pane.target:type","publicId":"Libtmux.Pane.target:type","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-pane-target-type"},{"id":"Libtmux.Pane.title","publicId":"Libtmux.Pane.title","qualifiedName":"Libtmux.Pane.title","name":"title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":325,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val title : t -> string","source":{"file":"lib/libtmux.mli","line":325,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val title : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-title"},{"id":"Libtmux.Pane.top","publicId":"Libtmux.Pane.top","qualifiedName":"Libtmux.Pane.top","name":"top","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":335,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val top : t -> int","source":{"file":"lib/libtmux.mli","line":335,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val top : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-top"},{"id":"Libtmux.Pane.width","publicId":"Libtmux.Pane.width","qualifiedName":"Libtmux.Pane.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-width"},{"id":"Libtmux.Pane.window","publicId":"Libtmux.Pane.window","qualifiedName":"Libtmux.Pane.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":336,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":336,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-pane-window"},{"id":"Libtmux.Plan","publicId":"Libtmux.Plan","qualifiedName":"Libtmux.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":644,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Explicit source-filter planning for a new acquisition. A plan separates\n supported tmux predicates from residual local evaluation; it never changes\n the I/O-free contract of {!Query.matching}. Backend capture operations\n acquire a complete graph and do not consume these plans. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type pushdown = Auto | Never | Require_exact\n type t\n\n val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result\n (** Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. *)\n\n val source_filter : t -> string option\n val residual : t -> Pane.t Expr.t\n val required_fields : t -> string list\n val required_relations : t -> string list\n val explanation : t -> string\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":644,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Explicit source-filter planning for a new acquisition. A plan separates supported tmux predicates from residual local evaluation; it never changes the I/O-free contract of {!Query.matching}. Backend capture operations acquire a complete graph and do not consume these plans."},"slug":"libtmux-plan"},{"id":"Libtmux.Plan.explanation","publicId":"Libtmux.Plan.explanation","qualifiedName":"Libtmux.Plan.explanation","name":"explanation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":659,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val explanation : t -> string","source":{"file":"lib/libtmux.mli","line":659,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val explanation : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-plan-explanation"},{"id":"Libtmux.Plan.panes","publicId":"Libtmux.Plan.panes","qualifiedName":"Libtmux.Plan.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":648,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. "],"declarations":[{"kind":"function","text":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":648,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","doc":{"summary":"Plan without I/O. Exact lowering covers pane active/dead flags and complete Boolean combinations. Unsupported children prevent lowering the whole expression, including under OR and NOT. Relationships always stay local. `Require_exact` rejects an unsupported expression before acquisition."},"signatures":[{"raw":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","params":[{"name":"pushdown","type":"pushdown","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t Expr.t"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-plan-panes"},{"id":"Libtmux.Plan.pp","publicId":"Libtmux.Plan.pp","qualifiedName":"Libtmux.Plan.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":660,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":660,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-plan-pp"},{"id":"Libtmux.Plan.pushdown","publicId":"Libtmux.Plan.pushdown","qualifiedName":"Libtmux.Plan.pushdown","name":"pushdown","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type pushdown = Auto | Never | Require_exact","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type pushdown = Auto | Never | Require_exact","params":[]}],"slug":"libtmux-plan-pushdown"},{"id":"Libtmux.Plan.pushdown.Auto","publicId":"Libtmux.Plan.pushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Auto","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Auto","slug":"libtmux-plan-pushdown-auto"},{"id":"Libtmux.Plan.pushdown.Never","publicId":"Libtmux.Plan.pushdown.Never","name":"Never","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Never","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Never","slug":"libtmux-plan-pushdown-never"},{"id":"Libtmux.Plan.pushdown.Require_exact","publicId":"Libtmux.Plan.pushdown.Require_exact","name":"Require_exact","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_exact","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Require_exact","slug":"libtmux-plan-pushdown-require_exact"},{"id":"Libtmux.Plan.required_fields","publicId":"Libtmux.Plan.required_fields","qualifiedName":"Libtmux.Plan.required_fields","name":"required_fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":657,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_fields : t -> string list","source":{"file":"lib/libtmux.mli","line":657,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_fields : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_fields"},{"id":"Libtmux.Plan.required_relations","publicId":"Libtmux.Plan.required_relations","qualifiedName":"Libtmux.Plan.required_relations","name":"required_relations","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":658,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_relations : t -> string list","source":{"file":"lib/libtmux.mli","line":658,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_relations : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_relations"},{"id":"Libtmux.Plan.residual","publicId":"Libtmux.Plan.residual","qualifiedName":"Libtmux.Plan.residual","name":"residual","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":656,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val residual : t -> Pane.t Expr.t","source":{"file":"lib/libtmux.mli","line":656,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val residual : t -> Pane.t Expr.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Expr.t"}],"slug":"libtmux-plan-residual"},{"id":"Libtmux.Plan.source_filter","publicId":"Libtmux.Plan.source_filter","qualifiedName":"Libtmux.Plan.source_filter","name":"source_filter","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":655,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source_filter : t -> string option","source":{"file":"lib/libtmux.mli","line":655,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val source_filter : t -> string option","params":[{"name":"arg1","type":"t"}],"returns":"string option"}],"slug":"libtmux-plan-source_filter"},{"id":"Libtmux.Plan.t","publicId":"Libtmux.Plan.t","qualifiedName":"Libtmux.Plan.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":646,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":646,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-plan-t"},{"id":"Libtmux.Query","publicId":"Libtmux.Query","qualifiedName":"Libtmux.Query","name":"Query","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":672,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Sequence adapters and bounded cardinality checks over captured values.\n Matching preserves order and duplicates. Expected absence and ambiguity\n remain ordinary result values. "],"declarations":[{"kind":"module","text":"module Query : sig\n val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t\n (** [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. *)\n\n val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result\n (** Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. *)\n\n val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result\n (** As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n *)\nend","source":{"file":"lib/libtmux.mli","line":672,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Sequence adapters and bounded cardinality checks over captured values. Matching preserves order and duplicates. Expected absence and ambiguity remain ordinary result values."},"slug":"libtmux-query"},{"id":"Libtmux.Query.exactly_one","publicId":"Libtmux.Query.exactly_one","qualifiedName":"Libtmux.Query.exactly_one","name":"exactly_one","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":679,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. "],"declarations":[{"kind":"function","text":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":679,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Query","doc":{"summary":"Return the unique value. Stop when a second value is found; proving uniqueness requires exhausting the remaining sequence. The input's effects and exceptions propagate. This does not execute a mutation."},"signatures":[{"raw":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a, Cardinality.error) result"}],"slug":"libtmux-query-exactly_one"},{"id":"Libtmux.Query.matching","publicId":"Libtmux.Query.matching","qualifiedName":"Libtmux.Query.matching","name":"matching","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":673,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. "],"declarations":[{"kind":"function","text":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","source":{"file":"lib/libtmux.mli","line":673,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Query","doc":{"summary":"`matching expression` compiles once when the adapter is constructed. Filtering preserves order and duplicates. Snapshot-derived sequences replay captured values; arbitrary input sequences retain their effects, exceptions and replay semantics. No tmux acquisition occurs."},"signatures":[{"raw":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","params":[{"name":"arg1","type":"'a Expr.t"},{"name":"arg2","type":"'a Seq.t"}],"returns":"'a Seq.t"}],"slug":"libtmux-query-matching"},{"id":"Libtmux.Query.one_or_none","publicId":"Libtmux.Query.one_or_none","qualifiedName":"Libtmux.Query.one_or_none","name":"one_or_none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":684,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n "],"declarations":[{"kind":"function","text":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":684,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Query","doc":{"summary":"As {!exactly_one}, with `Ok None` for an empty sequence. Order and duplicate entries count toward cardinality; values are not deduplicated."},"signatures":[{"raw":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a option, Cardinality.error) result"}],"slug":"libtmux-query-one_or_none"},{"id":"Libtmux.Relation","publicId":"Libtmux.Relation","qualifiedName":"Libtmux.Relation","name":"Relation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Typed edges in a captured graph. Many, one and optional relations are\n distinct; an unacquired relationship is never represented as an empty one.\n"],"declarations":[{"kind":"module","text":"module Relation : sig\n module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\nend","source":{"file":"lib/libtmux.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Typed edges in a captured graph. Many, one and optional relations are distinct; an unacquired relationship is never represented as an empty one."},"slug":"libtmux-relation"},{"id":"Libtmux.Relation.Many","publicId":"Libtmux.Relation.Many","qualifiedName":"Libtmux.Relation.Many","name":"Many","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-many"},{"id":"Libtmux.Relation.Many.name","publicId":"Libtmux.Relation.Many.name","qualifiedName":"Libtmux.Relation.Many.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-many-name"},{"id":"Libtmux.Relation.Many.t","publicId":"Libtmux.Relation.Many.t","qualifiedName":"Libtmux.Relation.Many.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-many-t"},{"id":"Libtmux.Relation.One","publicId":"Libtmux.Relation.One","qualifiedName":"Libtmux.Relation.One","name":"One","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":157,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":157,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-one"},{"id":"Libtmux.Relation.One.name","publicId":"Libtmux.Relation.One.name","qualifiedName":"Libtmux.Relation.One.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":160,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-one-name"},{"id":"Libtmux.Relation.One.t","publicId":"Libtmux.Relation.One.t","qualifiedName":"Libtmux.Relation.One.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":158,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":158,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-one-t"},{"id":"Libtmux.Relation.Optional","publicId":"Libtmux.Relation.Optional","qualifiedName":"Libtmux.Relation.Optional","name":"Optional","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-optional"},{"id":"Libtmux.Relation.Optional.name","publicId":"Libtmux.Relation.Optional.name","qualifiedName":"Libtmux.Relation.Optional.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-optional-name"},{"id":"Libtmux.Relation.Optional.t","publicId":"Libtmux.Relation.Optional.t","qualifiedName":"Libtmux.Relation.Optional.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-optional-t"},{"id":"Libtmux.Session","publicId":"Libtmux.Session","qualifiedName":"Libtmux.Session","name":"Session","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A captured session and its ordered window-link contexts. A session can\n contain repeated links to the same global window. "],"declarations":[{"kind":"module","text":"module rec Session : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end\n\n module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val attached : t -> int\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\n\n val window_links : t -> Window_link.t Iarray.t\n (** All captured links, in capture order, including repeated windows. *)\n\n val windows : t -> Window.t Iarray.t\n (** Distinct windows in first-link order. All accesses are local. *)\nend","source":{"file":"lib/libtmux.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"A captured session and its ordered window-link contexts. A session can contain repeated links to the same global window."},"slug":"libtmux-session"},{"id":"Libtmux.Session.Fields","publicId":"Libtmux.Session.Fields","qualifiedName":"Libtmux.Session.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":175,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":175,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","slug":"libtmux-session-fields"},{"id":"Libtmux.Session.Fields.attached","publicId":"Libtmux.Session.Fields.attached","qualifiedName":"Libtmux.Session.Fields.attached","name":"attached","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val attached : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val attached : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-session-fields-attached"},{"id":"Libtmux.Session.Fields.id","publicId":"Libtmux.Session.Fields.id","qualifiedName":"Libtmux.Session.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":176,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":176,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-id"},{"id":"Libtmux.Session.Fields.name","publicId":"Libtmux.Session.Fields.name","qualifiedName":"Libtmux.Session.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-name"},{"id":"Libtmux.Session.Id","publicId":"Libtmux.Session.Id","qualifiedName":"Libtmux.Session.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","slug":"libtmux-session-id-12k2"},{"id":"Libtmux.Session.Id.compare","publicId":"Libtmux.Session.Id.compare","qualifiedName":"Libtmux.Session.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-session-id-compare"},{"id":"Libtmux.Session.Id.equal","publicId":"Libtmux.Session.Id.equal","qualifiedName":"Libtmux.Session.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-id-equal"},{"id":"Libtmux.Session.Id.of_string","publicId":"Libtmux.Session.Id.of_string","qualifiedName":"Libtmux.Session.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-session-id-of_string"},{"id":"Libtmux.Session.Id.pp","publicId":"Libtmux.Session.Id.pp","qualifiedName":"Libtmux.Session.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-session-id-pp"},{"id":"Libtmux.Session.Id.t","publicId":"Libtmux.Session.Id.t","qualifiedName":"Libtmux.Session.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-id-t"},{"id":"Libtmux.Session.Id.to_string","publicId":"Libtmux.Session.Id.to_string","qualifiedName":"Libtmux.Session.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-id-to_string"},{"id":"Libtmux.Session.Relations","publicId":"Libtmux.Session.Relations","qualifiedName":"Libtmux.Session.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","slug":"libtmux-session-relations"},{"id":"Libtmux.Session.Relations.window_links","publicId":"Libtmux.Session.Relations.window_links","qualifiedName":"Libtmux.Session.Relations.window_links","name":"window_links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val window_links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-session-relations-window_links"},{"id":"Libtmux.Session.Relations.windows","publicId":"Libtmux.Session.Relations.windows","qualifiedName":"Libtmux.Session.Relations.windows","name":"windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val windows : (t, Window.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val windows : (t, Window.t) Relation.Many.t","params":[],"returns":"(t, Window.t) Relation.Many.t"}],"slug":"libtmux-session-relations-windows"},{"id":"Libtmux.Session.Target","publicId":"Libtmux.Session.Target","qualifiedName":"Libtmux.Session.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","slug":"libtmux-session-target-5p2d"},{"id":"Libtmux.Session.Target.id","publicId":"Libtmux.Session.Target.id","qualifiedName":"Libtmux.Session.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":195,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-target-id"},{"id":"Libtmux.Session.Target.of_id","publicId":"Libtmux.Session.Target.of_id","qualifiedName":"Libtmux.Session.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Describe a target in an existing connection generation. No I/O. "],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Target","doc":{"summary":"Describe a target in an existing connection generation. No I/O."},"signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-session-target-of_id"},{"id":"Libtmux.Session.Target.source","publicId":"Libtmux.Session.Target.source","qualifiedName":"Libtmux.Session.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":194,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-target-source"},{"id":"Libtmux.Session.Target.t","publicId":"Libtmux.Session.Target.t","qualifiedName":"Libtmux.Session.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-target-t"},{"id":"Libtmux.Session.attached","publicId":"Libtmux.Session.attached","qualifiedName":"Libtmux.Session.attached","name":"attached","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val attached : t -> int","source":{"file":"lib/libtmux.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val attached : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-session-attached"},{"id":"Libtmux.Session.id","publicId":"Libtmux.Session.id","qualifiedName":"Libtmux.Session.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-id-12gy"},{"id":"Libtmux.Session.name","publicId":"Libtmux.Session.name","qualifiedName":"Libtmux.Session.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-name"},{"id":"Libtmux.Session.same_entity","publicId":"Libtmux.Session.same_entity","qualifiedName":"Libtmux.Session.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_entity"},{"id":"Libtmux.Session.same_observation","publicId":"Libtmux.Session.same_observation","qualifiedName":"Libtmux.Session.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_observation"},{"id":"Libtmux.Session.source","publicId":"Libtmux.Session.source","qualifiedName":"Libtmux.Session.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-source"},{"id":"Libtmux.Session.t","publicId":"Libtmux.Session.t","qualifiedName":"Libtmux.Session.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-t"},{"id":"Libtmux.Session.target","publicId":"Libtmux.Session.target","qualifiedName":"Libtmux.Session.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-session-target-iu8j"},{"id":"Libtmux.Session.target:type","publicId":"Libtmux.Session.target:type","qualifiedName":"Libtmux.Session.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-session-target-type"},{"id":"Libtmux.Session.window_links","publicId":"Libtmux.Session.window_links","qualifiedName":"Libtmux.Session.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" All captured links, in capture order, including repeated windows. "],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","doc":{"summary":"All captured links, in capture order, including repeated windows.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-session-window_links"},{"id":"Libtmux.Session.windows","publicId":"Libtmux.Session.windows","qualifiedName":"Libtmux.Session.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Distinct windows in first-link order. All accesses are local. "],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","doc":{"summary":"Distinct windows in first-link order. All accesses are local."},"signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-session-windows"},{"id":"Libtmux.Snapshot","publicId":"Libtmux.Snapshot","qualifiedName":"Libtmux.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A complete immutable graph captured over an acquisition interval.\n Collections are replayable immutable arrays. Capturing several tmux commands\n does not establish an atomic transaction. "],"declarations":[{"kind":"module","text":"module Snapshot : sig\n type t\n\n module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end\n\n module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end\n\n val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result\n (** Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. *)\n\n val id : t -> Id.t\n val source : t -> Source.t\n val started_at_ns : t -> int64\n val finished_at_ns : t -> int64\n val sessions : t -> Session.t Iarray.t\n val windows : t -> Window.t Iarray.t\n val window_links : t -> Window_link.t Iarray.t\n val panes : t -> Pane.t Iarray.t\n\n val clients : t -> Client_observation.t Iarray.t\n (** Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. *)\n\n val find_session : t -> Session.Id.t -> Session.t option\n val find_window : t -> Window.Id.t -> Window.t option\n val find_pane : t -> Pane.Id.t -> Pane.t option\nend","source":{"file":"lib/libtmux.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"A complete immutable graph captured over an acquisition interval. Collections are replayable immutable arrays. Capturing several tmux commands does not establish an atomic transaction."},"slug":"libtmux-snapshot"},{"id":"Libtmux.Snapshot.Id","publicId":"Libtmux.Snapshot.Id","qualifiedName":"Libtmux.Snapshot.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":384,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end","source":{"file":"lib/libtmux.mli","line":384,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-id-1y9h"},{"id":"Libtmux.Snapshot.Id.equal","publicId":"Libtmux.Snapshot.Id.equal","qualifiedName":"Libtmux.Snapshot.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":389,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":389,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-snapshot-id-equal"},{"id":"Libtmux.Snapshot.Id.of_string","publicId":"Libtmux.Snapshot.Id.of_string","qualifiedName":"Libtmux.Snapshot.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-id-of_string"},{"id":"Libtmux.Snapshot.Id.t","publicId":"Libtmux.Snapshot.Id.t","qualifiedName":"Libtmux.Snapshot.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":385,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":385,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-id-t"},{"id":"Libtmux.Snapshot.Id.to_string","publicId":"Libtmux.Snapshot.Id.to_string","qualifiedName":"Libtmux.Snapshot.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":388,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":388,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-snapshot-id-to_string"},{"id":"Libtmux.Snapshot.Input","publicId":"Libtmux.Snapshot.Input","qualifiedName":"Libtmux.Snapshot.Input","name":"Input","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":392,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end","source":{"file":"lib/libtmux.mli","line":392,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-input"},{"id":"Libtmux.Snapshot.Input.client","publicId":"Libtmux.Snapshot.Input.client","qualifiedName":"Libtmux.Snapshot.Input.client","name":"client","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }","source":{"file":"lib/libtmux.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n}","params":[]}],"slug":"libtmux-snapshot-input-client"},{"id":"Libtmux.Snapshot.Input.client.control_mode","publicId":"Libtmux.Snapshot.Input.client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":432,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"control_mode : bool;","source":{"file":"lib/libtmux.mli","line":432,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.client","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.control_mode","slug":"libtmux-snapshot-input-client-control_mode"},{"id":"Libtmux.Snapshot.Input.client.height","publicId":"Libtmux.Snapshot.Input.client.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":431,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":431,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-client-height"},{"id":"Libtmux.Snapshot.Input.client.name","publicId":"Libtmux.Snapshot.Input.client.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.client","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-client-name"},{"id":"Libtmux.Snapshot.Input.client.pid","publicId":"Libtmux.Snapshot.Input.client.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":429,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int;","source":{"file":"lib/libtmux.mli","line":429,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-client-pid"},{"id":"Libtmux.Snapshot.Input.client.session_id","publicId":"Libtmux.Snapshot.Input.client.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":428,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t option;","source":{"file":"lib/libtmux.mli","line":428,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.client","type":"Session.Id.t option","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-client-session_id"},{"id":"Libtmux.Snapshot.Input.client.width","publicId":"Libtmux.Snapshot.Input.client.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":430,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":430,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-client-width"},{"id":"Libtmux.Snapshot.Input.pane","publicId":"Libtmux.Snapshot.Input.pane","qualifiedName":"Libtmux.Snapshot.Input.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }","source":{"file":"lib/libtmux.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n}","params":[]}],"slug":"libtmux-snapshot-input-pane"},{"id":"Libtmux.Snapshot.Input.pane.active","publicId":"Libtmux.Snapshot.Input.pane.active","name":"active","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"active : bool;","source":{"file":"lib/libtmux.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.active","slug":"libtmux-snapshot-input-pane-active"},{"id":"Libtmux.Snapshot.Input.pane.current_command","publicId":"Libtmux.Snapshot.Input.pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_command : string;","source":{"file":"lib/libtmux.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_command","slug":"libtmux-snapshot-input-pane-current_command"},{"id":"Libtmux.Snapshot.Input.pane.current_path","publicId":"Libtmux.Snapshot.Input.pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":418,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_path : string;","source":{"file":"lib/libtmux.mli","line":418,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_path","slug":"libtmux-snapshot-input-pane-current_path"},{"id":"Libtmux.Snapshot.Input.pane.dead","publicId":"Libtmux.Snapshot.Input.pane.dead","name":"dead","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"dead : bool;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.dead","slug":"libtmux-snapshot-input-pane-dead"},{"id":"Libtmux.Snapshot.Input.pane.height","publicId":"Libtmux.Snapshot.Input.pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":421,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":421,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-pane-height"},{"id":"Libtmux.Snapshot.Input.pane.id","publicId":"Libtmux.Snapshot.Input.pane.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Pane.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-pane-id"},{"id":"Libtmux.Snapshot.Input.pane.index","publicId":"Libtmux.Snapshot.Input.pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":413,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":413,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-pane-index"},{"id":"Libtmux.Snapshot.Input.pane.left","publicId":"Libtmux.Snapshot.Input.pane.left","name":"left","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"left : int;","source":{"file":"lib/libtmux.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.left","slug":"libtmux-snapshot-input-pane-left"},{"id":"Libtmux.Snapshot.Input.pane.pid","publicId":"Libtmux.Snapshot.Input.pane.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":419,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int option;","source":{"file":"lib/libtmux.mli","line":419,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-pane-pid"},{"id":"Libtmux.Snapshot.Input.pane.title","publicId":"Libtmux.Snapshot.Input.pane.title","name":"title","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":416,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"title : string;","source":{"file":"lib/libtmux.mli","line":416,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.title","slug":"libtmux-snapshot-input-pane-title"},{"id":"Libtmux.Snapshot.Input.pane.top","publicId":"Libtmux.Snapshot.Input.pane.top","name":"top","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"top : int;","source":{"file":"lib/libtmux.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.top","slug":"libtmux-snapshot-input-pane-top"},{"id":"Libtmux.Snapshot.Input.pane.width","publicId":"Libtmux.Snapshot.Input.pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":420,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":420,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-pane-width"},{"id":"Libtmux.Snapshot.Input.pane.window_id","publicId":"Libtmux.Snapshot.Input.pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":412,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":412,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-pane-window_id"},{"id":"Libtmux.Snapshot.Input.session","publicId":"Libtmux.Snapshot.Input.session","qualifiedName":"Libtmux.Snapshot.Input.session","name":"session","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type session = { id : Session.Id.t; name : string; attached : int }","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type session = { id : Session.Id.t; name : string; attached : int; }","params":[]}],"slug":"libtmux-snapshot-input-session"},{"id":"Libtmux.Snapshot.Input.session.attached","publicId":"Libtmux.Snapshot.Input.session.attached","name":"attached","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"attached : int","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.session","type":"int","qualifiedName":"Libtmux.Snapshot.Input.attached","slug":"libtmux-snapshot-input-session-attached"},{"id":"Libtmux.Snapshot.Input.session.id","publicId":"Libtmux.Snapshot.Input.session.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.session","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-session-id"},{"id":"Libtmux.Snapshot.Input.session.name","publicId":"Libtmux.Snapshot.Input.session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.session","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-session-name"},{"id":"Libtmux.Snapshot.Input.window","publicId":"Libtmux.Snapshot.Input.window","qualifiedName":"Libtmux.Snapshot.Input.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":395,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }","source":{"file":"lib/libtmux.mli","line":395,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n}","params":[]}],"slug":"libtmux-snapshot-input-window"},{"id":"Libtmux.Snapshot.Input.window.height","publicId":"Libtmux.Snapshot.Input.window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":399,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":399,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-window-height"},{"id":"Libtmux.Snapshot.Input.window.id","publicId":"Libtmux.Snapshot.Input.window.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":396,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":396,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-window-id"},{"id":"Libtmux.Snapshot.Input.window.layout","publicId":"Libtmux.Snapshot.Input.window.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":400,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : string;","source":{"file":"lib/libtmux.mli","line":400,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.layout","slug":"libtmux-snapshot-input-window-layout"},{"id":"Libtmux.Snapshot.Input.window.name","publicId":"Libtmux.Snapshot.Input.window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-window-name"},{"id":"Libtmux.Snapshot.Input.window.width","publicId":"Libtmux.Snapshot.Input.window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":398,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":398,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-window-width"},{"id":"Libtmux.Snapshot.Input.window_link","publicId":"Libtmux.Snapshot.Input.window_link","qualifiedName":"Libtmux.Snapshot.Input.window_link","name":"window_link","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }","source":{"file":"lib/libtmux.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n}","params":[]}],"slug":"libtmux-snapshot-input-window_link"},{"id":"Libtmux.Snapshot.Input.window_link.index","publicId":"Libtmux.Snapshot.Input.window_link.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-window_link-index"},{"id":"Libtmux.Snapshot.Input.window_link.is_current","publicId":"Libtmux.Snapshot.Input.window_link.is_current","name":"is_current","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":407,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"is_current : bool;","source":{"file":"lib/libtmux.mli","line":407,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.is_current","slug":"libtmux-snapshot-input-window_link-is_current"},{"id":"Libtmux.Snapshot.Input.window_link.session_id","publicId":"Libtmux.Snapshot.Input.window_link.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":404,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":404,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-window_link-session_id"},{"id":"Libtmux.Snapshot.Input.window_link.window_id","publicId":"Libtmux.Snapshot.Input.window_link.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":405,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":405,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-window_link-window_id"},{"id":"Libtmux.Snapshot.clients","publicId":"Libtmux.Snapshot.clients","qualifiedName":"Libtmux.Snapshot.clients","name":"clients","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":464,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. "],"declarations":[{"kind":"function","text":"val clients : t -> Client_observation.t Iarray.t","source":{"file":"lib/libtmux.mli","line":464,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Collections and their contents are immutable. They retain capture order, are replayable and remain readable after the acquiring client closes."},"signatures":[{"raw":"val clients : t -> Client_observation.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_observation.t Iarray.t"}],"slug":"libtmux-snapshot-clients"},{"id":"Libtmux.Snapshot.create","publicId":"Libtmux.Snapshot.create","qualifiedName":"Libtmux.Snapshot.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":436,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. "],"declarations":[{"kind":"function","text":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":436,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Validate and materialize a complete captured graph without I/O. Equal duplicate global rows collapse in first-occurrence order; conflicting rows and dangling references return {!Error.Capture_raced}. Links at different indexes remain distinct, including within one session. At most 10,000 input rows are admitted. Each session needs one current link and each window one active pane. Capture spans an interval, not an atomic instant. Input strings are bytes; no Unicode normalization is performed."},"signatures":[{"raw":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list -> clients:Input.client list -> (t, Error.t) result","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"id","type":"Id.t","keywordOnly":true},{"name":"started_at_ns","type":"int64","keywordOnly":true},{"name":"finished_at_ns","type":"int64","keywordOnly":true},{"name":"sessions","type":"Input.session list","keywordOnly":true},{"name":"windows","type":"Input.window list","keywordOnly":true},{"name":"window_links","type":"Input.window_link list","keywordOnly":true},{"name":"panes","type":"Input.pane list","keywordOnly":true},{"name":"clients","type":"Input.client list","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-create"},{"id":"Libtmux.Snapshot.find_pane","publicId":"Libtmux.Snapshot.find_pane","qualifiedName":"Libtmux.Snapshot.find_pane","name":"find_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":470,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_pane : t -> Pane.Id.t -> Pane.t option","source":{"file":"lib/libtmux.mli","line":470,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_pane : t -> Pane.Id.t -> Pane.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Pane.Id.t"}],"returns":"Pane.t option"}],"slug":"libtmux-snapshot-find_pane"},{"id":"Libtmux.Snapshot.find_session","publicId":"Libtmux.Snapshot.find_session","qualifiedName":"Libtmux.Snapshot.find_session","name":"find_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":468,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_session : t -> Session.Id.t -> Session.t option","source":{"file":"lib/libtmux.mli","line":468,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_session : t -> Session.Id.t -> Session.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Session.Id.t"}],"returns":"Session.t option"}],"slug":"libtmux-snapshot-find_session"},{"id":"Libtmux.Snapshot.find_window","publicId":"Libtmux.Snapshot.find_window","qualifiedName":"Libtmux.Snapshot.find_window","name":"find_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":469,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_window : t -> Window.Id.t -> Window.t option","source":{"file":"lib/libtmux.mli","line":469,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_window : t -> Window.Id.t -> Window.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Window.Id.t"}],"returns":"Window.t option"}],"slug":"libtmux-snapshot-find_window"},{"id":"Libtmux.Snapshot.finished_at_ns","publicId":"Libtmux.Snapshot.finished_at_ns","qualifiedName":"Libtmux.Snapshot.finished_at_ns","name":"finished_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val finished_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val finished_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-finished_at_ns"},{"id":"Libtmux.Snapshot.id","publicId":"Libtmux.Snapshot.id","qualifiedName":"Libtmux.Snapshot.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":455,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":455,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-snapshot-id-1y6d"},{"id":"Libtmux.Snapshot.panes","publicId":"Libtmux.Snapshot.panes","qualifiedName":"Libtmux.Snapshot.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":462,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":462,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"slug":"libtmux-snapshot-panes"},{"id":"Libtmux.Snapshot.sessions","publicId":"Libtmux.Snapshot.sessions","qualifiedName":"Libtmux.Snapshot.sessions","name":"sessions","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":459,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val sessions : t -> Session.t Iarray.t","source":{"file":"lib/libtmux.mli","line":459,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val sessions : t -> Session.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-snapshot-sessions"},{"id":"Libtmux.Snapshot.source","publicId":"Libtmux.Snapshot.source","qualifiedName":"Libtmux.Snapshot.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":456,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":456,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-snapshot-source"},{"id":"Libtmux.Snapshot.started_at_ns","publicId":"Libtmux.Snapshot.started_at_ns","qualifiedName":"Libtmux.Snapshot.started_at_ns","name":"started_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":457,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val started_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":457,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val started_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-started_at_ns"},{"id":"Libtmux.Snapshot.t","publicId":"Libtmux.Snapshot.t","qualifiedName":"Libtmux.Snapshot.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":382,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":382,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-t"},{"id":"Libtmux.Snapshot.window_links","publicId":"Libtmux.Snapshot.window_links","qualifiedName":"Libtmux.Snapshot.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":461,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":461,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-snapshot-window_links"},{"id":"Libtmux.Snapshot.windows","publicId":"Libtmux.Snapshot.windows","qualifiedName":"Libtmux.Snapshot.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":460,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":460,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-snapshot-windows"},{"id":"Libtmux.Source","publicId":"Libtmux.Source","qualifiedName":"Libtmux.Source","name":"Source","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":92,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Endpoint and observed daemon identity for one connection generation.\n Constructing metadata alone does not establish a live binding. "],"declarations":[{"kind":"module","text":"module Source : sig\n type t\n\n val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result\n (** Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. *)\n\n val endpoint : t -> Endpoint.t\n val generation : t -> Generation.t\n val server_pid : t -> int\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":92,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Endpoint and observed daemon identity for one connection generation. Constructing metadata alone does not establish a live binding."},"slug":"libtmux-source"},{"id":"Libtmux.Source.create","publicId":"Libtmux.Source.create","qualifiedName":"Libtmux.Source.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. "],"declarations":[{"kind":"function","text":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Source","doc":{"summary":"Pure metadata import for capture adapters. This neither establishes a connection nor verifies process identity. The backend must bind the generation to a live daemon before it admits operations."},"signatures":[{"raw":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t -> server_pid:int -> (t, Error.t) result","params":[{"name":"endpoint","type":"Endpoint.t","keywordOnly":true},{"name":"generation","type":"Generation.t","keywordOnly":true},{"name":"server_pid","type":"int","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-source-create"},{"id":"Libtmux.Source.endpoint","publicId":"Libtmux.Source.endpoint","qualifiedName":"Libtmux.Source.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Endpoint.t","source":{"file":"lib/libtmux.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val endpoint : t -> Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Endpoint.t"}],"slug":"libtmux-source-endpoint"},{"id":"Libtmux.Source.equal","publicId":"Libtmux.Source.equal","qualifiedName":"Libtmux.Source.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":107,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":107,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-source-equal"},{"id":"Libtmux.Source.generation","publicId":"Libtmux.Source.generation","qualifiedName":"Libtmux.Source.generation","name":"generation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":105,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val generation : t -> Generation.t","source":{"file":"lib/libtmux.mli","line":105,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val generation : t -> Generation.t","params":[{"name":"arg1","type":"t"}],"returns":"Generation.t"}],"slug":"libtmux-source-generation"},{"id":"Libtmux.Source.server_pid","publicId":"Libtmux.Source.server_pid","qualifiedName":"Libtmux.Source.server_pid","name":"server_pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val server_pid : t -> int","source":{"file":"lib/libtmux.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val server_pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-source-server_pid"},{"id":"Libtmux.Source.t","publicId":"Libtmux.Source.t","qualifiedName":"Libtmux.Source.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Source","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-source-t"},{"id":"Libtmux.Spawn","publicId":"Libtmux.Spawn","qualifiedName":"Libtmux.Spawn","name":"Spawn","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":717,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A process description with explicit argv or shell semantics, working\n directory and environment. Describing a process performs no I/O. "],"declarations":[{"kind":"module","text":"module Spawn : sig\n type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string\n\n type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }\n\n val make : ?cwd:string -> ?environment:(string * string) list -> command -> t\n (** Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. *)\n\n val default : t\nend","source":{"file":"lib/libtmux.mli","line":717,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"A process description with explicit argv or shell semantics, working directory and environment. Describing a process performs no I/O."},"slug":"libtmux-spawn"},{"id":"Libtmux.Spawn.command","publicId":"Libtmux.Spawn.command","qualifiedName":"Libtmux.Spawn.command","name":"command","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":718,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string","source":{"file":"lib/libtmux.mli","line":718,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type command =\n Default\n | Exec of { program : string; args : string list; }\n | Shell of string","params":[]}],"slug":"libtmux-spawn-command"},{"id":"Libtmux.Spawn.command.Default","publicId":"Libtmux.Spawn.command.Default","name":"Default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":719,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Default","source":{"file":"lib/libtmux.mli","line":719,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.command","variant":"unit","qualifiedName":"Libtmux.Spawn.Default","slug":"libtmux-spawn-command-default"},{"id":"Libtmux.Spawn.command.Exec","publicId":"Libtmux.Spawn.command.Exec","name":"Exec","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Exec of { program : string; args : string list }","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.command","variant":"struct","qualifiedName":"Libtmux.Spawn.Exec","slug":"libtmux-spawn-command-exec"},{"id":"Libtmux.Spawn.command.Exec.args","publicId":"Libtmux.Spawn.command.Exec.args","name":"args","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"args : string list","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string list","qualifiedName":"Libtmux.Spawn.args","slug":"libtmux-spawn-command-exec-args"},{"id":"Libtmux.Spawn.command.Exec.program","publicId":"Libtmux.Spawn.command.Exec.program","name":"program","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"program : string;","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string","qualifiedName":"Libtmux.Spawn.program","slug":"libtmux-spawn-command-exec-program"},{"id":"Libtmux.Spawn.command.Shell","publicId":"Libtmux.Spawn.command.Shell","name":"Shell","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Shell of string","source":{"file":"lib/libtmux.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.command","variant":"tuple","qualifiedName":"Libtmux.Spawn.Shell","slug":"libtmux-spawn-command-shell"},{"id":"Libtmux.Spawn.default","publicId":"Libtmux.Spawn.default","qualifiedName":"Libtmux.Spawn.default","name":"default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":737,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val default : t","source":{"file":"lib/libtmux.mli","line":737,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"val default : t","params":[],"returns":"t"}],"slug":"libtmux-spawn-default"},{"id":"Libtmux.Spawn.make","publicId":"Libtmux.Spawn.make","qualifiedName":"Libtmux.Spawn.make","name":"make","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. "],"declarations":[{"kind":"function","text":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","source":{"file":"lib/libtmux.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn","doc":{"summary":"Describe a program without I/O. `Exec` preserves argv; `Shell` explicitly requests the daemon's configured shell. `cwd` must be absolute. Validation occurs at admission. With no arguments, `Exec` uses a fixed `/bin/sh` trampoline because tmux treats a single argument as shell code. `Default` follows tmux defaults on creation and reuses the previous command on respawn."},"signatures":[{"raw":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"arg1","type":"command"}],"returns":"t"}],"slug":"libtmux-spawn-make"},{"id":"Libtmux.Spawn.t","publicId":"Libtmux.Spawn.t","qualifiedName":"Libtmux.Spawn.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":723,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }","source":{"file":"lib/libtmux.mli","line":723,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n}","params":[]}],"slug":"libtmux-spawn-t"},{"id":"Libtmux.Spawn.t.command","publicId":"Libtmux.Spawn.t.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : command;","source":{"file":"lib/libtmux.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.t","type":"command","qualifiedName":"Libtmux.Spawn.command","slug":"libtmux-spawn-t-command"},{"id":"Libtmux.Spawn.t.cwd","publicId":"Libtmux.Spawn.t.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":725,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"lib/libtmux.mli","line":725,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.t","type":"string option","qualifiedName":"Libtmux.Spawn.cwd","slug":"libtmux-spawn-t-cwd"},{"id":"Libtmux.Spawn.t.environment","publicId":"Libtmux.Spawn.t.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":726,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"lib/libtmux.mli","line":726,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.t","type":"(string * string) list","qualifiedName":"Libtmux.Spawn.environment","slug":"libtmux-spawn-t-environment"},{"id":"Libtmux.Window","publicId":"Libtmux.Window","qualifiedName":"Libtmux.Window","name":"Window","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A global window shared by its session links. Window index and current state\n belong to a link, while panes and geometry belong to the window. "],"declarations":[{"kind":"module","text":"and Window : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end\n\n module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val width : t -> int\n val height : t -> int\n val layout : t -> string\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\n val panes : t -> Pane.t Iarray.t\n val links : t -> Window_link.t Iarray.t\nend","source":{"file":"lib/libtmux.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"A global window shared by its session links. Window index and current state belong to a link, while panes and geometry belong to the window."},"slug":"libtmux-window"},{"id":"Libtmux.Window.Fields","publicId":"Libtmux.Window.Fields","qualifiedName":"Libtmux.Window.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end","source":{"file":"lib/libtmux.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","slug":"libtmux-window-fields"},{"id":"Libtmux.Window.Fields.height","publicId":"Libtmux.Window.Fields.height","qualifiedName":"Libtmux.Window.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-height"},{"id":"Libtmux.Window.Fields.id","publicId":"Libtmux.Window.Fields.id","qualifiedName":"Libtmux.Window.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-id"},{"id":"Libtmux.Window.Fields.layout","publicId":"Libtmux.Window.Fields.layout","qualifiedName":"Libtmux.Window.Fields.layout","name":"layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":225,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val layout : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val layout : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-layout"},{"id":"Libtmux.Window.Fields.name","publicId":"Libtmux.Window.Fields.name","qualifiedName":"Libtmux.Window.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-name"},{"id":"Libtmux.Window.Fields.width","publicId":"Libtmux.Window.Fields.width","qualifiedName":"Libtmux.Window.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-width"},{"id":"Libtmux.Window.Id","publicId":"Libtmux.Window.Id","qualifiedName":"Libtmux.Window.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","slug":"libtmux-window-id-1sgu"},{"id":"Libtmux.Window.Id.compare","publicId":"Libtmux.Window.Id.compare","qualifiedName":"Libtmux.Window.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-window-id-compare"},{"id":"Libtmux.Window.Id.equal","publicId":"Libtmux.Window.Id.equal","qualifiedName":"Libtmux.Window.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-id-equal"},{"id":"Libtmux.Window.Id.of_string","publicId":"Libtmux.Window.Id.of_string","qualifiedName":"Libtmux.Window.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-window-id-of_string"},{"id":"Libtmux.Window.Id.pp","publicId":"Libtmux.Window.Id.pp","qualifiedName":"Libtmux.Window.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-window-id-pp"},{"id":"Libtmux.Window.Id.t","publicId":"Libtmux.Window.Id.t","qualifiedName":"Libtmux.Window.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-id-t"},{"id":"Libtmux.Window.Id.to_string","publicId":"Libtmux.Window.Id.to_string","qualifiedName":"Libtmux.Window.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-id-to_string"},{"id":"Libtmux.Window.Relations","publicId":"Libtmux.Window.Relations","qualifiedName":"Libtmux.Window.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":228,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":228,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","slug":"libtmux-window-relations"},{"id":"Libtmux.Window.Relations.links","publicId":"Libtmux.Window.Relations.links","qualifiedName":"Libtmux.Window.Relations.links","name":"links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-window-relations-links"},{"id":"Libtmux.Window.Relations.panes","publicId":"Libtmux.Window.Relations.panes","qualifiedName":"Libtmux.Window.Relations.panes","name":"panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val panes : (t, Pane.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val panes : (t, Pane.t) Relation.Many.t","params":[],"returns":"(t, Pane.t) Relation.Many.t"}],"slug":"libtmux-window-relations-panes"},{"id":"Libtmux.Window.Target","publicId":"Libtmux.Window.Target","qualifiedName":"Libtmux.Window.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","slug":"libtmux-window-target-6ecc"},{"id":"Libtmux.Window.Target.id","publicId":"Libtmux.Window.Target.id","qualifiedName":"Libtmux.Window.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":240,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":240,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-target-id"},{"id":"Libtmux.Window.Target.of_id","publicId":"Libtmux.Window.Target.of_id","qualifiedName":"Libtmux.Window.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-window-target-of_id"},{"id":"Libtmux.Window.Target.source","publicId":"Libtmux.Window.Target.source","qualifiedName":"Libtmux.Window.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":239,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-target-source"},{"id":"Libtmux.Window.Target.t","publicId":"Libtmux.Window.Target.t","qualifiedName":"Libtmux.Window.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-target-t"},{"id":"Libtmux.Window.height","publicId":"Libtmux.Window.height","qualifiedName":"Libtmux.Window.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-height"},{"id":"Libtmux.Window.id","publicId":"Libtmux.Window.id","qualifiedName":"Libtmux.Window.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-id-1sjw"},{"id":"Libtmux.Window.layout","publicId":"Libtmux.Window.layout","qualifiedName":"Libtmux.Window.layout","name":"layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val layout : t -> string","source":{"file":"lib/libtmux.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val layout : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-layout"},{"id":"Libtmux.Window.links","publicId":"Libtmux.Window.links","qualifiedName":"Libtmux.Window.links","name":"links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":255,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":255,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-window-links"},{"id":"Libtmux.Window.name","publicId":"Libtmux.Window.name","qualifiedName":"Libtmux.Window.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-name"},{"id":"Libtmux.Window.panes","publicId":"Libtmux.Window.panes","qualifiedName":"Libtmux.Window.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":254,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":254,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-window-panes"},{"id":"Libtmux.Window.same_entity","publicId":"Libtmux.Window.same_entity","qualifiedName":"Libtmux.Window.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_entity"},{"id":"Libtmux.Window.same_observation","publicId":"Libtmux.Window.same_observation","qualifiedName":"Libtmux.Window.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_observation"},{"id":"Libtmux.Window.source","publicId":"Libtmux.Window.source","qualifiedName":"Libtmux.Window.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":250,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":250,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-source"},{"id":"Libtmux.Window.t","publicId":"Libtmux.Window.t","qualifiedName":"Libtmux.Window.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-t"},{"id":"Libtmux.Window.target","publicId":"Libtmux.Window.target","qualifiedName":"Libtmux.Window.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-window-target-1sbf"},{"id":"Libtmux.Window.target:type","publicId":"Libtmux.Window.target:type","qualifiedName":"Libtmux.Window.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":243,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":243,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-window-target-type"},{"id":"Libtmux.Window.width","publicId":"Libtmux.Window.width","qualifiedName":"Libtmux.Window.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":247,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":247,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-width"},{"id":"Libtmux.Window_link","publicId":"Libtmux.Window_link","qualifiedName":"Libtmux.Window_link","name":"Window_link","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" One captured session/index/window context. It is not a stable link\n incarnation across unlinking, movement or reindexing. "],"declarations":[{"kind":"module","text":"and Window_link : sig\n type t\n\n module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end\n\n val index : t -> int\n val is_current : t -> bool\n val session : t -> Session.t\n val window : t -> Window.t\n\n val same_context : t -> t -> bool\n (** Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. *)\n\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"One captured session/index/window context. It is not a stable link incarnation across unlinking, movement or reindexing."},"slug":"libtmux-window_link"},{"id":"Libtmux.Window_link.Fields","publicId":"Libtmux.Window_link.Fields","qualifiedName":"Libtmux.Window_link.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-fields"},{"id":"Libtmux.Window_link.Fields.index","publicId":"Libtmux.Window_link.Fields.index","qualifiedName":"Libtmux.Window_link.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window_link-fields-index"},{"id":"Libtmux.Window_link.Fields.is_current","publicId":"Libtmux.Window_link.Fields.is_current","qualifiedName":"Libtmux.Window_link.Fields.is_current","name":"is_current","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":265,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val is_current : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":265,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val is_current : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-window_link-fields-is_current"},{"id":"Libtmux.Window_link.Relations","publicId":"Libtmux.Window_link.Relations","qualifiedName":"Libtmux.Window_link.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":268,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":268,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-relations"},{"id":"Libtmux.Window_link.Relations.session","publicId":"Libtmux.Window_link.Relations.session","qualifiedName":"Libtmux.Window_link.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.One.t","params":[],"returns":"(t, Session.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-session"},{"id":"Libtmux.Window_link.Relations.window","publicId":"Libtmux.Window_link.Relations.window","qualifiedName":"Libtmux.Window_link.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":270,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":270,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-window"},{"id":"Libtmux.Window_link.index","publicId":"Libtmux.Window_link.index","qualifiedName":"Libtmux.Window_link.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window_link-index"},{"id":"Libtmux.Window_link.is_current","publicId":"Libtmux.Window_link.is_current","qualifiedName":"Libtmux.Window_link.is_current","name":"is_current","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_current : t -> bool","source":{"file":"lib/libtmux.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val is_current : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-is_current"},{"id":"Libtmux.Window_link.same_context","publicId":"Libtmux.Window_link.same_context","qualifiedName":"Libtmux.Window_link.same_context","name":"same_context","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":278,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. "],"declarations":[{"kind":"function","text":"val same_context : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":278,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","doc":{"summary":"Compare source, session, index and window. An equal context does not certify a stable link incarnation across reindexing or unlink/relink."},"signatures":[{"raw":"val same_context : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_context"},{"id":"Libtmux.Window_link.same_observation","publicId":"Libtmux.Window_link.same_observation","qualifiedName":"Libtmux.Window_link.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_observation"},{"id":"Libtmux.Window_link.session","publicId":"Libtmux.Window_link.session","qualifiedName":"Libtmux.Window_link.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":275,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> Session.t","source":{"file":"lib/libtmux.mli","line":275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val session : t -> Session.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t"}],"slug":"libtmux-window_link-session"},{"id":"Libtmux.Window_link.t","publicId":"Libtmux.Window_link.t","qualifiedName":"Libtmux.Window_link.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window_link-t"},{"id":"Libtmux.Window_link.window","publicId":"Libtmux.Window_link.window","qualifiedName":"Libtmux.Window_link.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":276,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":276,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-window_link-window"},{"id":"Libtmux_eio","publicId":"Libtmux_eio","qualifiedName":"Libtmux_eio","name":"Libtmux_eio","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Concurrent Linux tmux clients using the application's Eio scheduler.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md}streaming\n guide} demonstrates application-owned switches, cancellation and continuity\n gaps. "],"declarations":[{"kind":"module","text":"","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"doc":{"summary":"Concurrent Linux tmux clients using the application's Eio scheduler.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [streaming guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md) demonstrates application-owned switches, cancellation and continuity gaps."},"slug":"libtmux_eio"},{"id":"Libtmux_eio.Client","publicId":"Libtmux_eio.Client","qualifiedName":"Libtmux_eio.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. *)\n\n val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. No history/barrier guarantee. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve bounded capacity without I/O. *)\n\n val await : 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. *)\n\n val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result\n (** Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. *)\n\n val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. *)\n\n val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Retire the generation and close owned control clients and descriptors.\n tmux's [exit-unattached] and [exit-empty] policies can end the daemon\n after its clients or sessions disappear. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_eio-client"},{"id":"Libtmux_eio.Client.await","publicId":"Libtmux_eio.Client.await","qualifiedName":"Libtmux_eio.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. "],"declarations":[{"kind":"function","text":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Cancellation propagates as Eio cancellation. Store the handle outside the cancelled fiber: the client drains written work independently, and the eventual result remains inspectable."},"signatures":[{"raw":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-await"},{"id":"Libtmux_eio.Client.break_pane","publicId":"Libtmux_eio.Client.break_pane","qualifiedName":"Libtmux_eio.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-break_pane"},{"id":"Libtmux_eio.Client.capture","publicId":"Libtmux_eio.Client.capture","qualifiedName":"Libtmux_eio.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. "],"declarations":[{"kind":"function","text":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a complete immutable graph over an interval. Conflicting or disappearing entities fail capture; they do not become empty relations. The returned values remain readable after client closure."},"signatures":[{"raw":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture"},{"id":"Libtmux_eio.Client.capture_environment","publicId":"Libtmux_eio.Client.capture_environment","qualifiedName":"Libtmux_eio.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_environment"},{"id":"Libtmux_eio.Client.capture_hooks","publicId":"Libtmux_eio.Client.capture_hooks","qualifiedName":"Libtmux_eio.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_hooks"},{"id":"Libtmux_eio.Client.capture_options","publicId":"Libtmux_eio.Client.capture_options","qualifiedName":"Libtmux_eio.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":283,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_options"},{"id":"Libtmux_eio.Client.capture_text","publicId":"Libtmux_eio.Client.capture_text","qualifiedName":"Libtmux_eio.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Inclusive ordinary screen rows, using a bounded private file transfer. Qualified local scratch storage must be shared with the daemon."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_text"},{"id":"Libtmux_eio.Client.clear_history","publicId":"Libtmux_eio.Client.clear_history","qualifiedName":"Libtmux_eio.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_history"},{"id":"Libtmux_eio.Client.clear_option_array","publicId":"Libtmux_eio.Client.clear_option_array","qualifiedName":"Libtmux_eio.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_option_array"},{"id":"Libtmux_eio.Client.close","publicId":"Libtmux_eio.Client.close","qualifiedName":"Libtmux_eio.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Retire the generation and close owned control clients and descriptors.\n tmux's [exit-unattached] and [exit-empty] policies can end the daemon\n after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Retire the generation and close owned control clients and descriptors. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-close"},{"id":"Libtmux_eio.Client.connect","publicId":"Libtmux_eio.Client.connect","qualifiedName":"Libtmux_eio.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n "],"declarations":[{"kind":"function","text":"val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Attach to an existing local Linux daemon in the same PID namespace and shared filesystem. Requires pidfd support. Default exchange timeout: one second. All client calls belong to the connecting OCaml domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-connect"},{"id":"Libtmux_eio.Client.create_session","publicId":"Libtmux_eio.Client.create_session","qualifiedName":"Libtmux_eio.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":380,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":380,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_session"},{"id":"Libtmux_eio.Client.create_window","publicId":"Libtmux_eio.Client.create_window","qualifiedName":"Libtmux_eio.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":391,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":391,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_window"},{"id":"Libtmux_eio.Client.cycle_layout","publicId":"Libtmux_eio.Client.cycle_layout","qualifiedName":"Libtmux_eio.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-cycle_layout"},{"id":"Libtmux_eio.Client.kill_pane","publicId":"Libtmux_eio.Client.kill_pane","qualifiedName":"Libtmux_eio.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":431,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":431,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_pane"},{"id":"Libtmux_eio.Client.kill_session","publicId":"Libtmux_eio.Client.kill_session","qualifiedName":"Libtmux_eio.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_session"},{"id":"Libtmux_eio.Client.kill_window","publicId":"Libtmux_eio.Client.kill_window","qualifiedName":"Libtmux_eio.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_window"},{"id":"Libtmux_eio.Client.link_window","publicId":"Libtmux_eio.Client.link_window","qualifiedName":"Libtmux_eio.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-link_window"},{"id":"Libtmux_eio.Client.move_pane","publicId":"Libtmux_eio.Client.move_pane","qualifiedName":"Libtmux_eio.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_pane"},{"id":"Libtmux_eio.Client.move_window_at","publicId":"Libtmux_eio.Client.move_window_at","qualifiedName":"Libtmux_eio.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_window_at"},{"id":"Libtmux_eio.Client.read_hook","publicId":"Libtmux_eio.Client.read_hook","qualifiedName":"Libtmux_eio.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_hook"},{"id":"Libtmux_eio.Client.read_option","publicId":"Libtmux_eio.Client.read_option","qualifiedName":"Libtmux_eio.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_option"},{"id":"Libtmux_eio.Client.refresh_client_at","publicId":"Libtmux_eio.Client.refresh_client_at","qualifiedName":"Libtmux_eio.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-refresh_client_at"},{"id":"Libtmux_eio.Client.remove_environment","publicId":"Libtmux_eio.Client.remove_environment","qualifiedName":"Libtmux_eio.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_environment"},{"id":"Libtmux_eio.Client.remove_hook","publicId":"Libtmux_eio.Client.remove_hook","qualifiedName":"Libtmux_eio.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":362,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":362,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_hook"},{"id":"Libtmux_eio.Client.rename_session","publicId":"Libtmux_eio.Client.rename_session","qualifiedName":"Libtmux_eio.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_session"},{"id":"Libtmux_eio.Client.rename_window","publicId":"Libtmux_eio.Client.rename_window","qualifiedName":"Libtmux_eio.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":193,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":193,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_window"},{"id":"Libtmux_eio.Client.request_detach_client_at","publicId":"Libtmux_eio.Client.request_detach_client_at","qualifiedName":"Libtmux_eio.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-request_detach_client_at"},{"id":"Libtmux_eio.Client.resize_control_client_at","publicId":"Libtmux_eio.Client.resize_control_client_at","qualifiedName":"Libtmux_eio.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_control_client_at"},{"id":"Libtmux_eio.Client.resize_pane","publicId":"Libtmux_eio.Client.resize_pane","qualifiedName":"Libtmux_eio.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":477,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":477,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_pane"},{"id":"Libtmux_eio.Client.resize_window","publicId":"Libtmux_eio.Client.resize_window","qualifiedName":"Libtmux_eio.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":487,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":487,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_window"},{"id":"Libtmux_eio.Client.respawn_pane","publicId":"Libtmux_eio.Client.respawn_pane","qualifiedName":"Libtmux_eio.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-respawn_pane"},{"id":"Libtmux_eio.Client.rotate_panes","publicId":"Libtmux_eio.Client.rotate_panes","qualifiedName":"Libtmux_eio.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rotate_panes"},{"id":"Libtmux_eio.Client.run","publicId":"Libtmux_eio.Client.run","qualifiedName":"Libtmux_eio.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. "],"declarations":[{"kind":"function","text":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Submit and await an explicit command. Retain a separate submitted handle when the outcome must remain inspectable after caller cancellation."},"signatures":[{"raw":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run"},{"id":"Libtmux_eio.Client.run_hook","publicId":"Libtmux_eio.Client.run_hook","qualifiedName":"Libtmux_eio.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":371,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":371,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run_hook"},{"id":"Libtmux_eio.Client.select_layout","publicId":"Libtmux_eio.Client.select_layout","qualifiedName":"Libtmux_eio.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout :\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_layout"},{"id":"Libtmux_eio.Client.select_pane","publicId":"Libtmux_eio.Client.select_pane","qualifiedName":"Libtmux_eio.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":468,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":468,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_pane"},{"id":"Libtmux_eio.Client.select_window_at","publicId":"Libtmux_eio.Client.select_window_at","qualifiedName":"Libtmux_eio.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":435,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":435,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_window_at"},{"id":"Libtmux_eio.Client.send_keys","publicId":"Libtmux_eio.Client.send_keys","qualifiedName":"Libtmux_eio.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys :\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_keys"},{"id":"Libtmux_eio.Client.send_text","publicId":"Libtmux_eio.Client.send_text","qualifiedName":"Libtmux_eio.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_text"},{"id":"Libtmux_eio.Client.set_environment","publicId":"Libtmux_eio.Client.set_environment","qualifiedName":"Libtmux_eio.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_environment"},{"id":"Libtmux_eio.Client.set_hook","publicId":"Libtmux_eio.Client.set_hook","qualifiedName":"Libtmux_eio.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":346,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_hook"},{"id":"Libtmux_eio.Client.set_option","publicId":"Libtmux_eio.Client.set_option","qualifiedName":"Libtmux_eio.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_option"},{"id":"Libtmux_eio.Client.set_pane_title","publicId":"Libtmux_eio.Client.set_pane_title","qualifiedName":"Libtmux_eio.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_pane_title"},{"id":"Libtmux_eio.Client.signal","publicId":"Libtmux_eio.Client.signal","qualifiedName":"Libtmux_eio.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-signal"},{"id":"Libtmux_eio.Client.source","publicId":"Libtmux_eio.Client.source","qualifiedName":"Libtmux_eio.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_eio-client-source"},{"id":"Libtmux_eio.Client.split_pane","publicId":"Libtmux_eio.Client.split_pane","qualifiedName":"Libtmux_eio.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":400,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":400,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-split_pane"},{"id":"Libtmux_eio.Client.submit","publicId":"Libtmux_eio.Client.submit","qualifiedName":"Libtmux_eio.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate and reserve bounded capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate and reserve bounded capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-submit"},{"id":"Libtmux_eio.Client.subscribe","publicId":"Libtmux_eio.Client.subscribe","qualifiedName":"Libtmux_eio.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire verified coverage through one shared lane per session; choose the least observed session ID unless supplied. A client-owned reader delivers future bytes without application callbacks. Default queue bounds are 1 MiB/1024 events; max 16 subscribers and eight total client lanes, sharing the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap then End. Data starts after admission's marker, with no snapshot/history barrier, automatic reconnect or silent cursor reuse.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-subscribe"},{"id":"Libtmux_eio.Client.swap_panes","publicId":"Libtmux_eio.Client.swap_panes","qualifiedName":"Libtmux_eio.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-swap_panes"},{"id":"Libtmux_eio.Client.switch_client_at","publicId":"Libtmux_eio.Client.switch_client_at","qualifiedName":"Libtmux_eio.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-switch_client_at"},{"id":"Libtmux_eio.Client.t","publicId":"Libtmux_eio.Client.t","qualifiedName":"Libtmux_eio.Client.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-client-t"},{"id":"Libtmux_eio.Client.unlink_window_at","publicId":"Libtmux_eio.Client.unlink_window_at","qualifiedName":"Libtmux_eio.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unlink_window_at"},{"id":"Libtmux_eio.Client.unset_environment","publicId":"Libtmux_eio.Client.unset_environment","qualifiedName":"Libtmux_eio.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_environment"},{"id":"Libtmux_eio.Client.unset_option","publicId":"Libtmux_eio.Client.unset_option","qualifiedName":"Libtmux_eio.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_option"},{"id":"Libtmux_eio.Client.version","publicId":"Libtmux_eio.Client.version","qualifiedName":"Libtmux_eio.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":132,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"eio/libtmux_eio.mli","line":132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_eio-client-version"},{"id":"Libtmux_eio.Client.wait_for","publicId":"Libtmux_eio.Client.wait_for","qualifiedName":"Libtmux_eio.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for"},{"id":"Libtmux_eio.Client.wait_for_text","publicId":"Libtmux_eio.Client.wait_for_text","qualifiedName":"Libtmux_eio.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. No history/barrier guarantee. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Subscribe and capture the screen immediately, then recapture on output. Membership/overflow gaps establish fresh coverage in the same binding. Maximum pattern: 64 KiB. Return captured rendered text containing it; transient text may be missed. Deadlines are checked between bounded acquisitions, whose I/O retains the client exchange timeout. Cancellation propagates and releases the subscription. No history/barrier guarantee."},"signatures":[{"raw":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for_text"},{"id":"Libtmux_eio.Client.zoom_pane","publicId":"Libtmux_eio.Client.zoom_pane","qualifiedName":"Libtmux_eio.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":539,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":539,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-zoom_pane"},{"id":"Libtmux_eio.Operation","publicId":"Libtmux_eio.Operation","qualifiedName":"Libtmux_eio.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":45,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** Read without I/O, including after client closure. Owning domain only. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove unsent work. A written request remains owned and drained by the\n client. *)\n\n val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result\n (** Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":45,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_eio-operation"},{"id":"Libtmux_eio.Operation.await_stage","publicId":"Libtmux_eio.Operation.await_stage","qualifiedName":"Libtmux_eio.Operation.await_stage","name":"await_stage","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n "],"declarations":[{"kind":"function","text":"val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Wait for the named stage or a terminal state. Acknowledgement does not establish completion. Cancelling this observer leaves the operation alone."},"signatures":[{"raw":"val await_stage :\n 'a t -> [ `Acknowledged | `Written ] -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"[ `Acknowledged | `Written ]"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-await_stage"},{"id":"Libtmux_eio.Operation.cancel","publicId":"Libtmux_eio.Operation.cancel","qualifiedName":"Libtmux_eio.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove unsent work. A written request remains owned and drained by the\n client. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Remove unsent work. A written request remains owned and drained by the client."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-cancel"},{"id":"Libtmux_eio.Operation.cleanup_receipt","publicId":"Libtmux_eio.Operation.cleanup_receipt","qualifiedName":"Libtmux_eio.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":48,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"eio/libtmux_eio.mli","line":48,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n}","params":[]}],"slug":"libtmux_eio-operation-cleanup_receipt"},{"id":"Libtmux_eio.Operation.cleanup_receipt.cause","publicId":"Libtmux_eio.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"eio/libtmux_eio.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_eio.Operation.cause","slug":"libtmux_eio-operation-cleanup_receipt-cause"},{"id":"Libtmux_eio.Operation.cleanup_receipt.created","publicId":"Libtmux_eio.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"eio/libtmux_eio.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_eio.Operation.created","slug":"libtmux_eio-operation-cleanup_receipt-created"},{"id":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"eio/libtmux_eio.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_eio.Operation.owned_buffers","slug":"libtmux_eio-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_eio.Operation.id","publicId":"Libtmux_eio.Operation.id","qualifiedName":"Libtmux_eio.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"eio/libtmux_eio.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_eio-operation-id"},{"id":"Libtmux_eio.Operation.inspect","publicId":"Libtmux_eio.Operation.inspect","qualifiedName":"Libtmux_eio.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read without I/O, including after client closure. Owning domain only. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Read without I/O, including after client closure. Owning domain only."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-inspect"},{"id":"Libtmux_eio.Operation.state","publicId":"Libtmux_eio.Operation.state","qualifiedName":"Libtmux_eio.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a state =\n Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","params":[]}],"slug":"libtmux_eio-operation-state"},{"id":"Libtmux_eio.Operation.state.Acknowledged","publicId":"Libtmux_eio.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Acknowledged","slug":"libtmux_eio-operation-state-acknowledged"},{"id":"Libtmux_eio.Operation.state.Finished","publicId":"Libtmux_eio.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Finished","slug":"libtmux_eio-operation-state-finished"},{"id":"Libtmux_eio.Operation.state.Not_started","publicId":"Libtmux_eio.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Not_started","slug":"libtmux_eio-operation-state-not_started"},{"id":"Libtmux_eio.Operation.state.Outcome_unknown","publicId":"Libtmux_eio.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Outcome_unknown","slug":"libtmux_eio-operation-state-outcome_unknown"},{"id":"Libtmux_eio.Operation.state.Queued","publicId":"Libtmux_eio.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"eio/libtmux_eio.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Queued","slug":"libtmux_eio-operation-state-queued"},{"id":"Libtmux_eio.Operation.state.Written","publicId":"Libtmux_eio.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Written","slug":"libtmux_eio-operation-state-written"},{"id":"Libtmux_eio.Operation.t","publicId":"Libtmux_eio.Operation.t","qualifiedName":"Libtmux_eio.Operation.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":46,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"eio/libtmux_eio.mli","line":46,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-operation-t"},{"id":"Libtmux_eio.Rendered","publicId":"Libtmux_eio.Rendered","qualifiedName":"Libtmux_eio.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio","exportedFrom":"Libtmux.Captured_text","slug":"libtmux_eio-rendered"},{"id":"Libtmux_eio.Subscription","publicId":"Libtmux_eio.Subscription","qualifiedName":"Libtmux_eio.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O, on the owning domain. *)\n\n val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Discard pending data and retain End Cancelled. Borrowed clients and the\n daemon remain alive. *)\n\n val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_eio-subscription"},{"id":"Libtmux_eio.Subscription.close","publicId":"Libtmux_eio.Subscription.close","qualifiedName":"Libtmux_eio.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Discard pending data and retain End Cancelled. Borrowed clients and the\n daemon remain alive. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Discard pending data and retain End Cancelled. Borrowed clients and the daemon remain alive."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-close"},{"id":"Libtmux_eio.Subscription.next","publicId":"Libtmux_eio.Subscription.next","qualifiedName":"Libtmux_eio.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":88,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. "],"declarations":[{"kind":"function","text":"val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":88,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Await one event, defaulting to a one-second deadline. `None` follows a consumed End. A deadline keeps the subscription active. Eio cancellation closes it, releases its lane when unused, and propagates."},"signatures":[{"raw":"val next :\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-next"},{"id":"Libtmux_eio.Subscription.poll","publicId":"Libtmux_eio.Subscription.poll","qualifiedName":"Libtmux_eio.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":85,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove a queued event without I/O, on the owning domain. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":85,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Remove a queued event without I/O, on the owning domain."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-poll"},{"id":"Libtmux_eio.Subscription.t","publicId":"Libtmux_eio.Subscription.t","qualifiedName":"Libtmux_eio.Subscription.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-subscription-t"},{"id":"Libtmux_eio.Subscription.wait_for_bytes","publicId":"Libtmux_eio.Subscription.wait_for_bytes","qualifiedName":"Libtmux_eio.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Consume future observed bytes through a match, with a maximum 64 KiB nonempty pattern. Match across Data boundaries and return its end cursor. Gaps end matching. This searches neither rendered text nor history. A deadline leaves the subscription active; cancellation closes it.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_eio-subscription-wait_for_bytes"},{"id":"Libtmux_eio.Terminal","publicId":"Libtmux_eio.Terminal","qualifiedName":"Libtmux_eio.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_eio-terminal"},{"id":"Libtmux_eio.Terminal.attach_current","publicId":"Libtmux_eio.Terminal.attach_current","qualifiedName":"Libtmux_eio.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Terminal","doc":{"summary":"Run an interactive terminal client until exit, using the application's process manager and standard streams unless explicit flows are supplied. `stdin` must be backed by a terminal descriptor; a pipe-backed flow is rejected by tmux. Select the exact ID on the daemon currently listening at `endpoint`, without a captured target, binding, retry or daemon startup.","body":"Environment updates and read-only mode default to false. Clear inherited `TMUX` and `TMUX_PANE`. Cancellation propagates after terminating and reaping this client; it does not stop the daemon. Success proves terminal client exit. Diagnostics go to `stderr`; borrowed flows stay open."},"signatures":[{"raw":"val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:[> Eio.Flow.source_ty ] Eio.Flow.source ->\n ?stdout:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n ?stderr:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"[> Eio.Flow.source_ty ] Eio.Flow.source","optional":true,"keywordOnly":true},{"name":"stdout","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"stderr","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-terminal-attach_current"},{"id":"Libtmux_eio.Workspace","publicId":"Libtmux_eio.Workspace","qualifiedName":"Libtmux_eio.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":567,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Apply workspace plans through Eio while retaining journals across caller\n cancellation. Handles belong to the creating domain; the application owns\n the scheduler and switch. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. *)\n\n val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. *)\n\n val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Read a journal copy without I/O, including any late retained outcome. *)\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":567,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio","doc":{"summary":"Apply workspace plans through Eio while retaining journals across caller cancellation. Handles belong to the creating domain; the application owns the scheduler and switch."},"slug":"libtmux_eio-workspace"},{"id":"Libtmux_eio.Workspace.await","publicId":"Libtmux_eio.Workspace.await","qualifiedName":"Libtmux_eio.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. "],"declarations":[{"kind":"function","text":"val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Apply once. Expected failures return a retained journal. Eio cancellation propagates after progress is recorded and at most 500 ms of protected compensation. Admitted commands can still complete under client ownership; inspect the receipt before attempting manual recovery."},"signatures":[{"raw":"val await :\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-await"},{"id":"Libtmux_eio.Workspace.client","publicId":"Libtmux_eio.Workspace.client","qualifiedName":"Libtmux_eio.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_eio-workspace-client"},{"id":"Libtmux_eio.Workspace.close","publicId":"Libtmux_eio.Workspace.close","qualifiedName":"Libtmux_eio.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Closing is idempotent; completed journals remain readable."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-close"},{"id":"Libtmux_eio.Workspace.inspect","publicId":"Libtmux_eio.Workspace.inspect","qualifiedName":"Libtmux_eio.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read a journal copy without I/O, including any late retained outcome. "],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Read a journal copy without I/O, including any late retained outcome."},"signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-inspect"},{"id":"Libtmux_eio.Workspace.submit","publicId":"Libtmux_eio.Workspace.submit","qualifiedName":"Libtmux_eio.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":570,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":570,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a generation-bound handle without I/O. The supplied client is borrowed; closing the handle leaves it open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit"},{"id":"Libtmux_eio.Workspace.submit_bootstrap","publicId":"Libtmux_eio.Workspace.submit_bootstrap","qualifiedName":"Libtmux_eio.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a missing-endpoint execution without I/O. Await starts control new-session and binds that same connection. The handle owns its new client within `sw`; it never owns the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit_bootstrap"},{"id":"Libtmux_eio.Workspace.t","publicId":"Libtmux_eio.Workspace.t","qualifiedName":"Libtmux_eio.Workspace.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-workspace-t"},{"id":"Libtmux_json","publicId":"Libtmux_json","qualifiedName":"Libtmux_json","name":"Libtmux_json","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Pure, bounded query and workspace JSON interchange.\n\n {!Expr} validates portable queries and {!Workspace} decodes configurations\n and encodes plans and receipts. Both return {!Decode_error.t} on invalid\n data. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} and\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for complete programs. "],"declarations":[{"kind":"module","text":"","source":{"file":"json/libtmux_json.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"doc":{"summary":"Pure, bounded query and workspace JSON interchange.","body":"{!Expr} validates portable queries and {!Workspace} decodes configurations and encodes plans and receipts. Both return {!Decode_error.t} on invalid data. See the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) and [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for complete programs."},"slug":"libtmux_json"},{"id":"Libtmux_json.Decode_error","publicId":"Libtmux_json.Decode_error","qualifiedName":"Libtmux_json.Decode_error","name":"Decode_error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Decode_error : sig\n type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported\n\n type t = { pointer : string; category : category; message : string }\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"json/libtmux_json.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json","slug":"libtmux_json-decode_error"},{"id":"Libtmux_json.Decode_error.category","publicId":"Libtmux_json.Decode_error.category","qualifiedName":"Libtmux_json.Decode_error.category","name":"category","kind":"enum","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":12,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","source":{"file":"json/libtmux_json.mli","line":12,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type category =\n Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","params":[]}],"slug":"libtmux_json-decode_error-category"},{"id":"Libtmux_json.Decode_error.category.Limit","publicId":"Libtmux_json.Decode_error.category.Limit","name":"Limit","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Limit","source":{"file":"json/libtmux_json.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Limit","slug":"libtmux_json-decode_error-category-limit"},{"id":"Libtmux_json.Decode_error.category.Out_of_range","publicId":"Libtmux_json.Decode_error.category.Out_of_range","name":"Out_of_range","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Out_of_range","source":{"file":"json/libtmux_json.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Out_of_range","slug":"libtmux_json-decode_error-category-out_of_range"},{"id":"Libtmux_json.Decode_error.category.Syntax","publicId":"Libtmux_json.Decode_error.category.Syntax","name":"Syntax","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Syntax","source":{"file":"json/libtmux_json.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Syntax","slug":"libtmux_json-decode_error-category-syntax"},{"id":"Libtmux_json.Decode_error.category.Unknown","publicId":"Libtmux_json.Decode_error.category.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"json/libtmux_json.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unknown","slug":"libtmux_json-decode_error-category-unknown"},{"id":"Libtmux_json.Decode_error.category.Unsupported","publicId":"Libtmux_json.Decode_error.category.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"json/libtmux_json.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unsupported","slug":"libtmux_json-decode_error-category-unsupported"},{"id":"Libtmux_json.Decode_error.category.Wrong_type","publicId":"Libtmux_json.Decode_error.category.Wrong_type","name":"Wrong_type","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_type","source":{"file":"json/libtmux_json.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Wrong_type","slug":"libtmux_json-decode_error-category-wrong_type"},{"id":"Libtmux_json.Decode_error.pp","publicId":"Libtmux_json.Decode_error.pp","qualifiedName":"Libtmux_json.Decode_error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"json/libtmux_json.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux_json-decode_error-pp"},{"id":"Libtmux_json.Decode_error.t","publicId":"Libtmux_json.Decode_error.t","qualifiedName":"Libtmux_json.Decode_error.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = { pointer : string; category : category; message : string }","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type t = { pointer : string; category : category; message : string; }","params":[]}],"slug":"libtmux_json-decode_error-t"},{"id":"Libtmux_json.Decode_error.t.category","publicId":"Libtmux_json.Decode_error.t.category","name":"category","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"category : category;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.t","type":"category","qualifiedName":"Libtmux_json.Decode_error.category","slug":"libtmux_json-decode_error-t-category"},{"id":"Libtmux_json.Decode_error.t.message","publicId":"Libtmux_json.Decode_error.t.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.message","slug":"libtmux_json-decode_error-t-message"},{"id":"Libtmux_json.Decode_error.t.pointer","publicId":"Libtmux_json.Decode_error.t.pointer","name":"pointer","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pointer : string;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.pointer","slug":"libtmux_json-decode_error-t-pointer"},{"id":"Libtmux_json.Error","publicId":"Libtmux_json.Error","qualifiedName":"Libtmux_json.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Structured native failures for JSON consumers. "],"declarations":[{"kind":"module","text":"module Error : sig\n val encode : Libtmux.Error.t -> Yojson.Safe.t\n (** Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json","doc":{"summary":"Structured native failures for JSON consumers."},"slug":"libtmux_json-error"},{"id":"Libtmux_json.Error.encode","publicId":"Libtmux_json.Error.encode","qualifiedName":"Libtmux_json.Error.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. "],"declarations":[{"kind":"function","text":"val encode : Libtmux.Error.t -> Yojson.Safe.t","source":{"file":"json/libtmux_json.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Error","doc":{"summary":"Return a stable `code`, bounded `message`, `message_truncated` flag and relevant operation, resource or target metadata. Messages and text attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex representation described by {!Workspace.encode_receipt}. No I/O."},"signatures":[{"raw":"val encode : Libtmux.Error.t -> Yojson.Safe.t","params":[{"name":"arg1","type":"Libtmux.Error.t"}],"returns":"Yojson.Safe.t"}],"slug":"libtmux_json-error-encode"},{"id":"Libtmux_json.Expr","publicId":"Libtmux_json.Expr","qualifiedName":"Libtmux_json.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Expr : sig\n val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result\n (** Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. *)\n\n val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result\n (** Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. *)\n\n val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result\n\n val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result\n (** Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json","slug":"libtmux_json-expr"},{"id":"Libtmux_json.Expr.decode","publicId":"Libtmux_json.Expr.decode","qualifiedName":"Libtmux_json.Expr.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. "],"declarations":[{"kind":"function","text":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Validate the supplied tree, including duplicate properties, before typed construction. Only the shared scalar pane registry and Boolean composition are accepted. Java regex, relationships and native extension fields return `Unsupported`. Numbers must fit signed 32-bit integers."},"signatures":[{"raw":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"Yojson.Safe.t"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-decode"},{"id":"Libtmux_json.Expr.encode","publicId":"Libtmux_json.Expr.encode","qualifiedName":"Libtmux_json.Expr.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Expr","signatures":[{"raw":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-encode"},{"id":"Libtmux_json.Expr.of_string","publicId":"Libtmux_json.Expr.of_string","qualifiedName":"Libtmux_json.Expr.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. "],"declarations":[{"kind":"function","text":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at most 256 values. Errors include a JSON pointer, never the whole input."},"signatures":[{"raw":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"string"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-of_string"},{"id":"Libtmux_json.Expr.to_string","publicId":"Libtmux_json.Expr.to_string","qualifiedName":"Libtmux_json.Expr.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. "],"declarations":[{"kind":"function","text":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Apply the same bounds and subset when encoding. Text with invalid UTF-8 has no representation in this schema. These functions perform no I/O."},"signatures":[{"raw":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(string, Decode_error.t) result"}],"slug":"libtmux_json-expr-to_string"},{"id":"Libtmux_json.Workspace","publicId":"Libtmux_json.Workspace","qualifiedName":"Libtmux_json.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Validate workspace documents and describe plans and retained execution.\n Preview output never supplies executable targets. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n\n val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n (** Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. *)\n\n val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. *)\n\n val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. *)\nend","source":{"file":"json/libtmux_json.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json","doc":{"summary":"Validate workspace documents and describe plans and retained execution. Preview output never supplies executable targets."},"slug":"libtmux_json-workspace"},{"id":"Libtmux_json.Workspace.decode","publicId":"Libtmux_json.Workspace.decode","qualifiedName":"Libtmux_json.Workspace.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Workspace","signatures":[{"raw":"val decode :\n directory:string ->\n Yojson.Safe.t -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"Yojson.Safe.t"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-decode"},{"id":"Libtmux_json.Workspace.encode_plan","publicId":"Libtmux_json.Workspace.encode_plan","qualifiedName":"Libtmux_json.Workspace.encode_plan","name":"encode_plan","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. "],"declarations":[{"kind":"function","text":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-plan/1` without I/O. The advisory preview contains command argv, cwd and environment names, excluding environment values, option values and startup text. It is not an execution script."},"signatures":[{"raw":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_plan"},{"id":"Libtmux_json.Workspace.encode_receipt","publicId":"Libtmux_json.Workspace.encode_receipt","qualifiedName":"Libtmux_json.Workspace.encode_receipt","name":"encode_receipt","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. "],"declarations":[{"kind":"function","text":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-receipt/1` with ordered steps, outcome index lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic messages are limited to 4096 bytes with an explicit truncation flag; command payloads are omitted.","body":"Both output schemas have a 4 MiB bound. Invalid UTF-8 values use `{\"encoding\":\"hex\",\"bytes\":\"...\"}` instead of losing bytes. Imported IDs and hints never establish a connection binding."},"signatures":[{"raw":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Execution.receipt"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_receipt"},{"id":"Libtmux_json.Workspace.of_string","publicId":"Libtmux_json.Workspace.of_string","qualifiedName":"Libtmux_json.Workspace.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":42,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. "],"declarations":[{"kind":"function","text":"val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":42,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Decode `libtmux.workspace/1` with the query codec's 64 KiB, UTF-8 and 32-level JSON bounds. Reject duplicate and unknown properties, invalid argv/shell combinations and configuration errors. `directory` is the absolute document directory; these functions perform no filesystem I/O."},"signatures":[{"raw":"val of_string :\n directory:string ->\n string -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-of_string"},{"id":"Libtmux_unix","publicId":"Libtmux_unix","qualifiedName":"Libtmux_unix","name":"Libtmux_unix","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Blocking Linux tmux clients with explicit scoped cancellation.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md}control\n guide} explains binding, completion and recovery. "],"declarations":[{"kind":"module","text":"","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"doc":{"summary":"Blocking Linux tmux clients with explicit scoped cancellation.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [control guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md) explains binding, completion and recovery."},"slug":"libtmux_unix"},{"id":"Libtmux_unix.Cancellation","publicId":"Libtmux_unix.Cancellation","qualifiedName":"Libtmux_unix.Cancellation","name":"Cancellation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cancellation : sig\n type t\n\n exception Cancelled\n\n val with_ : (t -> 'a) -> 'a\n (** Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. *)\n\n val cancel : t -> unit\n (** Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","slug":"libtmux_unix-cancellation"},{"id":"Libtmux_unix.Cancellation.Cancelled","publicId":"Libtmux_unix.Cancellation.Cancelled","qualifiedName":"Libtmux_unix.Cancellation.Cancelled","name":"Cancelled","kind":"exception","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"exception","text":"exception Cancelled","source":{"file":"unix/libtmux_unix.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type exn += Cancelled","params":[]}],"slug":"libtmux_unix-cancellation-cancelled"},{"id":"Libtmux_unix.Cancellation.cancel","publicId":"Libtmux_unix.Cancellation.cancel","qualifiedName":"Libtmux_unix.Cancellation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. "],"declarations":[{"kind":"function","text":"val cancel : t -> unit","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Wake waiters. Safe from another domain or systhread, but not from a signal handler. Repeated calls and calls after scope exit have no effect."},"signatures":[{"raw":"val cancel : t -> unit","params":[{"name":"arg1","type":"t"}],"returns":"unit"}],"slug":"libtmux_unix-cancellation-cancel"},{"id":"Libtmux_unix.Cancellation.t","publicId":"Libtmux_unix.Cancellation.t","qualifiedName":"Libtmux_unix.Cancellation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-cancellation-t"},{"id":"Libtmux_unix.Cancellation.with_","publicId":"Libtmux_unix.Cancellation.with_","qualifiedName":"Libtmux_unix.Cancellation.with_","name":"with_","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. "],"declarations":[{"kind":"function","text":"val with_ : (t -> 'a) -> 'a","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Own a cancellation token for the callback's lifetime. Leaving the scope cancels outstanding waiters and releases its descriptors after they finish. An escaped token is cancelled and cannot be reused."},"signatures":[{"raw":"val with_ : (t -> 'a) -> 'a","params":[{"name":"arg1","type":"t -> 'a"}],"returns":"'a"}],"slug":"libtmux_unix-cancellation-with_"},{"id":"Libtmux_unix.Client","publicId":"Libtmux_unix.Client","qualifiedName":"Libtmux_unix.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. *)\n\n val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. No capture/stream barrier exists.\n *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve queue capacity without I/O. *)\n\n val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O must also finish. No background\n scheduler or worker is started. *)\n\n val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result\n (** Submit and await. Use the two calls separately to retain an operation\n handle. *)\n\n val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. *)\n\n val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Close owned control clients and descriptors. Idempotent on the owning\n domain. tmux's [exit-unattached] and [exit-empty] policies can end the\n daemon after its clients or sessions disappear. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_unix-client"},{"id":"Libtmux_unix.Client.await","publicId":"Libtmux_unix.Client.await","qualifiedName":"Libtmux_unix.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O must also finish. No background\n scheduler or worker is started. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Pump admitted work until this operation is finished. Only one blocking caller may own the client at a time. Cancellation removes queued work or drains admitted work before raising `Cancellation.Cancelled`. The handle retains its outcome. Draining has at most one exchange timeout from detection; local scratch filesystem I/O must also finish. No background scheduler or worker is started."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-await"},{"id":"Libtmux_unix.Client.break_pane","publicId":"Libtmux_unix.Client.break_pane","qualifiedName":"Libtmux_unix.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-break_pane"},{"id":"Libtmux_unix.Client.capture","publicId":"Libtmux_unix.Client.capture","qualifiedName":"Libtmux_unix.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. "],"declarations":[{"kind":"function","text":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a complete graph over a recorded interval, with a fixed number of listing commands. Races fail validation. Access to returned values performs no I/O, including after closing the client.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture"},{"id":"Libtmux_unix.Client.capture_environment","publicId":"Libtmux_unix.Client.capture_environment","qualifiedName":"Libtmux_unix.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":308,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":308,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_environment"},{"id":"Libtmux_unix.Client.capture_hooks","publicId":"Libtmux_unix.Client.capture_hooks","qualifiedName":"Libtmux_unix.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":405,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":405,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_hooks"},{"id":"Libtmux_unix.Client.capture_options","publicId":"Libtmux_unix.Client.capture_options","qualifiedName":"Libtmux_unix.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":348,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":348,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_options"},{"id":"Libtmux_unix.Client.capture_text","publicId":"Libtmux_unix.Client.capture_text","qualifiedName":"Libtmux_unix.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture ordinary rendered screen rows, inclusively, via an owned paste buffer and private file. Reject applicable capture/save hooks. The scratch directory defaults to `/tmp` and must be local storage shared with the daemon. Pending and alternate-screen byte modes are unsupported. This observes an interval and establishes no stream continuity barrier."},"signatures":[{"raw":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_text"},{"id":"Libtmux_unix.Client.clear_history","publicId":"Libtmux_unix.Client.clear_history","qualifiedName":"Libtmux_unix.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":677,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":677,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_history"},{"id":"Libtmux_unix.Client.clear_option_array","publicId":"Libtmux_unix.Client.clear_option_array","qualifiedName":"Libtmux_unix.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_option_array"},{"id":"Libtmux_unix.Client.close","publicId":"Libtmux_unix.Client.close","qualifiedName":"Libtmux_unix.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":687,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Close owned control clients and descriptors. Idempotent on the owning\n domain. tmux's [exit-unattached] and [exit-empty] policies can end the\n daemon after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":687,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Close owned control clients and descriptors. Idempotent on the owning domain. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-close"},{"id":"Libtmux_unix.Client.connect","publicId":"Libtmux_unix.Client.connect","qualifiedName":"Libtmux_unix.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":132,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. "],"declarations":[{"kind":"function","text":"val connect :\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Attach to an existing local daemon with at least one session. The caller and daemon must share the PID namespace and filesystem. A local socket pathname alone does not establish these preconditions. `timeout` is the maximum seconds per control exchange, defaulting to one second. Requires Linux pidfd support. The client belongs to the current domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?binary:string ->\n ?timeout:float -> Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-connect"},{"id":"Libtmux_unix.Client.create_session","publicId":"Libtmux_unix.Client.create_session","qualifiedName":"Libtmux_unix.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":463,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":463,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_session"},{"id":"Libtmux_unix.Client.create_window","publicId":"Libtmux_unix.Client.create_window","qualifiedName":"Libtmux_unix.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_create_window.ml","intro":"Create a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"created: logs\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_window"},{"id":"Libtmux_unix.Client.cycle_layout","publicId":"Libtmux_unix.Client.cycle_layout","qualifiedName":"Libtmux_unix.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-cycle_layout"},{"id":"Libtmux_unix.Client.kill_pane","publicId":"Libtmux_unix.Client.kill_pane","qualifiedName":"Libtmux_unix.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_pane"},{"id":"Libtmux_unix.Client.kill_session","publicId":"Libtmux_unix.Client.kill_session","qualifiedName":"Libtmux_unix.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":509,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":509,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_session"},{"id":"Libtmux_unix.Client.kill_window","publicId":"Libtmux_unix.Client.kill_window","qualifiedName":"Libtmux_unix.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":517,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":517,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_window"},{"id":"Libtmux_unix.Client.link_window","publicId":"Libtmux_unix.Client.link_window","qualifiedName":"Libtmux_unix.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-link_window"},{"id":"Libtmux_unix.Client.move_pane","publicId":"Libtmux_unix.Client.move_pane","qualifiedName":"Libtmux_unix.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_pane"},{"id":"Libtmux_unix.Client.move_window_at","publicId":"Libtmux_unix.Client.move_window_at","qualifiedName":"Libtmux_unix.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_move_window.ml","intro":"Move a window between sessions. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"moved: build at 7\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_window_at"},{"id":"Libtmux_unix.Client.read_hook","publicId":"Libtmux_unix.Client.read_hook","qualifiedName":"Libtmux_unix.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":413,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":413,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_hook"},{"id":"Libtmux_unix.Client.read_option","publicId":"Libtmux_unix.Client.read_option","qualifiedName":"Libtmux_unix.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":360,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":360,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_option"},{"id":"Libtmux_unix.Client.refresh_client_at","publicId":"Libtmux_unix.Client.refresh_client_at","qualifiedName":"Libtmux_unix.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":265,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":265,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-refresh_client_at"},{"id":"Libtmux_unix.Client.remove_environment","publicId":"Libtmux_unix.Client.remove_environment","qualifiedName":"Libtmux_unix.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_environment"},{"id":"Libtmux_unix.Client.remove_hook","publicId":"Libtmux_unix.Client.remove_hook","qualifiedName":"Libtmux_unix.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_hook"},{"id":"Libtmux_unix.Client.rename_session","publicId":"Libtmux_unix.Client.rename_session","qualifiedName":"Libtmux_unix.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_session"},{"id":"Libtmux_unix.Client.rename_window","publicId":"Libtmux_unix.Client.rename_window","qualifiedName":"Libtmux_unix.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_rename_window.ml","intro":"Rename a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"renamed: editor-main\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val rename_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_window"},{"id":"Libtmux_unix.Client.request_detach_client_at","publicId":"Libtmux_unix.Client.request_detach_client_at","qualifiedName":"Libtmux_unix.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":256,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":256,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-request_detach_client_at"},{"id":"Libtmux_unix.Client.resize_control_client_at","publicId":"Libtmux_unix.Client.resize_control_client_at","qualifiedName":"Libtmux_unix.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_control_client_at"},{"id":"Libtmux_unix.Client.resize_pane","publicId":"Libtmux_unix.Client.resize_pane","qualifiedName":"Libtmux_unix.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_pane"},{"id":"Libtmux_unix.Client.resize_window","publicId":"Libtmux_unix.Client.resize_window","qualifiedName":"Libtmux_unix.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_window"},{"id":"Libtmux_unix.Client.respawn_pane","publicId":"Libtmux_unix.Client.respawn_pane","qualifiedName":"Libtmux_unix.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-respawn_pane"},{"id":"Libtmux_unix.Client.rotate_panes","publicId":"Libtmux_unix.Client.rotate_panes","qualifiedName":"Libtmux_unix.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":650,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":650,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rotate_panes"},{"id":"Libtmux_unix.Client.run","publicId":"Libtmux_unix.Client.run","qualifiedName":"Libtmux_unix.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Submit and await. Use the two calls separately to retain an operation\n handle. "],"declarations":[{"kind":"function","text":"val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Submit and await. Use the two calls separately to retain an operation handle."},"signatures":[{"raw":"val run :\n ?cancel:Cancellation.t ->\n t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run"},{"id":"Libtmux_unix.Client.run_hook","publicId":"Libtmux_unix.Client.run_hook","qualifiedName":"Libtmux_unix.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run_hook"},{"id":"Libtmux_unix.Client.select_layout","publicId":"Libtmux_unix.Client.select_layout","qualifiedName":"Libtmux_unix.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_layout.ml","intro":"Apply a layout. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"layout: 3 horizontal panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_layout"},{"id":"Libtmux_unix.Client.select_pane","publicId":"Libtmux_unix.Client.select_pane","qualifiedName":"Libtmux_unix.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":573,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":573,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_pane"},{"id":"Libtmux_unix.Client.select_window_at","publicId":"Libtmux_unix.Client.select_window_at","qualifiedName":"Libtmux_unix.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":533,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":533,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_window_at"},{"id":"Libtmux_unix.Client.send_keys","publicId":"Libtmux_unix.Client.send_keys","qualifiedName":"Libtmux_unix.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":290,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":290,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_keys"},{"id":"Libtmux_unix.Client.send_text","publicId":"Libtmux_unix.Client.send_text","qualifiedName":"Libtmux_unix.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_text :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_text"},{"id":"Libtmux_unix.Client.set_environment","publicId":"Libtmux_unix.Client.set_environment","qualifiedName":"Libtmux_unix.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_environment"},{"id":"Libtmux_unix.Client.set_hook","publicId":"Libtmux_unix.Client.set_hook","qualifiedName":"Libtmux_unix.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_hook"},{"id":"Libtmux_unix.Client.set_option","publicId":"Libtmux_unix.Client.set_option","qualifiedName":"Libtmux_unix.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_option"},{"id":"Libtmux_unix.Client.set_pane_title","publicId":"Libtmux_unix.Client.set_pane_title","qualifiedName":"Libtmux_unix.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_pane_title"},{"id":"Libtmux_unix.Client.signal","publicId":"Libtmux_unix.Client.signal","qualifiedName":"Libtmux_unix.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":303,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":303,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-signal"},{"id":"Libtmux_unix.Client.source","publicId":"Libtmux_unix.Client.source","qualifiedName":"Libtmux_unix.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"unix/libtmux_unix.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_unix-client-source"},{"id":"Libtmux_unix.Client.split_pane","publicId":"Libtmux_unix.Client.split_pane","qualifiedName":"Libtmux_unix.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-split_pane"},{"id":"Libtmux_unix.Client.submit","publicId":"Libtmux_unix.Client.submit","qualifiedName":"Libtmux_unix.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate and reserve queue capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate and reserve queue capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-submit"},{"id":"Libtmux_unix.Client.subscribe","publicId":"Libtmux_unix.Client.subscribe","qualifiedName":"Libtmux_unix.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire verified coverage of the pane's observed session/window. Choose the least session ID unless explicitly supplied. Reuse one lane per session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16 subscribers and eight client lanes including commands. Reserve payload against the shared 32 MiB budget before admission.","body":"Data starts after admission's marker. Layout/membership changes end continuity conservatively. Overflow emits Gap then End, without blocking another subscriber. Blocking delivery advances during Subscription.next. There is no snapshot/history barrier or automatic recovery."},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-subscribe"},{"id":"Libtmux_unix.Client.swap_panes","publicId":"Libtmux_unix.Client.swap_panes","qualifiedName":"Libtmux_unix.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-swap_panes"},{"id":"Libtmux_unix.Client.switch_client_at","publicId":"Libtmux_unix.Client.switch_client_at","qualifiedName":"Libtmux_unix.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-switch_client_at"},{"id":"Libtmux_unix.Client.t","publicId":"Libtmux_unix.Client.t","qualifiedName":"Libtmux_unix.Client.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-client-t"},{"id":"Libtmux_unix.Client.unlink_window_at","publicId":"Libtmux_unix.Client.unlink_window_at","qualifiedName":"Libtmux_unix.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unlink_window_at"},{"id":"Libtmux_unix.Client.unset_environment","publicId":"Libtmux_unix.Client.unset_environment","qualifiedName":"Libtmux_unix.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":331,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":331,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_environment"},{"id":"Libtmux_unix.Client.unset_option","publicId":"Libtmux_unix.Client.unset_option","qualifiedName":"Libtmux_unix.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_option"},{"id":"Libtmux_unix.Client.version","publicId":"Libtmux_unix.Client.version","qualifiedName":"Libtmux_unix.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"unix/libtmux_unix.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_unix-client-version"},{"id":"Libtmux_unix.Client.wait_for","publicId":"Libtmux_unix.Client.wait_for","qualifiedName":"Libtmux_unix.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":299,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for"},{"id":"Libtmux_unix.Client.wait_for_text","publicId":"Libtmux_unix.Client.wait_for_text","qualifiedName":"Libtmux_unix.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. No capture/stream barrier exists.\n "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Subscribe, capture the ordinary screen immediately, and recapture after output. Membership/overflow gaps trigger explicit fresh capture and new coverage in the same binding. Maximum pattern: 64 KiB. Success returns a capture that contains the text. Transient text between captures may be missed. Check the deadline between bounded acquisitions; in-flight I/O retains the client's exchange timeout. No capture/stream barrier exists."},"signatures":[{"raw":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for_text"},{"id":"Libtmux_unix.Client.zoom_pane","publicId":"Libtmux_unix.Client.zoom_pane","qualifiedName":"Libtmux_unix.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":659,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":659,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-zoom_pane"},{"id":"Libtmux_unix.Operation","publicId":"Libtmux_unix.Operation","qualifiedName":"Libtmux_unix.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** No I/O. Results remain inspectable after client closure, on the owning\n domain. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_unix-operation"},{"id":"Libtmux_unix.Operation.cancel","publicId":"Libtmux_unix.Operation.cancel","qualifiedName":"Libtmux_unix.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"Remove queued work before it is written. Admitted commands retain their owner and are drained by {!Client.await}; cancellation does not undo effects. Returns `Busy` while another blocking caller owns the client; use a {!Cancellation.t} token to interrupt that caller."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-cancel"},{"id":"Libtmux_unix.Operation.cleanup_receipt","publicId":"Libtmux_unix.Operation.cleanup_receipt","qualifiedName":"Libtmux_unix.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n}","params":[]}],"slug":"libtmux_unix-operation-cleanup_receipt"},{"id":"Libtmux_unix.Operation.cleanup_receipt.cause","publicId":"Libtmux_unix.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"unix/libtmux_unix.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_unix.Operation.cause","slug":"libtmux_unix-operation-cleanup_receipt-cause"},{"id":"Libtmux_unix.Operation.cleanup_receipt.created","publicId":"Libtmux_unix.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"unix/libtmux_unix.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_unix.Operation.created","slug":"libtmux_unix-operation-cleanup_receipt-created"},{"id":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_unix.Operation.owned_buffers","slug":"libtmux_unix-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_unix.Operation.id","publicId":"Libtmux_unix.Operation.id","qualifiedName":"Libtmux_unix.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"unix/libtmux_unix.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_unix-operation-id"},{"id":"Libtmux_unix.Operation.inspect","publicId":"Libtmux_unix.Operation.inspect","qualifiedName":"Libtmux_unix.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" No I/O. Results remain inspectable after client closure, on the owning\n domain. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"No I/O. Results remain inspectable after client closure, on the owning domain."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-inspect"},{"id":"Libtmux_unix.Operation.state","publicId":"Libtmux_unix.Operation.state","qualifiedName":"Libtmux_unix.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a state =\n Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","params":[]}],"slug":"libtmux_unix-operation-state"},{"id":"Libtmux_unix.Operation.state.Acknowledged","publicId":"Libtmux_unix.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"unix/libtmux_unix.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Acknowledged","slug":"libtmux_unix-operation-state-acknowledged"},{"id":"Libtmux_unix.Operation.state.Finished","publicId":"Libtmux_unix.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":77,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":77,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Finished","slug":"libtmux_unix-operation-state-finished"},{"id":"Libtmux_unix.Operation.state.Not_started","publicId":"Libtmux_unix.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"unix/libtmux_unix.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Not_started","slug":"libtmux_unix-operation-state-not_started"},{"id":"Libtmux_unix.Operation.state.Outcome_unknown","publicId":"Libtmux_unix.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":78,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":78,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Outcome_unknown","slug":"libtmux_unix-operation-state-outcome_unknown"},{"id":"Libtmux_unix.Operation.state.Queued","publicId":"Libtmux_unix.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Queued","slug":"libtmux_unix-operation-state-queued"},{"id":"Libtmux_unix.Operation.state.Written","publicId":"Libtmux_unix.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"unix/libtmux_unix.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Written","slug":"libtmux_unix-operation-state-written"},{"id":"Libtmux_unix.Operation.t","publicId":"Libtmux_unix.Operation.t","qualifiedName":"Libtmux_unix.Operation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"unix/libtmux_unix.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-operation-t"},{"id":"Libtmux_unix.Rendered","publicId":"Libtmux_unix.Rendered","qualifiedName":"Libtmux_unix.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Blocking native Linux transport. No Eio scheduler is started. "],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"unix/libtmux_unix.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","doc":{"summary":"Blocking native Linux transport. No Eio scheduler is started."},"exportedFrom":"Libtmux.Captured_text","slug":"libtmux_unix-rendered"},{"id":"Libtmux_unix.Subscription","publicId":"Libtmux_unix.Subscription","qualifiedName":"Libtmux_unix.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. *)\n\n val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Discard pending data and retain End Cancelled. Release an unused lane.\n Does not stop the daemon. *)\n\n val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_unix-subscription"},{"id":"Libtmux_unix.Subscription.close","publicId":"Libtmux_unix.Subscription.close","qualifiedName":"Libtmux_unix.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Discard pending data and retain End Cancelled. Release an unused lane.\n Does not stop the daemon. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Discard pending data and retain End Cancelled. Release an unused lane. Does not stop the daemon."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-close"},{"id":"Libtmux_unix.Subscription.next","publicId":"Libtmux_unix.Subscription.next","qualifiedName":"Libtmux_unix.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. "],"declarations":[{"kind":"function","text":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Pump all subscription lanes until one event is available. Default deadline is one second. `None` follows a consumed End. A deadline keeps the subscription active; cancellation closes it and raises Cancelled."},"signatures":[{"raw":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-next"},{"id":"Libtmux_unix.Subscription.poll","publicId":"Libtmux_unix.Subscription.poll","qualifiedName":"Libtmux_unix.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Remove a queued event without I/O. Owning domain only, including after client closure. `None` means no queued event, not proof of continuity."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-poll"},{"id":"Libtmux_unix.Subscription.t","publicId":"Libtmux_unix.Subscription.t","qualifiedName":"Libtmux_unix.Subscription.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-subscription-t"},{"id":"Libtmux_unix.Subscription.wait_for_bytes","publicId":"Libtmux_unix.Subscription.wait_for_bytes","qualifiedName":"Libtmux_unix.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Consume future bytes until the nonempty pattern matches, including across Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's end within its consumed event. Gaps stop matching; no rendered or earlier output is searched. Timeout leaves the subscription active."},"signatures":[{"raw":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_unix-subscription-wait_for_bytes"},{"id":"Libtmux_unix.Terminal","publicId":"Libtmux_unix.Terminal","qualifiedName":"Libtmux_unix.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises [Cancellation.Cancelled]. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_unix-terminal"},{"id":"Libtmux_unix.Terminal.attach_current","publicId":"Libtmux_unix.Terminal.attach_current","qualifiedName":"Libtmux_unix.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises [Cancellation.Cancelled]. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Terminal","doc":{"summary":"Run an interactive terminal client until it exits. Select the exact session ID on the daemon currently listening at `endpoint`; this is explicitly unbound and accepts no captured target. No retry or daemon startup occurs. A successful result proves client exit, not continued attachment. Diagnostics go to `stderr`.","body":"Descriptors default to the application's standard streams and remain caller-owned. `stdin` must be a terminal. Environment updates and read-only mode are disabled by default; inherited `TMUX` and `TMUX_PANE` are removed. Cancellation terminates and reaps this terminal client, leaves the daemon running, then raises `Cancellation.Cancelled`."},"signatures":[{"raw":"val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stdout","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stderr","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-terminal-attach_current"},{"id":"Libtmux_unix.Workspace","publicId":"Libtmux_unix.Workspace","qualifiedName":"Libtmux_unix.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":696,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Apply validated plans with blocking I/O and scoped cancellation tokens.\n Execution handles retain journals and borrow existing clients; bootstrap\n handles own their newly bound clients without owning the daemon. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. *)\n\n val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. *)\n\n val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":696,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","doc":{"summary":"Apply validated plans with blocking I/O and scoped cancellation tokens. Execution handles retain journals and borrow existing clients; bootstrap handles own their newly bound clients without owning the daemon."},"slug":"libtmux_unix-workspace"},{"id":"Libtmux_unix.Workspace.await","publicId":"Libtmux_unix.Workspace.await","qualifiedName":"Libtmux_unix.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":713,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":713,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Expected apply failures are retained receipts. Cancellation propagates after recording progress and at most 500 ms of protected compensation."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-await"},{"id":"Libtmux_unix.Workspace.client","publicId":"Libtmux_unix.Workspace.client","qualifiedName":"Libtmux_unix.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"unix/libtmux_unix.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_unix-workspace-client"},{"id":"Libtmux_unix.Workspace.close","publicId":"Libtmux_unix.Workspace.close","qualifiedName":"Libtmux_unix.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Completed journals remain readable after close."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-close"},{"id":"Libtmux_unix.Workspace.inspect","publicId":"Libtmux_unix.Workspace.inspect","qualifiedName":"Libtmux_unix.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-inspect"},{"id":"Libtmux_unix.Workspace.submit","publicId":"Libtmux_unix.Workspace.submit","qualifiedName":"Libtmux_unix.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":699,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":699,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a generation-bound execution handle without I/O. The caller owns the supplied client; closing this handle leaves that client open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit"},{"id":"Libtmux_unix.Workspace.submit_bootstrap","publicId":"Libtmux_unix.Workspace.submit_bootstrap","qualifiedName":"Libtmux_unix.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":704,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":704,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a handle for a missing-endpoint plan. Awaiting it starts control new-session and binds the same connection. The handle owns its new client; it never acquires ownership of the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit_bootstrap"},{"id":"Libtmux_unix.Workspace.t","publicId":"Libtmux_unix.Workspace.t","qualifiedName":"Libtmux_unix.Workspace.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-workspace-t"},{"id":"Libtmux_workspace","publicId":"Libtmux_workspace","qualifiedName":"Libtmux_workspace","name":"Libtmux_workspace","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" {!Config} validates workspace descriptions and {!Plan} previews their\n actions without I/O. {!Execution} delegates effects to an explicit executor\n and retains a recovery journal. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for JSON loading, preview, apply and receipt inspection. "],"declarations":[{"kind":"module","text":"","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"doc":{"summary":"{!Config} validates workspace descriptions and {!Plan} previews their actions without I/O. {!Execution} delegates effects to an explicit executor and retains a recovery journal. See the [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for JSON loading, preview, apply and receipt inspection."},"slug":"libtmux_workspace"},{"id":"Libtmux_workspace.Config","publicId":"Libtmux_workspace.Config","qualifiedName":"Libtmux_workspace.Config","name":"Config","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Validate native workspace values without contacting tmux or reading the\n filesystem. Relative directories resolve against the document directory;\n only declared variables participate in expansion. "],"declarations":[{"kind":"module","text":"module Config : sig\n type error = { path : string; message : string }\n\n val pp_error : Format.formatter -> error -> unit\n\n type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }\n\n type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n\n type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }\n\n type t\n\n val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane\n\n val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window\n (** Builders are unchecked descriptions; {!make} validates the whole document.\n *)\n\n val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result\n (** Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. *)\n\n val session : t -> string\n val windows : t -> window Iarray.t\n val environment : t -> (string * string) list\n val options : t -> setting list\n val dimensions : t -> int * int\nend","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace","doc":{"summary":"Validate native workspace values without contacting tmux or reading the filesystem. Relative directories resolve against the document directory; only declared variables participate in expansion."},"slug":"libtmux_workspace-config"},{"id":"Libtmux_workspace.Config.dimensions","publicId":"Libtmux_workspace.Config.dimensions","qualifiedName":"Libtmux_workspace.Config.dimensions","name":"dimensions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dimensions : t -> int * int","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val dimensions : t -> int * int","params":[{"name":"arg1","type":"t"}],"returns":"int * int"}],"slug":"libtmux_workspace-config-dimensions"},{"id":"Libtmux_workspace.Config.environment","publicId":"Libtmux_workspace.Config.environment","qualifiedName":"Libtmux_workspace.Config.environment","name":"environment","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val environment : t -> (string * string) list","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val environment : t -> (string * string) list","params":[{"name":"arg1","type":"t"}],"returns":"(string * string) list"}],"slug":"libtmux_workspace-config-environment"},{"id":"Libtmux_workspace.Config.error","publicId":"Libtmux_workspace.Config.error","qualifiedName":"Libtmux_workspace.Config.error","name":"error","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type error = { path : string; message : string }","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type error = { path : string; message : string; }","params":[]}],"slug":"libtmux_workspace-config-error"},{"id":"Libtmux_workspace.Config.error.message","publicId":"Libtmux_workspace.Config.error.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.message","slug":"libtmux_workspace-config-error-message"},{"id":"Libtmux_workspace.Config.error.path","publicId":"Libtmux_workspace.Config.error.path","name":"path","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"path : string;","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.path","slug":"libtmux_workspace-config-error-path"},{"id":"Libtmux_workspace.Config.make","publicId":"Libtmux_workspace.Config.make","qualifiedName":"Libtmux_workspace.Config.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. "],"declarations":[{"kind":"function","text":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Resolve relative working directories against the absolute document directory. Explicit variables expand `${NAME}` in directories only; they never read the process environment. Cycles and unknown names fail. Command arguments, shell code, startup text and environment values remain literal.","body":"At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names and settings must be unique in their scope. No filesystem is consulted."},"signatures":[{"raw":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string -> session:string -> window list -> (t, error) result","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"variables","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"directory","type":"string","keywordOnly":true},{"name":"session","type":"string","keywordOnly":true},{"name":"arg1","type":"window list"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-config-make"},{"id":"Libtmux_workspace.Config.options","publicId":"Libtmux_workspace.Config.options","qualifiedName":"Libtmux_workspace.Config.options","name":"options","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val options : t -> setting list","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val options : t -> setting list","params":[{"name":"arg1","type":"t"}],"returns":"setting list"}],"slug":"libtmux_workspace-config-options"},{"id":"Libtmux_workspace.Config.pane","publicId":"Libtmux_workspace.Config.pane","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size -> unit -> pane","params":[{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"startup","type":"string list","optional":true,"keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"pane"}],"slug":"libtmux_workspace-config-pane"},{"id":"Libtmux_workspace.Config.pane:type","publicId":"Libtmux_workspace.Config.pane:type","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n}","params":[]}],"slug":"libtmux_workspace-config-pane-type"},{"id":"Libtmux_workspace.Config.pane:type.direction","publicId":"Libtmux_workspace.Config.pane:type.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Config.direction","slug":"libtmux_workspace-config-pane-type-direction"},{"id":"Libtmux_workspace.Config.pane:type.options","publicId":"Libtmux_workspace.Config.pane:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-pane-type-options"},{"id":"Libtmux_workspace.Config.pane:type.size","publicId":"Libtmux_workspace.Config.pane:type.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Config.size","slug":"libtmux_workspace-config-pane-type-size"},{"id":"Libtmux_workspace.Config.pane:type.spawn","publicId":"Libtmux_workspace.Config.pane:type.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Config.spawn","slug":"libtmux_workspace-config-pane-type-spawn"},{"id":"Libtmux_workspace.Config.pane:type.startup","publicId":"Libtmux_workspace.Config.pane:type.startup","name":"startup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"startup : string list;","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"string list","qualifiedName":"Libtmux_workspace.Config.startup","slug":"libtmux_workspace-config-pane-type-startup"},{"id":"Libtmux_workspace.Config.pp_error","publicId":"Libtmux_workspace.Config.pp_error","qualifiedName":"Libtmux_workspace.Config.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-config-pp_error"},{"id":"Libtmux_workspace.Config.session","publicId":"Libtmux_workspace.Config.session","qualifiedName":"Libtmux_workspace.Config.session","name":"session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> string","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val session : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_workspace-config-session"},{"id":"Libtmux_workspace.Config.setting","publicId":"Libtmux_workspace.Config.setting","qualifiedName":"Libtmux_workspace.Config.setting","name":"setting","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n}","params":[]}],"slug":"libtmux_workspace-config-setting"},{"id":"Libtmux_workspace.Config.setting.index","publicId":"Libtmux_workspace.Config.setting.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.setting","type":"int option","qualifiedName":"Libtmux_workspace.Config.index","slug":"libtmux_workspace-config-setting-index"},{"id":"Libtmux_workspace.Config.setting.name","publicId":"Libtmux_workspace.Config.setting.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.setting","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-setting-name"},{"id":"Libtmux_workspace.Config.setting.value","publicId":"Libtmux_workspace.Config.setting.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Libtmux.Options.scalar;","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.setting","type":"Libtmux.Options.scalar","qualifiedName":"Libtmux_workspace.Config.value","slug":"libtmux_workspace-config-setting-value"},{"id":"Libtmux_workspace.Config.t","publicId":"Libtmux_workspace.Config.t","qualifiedName":"Libtmux_workspace.Config.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-config-t"},{"id":"Libtmux_workspace.Config.window","publicId":"Libtmux_workspace.Config.window","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Builders are unchecked descriptions; {!make} validates the whole document.\n "],"declarations":[{"kind":"function","text":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Builders are unchecked descriptions; {!make} validates the whole document."},"signatures":[{"raw":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t -> name:string -> pane list -> window","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"layout","type":"Libtmux.Layout.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"pane list"}],"returns":"window"}],"slug":"libtmux_workspace-config-window"},{"id":"Libtmux_workspace.Config.window:type","publicId":"Libtmux_workspace.Config.window:type","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n}","params":[]}],"slug":"libtmux_workspace-config-window-type"},{"id":"Libtmux_workspace.Config.window:type.cwd","publicId":"Libtmux_workspace.Config.window:type.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string option","qualifiedName":"Libtmux_workspace.Config.cwd","slug":"libtmux_workspace-config-window-type-cwd"},{"id":"Libtmux_workspace.Config.window:type.environment","publicId":"Libtmux_workspace.Config.window:type.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.window:type","type":"(string * string) list","qualifiedName":"Libtmux_workspace.Config.environment","slug":"libtmux_workspace-config-window-type-environment"},{"id":"Libtmux_workspace.Config.window:type.layout","publicId":"Libtmux_workspace.Config.window:type.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : Libtmux.Layout.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.window:type","type":"Libtmux.Layout.t option","qualifiedName":"Libtmux_workspace.Config.layout","slug":"libtmux_workspace-config-window-type-layout"},{"id":"Libtmux_workspace.Config.window:type.name","publicId":"Libtmux_workspace.Config.window:type.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-window-type-name"},{"id":"Libtmux_workspace.Config.window:type.options","publicId":"Libtmux_workspace.Config.window:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.window:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-window-type-options"},{"id":"Libtmux_workspace.Config.window:type.panes","publicId":"Libtmux_workspace.Config.window:type.panes","name":"panes","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"panes : pane list;","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.window:type","type":"pane list","qualifiedName":"Libtmux_workspace.Config.panes","slug":"libtmux_workspace-config-window-type-panes"},{"id":"Libtmux_workspace.Config.windows","publicId":"Libtmux_workspace.Config.windows","qualifiedName":"Libtmux_workspace.Config.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> window Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val windows : t -> window Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"window Iarray.t"}],"slug":"libtmux_workspace-config-windows"},{"id":"Libtmux_workspace.Execution","publicId":"Libtmux_workspace.Execution","qualifiedName":"Libtmux_workspace.Execution","name":"Execution","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":162,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Apply a plan once and retain an immutable journal of effects, uncertainty\n and cleanup. Ordinary applications use their backend's Workspace module;\n executors below integrate another transport. "],"declarations":[{"kind":"module","text":"module Execution : sig\n type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }\n (** A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. *)\n\n type certainty = Not_started | Applied | Unknown\n\n type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }\n (** Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. *)\n\n type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t\n\n type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }\n\n type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t\n\n type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }\n\n type t\n\n val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. *)\n\n val inspect : t -> receipt\n (** Return an immutable copy of the retained journal without I/O. *)\n\n val await : ?compensate_on_failure:bool -> t -> receipt\n (** Execute once, rechecking generation and captured preconditions first.\n Expected failures return a partial journal. Exceptions, including native\n cancellation, propagate after recording progress and bounded compensation.\n Subsequent calls only return the retained receipt; mutations never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":162,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace","doc":{"summary":"Apply a plan once and retain an immutable journal of effects, uncertainty and cleanup. Ordinary applications use their backend's Workspace module; executors below integrate another transport."},"slug":"libtmux_workspace-execution"},{"id":"Libtmux_workspace.Execution.await","publicId":"Libtmux_workspace.Execution.await","qualifiedName":"Libtmux_workspace.Execution.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Execute once, rechecking generation and captured preconditions first.\n Expected failures return a partial journal. Exceptions, including native\n cancellation, propagate after recording progress and bounded compensation.\n Subsequent calls only return the retained receipt; mutations never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. "],"declarations":[{"kind":"function","text":"val await : ?compensate_on_failure:bool -> t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Execute once, rechecking generation and captured preconditions first. Expected failures return a partial journal. Exceptions, including native cancellation, propagate after recording progress and bounded compensation. Subsequent calls only return the retained receipt; mutations never retry.","body":"Compensation kills only panes reported by completed creation commands, in reverse creation order. tmux removes windows and sessions that become empty. Containers with foreign panes or window links remain; adding a borrowed pane never makes it eligible for cleanup. Cleanup failures have separate outcomes."},"signatures":[{"raw":"val await : ?compensate_on_failure:bool -> t -> receipt","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-await"},{"id":"Libtmux_workspace.Execution.certainty","publicId":"Libtmux_workspace.Execution.certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","name":"certainty","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type certainty = Not_started | Applied | Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type certainty = Not_started | Applied | Unknown","params":[]}],"slug":"libtmux_workspace-execution-certainty"},{"id":"Libtmux_workspace.Execution.certainty.Applied","publicId":"Libtmux_workspace.Execution.certainty.Applied","name":"Applied","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applied","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applied","slug":"libtmux_workspace-execution-certainty-applied"},{"id":"Libtmux_workspace.Execution.certainty.Not_started","publicId":"Libtmux_workspace.Execution.certainty.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Not_started","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Not_started","slug":"libtmux_workspace-execution-certainty-not_started"},{"id":"Libtmux_workspace.Execution.certainty.Unknown","publicId":"Libtmux_workspace.Execution.certainty.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Unknown","slug":"libtmux_workspace-execution-certainty-unknown"},{"id":"Libtmux_workspace.Execution.cleanup","publicId":"Libtmux_workspace.Execution.cleanup","qualifiedName":"Libtmux_workspace.Execution.cleanup","name":"cleanup","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n}","params":[]}],"slug":"libtmux_workspace-execution-cleanup"},{"id":"Libtmux_workspace.Execution.cleanup.outcome","publicId":"Libtmux_workspace.Execution.cleanup.outcome","name":"outcome","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":214,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"outcome : (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":214,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"(unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.outcome","slug":"libtmux_workspace-execution-cleanup-outcome"},{"id":"Libtmux_workspace.Execution.cleanup.pane","publicId":"Libtmux_workspace.Execution.cleanup.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.target;","source":{"file":"workspace/libtmux_workspace.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"Libtmux.Pane.target","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-cleanup-pane"},{"id":"Libtmux_workspace.Execution.create","publicId":"Libtmux_workspace.Execution.create","qualifiedName":"Libtmux_workspace.Execution.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":237,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. "],"declarations":[{"kind":"function","text":"val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"workspace/libtmux_workspace.mli","line":237,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Allocate a retained handle without I/O. IDs have 1..64 ASCII letters, digits, underscores or hyphens."},"signatures":[{"raw":"val create :\n operation_id:string ->\n executor:executor -> Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"operation_id","type":"string","keywordOnly":true},{"name":"executor","type":"executor","keywordOnly":true},{"name":"arg1","type":"Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_workspace-execution-create"},{"id":"Libtmux_workspace.Execution.executor","publicId":"Libtmux_workspace.Execution.executor","qualifiedName":"Libtmux_workspace.Execution.executor","name":"executor","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. "],"declarations":[{"kind":"struct","text":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Backend integration: `inspect` returns a callback tied to the latest operation, reading only its retained state even after later submissions. `protect` bounds compensation and shields it from caller cancellation, reporting expected failures as `Error`. Ordinary callers use their backend's Workspace API."},"signatures":[{"raw":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n}","params":[]}],"slug":"libtmux_workspace-execution-executor"},{"id":"Libtmux_workspace.Execution.executor.bootstrap","publicId":"Libtmux_workspace.Execution.executor.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.executor","type":"Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.bootstrap","slug":"libtmux_workspace-execution-executor-bootstrap"},{"id":"Libtmux_workspace.Execution.executor.capture","publicId":"Libtmux_workspace.Execution.executor.capture","name":"capture","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":184,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":184,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.capture","slug":"libtmux_workspace-execution-executor-capture"},{"id":"Libtmux_workspace.Execution.executor.inspect","publicId":"Libtmux_workspace.Execution.executor.inspect","name":"inspect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inspect : unit -> unit -> observation;","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> unit -> observation","qualifiedName":"Libtmux_workspace.Execution.inspect","slug":"libtmux_workspace-execution-executor-inspect"},{"id":"Libtmux_workspace.Execution.executor.protect","publicId":"Libtmux_workspace.Execution.executor.protect","name":"protect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.executor","type":"(unit -> unit) -> (unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.protect","slug":"libtmux_workspace-execution-executor-protect"},{"id":"Libtmux_workspace.Execution.executor.run","publicId":"Libtmux_workspace.Execution.executor.run","name":"run","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.executor","type":"'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.run","slug":"libtmux_workspace-execution-executor-run"},{"id":"Libtmux_workspace.Execution.executor.source","publicId":"Libtmux_workspace.Execution.executor.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : unit -> Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-executor-source"},{"id":"Libtmux_workspace.Execution.hint","publicId":"Libtmux_workspace.Execution.hint","qualifiedName":"Libtmux_workspace.Execution.hint","name":"hint","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. "],"declarations":[{"kind":"struct","text":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"A creation row received before daemon binding finished. Hints are not operational targets and are never eligible for automatic compensation."},"signatures":[{"raw":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n}","params":[]}],"slug":"libtmux_workspace-execution-hint"},{"id":"Libtmux_workspace.Execution.hint.pane","publicId":"Libtmux_workspace.Execution.hint.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-hint-pane"},{"id":"Libtmux_workspace.Execution.hint.pane_index","publicId":"Libtmux_workspace.Execution.hint.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.pane_index","slug":"libtmux_workspace-execution-hint-pane_index"},{"id":"Libtmux_workspace.Execution.hint.server_pid","publicId":"Libtmux_workspace.Execution.hint.server_pid","name":"server_pid","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"server_pid : int;","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.server_pid","slug":"libtmux_workspace-execution-hint-server_pid"},{"id":"Libtmux_workspace.Execution.hint.session","publicId":"Libtmux_workspace.Execution.hint.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Libtmux.Session.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Session.Id.t","qualifiedName":"Libtmux_workspace.Execution.session","slug":"libtmux_workspace-execution-hint-session"},{"id":"Libtmux_workspace.Execution.hint.window","publicId":"Libtmux_workspace.Execution.hint.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Libtmux.Window.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Window.Id.t","qualifiedName":"Libtmux_workspace.Execution.window","slug":"libtmux_workspace-execution-hint-window"},{"id":"Libtmux_workspace.Execution.hint.window_index","publicId":"Libtmux_workspace.Execution.hint.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.window_index","slug":"libtmux_workspace-execution-hint-window_index"},{"id":"Libtmux_workspace.Execution.inspect","publicId":"Libtmux_workspace.Execution.inspect","qualifiedName":"Libtmux_workspace.Execution.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Return an immutable copy of the retained journal without I/O. "],"declarations":[{"kind":"function","text":"val inspect : t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Return an immutable copy of the retained journal without I/O."},"signatures":[{"raw":"val inspect : t -> receipt","params":[{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-inspect"},{"id":"Libtmux_workspace.Execution.observation","publicId":"Libtmux_workspace.Execution.observation","qualifiedName":"Libtmux_workspace.Execution.observation","name":"observation","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":176,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":176,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n}","params":[]}],"slug":"libtmux_workspace-execution-observation"},{"id":"Libtmux_workspace.Execution.observation.certainty","publicId":"Libtmux_workspace.Execution.observation.certainty","name":"certainty","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"certainty : certainty;","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.observation","type":"certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","slug":"libtmux_workspace-execution-observation-certainty"},{"id":"Libtmux_workspace.Execution.observation.created","publicId":"Libtmux_workspace.Execution.observation.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.observation","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-observation-created"},{"id":"Libtmux_workspace.Execution.observation.unbound","publicId":"Libtmux_workspace.Execution.observation.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.observation","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-observation-unbound"},{"id":"Libtmux_workspace.Execution.receipt","publicId":"Libtmux_workspace.Execution.receipt","qualifiedName":"Libtmux_workspace.Execution.receipt","name":"receipt","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n}","params":[]}],"slug":"libtmux_workspace-execution-receipt"},{"id":"Libtmux_workspace.Execution.receipt.cleanup","publicId":"Libtmux_workspace.Execution.receipt.cleanup","name":"cleanup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup : cleanup Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"cleanup Iarray.t","qualifiedName":"Libtmux_workspace.Execution.cleanup","slug":"libtmux_workspace-execution-receipt-cleanup"},{"id":"Libtmux_workspace.Execution.receipt.cleanup_error","publicId":"Libtmux_workspace.Execution.receipt.cleanup_error","name":"cleanup_error","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup_error : Libtmux.Error.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_workspace.Execution.cleanup_error","slug":"libtmux_workspace-execution-receipt-cleanup_error"},{"id":"Libtmux_workspace.Execution.receipt.operation_id","publicId":"Libtmux_workspace.Execution.receipt.operation_id","name":"operation_id","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation_id : string;","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"string","qualifiedName":"Libtmux_workspace.Execution.operation_id","slug":"libtmux_workspace-execution-receipt-operation_id"},{"id":"Libtmux_workspace.Execution.receipt.source","publicId":"Libtmux_workspace.Execution.receipt.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":228,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":228,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-receipt-source"},{"id":"Libtmux_workspace.Execution.receipt.status","publicId":"Libtmux_workspace.Execution.receipt.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : status;","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-receipt-status"},{"id":"Libtmux_workspace.Execution.receipt.steps","publicId":"Libtmux_workspace.Execution.receipt.steps","name":"steps","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"steps : step Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"step Iarray.t","qualifiedName":"Libtmux_workspace.Execution.steps","slug":"libtmux_workspace-execution-receipt-steps"},{"id":"Libtmux_workspace.Execution.status","publicId":"Libtmux_workspace.Execution.status","qualifiedName":"Libtmux_workspace.Execution.status","name":"status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type status =\n Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","params":[]}],"slug":"libtmux_workspace-execution-status"},{"id":"Libtmux_workspace.Execution.status.Applying","publicId":"Libtmux_workspace.Execution.status.Applying","name":"Applying","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applying","source":{"file":"workspace/libtmux_workspace.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applying","slug":"libtmux_workspace-execution-status-applying"},{"id":"Libtmux_workspace.Execution.status.Interrupted","publicId":"Libtmux_workspace.Execution.status.Interrupted","name":"Interrupted","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Interrupted","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Interrupted","slug":"libtmux_workspace-execution-status-interrupted"},{"id":"Libtmux_workspace.Execution.status.Partial","publicId":"Libtmux_workspace.Execution.status.Partial","name":"Partial","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Partial","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Partial","slug":"libtmux_workspace-execution-status-partial"},{"id":"Libtmux_workspace.Execution.status.Queued","publicId":"Libtmux_workspace.Execution.status.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"workspace/libtmux_workspace.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Queued","slug":"libtmux_workspace-execution-status-queued"},{"id":"Libtmux_workspace.Execution.status.Rejected","publicId":"Libtmux_workspace.Execution.status.Rejected","name":"Rejected","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rejected of Plan.error","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Rejected","slug":"libtmux_workspace-execution-status-rejected"},{"id":"Libtmux_workspace.Execution.status.Succeeded","publicId":"Libtmux_workspace.Execution.status.Succeeded","name":"Succeeded","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Succeeded","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Succeeded","slug":"libtmux_workspace-execution-status-succeeded"},{"id":"Libtmux_workspace.Execution.status.Unavailable","publicId":"Libtmux_workspace.Execution.status.Unavailable","name":"Unavailable","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Unavailable","slug":"libtmux_workspace-execution-status-unavailable"},{"id":"Libtmux_workspace.Execution.step","publicId":"Libtmux_workspace.Execution.step","qualifiedName":"Libtmux_workspace.Execution.step","name":"step","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n}","params":[]}],"slug":"libtmux_workspace-execution-step"},{"id":"Libtmux_workspace.Execution.step.action","publicId":"Libtmux_workspace.Execution.step.action","name":"action","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"action : Plan.action;","source":{"file":"workspace/libtmux_workspace.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step","type":"Plan.action","qualifiedName":"Libtmux_workspace.Execution.action","slug":"libtmux_workspace-execution-step-action"},{"id":"Libtmux_workspace.Execution.step.created","publicId":"Libtmux_workspace.Execution.step.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-step-created"},{"id":"Libtmux_workspace.Execution.step.index","publicId":"Libtmux_workspace.Execution.step.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step","type":"int","qualifiedName":"Libtmux_workspace.Execution.index","slug":"libtmux_workspace-execution-step-index"},{"id":"Libtmux_workspace.Execution.step.status","publicId":"Libtmux_workspace.Execution.step.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : step_status;","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step","type":"step_status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-step-status"},{"id":"Libtmux_workspace.Execution.step.unbound","publicId":"Libtmux_workspace.Execution.step.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-step-unbound"},{"id":"Libtmux_workspace.Execution.step_status","publicId":"Libtmux_workspace.Execution.step_status","qualifiedName":"Libtmux_workspace.Execution.step_status","name":"step_status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":196,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":196,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step_status =\n Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","params":[]}],"slug":"libtmux_workspace-execution-step_status"},{"id":"Libtmux_workspace.Execution.step_status.Completed","publicId":"Libtmux_workspace.Execution.step_status.Completed","name":"Completed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Completed","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Completed","slug":"libtmux_workspace-execution-step_status-completed"},{"id":"Libtmux_workspace.Execution.step_status.Failed","publicId":"Libtmux_workspace.Execution.step_status.Failed","name":"Failed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Failed of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Failed","slug":"libtmux_workspace-execution-step_status-failed"},{"id":"Libtmux_workspace.Execution.step_status.Pending","publicId":"Libtmux_workspace.Execution.step_status.Pending","name":"Pending","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":197,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pending","source":{"file":"workspace/libtmux_workspace.mli","line":197,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Pending","slug":"libtmux_workspace-execution-step_status-pending"},{"id":"Libtmux_workspace.Execution.step_status.Running","publicId":"Libtmux_workspace.Execution.step_status.Running","name":"Running","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Running","source":{"file":"workspace/libtmux_workspace.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Running","slug":"libtmux_workspace-execution-step_status-running"},{"id":"Libtmux_workspace.Execution.step_status.Skipped","publicId":"Libtmux_workspace.Execution.step_status.Skipped","name":"Skipped","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Skipped","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Skipped","slug":"libtmux_workspace-execution-step_status-skipped"},{"id":"Libtmux_workspace.Execution.step_status.Uncertain","publicId":"Libtmux_workspace.Execution.step_status.Uncertain","name":"Uncertain","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Uncertain","slug":"libtmux_workspace-execution-step_status-uncertain"},{"id":"Libtmux_workspace.Execution.t","publicId":"Libtmux_workspace.Execution.t","qualifiedName":"Libtmux_workspace.Execution.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-execution-t"},{"id":"Libtmux_workspace.Plan","publicId":"Libtmux_workspace.Plan","qualifiedName":"Libtmux_workspace.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Preview ordered workspace actions against one observed daemon generation. A\n plan retains collision policy and bound targets; it is not a portable\n command script. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type server_policy = Create_if_missing | Require_existing_server\n type window_collision = Reject\n\n type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }\n\n type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale\n\n val pp_error : Format.formatter -> error -> unit\n\n type scope = Session | Window of int | Pane of { window : int; pane : int }\n\n type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t\n\n type t\n\n val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result\n (** [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. *)\n\n val endpoint : t -> Libtmux.Endpoint.t\n val source : t -> Libtmux.Source.t option\n val existing_session : t -> Libtmux.Session.target option\n val actions : t -> action Iarray.t\n val config : t -> Config.t\n\n val check_source : t -> Libtmux.Source.t option -> (unit, error) result\n (** Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace","doc":{"summary":"Preview ordered workspace actions against one observed daemon generation. A plan retains collision policy and bound targets; it is not a portable command script."},"slug":"libtmux_workspace-plan"},{"id":"Libtmux_workspace.Plan.action","publicId":"Libtmux_workspace.Plan.action","qualifiedName":"Libtmux_workspace.Plan.action","name":"action","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type action =\n Create_session of { bootstrap : bool; name : string;\n window_name : string; spawn : Libtmux.Spawn.t; width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t;\n }\n | Split_pane of { window : int; pane : int; spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string; }\n | Send_enter of { window : int; pane : int; }\n | Select_layout of int * Libtmux.Layout.t","params":[]}],"slug":"libtmux_workspace-plan-action"},{"id":"Libtmux_workspace.Plan.action.Create_session","publicId":"Libtmux_workspace.Plan.action.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_session","slug":"libtmux_workspace-plan-action-create_session"},{"id":"Libtmux_workspace.Plan.action.Create_session.bootstrap","publicId":"Libtmux_workspace.Plan.action.Create_session.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : bool;","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"bool","qualifiedName":"Libtmux_workspace.Plan.bootstrap","slug":"libtmux_workspace-plan-action-create_session-bootstrap"},{"id":"Libtmux_workspace.Plan.action.Create_session.height","publicId":"Libtmux_workspace.Plan.action.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.height","slug":"libtmux_workspace-plan-action-create_session-height"},{"id":"Libtmux_workspace.Plan.action.Create_session.name","publicId":"Libtmux_workspace.Plan.action.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_session-name"},{"id":"Libtmux_workspace.Plan.action.Create_session.spawn","publicId":"Libtmux_workspace.Plan.action.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_session-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_session.width","publicId":"Libtmux_workspace.Plan.action.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.width","slug":"libtmux_workspace-plan-action-create_session-width"},{"id":"Libtmux_workspace.Plan.action.Create_session.window_name","publicId":"Libtmux_workspace.Plan.action.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.window_name","slug":"libtmux_workspace-plan-action-create_session-window_name"},{"id":"Libtmux_workspace.Plan.action.Create_window","publicId":"Libtmux_workspace.Plan.action.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_window","slug":"libtmux_workspace-plan-action-create_window"},{"id":"Libtmux_workspace.Plan.action.Create_window.name","publicId":"Libtmux_workspace.Plan.action.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_window-name"},{"id":"Libtmux_workspace.Plan.action.Create_window.spawn","publicId":"Libtmux_workspace.Plan.action.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_window-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_window.window","publicId":"Libtmux_workspace.Plan.action.Create_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-create_window-window"},{"id":"Libtmux_workspace.Plan.action.Select_layout","publicId":"Libtmux_workspace.Plan.action.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Select_layout","slug":"libtmux_workspace-plan-action-select_layout"},{"id":"Libtmux_workspace.Plan.action.Send_enter","publicId":"Libtmux_workspace.Plan.action.Send_enter","name":"Send_enter","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_enter of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_enter","slug":"libtmux_workspace-plan-action-send_enter"},{"id":"Libtmux_workspace.Plan.action.Send_enter.pane","publicId":"Libtmux_workspace.Plan.action.Send_enter.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_enter-pane"},{"id":"Libtmux_workspace.Plan.action.Send_enter.window","publicId":"Libtmux_workspace.Plan.action.Send_enter.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_enter-window"},{"id":"Libtmux_workspace.Plan.action.Send_text","publicId":"Libtmux_workspace.Plan.action.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text of { window : int; pane : int; text : string }","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_text","slug":"libtmux_workspace-plan-action-send_text"},{"id":"Libtmux_workspace.Plan.action.Send_text.pane","publicId":"Libtmux_workspace.Plan.action.Send_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_text-pane"},{"id":"Libtmux_workspace.Plan.action.Send_text.text","publicId":"Libtmux_workspace.Plan.action.Send_text.text","name":"text","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"text : string","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"string","qualifiedName":"Libtmux_workspace.Plan.text","slug":"libtmux_workspace-plan-action-send_text-text"},{"id":"Libtmux_workspace.Plan.action.Send_text.window","publicId":"Libtmux_workspace.Plan.action.Send_text.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_text-window"},{"id":"Libtmux_workspace.Plan.action.Set_environment","publicId":"Libtmux_workspace.Plan.action.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of string * string","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_environment","slug":"libtmux_workspace-plan-action-set_environment"},{"id":"Libtmux_workspace.Plan.action.Set_option","publicId":"Libtmux_workspace.Plan.action.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of scope * Config.setting","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_option","slug":"libtmux_workspace-plan-action-set_option"},{"id":"Libtmux_workspace.Plan.action.Split_pane","publicId":"Libtmux_workspace.Plan.action.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Split_pane","slug":"libtmux_workspace-plan-action-split_pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.direction","publicId":"Libtmux_workspace.Plan.action.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Plan.direction","slug":"libtmux_workspace-plan-action-split_pane-direction"},{"id":"Libtmux_workspace.Plan.action.Split_pane.pane","publicId":"Libtmux_workspace.Plan.action.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-split_pane-pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.size","publicId":"Libtmux_workspace.Plan.action.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Plan.size","slug":"libtmux_workspace-plan-action-split_pane-size"},{"id":"Libtmux_workspace.Plan.action.Split_pane.spawn","publicId":"Libtmux_workspace.Plan.action.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-split_pane-spawn"},{"id":"Libtmux_workspace.Plan.action.Split_pane.window","publicId":"Libtmux_workspace.Plan.action.Split_pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-split_pane-window"},{"id":"Libtmux_workspace.Plan.actions","publicId":"Libtmux_workspace.Plan.actions","qualifiedName":"Libtmux_workspace.Plan.actions","name":"actions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val actions : t -> action Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val actions : t -> action Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"action Iarray.t"}],"slug":"libtmux_workspace-plan-actions"},{"id":"Libtmux_workspace.Plan.check_source","publicId":"Libtmux_workspace.Plan.check_source","qualifiedName":"Libtmux_workspace.Plan.check_source","name":"check_source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. "],"declarations":[{"kind":"function","text":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"Operational plans are ephemeral and bound to one connection generation. A printed or serialized preview cannot supply operational targets."},"signatures":[{"raw":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Source.t option"}],"returns":"(unit, error) result"}],"slug":"libtmux_workspace-plan-check_source"},{"id":"Libtmux_workspace.Plan.collision_policy","publicId":"Libtmux_workspace.Plan.collision_policy","qualifiedName":"Libtmux_workspace.Plan.collision_policy","name":"collision_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type collision_policy =\n Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision; }","params":[]}],"slug":"libtmux_workspace-plan-collision_policy"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","name":"Append_new_windows","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Append_new_windows","slug":"libtmux_workspace-plan-collision_policy-append_new_windows"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","name":"window_collision","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_collision : window_collision","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","type":"window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","slug":"libtmux_workspace-plan-collision_policy-append_new_windows-window_collision"},{"id":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","publicId":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","name":"Fail_if_session_exists","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Fail_if_session_exists","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Fail_if_session_exists","slug":"libtmux_workspace-plan-collision_policy-fail_if_session_exists"},{"id":"Libtmux_workspace.Plan.config","publicId":"Libtmux_workspace.Plan.config","qualifiedName":"Libtmux_workspace.Plan.config","name":"config","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val config : t -> Config.t","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val config : t -> Config.t","params":[{"name":"arg1","type":"t"}],"returns":"Config.t"}],"slug":"libtmux_workspace-plan-config"},{"id":"Libtmux_workspace.Plan.endpoint","publicId":"Libtmux_workspace.Plan.endpoint","qualifiedName":"Libtmux_workspace.Plan.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Libtmux.Endpoint.t","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val endpoint : t -> Libtmux.Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Endpoint.t"}],"slug":"libtmux_workspace-plan-endpoint"},{"id":"Libtmux_workspace.Plan.error","publicId":"Libtmux_workspace.Plan.error","qualifiedName":"Libtmux_workspace.Plan.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type error =\n Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","params":[]}],"slug":"libtmux_workspace-plan-error"},{"id":"Libtmux_workspace.Plan.error.Append_session_options","publicId":"Libtmux_workspace.Plan.error.Append_session_options","name":"Append_session_options","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_session_options","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Append_session_options","slug":"libtmux_workspace-plan-error-append_session_options"},{"id":"Libtmux_workspace.Plan.error.Missing_endpoint","publicId":"Libtmux_workspace.Plan.error.Missing_endpoint","name":"Missing_endpoint","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing_endpoint","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Missing_endpoint","slug":"libtmux_workspace-plan-error-missing_endpoint"},{"id":"Libtmux_workspace.Plan.error.Session_conflict","publicId":"Libtmux_workspace.Plan.error.Session_conflict","name":"Session_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Session_conflict","slug":"libtmux_workspace-plan-error-session_conflict"},{"id":"Libtmux_workspace.Plan.error.Stale","publicId":"Libtmux_workspace.Plan.error.Stale","name":"Stale","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Stale","slug":"libtmux_workspace-plan-error-stale"},{"id":"Libtmux_workspace.Plan.error.Too_many_steps","publicId":"Libtmux_workspace.Plan.error.Too_many_steps","name":"Too_many_steps","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Too_many_steps","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Too_many_steps","slug":"libtmux_workspace-plan-error-too_many_steps"},{"id":"Libtmux_workspace.Plan.error.Unsupported_setting","publicId":"Libtmux_workspace.Plan.error.Unsupported_setting","name":"Unsupported_setting","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_setting of Config.error","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Unsupported_setting","slug":"libtmux_workspace-plan-error-unsupported_setting"},{"id":"Libtmux_workspace.Plan.error.Window_conflict","publicId":"Libtmux_workspace.Plan.error.Window_conflict","name":"Window_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window_conflict","slug":"libtmux_workspace-plan-error-window_conflict"},{"id":"Libtmux_workspace.Plan.existing_session","publicId":"Libtmux_workspace.Plan.existing_session","qualifiedName":"Libtmux_workspace.Plan.existing_session","name":"existing_session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val existing_session : t -> Libtmux.Session.target option","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val existing_session : t -> Libtmux.Session.target option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Session.target option"}],"slug":"libtmux_workspace-plan-existing_session"},{"id":"Libtmux_workspace.Plan.make","publicId":"Libtmux_workspace.Plan.make","qualifiedName":"Libtmux_workspace.Plan.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. "],"declarations":[{"kind":"function","text":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"`None` means an explicitly observed missing endpoint. It is not an empty successful snapshot. A plan does not start a server. Append rejects any existing requested window name and never changes session options. `version` selects the generated option catalog."},"signatures":[{"raw":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option -> Config.t -> (t, error) result","params":[{"name":"server_policy","type":"server_policy","optional":true,"keywordOnly":true},{"name":"collision_policy","type":"collision_policy","optional":true,"keywordOnly":true},{"name":"endpoint","type":"Libtmux.Endpoint.t","keywordOnly":true},{"name":"version","type":"string","keywordOnly":true},{"name":"observed","type":"Libtmux.Snapshot.t option","keywordOnly":true},{"name":"arg1","type":"Config.t"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-plan-make"},{"id":"Libtmux_workspace.Plan.pp_error","publicId":"Libtmux_workspace.Plan.pp_error","qualifiedName":"Libtmux_workspace.Plan.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-plan-pp_error"},{"id":"Libtmux_workspace.Plan.scope","publicId":"Libtmux_workspace.Plan.scope","qualifiedName":"Libtmux_workspace.Plan.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Session | Window of int | Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type scope = Session | Window of int | Pane of { window : int; pane : int; }","params":[]}],"slug":"libtmux_workspace-plan-scope"},{"id":"Libtmux_workspace.Plan.scope.Pane","publicId":"Libtmux_workspace.Plan.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Pane","slug":"libtmux_workspace-plan-scope-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.pane","publicId":"Libtmux_workspace.Plan.scope.Pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-scope-pane-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.window","publicId":"Libtmux_workspace.Plan.scope.Pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-scope-pane-window"},{"id":"Libtmux_workspace.Plan.scope.Session","publicId":"Libtmux_workspace.Plan.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Session","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Session","slug":"libtmux_workspace-plan-scope-session"},{"id":"Libtmux_workspace.Plan.scope.Window","publicId":"Libtmux_workspace.Plan.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window","slug":"libtmux_workspace-plan-scope-window"},{"id":"Libtmux_workspace.Plan.server_policy","publicId":"Libtmux_workspace.Plan.server_policy","qualifiedName":"Libtmux_workspace.Plan.server_policy","name":"server_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type server_policy = Create_if_missing | Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type server_policy = Create_if_missing | Require_existing_server","params":[]}],"slug":"libtmux_workspace-plan-server_policy"},{"id":"Libtmux_workspace.Plan.server_policy.Create_if_missing","publicId":"Libtmux_workspace.Plan.server_policy.Create_if_missing","name":"Create_if_missing","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Create_if_missing","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Create_if_missing","slug":"libtmux_workspace-plan-server_policy-create_if_missing"},{"id":"Libtmux_workspace.Plan.server_policy.Require_existing_server","publicId":"Libtmux_workspace.Plan.server_policy.Require_existing_server","name":"Require_existing_server","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Require_existing_server","slug":"libtmux_workspace-plan-server_policy-require_existing_server"},{"id":"Libtmux_workspace.Plan.source","publicId":"Libtmux_workspace.Plan.source","qualifiedName":"Libtmux_workspace.Plan.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t option","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val source : t -> Libtmux.Source.t option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t option"}],"slug":"libtmux_workspace-plan-source"},{"id":"Libtmux_workspace.Plan.t","publicId":"Libtmux_workspace.Plan.t","qualifiedName":"Libtmux_workspace.Plan.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-plan-t"},{"id":"Libtmux_workspace.Plan.window_collision","publicId":"Libtmux_workspace.Plan.window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","name":"window_collision","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type window_collision = Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type window_collision = Reject","params":[]}],"slug":"libtmux_workspace-plan-window_collision"},{"id":"Libtmux_workspace.Plan.window_collision.Reject","publicId":"Libtmux_workspace.Plan.window_collision.Reject","name":"Reject","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.window_collision","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Reject","slug":"libtmux_workspace-plan-window_collision-reject"}]} diff --git a/site/src/data/api/ocaml.nav.json b/site/src/data/api/ocaml.nav.json new file mode 100644 index 000000000..8fb2dc4a4 --- /dev/null +++ b/site/src/data/api/ocaml.nav.json @@ -0,0 +1 @@ +{"port":"ocaml","buckets":[{"id":"server","label":"Server","collapsed":false,"target":{"id":"Libtmux_unix.Client","name":"Client","slug":"libtmux_unix-client","kind":"module"}},{"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":"Libtmux_unix.Client","name":"Client","slug":"libtmux_unix-client","kind":"module"},{"id":"Libtmux_eio.Client","name":"Client","slug":"libtmux_eio-client","kind":"module"},{"id":"Libtmux.Endpoint","name":"Endpoint","slug":"libtmux-endpoint","kind":"module"},{"id":"Libtmux.Source","name":"Source","slug":"libtmux-source","kind":"module"},{"id":"Libtmux.Generation","name":"Generation","slug":"libtmux-generation","kind":"module"}],"session":[{"id":"Libtmux.Session","name":"Session","slug":"libtmux-session","kind":"module"}],"window":[{"id":"Libtmux.Window","name":"Window","slug":"libtmux-window","kind":"module"},{"id":"Libtmux.Window_link","name":"Window_link","slug":"libtmux-window_link","kind":"module"}],"pane":[{"id":"Libtmux.Pane","name":"Pane","slug":"libtmux-pane","kind":"module"}],"client":[{"id":"Libtmux.Client_name","name":"Client_name","slug":"libtmux-client_name","kind":"module"},{"id":"Libtmux.Client_observation","name":"Client_observation","slug":"libtmux-client_observation","kind":"module"}],"hooks":[{"id":"Libtmux.Hook","name":"Hook","slug":"libtmux-hook","kind":"module"}],"options":[{"id":"Libtmux.Options","name":"Options","slug":"libtmux-options","kind":"module"}],"options-functions":[],"options-constants":[],"keys":[{"id":"Libtmux.Key","name":"Key","slug":"libtmux-key","kind":"module"}],"buffers":[],"layout":[{"id":"Libtmux.Geometry","name":"Geometry","slug":"libtmux-geometry","kind":"module"},{"id":"Libtmux.Layout","name":"Layout","slug":"libtmux-layout","kind":"module"}],"environment":[{"id":"Libtmux.Environment","name":"Environment","slug":"libtmux-environment","kind":"module"}],"capabilities":[{"id":"Libtmux_eio.Terminal","name":"Terminal","slug":"libtmux_eio-terminal","kind":"module"},{"id":"Libtmux_unix.Terminal","name":"Terminal","slug":"libtmux_unix-terminal","kind":"module"}],"version":[],"commands":[{"id":"Libtmux","name":"Libtmux","slug":"libtmux","kind":"module"},{"id":"Libtmux.Command","name":"Command","slug":"libtmux-command","kind":"module"},{"id":"Libtmux.Created","name":"Created","slug":"libtmux-created","kind":"module"},{"id":"Libtmux.ID","name":"ID","slug":"libtmux-id","kind":"interface"},{"id":"Libtmux.Operations","name":"Operations","slug":"libtmux-operations","kind":"module"},{"id":"Libtmux.Spawn","name":"Spawn","slug":"libtmux-spawn","kind":"module"}],"control":[{"id":"Libtmux.Output","name":"Output","slug":"libtmux-output","kind":"module"},{"id":"Libtmux_eio.Operation","name":"Operation","slug":"libtmux_eio-operation","kind":"module"},{"id":"Libtmux_eio.Subscription","name":"Subscription","slug":"libtmux_eio-subscription","kind":"module"},{"id":"Libtmux_unix.Cancellation","name":"Cancellation","slug":"libtmux_unix-cancellation","kind":"module"},{"id":"Libtmux_unix.Operation","name":"Operation","slug":"libtmux_unix-operation","kind":"module"},{"id":"Libtmux_unix.Subscription","name":"Subscription","slug":"libtmux_unix-subscription","kind":"module"}],"formats":[{"id":"Libtmux.Formats","name":"Formats","slug":"libtmux-formats","kind":"module"}],"queries":[{"id":"Libtmux.Cardinality","name":"Cardinality","slug":"libtmux-cardinality","kind":"module"},{"id":"Libtmux.Model","name":"Model","slug":"libtmux-model","kind":"module"},{"id":"Libtmux.Plan","name":"Plan","slug":"libtmux-plan","kind":"module"},{"id":"Libtmux.Query","name":"Query","slug":"libtmux-query","kind":"module"},{"id":"Libtmux.Relation","name":"Relation","slug":"libtmux-relation","kind":"module"}],"queries-fields":[{"id":"Libtmux.Field","name":"Field","slug":"libtmux-field","kind":"module"}],"queries-operators":[],"queries-expressions":[{"id":"Libtmux.Expr","name":"Expr","slug":"libtmux-expr","kind":"module"},{"id":"Libtmux_json.Expr","name":"Expr","slug":"libtmux_json-expr","kind":"module"}],"snapshots":[{"id":"Libtmux.Captured_text","name":"Captured_text","slug":"libtmux-captured_text","kind":"module"},{"id":"Libtmux.Snapshot","name":"Snapshot","slug":"libtmux-snapshot","kind":"module"},{"id":"Libtmux_eio.Rendered","name":"Rendered","slug":"libtmux_eio-rendered","kind":"module"},{"id":"Libtmux_unix.Rendered","name":"Rendered","slug":"libtmux_unix-rendered","kind":"module"}],"workspace":[{"id":"Libtmux_workspace","name":"Libtmux_workspace","slug":"libtmux_workspace","kind":"module"},{"id":"Libtmux_workspace.Config","name":"Config","slug":"libtmux_workspace-config","kind":"module"},{"id":"Libtmux_workspace.Execution","name":"Execution","slug":"libtmux_workspace-execution","kind":"module"}],"workspace-plan":[{"id":"Libtmux_eio.Workspace","name":"Workspace","slug":"libtmux_eio-workspace","kind":"module"},{"id":"Libtmux_json.Workspace","name":"Workspace","slug":"libtmux_json-workspace","kind":"module"},{"id":"Libtmux_unix.Workspace","name":"Workspace","slug":"libtmux_unix-workspace","kind":"module"},{"id":"Libtmux_workspace.Plan","name":"Plan","slug":"libtmux_workspace-plan","kind":"module"}],"workspace-steps":[],"workspace-targets":[],"workspace-session":[],"workspace-window":[],"workspace-pane":[],"workspace-functions":[],"workspace-constants":[],"requests":[],"requests-server":[],"requests-session":[],"requests-window":[],"requests-pane":[],"requests-client":[],"errors":[{"id":"Libtmux.Error","name":"Error","slug":"libtmux-error","kind":"module"},{"id":"Libtmux_json.Decode_error","name":"Decode_error","slug":"libtmux_json-decode_error","kind":"module"},{"id":"Libtmux_json.Error","name":"Error","slug":"libtmux_json-error","kind":"module"}],"errors-server":[],"errors-session":[],"errors-window":[],"errors-pane":[],"constants":[],"constants-server":[],"constants-session":[],"constants-window":[],"constants-pane":[],"constants-client":[],"runtime":[{"id":"Libtmux_eio","name":"Libtmux_eio","slug":"libtmux_eio","kind":"module"},{"id":"Libtmux_json","name":"Libtmux_json","slug":"libtmux_json","kind":"module"},{"id":"Libtmux_unix","name":"Libtmux_unix","slug":"libtmux_unix","kind":"module"}],"async":[],"mcp":[],"mcp-functions":[],"mcp-constants":[],"testing":[],"internal":[],"internal-commands":[],"internal-options":[]},"placement":{"Libtmux.Endpoint":"server","Libtmux.Generation":"server","Libtmux.Source":"server","Libtmux_eio.Client":"server","Libtmux_unix.Client":"server","Libtmux.Session":"session","Libtmux.Window":"window","Libtmux.Window_link":"window","Libtmux.Pane":"pane","Libtmux.Client_name":"client","Libtmux.Client_observation":"client","Libtmux.Hook":"hooks","Libtmux.Options":"options","Libtmux.Key":"keys","Libtmux.Geometry":"layout","Libtmux.Layout":"layout","Libtmux.Environment":"environment","Libtmux_eio.Terminal":"capabilities","Libtmux_unix.Terminal":"capabilities","Libtmux":"commands","Libtmux.Command":"commands","Libtmux.Created":"commands","Libtmux.ID":"commands","Libtmux.Operations":"commands","Libtmux.Spawn":"commands","Libtmux.Output":"control","Libtmux_eio.Operation":"control","Libtmux_eio.Subscription":"control","Libtmux_unix.Cancellation":"control","Libtmux_unix.Operation":"control","Libtmux_unix.Subscription":"control","Libtmux.Formats":"formats","Libtmux.Cardinality":"queries","Libtmux.Model":"queries","Libtmux.Plan":"queries","Libtmux.Query":"queries","Libtmux.Relation":"queries","Libtmux.Field":"queries-fields","Libtmux.Expr":"queries-expressions","Libtmux_json.Expr":"queries-expressions","Libtmux.Captured_text":"snapshots","Libtmux.Snapshot":"snapshots","Libtmux_eio.Rendered":"snapshots","Libtmux_unix.Rendered":"snapshots","Libtmux_workspace":"workspace","Libtmux_workspace.Config":"workspace","Libtmux_workspace.Execution":"workspace","Libtmux_eio.Workspace":"workspace-plan","Libtmux_json.Workspace":"workspace-plan","Libtmux_unix.Workspace":"workspace-plan","Libtmux_workspace.Plan":"workspace-plan","Libtmux.Error":"errors","Libtmux_json.Decode_error":"errors","Libtmux_json.Error":"errors","Libtmux_eio":"runtime","Libtmux_json":"runtime","Libtmux_unix":"runtime"},"unplaced":[],"diagnostics":{"unmatched":[],"deadBuckets":["options-functions","options-constants","buffers","version","queries-operators","workspace-steps","workspace-targets","workspace-session","workspace-window","workspace-pane","workspace-functions","workspace-constants","requests","requests-server","requests-session","requests-window","requests-pane","requests-client","errors-server","errors-session","errors-window","errors-pane","constants","constants-server","constants-session","constants-window","constants-pane","constants-client","async","mcp","mcp-functions","mcp-constants","testing","internal","internal-commands","internal-options"],"ambiguous":[],"staleUnsettled":[]}} diff --git a/site/src/data/api/ocaml.paths.json b/site/src/data/api/ocaml.paths.json new file mode 100644 index 000000000..bf23fc83d --- /dev/null +++ b/site/src/data/api/ocaml.paths.json @@ -0,0 +1 @@ +{"port":"ocaml","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","paths":[".github/CONTRIBUTING.md",".github/WRITING.md",".github/actions/build-tmux/action.yml",".github/scripts/tmux_build.py",".github/social-preview.png",".github/tmux-releases.toml",".github/workflows/ocaml.yml",".gitignore",".ocamlformat",".tool-versions","AGENTS.md","CHANGELOG.md","CLAUDE.md","LICENSE","README.md","bench/capture.ml","bench/capture.py","bench/concurrency.ml","bench/concurrency.py","bench/dune","bench/results/capture-3.3-4x4.json","bench/results/capture-3.3.json","bench/results/capture-3.3a-4x4.json","bench/results/capture-3.3a.json","bench/results/capture-3.4-4x4.json","bench/results/capture-3.4.json","bench/results/capture-3.8-16x16.json","bench/results/capture-3.8-1x1.json","bench/results/capture-3.8-4x4.json","bench/results/capture-3.8-8x8.json","bench/results/capture-3.8.json","bench/results/concurrency-3.3-c8.json","bench/results/concurrency-3.3a-c8.json","bench/results/concurrency-3.4-c8.json","bench/results/concurrency-3.8-c1.json","bench/results/concurrency-3.8-c16.json","bench/results/concurrency-3.8-c64.json","bench/results/concurrency-3.8-c8.json","catalog/fields.json","catalog/formats.json","catalog/operations.json","catalog/options.json","cli/CHANGELOG.md","cli/dune","cli/main.ml","cli/runtime.ml","docs/README.md","docs/api.md","docs/assets/app-icon-1024-dark.png","docs/assets/app-icon-1024-light.png","docs/assets/apple-touch-icon-dark.png","docs/assets/apple-touch-icon-light.png","docs/assets/browserconfig-dark.xml","docs/assets/browserconfig.xml","docs/assets/favicon.ico","docs/assets/logo-1024.png","docs/assets/logo-128.png","docs/assets/logo-144.png","docs/assets/logo-152.png","docs/assets/logo-16.png","docs/assets/logo-167.png","docs/assets/logo-180.png","docs/assets/logo-192.png","docs/assets/logo-24.png","docs/assets/logo-256.png","docs/assets/logo-32.png","docs/assets/logo-384.png","docs/assets/logo-48.png","docs/assets/logo-512.png","docs/assets/logo-64.png","docs/assets/logo-96.png","docs/assets/logo.svg","docs/assets/maskable-192-dark.png","docs/assets/maskable-192-light.png","docs/assets/maskable-512-dark.png","docs/assets/maskable-512-light.png","docs/assets/mstile-150-dark.png","docs/assets/mstile-150-light.png","docs/assets/mstile-310-dark.png","docs/assets/mstile-310-light.png","docs/assets/opengraph-dark.jpg","docs/assets/opengraph-dark.png","docs/assets/opengraph-light.jpg","docs/assets/opengraph-light.png","docs/assets/safari-pinned-tab.svg","docs/assets/site-dark.webmanifest","docs/assets/site.webmanifest","docs/assets/social-square-dark.png","docs/assets/social-square-light.png","docs/assets/source.json","docs/assets/twitter-dark.png","docs/assets/twitter-light.png","docs/benchmarking.md","docs/branding.md","docs/compatibility.md","docs/control.md","docs/fields.md","docs/formats.md","docs/getting-started.md","docs/graph.md","docs/operations.md","docs/options.md","docs/packages.md","docs/queries.md","docs/showcases.md","docs/status.md","docs/streaming.md","docs/testing.md","docs/workspaces.md","dune","dune-project","eio/CHANGELOG.md","eio/dune","eio/generated_operations.ml","eio/index.mld","eio/libtmux_eio.ml","eio/libtmux_eio.mli","examples/dune","examples/native_build.ml","examples/native_capture.ml","examples/native_graph.ml","examples/native_query.ml","examples/native_wait.ml","examples/native_watch.ml","examples/showcase.json","examples/showcase_create_window.ml","examples/showcase_graph.ml","examples/showcase_layout.ml","examples/showcase_move_window.ml","examples/showcase_rename_window.ml","examples/showcase_send_keys.ml","examples/showcase_watch.ml","examples/workspace/project.json","json/CHANGELOG.md","json/document.ml","json/dune","json/index.mld","json/libtmux_json.ml","json/libtmux_json.mli","json/workspace_json.ml","json/workspace_output.ml","lib/CHANGELOG.md","lib/commands.ml","lib/dune","lib/endpoint.ml","lib/error.ml","lib/filter.ml","lib/format_catalog.ml","lib/formats.ml","lib/generated_fields.ml","lib/graph.ml","lib/index.mld","lib/libtmux.ml","lib/libtmux.mli","lib/option_catalog.ml","lib/options.ml","lib/output.ml","lib/planner.ml","lib/protocol.ml","libtmux-eio.opam","libtmux-json.opam","libtmux-unix.opam","libtmux-workspace-cli.opam","libtmux-workspace.opam","libtmux.opam","test/api_export_test.py","test/binding_peer.ml","test/binding_test.py","test/blocking_cancel_peer.ml","test/blocking_peer.ml","test/blocking_test.py","test/bootstrap_peer.ml","test/bootstrap_test.py","test/capture_cancel_peer.ml","test/capture_cancel_test.py","test/capture_peer.ml","test/capture_proxy.py","test/capture_test.py","test/client_operations_peer.ml","test/client_operations_test.py","test/codec_peer.ml","test/conformance/FilterPeer.java","test/conformance/cases.json","test/conformance/dune","test/conformance/filter_peer.ml","test/conformance/run.py","test/core_test.ml","test/diagnostics_expect.ml","test/dune","test/eio_peer.ml","test/eio_test.py","test/environment_peer.ml","test/environment_test.py","test/fixture_test.py","test/installed_consumer.py","test/json_test.ml","test/model_fixture.ml","test/model_test.ml","test/native_suite.py","test/operations_peer.ml","test/operations_test.py","test/options_peer.ml","test/options_test.py","test/pid_race_peer.ml","test/pid_race_test.py","test/pid_race_tmux.py","test/plan_peer.ml","test/plan_test.py","test/protocol_test.ml","test/protocol_test.py","test/query_test.ml","test/read_process_peer.ml","test/read_process_proxy.py","test/read_process_test.py","test/runtime_test.ml","test/showcase_test.py","test/stream_fault_peer.ml","test/stream_fault_test.py","test/streaming_peer.ml","test/streaming_test.py","test/support/readme_walkthrough.py","test/support/tmux_fixture.py","test/terminal_peer.ml","test/terminal_test.py","test/tmux_cache_test.py","test/type_test.py","test/workspace_cli_test.py","test/workspace_docs_test.py","test/workspace_document_test.py","test/workspace_eio_peer.ml","test/workspace_json_test.ml","test/workspace_pane_ready.ml","test/workspace_peer.ml","test/workspace_scenarios.ml","test/workspace_test.ml","test/workspace_test.py","tools/api_doc.ml","tools/api_export.ml","tools/api_modules.json","tools/check.py","tools/docs_snippets.py","tools/dune","tools/export_api.py","tools/generate_fields.py","tools/generate_formats.py","tools/generate_operations.py","tools/generate_options.py","tools/setup_tmux.py","unix/CHANGELOG.md","unix/acquisition.ml","unix/bootstrap.ml","unix/byte_pattern.ml","unix/cancellation.ml","unix/capture_file.ml","unix/command_encoding.ml","unix/connection.ml","unix/dune","unix/engine.ml","unix/environment_io.ml","unix/generated_operations.ml","unix/index.mld","unix/libtmux_unix.ml","unix/libtmux_unix.mli","unix/linux.ml","unix/linux_stubs.c","unix/observation_wait.ml","unix/options_io.ml","unix/read_process.ml","unix/rendered.ml","unix/runtime_io.ml","unix/streaming.ml","unix/terminal.ml","unix/workspace_runner.ml","workspace/CHANGELOG.md","workspace/README.md","workspace/assets/app-icon-1024-dark.png","workspace/assets/app-icon-1024-light.png","workspace/assets/apple-touch-icon-dark.png","workspace/assets/apple-touch-icon-light.png","workspace/assets/browserconfig-dark.xml","workspace/assets/browserconfig.xml","workspace/assets/favicon.ico","workspace/assets/logo-1024.png","workspace/assets/logo-128.png","workspace/assets/logo-144.png","workspace/assets/logo-152.png","workspace/assets/logo-16.png","workspace/assets/logo-167.png","workspace/assets/logo-180.png","workspace/assets/logo-192.png","workspace/assets/logo-24.png","workspace/assets/logo-256.png","workspace/assets/logo-32.png","workspace/assets/logo-384.png","workspace/assets/logo-48.png","workspace/assets/logo-512.png","workspace/assets/logo-64.png","workspace/assets/logo-96.png","workspace/assets/logo.svg","workspace/assets/maskable-192-dark.png","workspace/assets/maskable-192-light.png","workspace/assets/maskable-512-dark.png","workspace/assets/maskable-512-light.png","workspace/assets/mstile-150-dark.png","workspace/assets/mstile-150-light.png","workspace/assets/mstile-310-dark.png","workspace/assets/mstile-310-light.png","workspace/assets/opengraph-dark.jpg","workspace/assets/opengraph-dark.png","workspace/assets/opengraph-light.jpg","workspace/assets/opengraph-light.png","workspace/assets/safari-pinned-tab.svg","workspace/assets/site-dark.webmanifest","workspace/assets/site.webmanifest","workspace/assets/social-square-dark.png","workspace/assets/social-square-light.png","workspace/assets/source.json","workspace/assets/twitter-dark.png","workspace/assets/twitter-light.png","workspace/config.ml","workspace/dune","workspace/execution.ml","workspace/index.mld","workspace/libtmux_workspace.ml","workspace/libtmux_workspace.mli","workspace/plan.ml"]} diff --git a/site/src/data/core-apis.json b/site/src/data/core-apis.json index 80ee4612c..1a2e7ba4b 100644 --- a/site/src/data/core-apis.json +++ b/site/src/data/core-apis.json @@ -179,5 +179,47 @@ "tmux.Running.StreamTo", "tmux.Running.Kill" ] + }, + "ocaml": { + "typed-graph": [ + "Libtmux.Snapshot.sessions", + "Libtmux.Session.window_links", + "Libtmux.Window_link.window", + "Libtmux.Window.panes", + "Libtmux_unix.Client.capture", + "Libtmux_unix.Client.create_session", + "Libtmux_unix.Client.link_window" + ], + "watch": [ + "Libtmux_eio.Client.connect", + "Libtmux_eio.Client.subscribe", + "Libtmux_eio.Subscription.wait_for_bytes", + "Libtmux_eio.Client.send_text" + ], + "send-keys": [ + "Libtmux_unix.Client.send_text", + "Libtmux_unix.Client.send_keys", + "Libtmux_unix.Client.wait_for_text" + ], + "rename-windows": [ + "Libtmux_unix.Client.rename_window", + "Libtmux.Snapshot.find_window", + "Libtmux.Window.name" + ], + "create-windows": [ + "Libtmux_unix.Client.create_window", + "Libtmux.Snapshot.find_window" + ], + "move-windows": [ + "Libtmux_unix.Client.move_window_at", + "Libtmux.Window.links", + "Libtmux.Window_link.index", + "Libtmux.Query.exactly_one" + ], + "set-layouts": [ + "Libtmux_unix.Client.split_pane", + "Libtmux_unix.Client.select_layout", + "Libtmux.Pane.width" + ] } } diff --git a/site/src/data/core-capabilities.json b/site/src/data/core-capabilities.json index 1ff9e4c01..f58e2e773 100644 --- a/site/src/data/core-capabilities.json +++ b/site/src/data/core-capabilities.json @@ -212,5 +212,182 @@ } ] } + }, + "ocaml": { + "typed-graph": { + "file": "examples/showcase_graph.ml", + "lang": "ocaml", + "tmux": "3.3+", + "ci": { + "workflow": ".github/workflows/ocaml.yml", + "job": "native", + "step": "Execute installed documentation and standalone programs", + "command": "opam exec -- python3 test/showcase_test.py \"$TMUX_BINARY\"" + }, + "checkedBy": [ + { + "file": "test/showcase_test.py", + "contains": "assert process.returncode == 0 and not error" + }, + { + "file": "test/showcase_test.py", + "contains": "entry[\"expected_stdout_line\"].encode() in output.splitlines()" + }, + { + "file": "examples/showcase.json", + "contains": "graph: 2 sessions, 2 windows, 3 links, 2 panes" + } + ] + }, + "watch": { + "file": "examples/showcase_watch.ml", + "lang": "ocaml", + "tmux": "3.3+", + "ci": { + "workflow": ".github/workflows/ocaml.yml", + "job": "native", + "step": "Execute installed documentation and standalone programs", + "command": "opam exec -- python3 test/showcase_test.py \"$TMUX_BINARY\"" + }, + "checkedBy": [ + { + "file": "test/showcase_test.py", + "contains": "assert process.returncode == 0 and not error" + }, + { + "file": "test/showcase_test.py", + "contains": "entry[\"expected_stdout_line\"].encode() in output.splitlines()" + }, + { + "file": "examples/showcase.json", + "contains": "observed: changed" + } + ] + }, + "send-keys": { + "file": "examples/showcase_send_keys.ml", + "lang": "ocaml", + "tmux": "3.3+", + "ci": { + "workflow": ".github/workflows/ocaml.yml", + "job": "native", + "step": "Execute installed documentation and standalone programs", + "command": "opam exec -- python3 test/showcase_test.py \"$TMUX_BINARY\"" + }, + "checkedBy": [ + { + "file": "test/showcase_test.py", + "contains": "assert process.returncode == 0 and not error" + }, + { + "file": "test/showcase_test.py", + "contains": "entry[\"expected_stdout_line\"].encode() in output.splitlines()" + }, + { + "file": "examples/showcase.json", + "contains": "sent: literal: $HOME; #{pane_id}" + } + ] + }, + "rename-windows": { + "file": "examples/showcase_rename_window.ml", + "lang": "ocaml", + "tmux": "3.3+", + "ci": { + "workflow": ".github/workflows/ocaml.yml", + "job": "native", + "step": "Execute installed documentation and standalone programs", + "command": "opam exec -- python3 test/showcase_test.py \"$TMUX_BINARY\"" + }, + "checkedBy": [ + { + "file": "test/showcase_test.py", + "contains": "assert process.returncode == 0 and not error" + }, + { + "file": "test/showcase_test.py", + "contains": "entry[\"expected_stdout_line\"].encode() in output.splitlines()" + }, + { + "file": "examples/showcase.json", + "contains": "renamed: editor-main" + } + ] + }, + "create-windows": { + "file": "examples/showcase_create_window.ml", + "lang": "ocaml", + "tmux": "3.3+", + "ci": { + "workflow": ".github/workflows/ocaml.yml", + "job": "native", + "step": "Execute installed documentation and standalone programs", + "command": "opam exec -- python3 test/showcase_test.py \"$TMUX_BINARY\"" + }, + "checkedBy": [ + { + "file": "test/showcase_test.py", + "contains": "assert process.returncode == 0 and not error" + }, + { + "file": "test/showcase_test.py", + "contains": "entry[\"expected_stdout_line\"].encode() in output.splitlines()" + }, + { + "file": "examples/showcase.json", + "contains": "created: logs" + } + ] + }, + "move-windows": { + "file": "examples/showcase_move_window.ml", + "lang": "ocaml", + "tmux": "3.3+", + "ci": { + "workflow": ".github/workflows/ocaml.yml", + "job": "native", + "step": "Execute installed documentation and standalone programs", + "command": "opam exec -- python3 test/showcase_test.py \"$TMUX_BINARY\"" + }, + "checkedBy": [ + { + "file": "test/showcase_test.py", + "contains": "assert process.returncode == 0 and not error" + }, + { + "file": "test/showcase_test.py", + "contains": "entry[\"expected_stdout_line\"].encode() in output.splitlines()" + }, + { + "file": "examples/showcase.json", + "contains": "moved: build at 7" + } + ] + }, + "set-layouts": { + "file": "examples/showcase_layout.ml", + "lang": "ocaml", + "tmux": "3.3+", + "ci": { + "workflow": ".github/workflows/ocaml.yml", + "job": "native", + "step": "Execute installed documentation and standalone programs", + "command": "opam exec -- python3 test/showcase_test.py \"$TMUX_BINARY\"" + }, + "checkedBy": [ + { + "file": "test/showcase_test.py", + "contains": "assert process.returncode == 0 and not error" + }, + { + "file": "test/showcase_test.py", + "contains": "entry[\"expected_stdout_line\"].encode() in output.splitlines()" + }, + { + "file": "examples/showcase.json", + "contains": "layout: 3 horizontal panes" + } + ] + } } } diff --git a/site/src/data/core-home.json b/site/src/data/core-home.json index 65d8dde3f..2a936acd4 100644 --- a/site/src/data/core-home.json +++ b/site/src/data/core-home.json @@ -322,5 +322,31 @@ "control-mode": "ControlSession", "capture": "Server.capture(_:includingHistory:)" } + }, + "ocaml": { + "objects": { + "server": "Libtmux_unix.Client.t", + "session": "Libtmux.Session.t", + "window": "Libtmux.Window.t", + "pane": "Libtmux.Pane.t" + }, + "wraps": { + "server": "A connection to one tmux server", + "window": "A shared tmux window" + }, + "capabilities": { + "objects": "Libtmux.Pane", + "ids": "Libtmux.Pane.Id", + "queries": "Libtmux.Expr", + "errors": "Libtmux.Error", + "servers": "Libtmux_unix.Client.connect", + "traversal": "Libtmux.Snapshot.panes", + "send-keys": "Libtmux_unix.Client.send_keys", + "control-mode": "Libtmux_eio.Client.subscribe", + "capture": "Libtmux_unix.Client.capture_text", + "argv": "Libtmux.Command", + "version-gate": "Libtmux.Error.t.Unsupported_version", + "async": "Libtmux_eio.Client.capture" + } } } diff --git a/site/src/data/destination-evidence.json b/site/src/data/destination-evidence.json index bcf528df9..8e14c09e6 100644 --- a/site/src/data/destination-evidence.json +++ b/site/src/data/destination-evidence.json @@ -1508,6 +1508,132 @@ "lua:libtmux" ] }, + { + "url": "https://github.com/libtmux/libtmux-ocaml/tree/master/cli", + "kinds": [ + "source" + ], + "host": "github", + "ok": true, + "status": 200, + "requested": "https://github.com/libtmux/libtmux-ocaml/tree/master/cli", + "identity": "libtmux/libtmux-ocaml/cli", + "versionChecks": [ + { + "check": "unsupported", + "note": "a branch link names no release" + } + ], + "checkedAt": "2026-11-07", + "entries": [ + "ocaml:libtmux-workspace-cli" + ] + }, + { + "url": "https://github.com/libtmux/libtmux-ocaml/tree/master/eio", + "kinds": [ + "source" + ], + "host": "github", + "ok": true, + "status": 200, + "requested": "https://github.com/libtmux/libtmux-ocaml/tree/master/eio", + "identity": "libtmux/libtmux-ocaml/eio", + "versionChecks": [ + { + "check": "unsupported", + "note": "a branch link names no release" + } + ], + "checkedAt": "2026-11-07", + "entries": [ + "ocaml:libtmux-eio" + ] + }, + { + "url": "https://github.com/libtmux/libtmux-ocaml/tree/master/json", + "kinds": [ + "source" + ], + "host": "github", + "ok": true, + "status": 200, + "requested": "https://github.com/libtmux/libtmux-ocaml/tree/master/json", + "identity": "libtmux/libtmux-ocaml/json", + "versionChecks": [ + { + "check": "unsupported", + "note": "a branch link names no release" + } + ], + "checkedAt": "2026-11-07", + "entries": [ + "ocaml:libtmux-json" + ] + }, + { + "url": "https://github.com/libtmux/libtmux-ocaml/tree/master/lib", + "kinds": [ + "source" + ], + "host": "github", + "ok": true, + "status": 200, + "requested": "https://github.com/libtmux/libtmux-ocaml/tree/master/lib", + "identity": "libtmux/libtmux-ocaml/lib", + "versionChecks": [ + { + "check": "unsupported", + "note": "a branch link names no release" + } + ], + "checkedAt": "2026-11-07", + "entries": [ + "ocaml:libtmux" + ] + }, + { + "url": "https://github.com/libtmux/libtmux-ocaml/tree/master/unix", + "kinds": [ + "source" + ], + "host": "github", + "ok": true, + "status": 200, + "requested": "https://github.com/libtmux/libtmux-ocaml/tree/master/unix", + "identity": "libtmux/libtmux-ocaml/unix", + "versionChecks": [ + { + "check": "unsupported", + "note": "a branch link names no release" + } + ], + "checkedAt": "2026-11-07", + "entries": [ + "ocaml:libtmux-unix" + ] + }, + { + "url": "https://github.com/libtmux/libtmux-ocaml/tree/master/workspace", + "kinds": [ + "source" + ], + "host": "github", + "ok": true, + "status": 200, + "requested": "https://github.com/libtmux/libtmux-ocaml/tree/master/workspace", + "identity": "libtmux/libtmux-ocaml/workspace", + "versionChecks": [ + { + "check": "unsupported", + "note": "a branch link names no release" + } + ], + "checkedAt": "2026-11-07", + "entries": [ + "ocaml:libtmux-workspace" + ] + }, { "url": "https://github.com/libtmux/libtmux-powershell", "kinds": [ diff --git a/site/src/data/example-sources.json b/site/src/data/example-sources.json index c171de058..978b7cad5 100644 --- a/site/src/data/example-sources.json +++ b/site/src/data/example-sources.json @@ -149,6 +149,66 @@ "sha256": "4c2c130f34507c5983d266f6bd47a4af87dbc558e021a2cd2d07b7eddaf4fe56", "content": "local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(err, 0)\n end\n return value\nend\n\nmust(adapter.run(function(runtime)\n local server = must(runtime\n :connect({\n binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\"),\n socket_path = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to an explicit socket\"),\n })\n :await())\n local snapshot = must(server:snapshot({ strict = true }):await())\n for _, pane in ipairs(snapshot.panes) do\n io.stdout:write(pane.id, \"\\t\", pane.window_id, \"\\n\")\n end\n must(server:close():await())\n return true\nend))\n" }, + "ocaml:examples/showcase_create_window.ml": { + "repository": "libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c", + "sha256": "ea2d5ff182bb80b2f8115d4d2c43cf8e32f7989626fa9d6dfda666b76dc8217b", + "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n" + }, + "ocaml:examples/showcase_graph.ml": { + "repository": "libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c", + "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", + "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" + }, + "ocaml:examples/showcase_layout.ml": { + "repository": "libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c", + "sha256": "dca905f7b9b91858ec642fa21c2bd7c544f3a7684223f7fafd5a46f2b997cfd0", + "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n" + }, + "ocaml:examples/showcase_move_window.ml": { + "repository": "libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c", + "sha256": "da767e573f7188350a328c78b9417610a2bc62992e1892b501435a6328e21cc5", + "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n" + }, + "ocaml:examples/showcase_rename_window.ml": { + "repository": "libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c", + "sha256": "8722c7cd933fa53a18b41b5fb2de7d6a99fcfa1f70e8c14164c85bebf9efc6d5", + "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n" + }, + "ocaml:examples/showcase_send_keys.ml": { + "repository": "libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c", + "sha256": "680f6772040e12a16b93bd0c6d582d0a5e8f4e70de303372ba924be6e0237f09", + "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n" + }, + "ocaml:examples/showcase_watch.ml": { + "repository": "libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c", + "sha256": "98fa6d843a98a4d98bbdd398108704805e852a262df0e54b43c08d3f2e299f8f", + "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n" + }, + "ocaml:examples/showcase.json": { + "repository": "libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c", + "sha256": "178ca9f8e940cd9d4d893940089c2e0212e58dfea54b22e2eb7fb44131d5c9ef", + "content": "{\n \"schema\": \"libtmux.showcase/1\",\n \"tmux_floor\": \"3.3\",\n \"ci\": {\n \"workflow\": \".github/workflows/ocaml.yml\",\n \"job\": \"native\",\n \"runner\": \"test/showcase_test.py\"\n },\n \"examples\": [\n {\n \"capability\": \"graph\",\n \"title\": \"Navigate the typed object graph\",\n \"file\": \"examples/showcase_graph.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_graph.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"graph: 2 sessions, 2 windows, 3 links, 2 panes\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"watch\",\n \"title\": \"Observe future output with Eio\",\n \"file\": \"examples/showcase_watch.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_watch.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"observed: changed\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"send-keys\",\n \"title\": \"Send literal input and keys\",\n \"file\": \"examples/showcase_send_keys.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_send_keys.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"sent: literal: $HOME; #{pane_id}\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"rename-window\",\n \"title\": \"Rename a window\",\n \"file\": \"examples/showcase_rename_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_rename_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"renamed: editor-main\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"create-window\",\n \"title\": \"Create a window\",\n \"file\": \"examples/showcase_create_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_create_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"created: logs\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"move-window\",\n \"title\": \"Move a window between sessions\",\n \"file\": \"examples/showcase_move_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_move_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"moved: build at 7\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"layout\",\n \"title\": \"Apply a layout\",\n \"file\": \"examples/showcase_layout.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_layout.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"layout: 3 horizontal panes\",\n \"success_exit_code\": 0\n }\n ]\n}\n" + }, + "ocaml:test/showcase_test.py": { + "repository": "libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c", + "sha256": "17ff54eaa950f1d9a2d64b7386b456bf2a01b20209c9c7e49bcd0b990c8b4f8a", + "content": "\"\"\"Outer: compile whole showcase programs against installed packages and run their entry points.\"\"\"\nimport ctypes\nimport json\nimport os\nfrom pathlib import Path\nimport selectors\nimport shutil\nimport signal\nimport subprocess\nimport sys\nimport tempfile\n\nroot = Path(__file__).resolve().parents[1]\nmanifest = json.loads((root / \"examples/showcase.json\").read_text())\nprograms = {}\nfor entry in manifest[\"examples\"]:\n path = (root / entry[\"file\"]).resolve()\n assert path.parent == root / \"examples\" and path.suffix == \".ml\"\n assert entry[\"whole_file\"] and entry[\"success_exit_code\"] == 0\n executable = str(Path(entry[\"file\"]).with_suffix(\".exe\"))\n assert entry[\"command\"] == [\"opam\", \"exec\", \"--\", \"dune\", \"exec\", executable, \"--\", \"tmux\"], \\\n \"showcase command does not execute its recorded source\"\n assert path.stem not in programs, \"duplicate showcase program\"\n programs[path.stem] = entry\nlibc = ctypes.CDLL(None, use_errno=True)\nif libc.prctl(36, 1, 0, 0, 0):\n raise OSError(ctypes.get_errno(), \"PR_SET_CHILD_SUBREAPER\")\nchild_file = Path(f\"/proc/self/task/{os.getpid()}/children\")\n\n\ndef children():\n return set(map(int, child_file.read_text().split()))\n\n\nwith tempfile.TemporaryDirectory(prefix=\"libtmux-ocaml-showcase-consumer-\") as temporary:\n temporary = Path(temporary)\n prefix = temporary / \"installed\"\n packages = [\"libtmux\", \"libtmux-workspace\", \"libtmux-unix\", \"libtmux-eio\"]\n subprocess.run([\"dune\", \"install\", \"--sections=lib,stublibs\", \"--prefix\", str(prefix), *packages],\n cwd=root, check=True, capture_output=True)\n project = temporary / \"consumer\"\n project.mkdir()\n runtime_temp = temporary / \"runtime-temp\"\n runtime_temp.mkdir(mode=0o700)\n (project / \"dune-project\").write_text(\"(lang dune 3.24)\\n\")\n examples = project / \"examples\"\n examples.mkdir()\n blocking = \" \".join(name for name in programs if name != \"showcase_watch\")\n (examples / \"dune\").write_text(\"(executables (names \" + blocking + \") (modules \" + blocking +\n \") (libraries libtmux libtmux-workspace libtmux-unix unix))\\n\" +\n \"(executable (name showcase_watch) (modules showcase_watch) \" +\n \"(libraries libtmux libtmux-workspace libtmux-unix libtmux-eio eio_main unix))\\n\")\n for name in programs:\n source = root / \"examples\" / f\"{name}.ml\"\n assert source.is_file(), f\"missing standalone showcase: {name}\"\n (examples / source.name).write_bytes(source.read_bytes())\n environment = dict(os.environ, OCAMLPATH=str(prefix / \"lib\"), TMPDIR=str(runtime_temp),\n TMUX=\"/unrelated/server,99999,0\", TMUX_PANE=\"%99999\")\n for key in [\"DUNE_SOURCEROOT\", \"DUNE_WORKSPACE\"]:\n environment.pop(key, None)\n environment[\"OPAMSWITCH\"] = subprocess.check_output(\n [\"opam\", \"switch\", \"show\", \"--safe\"], cwd=root, env=environment, text=True).strip()\n resolved = subprocess.check_output([\"opam\", \"exec\", \"--\", \"ocamlfind\", \"query\", *packages],\n cwd=project, env=environment, text=True).splitlines()\n assert list(map(Path, resolved)) == [prefix / \"lib\" / package for package in packages]\n built = subprocess.run([\"dune\", \"build\", \"--root\", str(project)],\n cwd=project, env=environment, capture_output=True)\n assert built.returncode == 0, (built.stdout + built.stderr).decode(errors=\"replace\")\n for index, binary in enumerate(sys.argv[1:]):\n actual = str(Path(binary).resolve(strict=True))\n fault = temporary / f\"fault-tmux-{index}\"\n audit = temporary / f\"fault-directory-{index}\"\n fault.write_text(\"#!/usr/bin/env python3\\nimport os,sys\\nfrom pathlib import Path\\n\" +\n \"args=sys.argv[1:]\\nif '-C' in args and 'new-session' in args:\\n\" +\n \" p=Path(args[args.index('-f')+1])\\n\" +\n f\" Path({str(audit)!r}).write_text(str(p.parent))\\n\" +\n \" with p.open('a') as output:\\n\" +\n \" output.write('new-session -d -s showcase -- /bin/cat -u\\\\n')\\n\" +\n f\"os.execv({actual!r}, [{actual!r}, *args])\\n\")\n fault.chmod(0o700)\n cases = [(name, entry, actual, False) for name, entry in programs.items()]\n cases.append((\"showcase_create_window\", programs[\"showcase_create_window\"], str(fault), True))\n for name, entry, program, should_fail in cases:\n previous = children()\n command = [*entry[\"command\"][:-1], program]\n process = subprocess.Popen(command,\n cwd=project, env=environment, stdout=subprocess.PIPE,\n stderr=subprocess.PIPE)\n try:\n output, error = process.communicate(timeout=1)\n if should_fail:\n assert process.returncode == 2 and error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() not in output.splitlines()\n directory = Path(audit.read_text())\n else:\n assert process.returncode == 0 and not error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() in output.splitlines(), \\\n (name, \"missing expected outcome\", output)\n socket_line = next(line for line in output.splitlines() if line.startswith(b\"socket=\"))\n directory = Path(os.fsdecode(socket_line[len(b\"socket=\"):])).parent\n assert directory.name.startswith(\"libtmux-ocaml-showcase-\")\n assert not directory.exists(), \"showcase left its private directory\"\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), f\"{name} left owned child {pid} running\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n outcome = \"startup failure\" if should_fail else \"installed entry point\"\n print(f\"PASS {Path(binary).parent.name}: {name}, {outcome} and owned teardown\")\n finally:\n if process.poll() is None:\n process.kill()\n process.wait(timeout=1)\n while children() - previous:\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n try:\n signal.pidfd_send_signal(descriptor, signal.SIGTERM)\n except ProcessLookupError:\n pass\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), \"owned showcase child did not terminate\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n process.stdout.close()\n process.stderr.close()\n for path in runtime_temp.iterdir():\n if path.is_dir():\n shutil.rmtree(path)\n else:\n path.unlink()\n" + }, + "ocaml/workspace:examples/showcase_graph.ml": { + "repository": "libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c", + "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", + "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" + }, "powershell/workspace:examples/Guides.ps1": { "repository": "libtmux/libtmux-powershell", "revision": "06233d3c99b40a5bce966c9e1d358f346ff4de55", diff --git a/site/src/data/home-examples.json b/site/src/data/home-examples.json index dd6366fc8..949dfb413 100644 --- a/site/src/data/home-examples.json +++ b/site/src/data/home-examples.json @@ -599,5 +599,47 @@ "errors": "Mix.install([{:libtmux, \"0.1.1\"}])\n\nalias LibTmux.{Command, Pane, Ref, Selection, Server, Session, Snapshot, Window}\n\ntmux = System.find_executable(\"tmux\") || raise \"tmux is not on PATH\"\nid = Base.encode16(:crypto.strong_rand_bytes(8), case: :lower)\ndir = Path.join(System.tmp_dir!(), \"libtmux-\" <> id)\nsocket = Path.join(dir, \"tmux.sock\")\nFile.mkdir!(dir)\nFile.chmod!(dir, 0o700)\n\n# libtmux works on a running server, so tmux itself starts the private one.\ncreate = [\"new-session\", \"-d\", \"-s\", \"demo\"]\n{_, 0} = System.cmd(tmux, [\"-S\", socket, \"-f\", \"/dev/null\" | create])\nserver = Server.new(executable: tmux, socket: socket)\n\n# Lay out the session: name its window, split it, add a second window.\nsnapshot = Server.snapshot!(server)\nsession = snapshot |> Snapshot.sessions() |> Selection.one!()\neditor = Session.active_window(snapshot, session)\n{:ok, session_ref} = Ref.from_observation(session)\n{:ok, editor_ref} = Ref.from_observation(editor)\nWindow.rename!(server, editor_ref, \"editor\")\nleft =\n snapshot\n |> Snapshot.panes()\n |> Selection.one!(window_id: editor.id, active: true)\n{:ok, left_ref} = Ref.from_observation(left)\n%{id: right_id} = Pane.split!(server, left_ref, axis: :horizontal)\n%{id: logs_id} = Session.new_window!(server, session_ref, \"logs\")\n{:ok, right} = Ref.new(:pane, right_id, session.server_instance)\n\n# Type a command into the new pane and wait for what it prints.\nPane.send_text!(server, right, \"printf 'hello from %s\\\\n' tmux\")\nPane.send_keys!(server, right, [\"Enter\"])\n\nshown =\n Enum.find_value(1..250, fn _ ->\n screen = Pane.capture!(server, right)\n screen =~ \"hello from tmux\" || (Process.sleep(20) && nil)\n end)\n\nshown || raise \"the pane did not print hello from tmux\"\n\n# Move the focus an attached client sees: the pane, then the window.\nselect_pane = Command.new(\"select-pane\", [\"-t\", right_id])\nselect_window = Command.new(\"select-window\", [\"-t\", logs_id])\n{:ok, _} = Server.run(server, select_pane)\n{:ok, _} = Server.run(server, select_window)\n\n# Walk the objects: down from the server, then up from one pane.\nsnapshot = Server.snapshot!(server)\nsessions = Snapshot.sessions(snapshot)\n\nfor each <- sessions do\n IO.puts(\"session #{each.name}\")\n links = Snapshot.related(snapshot, :session, each.id, :window_links)\n\n for link <- Enum.sort_by(links, & &1.index) do\n {:ok, window} = Snapshot.fetch(snapshot, :window, link.window_id)\n panes = Window.panes(snapshot, window)\n ids = Enum.map_join(panes, \" \", & &1.id)\n IO.puts(\" window #{link.index}:#{window.name}: #{ids}\")\n end\nend\n\npane = snapshot |> Snapshot.panes() |> Selection.one!(id: right_id)\nwindow = Snapshot.related(snapshot, :pane, pane.id, :window)\n[owner] = Snapshot.related(snapshot, :window, window.id, :sessions)\nIO.puts(\"#{pane.id} is in window #{window.name} of session #{owner.name}\")\n", "cleanup": "Mix.install([{:libtmux, \"0.1.1\"}])\n\nalias LibTmux.{Command, Pane, Ref, Selection, Server, Session, Snapshot, Window}\n\ntmux = System.find_executable(\"tmux\") || raise \"tmux is not on PATH\"\nid = Base.encode16(:crypto.strong_rand_bytes(8), case: :lower)\ndir = Path.join(System.tmp_dir!(), \"libtmux-\" <> id)\nsocket = Path.join(dir, \"tmux.sock\")\nFile.mkdir!(dir)\nFile.chmod!(dir, 0o700)\n\ntry do\n # libtmux works on a running server, so tmux itself starts the private one.\n create = [\"new-session\", \"-d\", \"-s\", \"demo\"]\n {_, 0} = System.cmd(tmux, [\"-S\", socket, \"-f\", \"/dev/null\" | create])\n server = Server.new(executable: tmux, socket: socket)\n\n # Lay out the session: name its window, split it, add a second window.\n snapshot = Server.snapshot!(server)\n session = snapshot |> Snapshot.sessions() |> Selection.one!()\n editor = Session.active_window(snapshot, session)\n {:ok, session_ref} = Ref.from_observation(session)\n {:ok, editor_ref} = Ref.from_observation(editor)\n Window.rename!(server, editor_ref, \"editor\")\n left =\n snapshot\n |> Snapshot.panes()\n |> Selection.one!(window_id: editor.id, active: true)\n {:ok, left_ref} = Ref.from_observation(left)\n %{id: right_id} = Pane.split!(server, left_ref, axis: :horizontal)\n %{id: logs_id} = Session.new_window!(server, session_ref, \"logs\")\n {:ok, right} = Ref.new(:pane, right_id, session.server_instance)\n\n # Type a command into the new pane and wait for what it prints.\n Pane.send_text!(server, right, \"printf 'hello from %s\\\\n' tmux\")\n Pane.send_keys!(server, right, [\"Enter\"])\n\n shown =\n Enum.find_value(1..250, fn _ ->\n screen = Pane.capture!(server, right)\n screen =~ \"hello from tmux\" || (Process.sleep(20) && nil)\n end)\n\n shown || raise \"the pane did not print hello from tmux\"\n\n # Move the focus an attached client sees: the pane, then the window.\n select_pane = Command.new(\"select-pane\", [\"-t\", right_id])\n select_window = Command.new(\"select-window\", [\"-t\", logs_id])\n {:ok, _} = Server.run(server, select_pane)\n {:ok, _} = Server.run(server, select_window)\n\n # Walk the objects: down from the server, then up from one pane.\n snapshot = Server.snapshot!(server)\n sessions = Snapshot.sessions(snapshot)\n\n for each <- sessions do\n IO.puts(\"session #{each.name}\")\n links = Snapshot.related(snapshot, :session, each.id, :window_links)\n\n for link <- Enum.sort_by(links, & &1.index) do\n {:ok, window} = Snapshot.fetch(snapshot, :window, link.window_id)\n panes = Window.panes(snapshot, window)\n ids = Enum.map_join(panes, \" \", & &1.id)\n IO.puts(\" window #{link.index}:#{window.name}: #{ids}\")\n end\n end\n\n pane = snapshot |> Snapshot.panes() |> Selection.one!(id: right_id)\n window = Snapshot.related(snapshot, :pane, pane.id, :window)\n [owner] = Snapshot.related(snapshot, :window, window.id, :sessions)\n IO.puts(\"#{pane.id} is in window #{window.name} of session #{owner.name}\")\nafter\n System.cmd(tmux, [\"-S\", socket, \"kill-server\"], stderr_to_stdout: true)\n File.rm_rf(dir)\nend\n" } + }, + "ocaml": { + "lang": "ocaml", + "sourceRepository": "libtmux/libtmux-ocaml", + "sourceRevision": "6ef4ac3c255ce503270edba7640c5bd65cdc43a1", + "sourceTree": "2d3cfff8570f97d0498db2a3dbeb26124b1eeeba", + "program": "examples/showcase_graph.ml", + "excerpt": { + "startLine": 1, + "endLine": 123, + "dedent": 0, + "importsEndLine": 0 + }, + "files": [ + { + "name": "examples/showcase_graph.ml", + "lang": "ocaml", + "code": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" + }, + { + "name": "dune-project", + "lang": "lisp", + "code": "(lang dune 3.24)\n" + }, + { + "name": "examples/dune", + "lang": "lisp", + "code": "(executable\n (name showcase_graph)\n (libraries libtmux libtmux-workspace libtmux-unix unix))\n" + } + ], + "prerequisites": "OCaml 5.5.2, Dune 3.24.2, Linux and tmux 3.3 or newer. Install libtmux, libtmux-workspace and libtmux-unix in the active opam switch, then save these files at their shown paths.", + "commands": [ + "opam exec -- dune exec examples/showcase_graph.exe" + ], + "expectedOutput": "graph: 2 sessions, 2 windows, 3 links, 2 panes\n", + "variants": { + "concise": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n", + "errors": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n", + "cleanup": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" + }, + "automaticCleanup": "Every view retains protected cleanup. A private exit-unattached configuration ends the owned daemon after its clients close.", + "withoutErrorHandling": "Every view already unwraps result values and retains protected cleanup. The detailed view also checks the captured graph cardinalities." } } diff --git a/site/src/data/landing-examples.json b/site/src/data/landing-examples.json index 84658d0ac..ce01008ee 100644 --- a/site/src/data/landing-examples.json +++ b/site/src/data/landing-examples.json @@ -241,5 +241,23 @@ "command": "swift test --package-path Examples" } } + }, + "ocaml": { + "workspace": { + "file": "examples/showcase_graph.ml", + "lang": "ocaml", + "from": "let config =", + "to": "let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in", + "ci": { + "workflow": ".github/workflows/ocaml.yml", + "command": "opam exec -- python3 test/showcase_test.py \"$TMUX_BINARY\"" + }, + "more": [ + { + "from": "let receipt = get (Workspace.await operation) in", + "to": "let initial = List.hd (Iarray.get receipt.steps 0).created in" + } + ] + } } } diff --git a/site/src/data/manifest-packages.json b/site/src/data/manifest-packages.json index 1ed815c1e..ca1cc903a 100644 --- a/site/src/data/manifest-packages.json +++ b/site/src/data/manifest-packages.json @@ -735,6 +735,49 @@ "name": "TmuxWorkspace" } ] + }, + "ocaml": { + "repo": "https://github.com/libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c", + "distributions": [ + { + "name": "libtmux", + "manifest": "libtmux.opam", + "repo": "https://github.com/libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c" + }, + { + "name": "libtmux-eio", + "manifest": "libtmux-eio.opam", + "repo": "https://github.com/libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c" + }, + { + "name": "libtmux-json", + "manifest": "libtmux-json.opam", + "repo": "https://github.com/libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c" + }, + { + "name": "libtmux-unix", + "manifest": "libtmux-unix.opam", + "repo": "https://github.com/libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c" + }, + { + "name": "libtmux-workspace", + "manifest": "libtmux-workspace.opam", + "repo": "https://github.com/libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c" + }, + { + "name": "libtmux-workspace-cli", + "manifest": "libtmux-workspace-cli.opam", + "repo": "https://github.com/libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c" + } + ], + "units": [] } } } diff --git a/site/src/data/mentions.json b/site/src/data/mentions.json index 086eaf2b6..477cd5fe0 100644 --- a/site/src/data/mentions.json +++ b/site/src/data/mentions.json @@ -8372,6 +8372,237 @@ "title": "Topology operations", "section": "guides" }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client", + "page": "/ocaml/latest/guides/control/", + "title": "Submit actions and retain their outcomes", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Workspace", + "page": "/ocaml/latest/guides/packages/", + "title": "Choose the packages your application needs", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_json.Workspace.of_string", + "page": "/ocaml/latest/workspace/source-guide/", + "title": "Workspace guide", + "section": "workspace" + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Cancellation", + "page": "/ocaml/latest/guides/compatibility/", + "title": "Compatibility", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Cancellation.Cancelled", + "page": "/ocaml/latest/guides/compatibility/", + "title": "Compatibility", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Client", + "page": "/ocaml/latest/guides/control/", + "title": "Submit actions and retain their outcomes", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Workspace", + "page": "/ocaml/latest/guides/packages/", + "title": "Choose the packages your application needs", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_workspace.Config.pane:type.startup", + "page": "/ocaml/latest/workspace/source-guide/", + "title": "Workspace guide", + "section": "workspace" + }, + { + "port": "ocaml", + "symbol": "Libtmux_workspace.Execution.executor.protect", + "page": "/ocaml/latest/guides/getting-started/", + "title": "Install and run your first capture", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_workspace.Execution.status", + "page": "/ocaml/latest/workspace/source-guide/", + "title": "Workspace guide", + "section": "workspace" + }, + { + "port": "ocaml", + "symbol": "Libtmux_workspace.Plan.make", + "page": "/ocaml/latest/workspace/source-guide/", + "title": "Workspace guide", + "section": "workspace" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Cardinality.error.No_match", + "page": "/ocaml/latest/guides/queries/", + "title": "Query captured data", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Cardinality.pp_error", + "page": "/ocaml/latest/guides/testing/", + "title": "Testing and CI", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Endpoint.named_socket", + "page": "/ocaml/latest/guides/getting-started/", + "title": "Install and run your first capture", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Endpoint.socket_path", + "page": "/ocaml/latest/guides/getting-started/", + "title": "Install and run your first capture", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Error.pp", + "page": "/ocaml/latest/guides/getting-started/", + "title": "Install and run your first capture", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Error.t", + "page": "/ocaml/latest/guides/control/", + "title": "Submit actions and retain their outcomes", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Expr.compile", + "page": "/ocaml/latest/guides/queries/", + "title": "Query captured data", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Expr.Rel.any", + "page": "/ocaml/latest/guides/queries/", + "title": "Query captured data", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Expr.Rel.none", + "page": "/ocaml/latest/guides/queries/", + "title": "Query captured data", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Formats.lookup", + "page": "/ocaml/latest/guides/compatibility/", + "title": "Compatibility", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Plan.panes", + "page": "/ocaml/latest/guides/queries/", + "title": "Query captured data", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Plan.pushdown.Require_exact", + "page": "/ocaml/latest/guides/queries/", + "title": "Query captured data", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Plan.source_filter", + "page": "/ocaml/latest/guides/queries/", + "title": "Query captured data", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Query.exactly_one", + "page": "/ocaml/latest/guides/queries/", + "title": "Query captured data", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Query.matching", + "page": "/ocaml/latest/guides/queries/", + "title": "Query captured data", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Query.one_or_none", + "page": "/ocaml/latest/guides/queries/", + "title": "Query captured data", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Session.window_links", + "page": "/ocaml/latest/guides/graph/", + "title": "Sessions, window links and panes", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Session.windows", + "page": "/ocaml/latest/guides/graph/", + "title": "Sessions, window links and panes", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Snapshot.panes", + "page": "/ocaml/latest/guides/queries/", + "title": "Query captured data", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Spawn.command.Exec", + "page": "/ocaml/latest/guides/control/", + "title": "Submit actions and retain their outcomes", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Spawn.command.Shell", + "page": "/ocaml/latest/guides/control/", + "title": "Submit actions and retain their outcomes", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Window.panes", + "page": "/ocaml/latest/guides/graph/", + "title": "Sessions, window links and panes", + "section": "guides" + }, { "port": "powershell", "symbol": "LibTmux", @@ -14996,6 +15227,90 @@ "line": 33, "why": "not defined in the stated port" }, + { + "port": "ocaml", + "text": "libtmux.filter/1", + "page": "/ocaml/latest/guides/compatibility/", + "line": 85, + "why": "not defined in the stated port" + }, + { + "port": "ocaml", + "text": "main.ml", + "page": "/ocaml/latest/guides/getting-started/", + "line": 40, + "why": "not defined in the stated port" + }, + { + "port": "ocaml", + "text": "List", + "page": "/ocaml/latest/guides/packages/", + "line": 16, + "why": "not defined in the stated port" + }, + { + "port": "ocaml", + "text": "Unix", + "page": "/ocaml/latest/guides/packages/", + "line": 23, + "why": "not defined in the stated port" + }, + { + "port": "ocaml", + "text": "libtmux.filter/1", + "page": "/ocaml/latest/guides/queries/", + "line": 87, + "why": "not defined in the stated port" + }, + { + "port": "ocaml", + "text": "Seq.filter", + "page": "/ocaml/latest/guides/queries/", + "line": 89, + "why": "not defined in the stated port" + }, + { + "port": "ocaml", + "text": "main.ml", + "page": "/ocaml/latest/guides/showcases/", + "line": 21, + "why": "not defined in the stated port" + }, + { + "port": "ocaml", + "text": "None", + "page": "/ocaml/latest/guides/streaming/", + "line": 46, + "why": "not defined in the stated port" + }, + { + "port": "ocaml", + "text": "Alcotest.testable", + "page": "/ocaml/latest/guides/testing/", + "line": 17, + "why": "not defined in the stated port" + }, + { + "port": "ocaml", + "text": "libtmux.workspace-receipt/1", + "page": "/ocaml/latest/workspace/source-guide/", + "line": 112, + "why": "not defined in the stated port" + }, + { + "port": "ocaml", + "text": "editor:2", + "page": "/ocaml/latest/workspace/source-guide/", + "line": 124, + "why": "not defined in the stated port" + }, + { + "port": "ocaml", + "text": "logs:1", + "page": "/ocaml/latest/workspace/source-guide/", + "line": 124, + "why": "not defined in the stated port" + }, { "port": "ruby", "text": "Enumerable", diff --git a/site/src/data/port-guides/ocaml.json b/site/src/data/port-guides/ocaml.json new file mode 100644 index 000000000..b2d5def4a --- /dev/null +++ b/site/src/data/port-guides/ocaml.json @@ -0,0 +1,56 @@ +{ + "source": { + "repository": "libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c" + }, + "guides": [ + { + "path": "docs/getting-started.md", + "content": "# Install and run your first capture\n\nUse the [README installation](../README.md#install-from-source) with OCaml\n5.5.2, opam and tmux on Linux. The native clients compile a small Linux C helper\nand require a C compiler and system headers. This source checkout installs the\nlibraries; no registry release is available yet.\n\nActivate the local switch in the current shell as shown in the README before\nchanging to a separate project. This exports the switch choice for `opam exec`\nwithout changing shell startup files or the global default switch.\n\n## Link an installed library\n\nFor a blocking program, use a Dune executable with `libtmux` and `libtmux-unix`:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-unix))\n```\n\nFor the Eio examples, link the Eio backend and the application's runtime entry\npoint instead:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-eio eio_main))\n```\n\nCreate `dune-project` with `(lang dune 3.24)`, put the\n[graph program](../examples/native_graph.ml) in `main.ml`, and build from that\nproject. The installed-example check does this outside the repository with a\nseparate install prefix; it does not depend on source-tree library resolution.\n\n```console\n$ opam exec -- dune build\n```\n\n## Select an endpoint explicitly\n\n`Endpoint.socket_path` accepts an absolute socket path; `Endpoint.named_socket`\ndescribes tmux's `-L` name. Constructing either performs no I/O. Ordinary\n`Client.connect` attaches to an existing daemon and does not start one.\n\nThe [private demo setup](../README.md#read-a-real-tmux-graph) creates an owned\nsocket and a `cat` pane. Run the graph program with the tmux binary and socket\npath, or copy its complete source into your project. It captures the graph,\ncloses its connection and prints retained observations.\n\nA connection identifies the daemon PID twice around pidfd acquisition. The\nclient and daemon must share a PID namespace and local scratch filesystem;\nan accessible socket by itself does not establish those conditions. A stale\nsource is an error, never permission to reconnect a mutation automatically.\n\n## Run a concurrent application\n\nThe [complete Eio example](../examples/native_watch.ml) calls `Eio_main.run`\nand `Eio.Switch.run`, then supplies `process_mgr` and `mono_clock` from the\napplication environment. Use that outer shape in your application. Capturing\nand querying values does not require adopting Eio in the pure core.\n\nExpected failures return `result` and print with `Error.pp`. Backend\ncancellation propagates separately. Clients and subscriptions belong to their\nconnecting domain; immutable observations can be shared. Close owned resources\nwith `Fun.protect` or the supplied Eio switch.\n\n[Object graph](graph.md) · [Queries](queries.md) · [Control](control.md) ·\n[API](api.md) · [Compatibility](compatibility.md)\n" + }, + { + "path": "docs/graph.md", + "content": "# Sessions, window links and panes\n\nA snapshot contains sessions, global windows, session-specific window links,\npanes and captured clients. Entity values are abstract immutable observations.\nThey remain readable after their client closes.\n\n```text\nSession ── Window_link ── Window ── Pane\n index │\n another link can share this window\n```\n\nA window can be linked to multiple sessions, or linked more than once within\none session. `Session.window_links` retains each context and index.\n`Session.windows` returns distinct global windows in first-link order.\n`Window.panes` contains that global window's captured panes. Local traversal\nperforms no I/O, lazy refresh or per-object subprocess calls. Captured client\nrows and attached-client counts include the library's control connection when\nit is present.\n\nThe [graph program](../examples/native_graph.ml) deliberately walks links. To\nsee the same window in two sessions, run the [README setup](../README.md#read-a-real-tmux-graph),\nthen create another session:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n new-session \\\n -d \\\n -s linked \\\n -- \"exec cat\"\n```\n\nLink the demo's window at index 7 in the other session:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n link-window \\\n -d \\\n -s @0 \\\n -t linked:7\n```\n\n```console\n$ opam exec -- dune exec examples/native_graph.exe -- \\\n tmux \"$LIBTMUX_DEMO_DIR/server\"\n```\n\nThe same window ID and pane ID appear under both sessions, at their respective\nlink indexes. The installed-example check asserts both appearances. Remove\nonly the additional session when finished:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n kill-session -t '=linked'\n```\n\nAn entity ID is scoped to a connection source. `same_entity` compares that\nidentity; `same_observation` also distinguishes captures. Use those operations\nor explicit `Id.equal`, rather than polymorphic equality over observations.\nA link context is an observed session/index/window tuple, not a stable link\nincarnation across unlinking or reindexing.\n\nCapture provenance records an acquisition interval. Several tmux commands do\nnot form an atomic server transaction. Disappearing or conflicting objects\nproduce a capture error rather than a fabricated empty relationship.\n\n[Queries](queries.md) · [Recovery](control.md) · [API](api.md)\n" + }, + { + "path": "docs/queries.md", + "content": "# Query captured data\n\nCapture once, then use standard collections. The [complete program](../examples/native_query.ml)\ncloses its blocking client before evaluating any of the functions below.\nFollow the [README setup](../README.md#read-a-real-tmux-graph) first.\n\n## Use a native predicate\n\n\n\n```ocaml\nlet active_ids snapshot =\n Snapshot.panes snapshot |> Iarray.to_seq |> Seq.filter Pane.active\n |> Seq.map Pane.id |> List.of_seq\n```\n\n`Snapshot.panes` returns an immutable array of captured panes. Converting it to\na sequence does not acquire anything. Repeated traversal sees captured values;\nstateful callbacks supplied by an application can still behave differently.\n\n## Describe a typed query\n\n\n\n```ocaml\nlet roomy_terminals : Pane.t Expr.t =\n Expr.all\n [\n Expr.Bool.is_true Pane.Fields.active;\n Expr.Text.is_in Pane.Fields.current_command\n [ \"cat\"; \"bash\"; \"zsh\"; \"nvim\" ];\n Expr.Int.ge Pane.Fields.width 80;\n ]\n\nlet roomy_ids snapshot =\n Snapshot.panes snapshot |> Iarray.to_seq\n |> Query.matching roomy_terminals\n |> Seq.map Pane.id |> List.of_seq\n```\n\n`Expr.compile` returns an ordinary predicate. `Query.matching` compiles once\nwhen constructed and preserves order and multiplicity. Field descriptors carry\nboth entity and value types, so invalid entity/operator combinations fail in\nthe compiler. Boolean `Expr.all []` is true and `Expr.any []` is false.\n\n## Follow relationships without fetching\n\n\n\n```ocaml\nlet sessions_with_room snapshot =\n let expression =\n Expr.Rel.any Session.Relations.windows\n (Expr.Rel.any Window.Relations.panes roomy_terminals)\n in\n Snapshot.sessions snapshot |> Iarray.to_seq |> Query.matching expression\n |> Seq.map Session.name |> List.of_seq\n```\n\nRelationships traverse the complete captured graph. `Expr.Rel.any` over no\nchildren is false; `all` and `none` over no children are true. Put conditions\ninside one `any` when the same child must satisfy both. Two independent\nexistentials can match different children.\n\n## Establish cardinality before acting\n\n`Query.exactly_one` returns `No_match` or `Multiple_matches {at_least=2}` instead\nof choosing the first element. It stops once it finds a second match; proving\nuniqueness exhausts the remaining finite sequence. `one_or_none` returns an\noption while retaining an ambiguity error. Duplicate entries count separately.\n\nSelect first, inspect the result, then submit a mutation. Selection does not\nlock tmux; a target can disappear between observation and action. The\n[control guide](control.md) explains that failure boundary.\n\n## Decode portable query data explicitly\n\n`Libtmux_json.Expr.of_string Model.pane` validates the shared scalar pane\nsubset of `libtmux.filter/1`. It rejects duplicate/unknown keys, wrong operand\ntypes, invalid UTF-8, oversized/deep documents and Java regex. Native closures\nstay in `Seq.filter`; they have no portable wire identity.\n\n`Libtmux.Plan.panes` compiles a source filter and retains the residual expression\nwithout I/O. Inspect `source_filter` and use `Require_exact` to reject unsupported\nlowering. Current client capture operations acquire the complete graph; they do\nnot execute these plans. The planner is a separate seam for acquisition adapters.\nConjunctions, disjunctions, negation and relationships require different lowering\nrules; local sequence processing never issues a tmux query implicitly.\n\nThe [native reference](../lib/index.mld) executes a pure planning example with MDX.\n\n[Field reference](fields.md) · [API](api.md) · [Guide](README.md)\n" + }, + { + "path": "docs/control.md", + "content": "# Submit actions and retain their outcomes\n\nObservations are local values. Client calls perform explicit I/O, and mutations\nuse targets bound to the source that produced them. Closing a client releases\nits own transports. tmux then applies its configured lifetime: for example,\n[the standalone programs](showcases.md) enable `exit-unattached` on their\nprivate daemons so they exit after their final client detaches.\n\nThe [layout program](../examples/native_build.ml) creates a session, splits its\nfirst pane and adds a logs window. It passes argv through `Spawn.Exec`, a working\ndirectory and an environment value. `Spawn.Shell` explicitly requests shell\ncode. `send_text` is literal input; `send_keys [Key.Enter]` is a separate action.\n\nA creation response returns the reported session, window and pane IDs without\nan extra graph capture. Only the resource requested by that command is newly\ncreated. A split's returned session and window are pre-existing containers.\n\n## Choose a backend\n\nUse `Libtmux_unix.Client` in a blocking script. Use `Libtmux_eio.Client` inside\nan application-owned Eio switch, supplying the process manager and monotonic\nclock. Clients are affine to their connecting domain. Immutable captured values\ncan be read from other domains; live client handles cannot move between them.\n\nThe Eio backend has client-owned workers for command draining and stream\nreading. A cancelled waiter does not abandon a written request. Local scratch\nfilesystem work runs on a system thread. The blocking backend supports scoped\ncancellation tokens signalled from another domain or systhread.\n\n## Distinguish acknowledgement from completion\n\n`submit` validates and reserves capacity without writing. Retain the operation\nhandle before awaiting it. `Operation.inspect` reads its state without I/O:\nqueued, not started, written, acknowledged, finished, or outcome unknown.\n\nA reply can acknowledge a command while hooks or its completion marker remain\noutstanding. Sending keys confirms tmux accepted input; it does not prove a\nterminal program consumed it or completed work. A detach request does not prove\nthe peer exited. Use the relevant postcondition, rendered wait or external exit\nsignal for the task.\n\nExpected failures use `result` and `Error.t`. Backend cancellation propagates\nas cancellation. An uncertain result retains reported creation IDs and unresolved\nowned buffers; it never becomes an instruction to retry the mutation.\n\n## Recover deliberately\n\nA replacement daemon retires the connection generation. Reconnect explicitly,\ncapture again and establish cardinality before choosing a fresh target.\nOld captured values remain readable, but their targets cannot silently move to\nthe new server.\n\nPartial effects can remain after a later hook or command failure. Inspect the\nretained receipt and current server state. Compensate only resources whose\ncreation is proven. A snapshot is an observation over an interval, and a\nselection followed by mutation is not an atomic transaction.\n\nSee [streaming](streaming.md) for Data/Gap/End and bounded queues, and\n[compatibility](compatibility.md) for hook, PID-namespace and scratch-file\nconstraints. [Guide](README.md) · [API](api.md)\n" + }, + { + "path": "docs/streaming.md", + "content": "# Observe output and wait for rendered text\n\nUse [native_watch.ml](../examples/native_watch.ml) for a complete concurrent\nliteral-send, future-byte match and rendered-screen check. Its application owns\nthe Eio scheduler and switch. Use [native_wait.ml](../examples/native_wait.ml) to capture exactly one pane and\nwait until its ordinary screen contains the supplied text. The example imports\nthe installed Eio client, owns its switch, uses an explicit socket, closes its\nclient and prints the matched pane ID. It requires an existing daemon and one\npane; absence and ambiguity remain errors.\n\n`Client.wait_for_text` first subscribes, then captures the screen immediately.\nOutput invalidates that observation. Queued Data events are coalesced before\nthe next bounded capture; a queued Gap stops that coalescing. Membership and\noverflow gaps cause fresh graph acquisition and subscription in the same\nconnection binding. A disconnected daemon or stream fails the wait.\n\nSuccess returns a captured screen containing the text. Text that appears and\ndisappears between captures may be missed. Deadlines are checked between\nacquisitions, whose in-flight I/O keeps the client's exchange timeout. A timed\nout wait does not prove that text was absent in the past.\n\nUse `Client.subscribe` and `Subscription.next` for future output bytes. Data\nretains every byte, including NUL and invalid UTF-8. Its cursor records a local\nsubscription generation and an observed byte offset. A cursor is neither a\nsnapshot timestamp nor a server-side history position. `poll` only removes a\nqueued event and performs no I/O.\n\n`Subscription.wait_for_bytes` consumes those future events and matches across\nevent boundaries. Its nonempty pattern is limited to 64 KiB. It returns the\nmatch's end cursor, possibly inside the last consumed Data event. A deadline\nleaves the subscription active. A Gap returns `Output.Ended reason`; later\nmatching requires an explicit fresh capture and new subscription.\n\nThe defaults are 1 MiB and 1024 queued events per subscriber, at most 16 active\nsubscribers, and eight total client lanes including command/wait lanes. Reuse\none verified lane per covered session. Admission reserves bytes against the\nshared 32 MiB budget. A full queue produces Gap then End rather than blocking\nanother subscriber or an independent command. Unknown loss uses `None`.\n\nCoverage uses an observed session/window context and revalidates it during\nadmission. Layout or membership changes end continuity conservatively. Detaching\na stream leaves the primary client usable; a daemon replacement retires the\nwhole binding. New coverage always has a new subscription generation.\n\nEio readers belong to the client, use no application callbacks and keep running\nwhen a subscriber stalls. The blocking backend advances all stream lanes during\n`Subscription.next`. Cancellation closes the affected subscription and\npropagates through the backend's cancellation mechanism. Client close releases\nall owned lanes and retains terminal events; it leaves the daemon alive.\n\nNeither interface establishes an atomic capture/stream barrier or reconstructs\nterminal history. An immutable snapshot remains a separate captured value.\n\n[First use](getting-started.md) · [Control and recovery](control.md) ·\n[API](api.md) · [Guide](README.md)\n" + }, + { + "path": "docs/showcases.md", + "content": "# Run a complete capability example\n\nEach program creates a private tmux workspace, performs one task, verifies the\nresult and closes its clients. Copy the whole file into a Dune project or run\nit from this checkout after [installation](getting-started.md).\n\nThe programs use a minimal tmux configuration that makes their private daemon\nexit when its last client detaches. They accept an optional tmux binary,\nnot a borrowed server socket. Their setup uses the public workspace API; the\ntask uses the client API. The Eio example starts its scheduler after setup and\nsubscribes before sending the bytes it observes.\n\nFor a separate project, copy a program as `main.ml` and use these Dune libraries:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-workspace libtmux-unix unix))\n```\n\nThe watch program also needs `libtmux-eio` and `eio_main`. The\n[installation guide](getting-started.md) supplies the project and switch setup.\n\n| Task | Complete program | Expected outcome line |\n| --- | --- | --- |\n| Navigate sessions, shared windows and panes | [Graph](../examples/showcase_graph.ml) | `graph: 2 sessions, 2 windows, 3 links, 2 panes` |\n| Observe future bytes concurrently | [Watch](../examples/showcase_watch.ml) | `observed: changed` |\n| Send literal input and Enter | [Keys](../examples/showcase_send_keys.ml) | `sent: literal: $HOME; #{pane_id}` |\n| Rename a window and retain the old observation | [Rename](../examples/showcase_rename_window.ml) | `renamed: editor-main` |\n| Create a window and recapture its name | [Create](../examples/showcase_create_window.ml) | `created: logs` |\n| Move a window to another session's index | [Move](../examples/showcase_move_window.ml) | `moved: build at 7` |\n| Apply and verify horizontal pane geometry | [Layout](../examples/showcase_layout.ml) | `layout: 3 horizontal panes` |\n\nAll programs print their temporary socket path before the outcome. Run the\ngraph example; it traverses the snapshot after the client and daemon close:\n\n```console\n$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n```\n\nObserve future output with an application-owned Eio switch:\n\n```console\n$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n```\n\nSend a literal string containing shell and tmux format characters:\n\n```console\n$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n```\n\nRename the editor window:\n\n```console\n$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n```\n\nCreate a separate logs window:\n\n```console\n$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n```\n\nMove a build window to index 7 in another session:\n\n```console\n$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n```\n\nSplit a window and apply an even horizontal layout:\n\n```console\n$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n```\n\nThese examples require tmux 3.3 or newer on the qualified Linux environment.\nThe native CI job executes their real entry points on 3.3, 3.3a, 3.4 and 3.8,\nusing a separate installation and Dune project. A nonzero exit, missing exact\noutcome line, leftover directory or surviving owned process fails the run.\n[`showcase.json`](../examples/showcase.json) records the whole files, commands,\nexpected lines, tmux floor, workflow, job and runner.\n\nSending keys confirms tmux accepted input. The rendered-text example observes\nthe resulting screen; it does not wait for an arbitrary application's exit\ncode. A future-byte subscription has no historical capture barrier. See\n[control outcomes](control.md) and [streaming](streaming.md) for those contracts.\n" + }, + { + "path": "docs/packages.md", + "content": "# Choose the packages your application needs\n\nThis repository is one Dune project with separately installable opam packages.\nEach package has an authored manifest. Internal dependencies require the same\npackage version, so a client or workspace adapter uses its matching core.\n\nThe core and pure workspace library have no third-party runtime dependencies.\nThey use OCaml 5.5.2's standard library, including `Iarray`, `Seq`, `List` and\n`result`. Test and documentation tools remain development dependencies.\n\n| Package | Role | Runtime dependencies |\n| --- | --- | --- |\n| `libtmux` | Immutable graph, typed queries, commands and observation values | OCaml standard library |\n| `libtmux-workspace` | Pure configuration validation, plans and execution journals | `libtmux` |\n| `libtmux-unix` | Blocking Linux transport and workspace executor | Core, workspace, standard `Unix`, private Linux bindings |\n| `libtmux-eio` | Concurrent transport and workspace executor | Core, workspace, blocking transport, Eio |\n| `libtmux-json` | Validated query and workspace JSON codecs | Core, workspace, Yojson |\n| `libtmux-workspace-cli` | Installed `tmux-workspace` command | The libraries above, Eio's entry point and Cmdliner |\n\nPure workspace planning depends on captured observations and an explicit tmux\nversion. It does not start a scheduler, read files or contact tmux. Execution\nuses the adapter supplied by `Libtmux_unix.Workspace` or `Libtmux_eio.Workspace`.\nThe CLI combines file loading, JSON decoding, planning and the Eio executor.\n\nAn application querying a captured graph needs only `libtmux`. A blocking\nscript chooses `libtmux-unix`; an Eio application chooses `libtmux-eio` and owns\nits scheduler and switch. Add `libtmux-json` for external query documents or JSON\nworkspaces. These integrations do not add dependencies to the pure core.\n\nSee [installation](getting-started.md), [workspace examples](workspaces.md) and\n[public interfaces](api.md). The source-install walkthrough installs all current\npackages; a consuming Dune project lists only the libraries it uses.\n\n## Scope policy\n\nPrefer standard-library types and ordinary functions. Keep transport, JSON and\nCLI dependencies at their integration boundaries. Use the current stable OCaml\ncompiler in 2026; older-compiler shims and compatibility matrices are excluded.\n\nMCP integration is outside this port's scope. The project does not ship or\nvendor an MCP SDK or server. Native OCaml APIs and the workspace CLI are its\nautomation interfaces; MCP discovery and conformance are excluded from the\nproject's adoption and completion criteria.\n" + }, + { + "path": "docs/compatibility.md", + "content": "# Compatibility\n\nThe compiler target is **OCaml 5.5.2**, exactly pinned. Older compilers are\noutside this implementation's scope. The development tools are Dune 3.24.2\nand opam 2.6.1.\n\nThe implementation targets Linux and tmux 3.3 or newer. Current evidence covers\nspecific components; final suite qualification has a separate acceptance gate.\n\n| Component | 3.3 | 3.3a | 3.4 | 3.8 |\n| --- | --- | --- | --- | --- |\n| Owned fixture teardown | PASS | PASS | PASS | PASS |\n| Exact Boolean pane filters | PASS | PASS | PASS | PASS |\n| Argument and metadata byte codecs | PASS | PASS | PASS | PASS |\n| Split control framing and command groups | PASS | PASS | PASS | PASS |\n| Bound graph capture and client teardown | PASS | PASS | PASS | PASS |\n| Replacement-daemon rejection | PASS | PASS | PASS | PASS |\n| Private-file capture and failed-save callbacks | PASS | PASS | PASS | PASS |\n| Eio waiter cancellation and retained outcomes | PASS | PASS | PASS | PASS |\n| Blocking cancellation and bounded drain | PASS | PASS | PASS | PASS |\n| Command and lane admission limits | PASS | PASS | PASS | PASS |\n| Environment bytes, scopes and read-process lifecycle | PASS | PASS | PASS | PASS |\n| Scoped options and built-in hook execution | PASS | PASS | PASS | PASS |\n| Current client names and detach-request semantics | PASS | PASS | PASS | PASS |\n| Interactive attachment, cancellation and child exit | PASS | PASS | PASS | PASS |\n| Versioned format availability and generated APIs | PASS | PASS | PASS | PASS |\n| Native operation inventory | PASS | PASS | PASS | PASS |\n| Data/Gap/End, stream limits and recovery | PASS | PASS | PASS | PASS |\n| Rendered waits and future-byte matching | PASS | PASS | PASS | PASS |\n| Blocking/Eio workspace preconditions and compensation | PASS | PASS | PASS | PASS |\n| Public workspace bootstrap on fresh/existing daemons | PASS | PASS | PASS | PASS |\n| Installed workspace CLI, receipts, interruption and output faults | PASS | PASS | PASS | PASS |\n| Literal workspace guide and owned teardown | PASS | PASS | PASS | PASS |\n| Final suite qualification | UNVERIFIED | UNVERIFIED | UNVERIFIED | UNVERIFIED |\n\nThe blocking client and workspace CLI reject 3.2a. Development tmux 3.8a does\nnot replace the published 3.8 cell. PID-acquisition races and malformed replies after writing\npass deterministic fault checks with real Linux child processes. Cancellation\nat each capture transfer step and unresolved-buffer receipts also pass on\nevery release. Ready I/O still checks its deadline; busy pipes cannot bypass\nthe timeout. These results qualify the implemented lifecycle contracts, not\nthe final suite qualification. MCP integration is outside this port's scope.\n\nThe I/O packages require Linux pidfds, the same PID namespace as the daemon,\nand shared local scratch storage. A socket pathname does not prove those\nconditions. Each connection has its own generation; a replacement daemon never\ninherits old targets. Closing a client releases its own processes and leaves\nthe daemon running.\n\nThe blocking client accepts a scoped `Cancellation` token that another domain\nor systhread can cancel. It drains admitted work before raising\n`Cancellation.Cancelled`, with at most one exchange timeout from detection.\nThe operation handle retains success, failure or uncertainty. Eio cancellation\nreleases the waiter immediately while a client-owned fiber drains the work.\nLocal scratch I/O must finish in either case; Eio performs it on a system\nthread. Filesystem failures have a distinct error from transport disconnects.\n\nPane PIDs and client terminal heights can be absent. The model exposes these as\noptions; a control client without a started terminal has no reported height.\ntmux itself sanitizes names on older releases and rejects some names on newer\nreleases. Captures preserve the observed value rather than reconstructing the\nargument originally submitted by another client.\n\nControl commands use ASCII escapes for non-ASCII bytes because tmux 3.3's\ncommand-string lexer can confuse a signed `0xff` byte with EOF. Metadata uses\ntmux's `q` format modifier and preserves physical newlines. A fixed read probe\ndetects the additional visual escaping used by tmux 3.4 before decoding it.\nControl clients must request UTF-8 mode so locale-dependent sanitization cannot\nalter captured bytes.\n\nAn end guard acknowledges a command. Completion requires the operation's\npostcondition or a following marker on its lane. A control client may exit\nwith status 1 after an earlier command failed, even when later commands and\nshutdown succeeded. Tests retain that distinction.\n\nThe optional JSON codec supports the scalar pane registry and Boolean nodes\nfrom Java's `libtmux.filter/1` at revision\n`e8a39689d8d60968ac978a1dd2a89c6112333896`. Both implementations agree on 66\ncaptured-value cases and read each other's encoded queries. Numeric operands\nuse signed 32-bit bounds. Regex, relationship documents, numeric membership\nand native extension fields remain unsupported in this wire schema.\n\nReproduce native checks with the commands in\n[CONTRIBUTING.md](../.github/CONTRIBUTING.md). The fixture builders use official\nrelease archives and retain archive and binary digests under `scratch/tmux/`.\n\nEnvironment reads use a bounded read-only process on the same daemon. The\nclient checks its reported PID and the original pidfd after collecting the\ncomplete response. Values may contain control-marker text without entering\nthe control parser. Replacement, malformed data, truncated output and capacity\nfailures never become a successful empty table. This route does not execute\nmutations or reconnect the primary lane.\n\nScoped options preserve scalar types, sparse array indexes and local versus\ninherited entries. Bulk inherited enumeration follows tmux and includes only\nbuilt-ins; `read_option` resolves a named inherited user option. Descriptors are\nqualified for the exact releases in the [option catalog](options.md). tmux fills\nthe lowest unused indexes when appending array elements.\n\nHook commands keep names and arguments separate. Built-in hook arrays report\nsynchronous failures; earlier effects remain after a later command fails. Named\n`@` hooks can be configured, read and removed, but `run_hook` rejects them because\ntmux may hide parse failures in the server log. Hooks that print arbitrary output\nremain outside the supported control transport contract.\n\nCaptured client names belong to a connection generation but may be reused within\nit. Operations address the client currently bearing that name. A detach request\nconfirms command processing, not peer exit; callers need separate exit evidence.\nSwitching an existing client does not create a new terminal.\n\n`Terminal.attach_current` opens an interactive terminal against an explicit\nendpoint and session ID. This separate utility is unbound: an ID can refer to a\ndifferent daemon if the endpoint changes. It accepts no captured target and\nnever retries or starts a daemon. Both backends wait for the terminal client to\nexit and reap it on cancellation. Supplied terminal streams remain caller-owned.\n\nThe generated [format catalog](formats.md) records exact-release availability\nand callback contexts. Local `Formats.lookup` distinguishes captured values,\nmissing values, unacquired fields and fields unsupported by that release.\nIt does not perform arbitrary format acquisition. Generated\n[operation conveniences](operations.md) share the same command constructors\nbetween Unix and Eio; the installed-consumer test exercises both adapters.\n" + }, + { + "path": "docs/testing.md", + "content": "# Testing and CI\n\nUse Alcotest for typed values and lifecycle invariants, `ppx_expect` for readable\noutput contracts, and QCheck for generated semantic cases. All three run through\nDune. The pure runtime library uses the standard library; the PPX is a test-only\ndependency.\n\nThe [cardinality tests](../test/core_test.ml) compare typed results using an\n`Alcotest.testable` with `Cardinality.pp_error`. A failure displays the expected\nand actual values, including the error variant's meaning. Comparing a Boolean\nexpression would only report `true` versus `false`. Keep testable printers small\nand show the values needed to understand the failure.\n\nThe [expect tests](../test/diagnostics_expect.ml) place expected diagnostic text\nbeside the code that prints it. A mismatch produces a diff and a `.corrected`\nfile. Inspect the changed meaning before promoting an expectation. Stable query\nexplanations, error messages and CLI output fit this style. Avoid snapshotting\ntimestamps, random IDs or whole server captures to test a small invariant.\n\n[QCheck cases](../test/query_test.ml) compare typed-expression evaluation against\nnative predicates with generated inputs. A fixed seed makes the current suite\nreproducible; shrinking helps explain counterexamples. Properties supplement the\nsmall authored edge cases and live tmux checks.\n\nRun the unit, expect, property and compile-failure suite:\n\n```console\n$ opam exec -- dune runtest --force\n```\n\nCold PPX driver compilation belongs to setup or an outer build. Time the warm\ntest command separately and retain the existing inner/mid budgets. Native and\ninstalled-consumer checks belong to the outer loop because they launch processes\nand own real tmux servers.\n\nRun the implemented native contract suite against one explicit release binary:\n\n```console\n$ opam exec -- python3 test/native_suite.py /path/to/tmux\n```\n\nThe [CI workflow](../.github/workflows/ocaml.yml) uses exactly OCaml 5.5.2,\nAlcotest 1.9.1, `ppx_expect` v0.17.3 and QCheck 0.91. It checks authored manifests,\nbuilds/odoc, generated files, formatting, unit/expect/property cases, four native\nrelease cells and separate 3.2a rejection. Each native cell installs the packages\ninto a temporary prefix and runs a consumer outside the checkout. Consumer\nfeatures still in development need their own later acceptance gates.\n\nThe CLI document check exercises regular files and piped input on both Eio\nbackends, including the inclusive 64 KiB boundary. Pass `--directory` to\nexercise a mounted filesystem using an owned temporary directory:\n\n```console\n$ opam exec -- python3 test/workspace_document_test.py\n```\n\n`ocaml/setup-ocaml` caches opam and the switch. The tmux composite action caches\nonly an installed prefix, keyed by source, runner image/version, architecture,\ncompiler, package versions and build/probe recipes. Dependencies are installed\nbefore validating either hits or misses. A restored binary must match its hash,\nreport the exact release and pass an owned-daemon probe with verified teardown.\nRejected caches rebuild; no broad restore key reuses a binary from another\nenvironment. Save a validated installation before running library tests.\n\nThe cache design adapts the [Go port's pinned implementation](https://github.com/libtmux/libtmux-go/blob/d8ea6f77ede9f75e96af78719c8c1707fc47bdfb/.github/scripts/tmux_build.py).\nThe APIs and testing styles follow the primary documentation for\n[setup-ocaml](https://github.com/ocaml/setup-ocaml/tree/ff66428f72b64472e749b22e0ad4dded4b2ddca6),\n[Alcotest](https://github.com/mirage/alcotest/tree/1.9.1),\n[ppx_expect](https://github.com/janestreet/ppx_expect/tree/v0.17.3), and\n[Dune tests](https://dune.readthedocs.io/en/stable/tests.html).\n\n## Executed documentation\n\nREADME and guide snippets name regions in the compiled programs under\n`examples/`; JSON includes use the complete shipped configuration. The source\nis authoritative; this check rejects drift:\n\n```console\n$ python3 tools/docs_snippets.py\n```\n\nThe installed-consumer test installs libraries into a separate prefix, builds\nevery shipped example in an independent Dune project and runs it against owned\ntmux servers. It checks linked-window contexts, typed/native query results,\ncreated layout geometry, options, pane titles, working directories, literal\ninput, future-byte matches, rendered-screen waits and zero remaining clients.\nOwned fixture teardown verifies pane and daemon exit.\n\nThe [standalone capability programs](showcases.md) include their own private\nserver setup. CI copies their whole source files into an independent Dune\nproject and executes the recorded `opam exec -- dune exec` commands against\ninstalled packages. Exact outcome lines and owned process/directory teardown\nare checked. The [inventory](../examples/showcase.json) records each source and\ncommand with its native workflow/job and tmux floor.\n\nEach native CI cell also runs the [workspace guide](workspaces.md) through real\n`opam exec` and an installed `tmux-workspace`. It executes the displayed setup,\nvalidation, plan, apply and cleanup commands, then checks receipt fields, pane\ndirectories, layout output, client closure and owned process exit. CLI fault\ntests pin their output pipe capacity so a larger host pipe cannot turn a\nstalled-consumer test into successful buffered delivery.\n\nThese are correctness checks and whole-command timings, not throughput\nbenchmarks. Do not derive performance comparisons from their durations.\n\n[Guide](README.md) · [API](api.md) · [Compatibility](compatibility.md)\n" + }, + { + "path": "docs/benchmarking.md", + "content": "# Measure capture, concurrency and output delivery\n\nThe [capture benchmark](../bench/capture.py) compares serial blocking and Eio\ncapture on one owned graph: one session, four windows and sixteen panes. Each\nsample captures the graph 100 times by default and selects active panes using both a\ncompiled expression and a native predicate over each same snapshot.\n\nThe harness checks exact ordered IDs across captures and modes, one observed\ntmux client and one child process per mode, and zero attached clients afterward.\nOwned fixture teardown verifies pane and daemon exit. Both modes reuse one\nbound connection for their captures; they perform no per-object acquisition.\n\n## Reproduce\n\nPrepare the [exact release fixture](../.github/CONTRIBUTING.md#owned-tmux-fixtures),\nthen build the benchmark outside normal test loops:\n\n```console\n$ opam exec -- dune build bench/capture.exe\n```\n\nRun it with Python 3.11 or newer. Choose a new output file each time:\n\n```console\n$ opam exec -- python3 bench/capture.py scratch/tmux/tmux-3.8/tmux \\\n --iterations 100 \\\n --repeat 5 \\\n --output scratch/capture-baseline.json\n```\n\nThe output records compiler and tmux versions, binary and behavior-source hashes,\nOS/architecture, CPU availability, starting load average, whole-command time,\nper-sample process time, client and daemon CPU usage, and OCaml heap allocation\nduring the capture loop. Samples include program startup, binding,\nthe capture loop and client closure. Fixture creation and compilation are\noutside the per-sample interval. Mode order alternates across repetitions.\n\n## Capture and graph size\n\nThese observations use OCaml 5.5.2 on one shared Linux host. Each table entry is\nmedian milliseconds for 50 captures, followed by its min–max across three\nsamples. The raw files retain the source commit, behavior hash and host load.\n\n| tmux | Blocking, ms | Eio, ms | Evidence |\n| --- | --- | --- | --- |\n| 3.3 | 49.7 (49.0–52.6) | 54.6 (53.9–55.2) | [Raw data](../bench/results/capture-3.3-4x4.json) |\n| 3.3a | 76.3 (76.3–76.3) | 86.6 (72.1–90.1) | [Raw data](../bench/results/capture-3.3a-4x4.json) |\n| 3.4 | 74.1 (72.6–76.0) | 75.8 (61.8–76.9) | [Raw data](../bench/results/capture-3.4-4x4.json) |\n| 3.8 | 52.0 (48.7–66.6) | 67.1 (52.4–69.0) | [Raw data](../bench/results/capture-3.8-4x4.json) |\n\nChange `--windows` and `--panes-per-window` to measure larger graphs. The same\ntmux 3.8 workload, with 50 captures and three samples per mode, produced:\n\n| Windows × panes per window | Blocking median, ms | Eio median, ms | Evidence |\n| --- | --- | --- | --- |\n| 1 × 1 | 28.5 | 28.0 | [Raw data](../bench/results/capture-3.8-1x1.json) |\n| 4 × 4 | 52.0 | 67.1 | [Raw data](../bench/results/capture-3.8-4x4.json) |\n| 8 × 8 | 113.8 | 114.9 | [Raw data](../bench/results/capture-3.8-8x8.json) |\n| 16 × 16 | 402.2 | 408.5 | [Raw data](../bench/results/capture-3.8-16x16.json) |\n\nThe largest graph has 256 panes. Each observation still uses batched graph\nacquisition. Allocation counters cover the OCaml heap during the capture loop;\nthey do not measure process RSS or tmux's allocations.\n\n## Concurrent requests, streaming and cancellation\n\nThe [Eio benchmark](../bench/concurrency.py) runs bounded concurrent option\nreads with distinct expected values. It checks response attribution and input\norder, then measures future output from an owned `cat` process with terminal\necho disabled. Output cursors must advance. Finally it cancels active byte\nwaits and checks subscription cleanup. One primary client becomes two while a\nstream lane is active; both observed client and child-process counts are\nchecked. No clients remain after closure, and owned pane/daemon exit is verified.\n\nBuild the executable outside normal test loops:\n\n```console\n$ opam exec -- dune build bench/concurrency.exe\n```\n\nRun the three phases against an owned release fixture:\n\n```console\n$ opam exec -- python3 bench/concurrency.py scratch/tmux/tmux-3.8/tmux \\\n --requests 128 \\\n --concurrency 8 \\\n --streams 10 \\\n --cancels 10 \\\n --repeat 3 \\\n --output scratch/concurrency-baseline.json\n```\n\nRequest time includes queueing until the attributed response. Stream time runs\nfrom sending literal input through observing the process's output. Cancellation\ntime runs from the cancellation request through the observer receiving it,\nincluding subscription cleanup. The p95 uses nearest rank across all samples.\n\nOn tmux 3.8, each row contains 384 requests, 30 stream samples and 30 cancellations:\n\n| Concurrent requests | Median requests/s | Request p95, ms | Stream p95, ms | Cancel p95, ms | Evidence |\n| --- | --- | --- | --- | --- | --- |\n| 1 | 556.6 | 2.517 | 0.598 | 0.258 | [Raw data](../bench/results/concurrency-3.8-c1.json) |\n| 8 | 487.9 | 19.955 | 0.863 | 0.368 | [Raw data](../bench/results/concurrency-3.8-c8.json) |\n| 16 | 561.5 | 29.746 | 0.569 | 0.220 | [Raw data](../bench/results/concurrency-3.8-c16.json) |\n| 64 | 423.5 | 159.039 | 0.667 | 0.406 | [Raw data](../bench/results/concurrency-3.8-c64.json) |\n\nThe eight-request workload also passes on\n[3.3](../bench/results/concurrency-3.3-c8.json),\n[3.3a](../bench/results/concurrency-3.3a-c8.json) and\n[3.4](../bench/results/concurrency-3.4-c8.json).\nHigher concurrency increases queueing on the retained connection. These\nmeasurements come from a shared host running other work; compare raw sample\nranges and load before choosing a workload or drawing performance conclusions.\n\nBenchmarks are a separate tier. Correctness gates and test-loop timings are\nlisted in [testing](testing.md), not used as throughput measurements. Keep a\nsingle benchmark run under ten minutes and a complete sweep under one hour.\n\n[Compatibility](compatibility.md) · [Control](control.md) · [Guide](README.md)\n" + }, + { + "path": "docs/status.md", + "content": "# Current capabilities and adoption gaps\n\nThe immutable model, typed queries, native Linux clients and output observation\nhave real-tmux evidence on 3.3, 3.3a, 3.4 and 3.8. The installed workspace CLI\nalso passes those cells. The final suite review remains unfinished.\nNo package or hosted-documentation release has been published.\n\n## What an application can use\n\nCapture a complete graph, retain it after closing the client, traverse shared\nwindows through session-specific links, filter with native predicates or typed\nexpressions, and establish cardinality before an explicit mutation. Native\noperations cover sessions, windows, panes, captured clients, layouts,\nenvironment, options and hooks. Both blocking and Eio transports retain\noperation outcomes and expose bounded subscriptions.\n\nThe [compatibility table](compatibility.md) identifies qualified components.\nThe [examples](README.md) are installed, compiled and executed against owned\nservers; they cover graph links, query results, created resources, literal\ninput, streaming, rendered waits and client teardown.\n\n## What is still missing\n\n| Area | Required evidence before complete-suite adoption |\n| --- | --- |\n| Documentation site | Qualify the final hosted reference and verify its deployed links; public `.cmti` export and local rendering are implemented |\n| Final qualification | Rerun every required component and exact release cell on the final source revision |\n| Package adoption | Obtain an independent caller-task review and resolve material findings |\n\n[Recorded benchmarks](benchmarking.md) cover blocking/Eio capture, graphs up to\n256 panes, concurrent requests, OCaml heap allocation, client/daemon CPU,\nfuture-output latency and cancellation cleanup. Their raw data preserves the\nworkload, source identities and host conditions.\n\nThe workspace model, JSON loader, blocking/Eio executors and installed CLI are\nimplemented. The [workspace guide](workspaces.md) executes the installed command\nthrough validation, planning, apply, receipt inspection and owned cleanup.\nLive tests cover partial effects, compensation, append isolation, stale plans,\ncancellation journals and bootstrap on fresh and existing daemons. Cleanup\ntargets only proven newly created panes; foreign panes moved into a new window\nremain. Versioned advisory plans and execution receipts preserve errors,\ncreation IDs and cleanup outcomes; output documents cannot be replayed as\noperational input. CLI checks also cover malformed input, collisions, missing\nendpoints, interrupted apply, changed documents and stalled or broken stdout.\n\n## Engineering assessment\n\nFor a Linux application needing immutable tmux observations and explicit native\ncontrol, the model and clients are candidates for adoption with the documented\nconstraints. Suite adoption still needs the documentation and qualification\nabove. Maintainer count and alpha status do not decide that\nassessment; observable behavior and recovery do.\n\nAn adopting engineer should expect explicit endpoint selection, client lifetime,\ncommand uncertainty and stream gaps. The package should keep these visible.\nImplicit reconnects, callback-driven property acquisition, a mandatory query\nwrapper or a required runtime for pure filtering would make the API harder to\nreason about.\n\nA 9.5/10 whole-package rating is not established. Hosted documentation and\nfinal qualification have open gates. Documentation\nquality cannot substitute for those results. [Testing](testing.md) describes\ncurrent evidence and how examples are kept in sync with source.\n\nMCP integration is excluded by project policy. Its SDK, conformance and host\nintegration are outside the adoption criteria. The supported automation\nsurfaces are native OCaml APIs and the workspace CLI; see\n[package boundaries](packages.md).\n" + }, + { + "path": "docs/workspaces.md", + "content": "# Create a workspace from JSON\n\n`tmux-workspace` validates a JSON configuration, previews an advisory plan, and\napplies a fresh plan to an explicit socket. Install it through the\n[source installation](../README.md#install-from-source); `opam install .`\nincludes the CLI. Run this guide from the repository root.\n\n`check` performs no tmux I/O. `plan` observes the endpoint and never starts a\ndaemon. `apply` rereads the document, checks current state, then executes ordered\nactions. A preview is not a transaction or an executable target.\n\n## Define the layout\n\nThe shipped [project.json](../examples/workspace/project.json) creates an\n`editor` window with two panes and a `logs` window with one. Each pane runs\n`/bin/cat -u` directly, keeping the demonstration alive without a shell command.\n\n\n\n```json\n{\n \"schema\": \"libtmux.workspace/1\",\n \"session\": \"ocaml-project\",\n \"cwd\": \".\",\n \"width\": 120,\n \"height\": 40,\n \"environment\": {\"PROJECT\": \"ocaml\"},\n \"options\": [{\"name\": \"@project\", \"kind\": \"text\", \"value\": \"ocaml\"}],\n \"windows\": [\n {\n \"name\": \"editor\",\n \"layout\": \"even-horizontal\",\n \"panes\": [\n {\"exec\": [\"/bin/cat\", \"-u\"]},\n {\"exec\": [\"/bin/cat\", \"-u\"], \"direction\": \"right\"}\n ]\n },\n {\"name\": \"logs\", \"panes\": [{\"exec\": [\"/bin/cat\", \"-u\"]}]}\n ]\n}\n```\n\nRelative directories resolve against the JSON file's directory. Environment\nvalues merge from session to window to pane. `exec` supplies literal argv;\n`shell` explicitly requests shell interpretation. They are mutually exclusive.\nOmitting both uses tmux's default command. `startup` entries send literal text\nfollowed by Enter; they do not wait for a command to finish.\n\n## Validate, preview and apply\n\nThis walkthrough uses a private server and an empty tmux configuration. The\n`seed` session keeps the server alive while the CLI creates the project.\nInherited `TMUX` and `TMUX_PANE` do not select the endpoint.\n\n\n\n```console\n$ export LIBTMUX_WORKSPACE_DIR=\"$(mktemp -d -t libtmux-ocaml-workspace.XXXXXX)\"\n```\n\nCopying the file also makes its working directory the private directory:\n\n```console\n$ cp examples/workspace/project.json \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\n```console\n$ opam exec -- tmux-workspace check \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nExpected output: `Valid workspace \"ocaml-project\": 2 windows, 3 panes`.\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s seed \\\n -- \"exec cat\"\n```\n\n```console\n$ opam exec -- tmux-workspace plan \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nThe plan lists session creation, settings, the split and layout, and the logs\nwindow. Applying it requires the original configuration:\n\n```console\n$ opam exec -- tmux-workspace apply \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n --json \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n > \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\nThe receipt uses `libtmux.workspace-receipt/1`. On success, `status` is\n`succeeded`; `failed`, `uncertain` and `skipped` are empty. Each creation records\nthe IDs returned by tmux. Check the resulting windows independently:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n list-windows \\\n -t '=ocaml-project' \\\n -F '#{window_name}:#{window_panes}'\n```\n\nExpected output is `editor:2` followed by `logs:1`.\n\nRemove only the sessions this walkthrough created:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=ocaml-project'\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=seed'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_WORKSPACE_DIR\"\n```\n\n\n\nWithout `--require-existing`, `apply` can start a missing endpoint by creating\nthe requested session. That server uses the normal tmux configuration. Closing\nthe CLI's client leaves the server running; its appearance does not grant\ndaemon ownership. `plan` on a missing endpoint checks the local tmux version\nand returns a bootstrap plan without creating the socket.\n\n## Collisions and recovery\n\nAn existing session name fails with exit 4 by default. `--append` adds new\nwindows to that session and rejects window-name collisions. Append never\nchanges the existing session's options or environment; omit those session\nsettings from an append document. It preserves existing panes.\n\nUse `--json` on `check` or `plan` to obtain `document_digest`, then pass that\nvalue through `--expect-document` on apply. A changed document fails before\nendpoint I/O. The digest does not lock tmux state. Each apply builds and\nrechecks its own plan on the current connection generation.\n\nOn failure or SIGINT, inspect the receipt before deciding what to do next.\nDefault compensation kills only panes whose creation the journal proved, in\nreverse order. A foreign pane moved into a new window remains. `--keep-partial`\nretains proven creations instead. Cleanup failures and creations whose IDs\ncould not be bound remain explicit. Never rerun an uncertain mutation solely\nbecause its caller was interrupted.\n\n| Exit | Meaning |\n| --- | --- |\n| 0 | Validation, planning or apply succeeded |\n| 2 | Invalid arguments or document |\n| 3 | Required endpoint missing |\n| 4 | Collision, changed document or stale plan |\n| 5 | Failed, partial or uncertain apply; inspect the receipt |\n| 6 | Transport, capability or result-delivery failure |\n| 130 | SIGINT; the available journal is emitted within the cleanup bound |\n\nSIGINT does not undo admitted commands. Receipt output is bounded; a blocked or\nbroken stdout cannot produce a successful exit. Forced process termination\ncannot promise a delivered receipt. Expected failures are distinct from Eio\ncancellation in the native API, which propagates cancellation to the caller.\n\n## Bounds and native callers\n\nDocuments use UTF-8 JSON with a 64 KiB input bound and depth limit 32. Unknown\nand duplicate properties fail. Configurations allow at most 64 windows and 256\npanes; a plan allows at most 4096 actions. Plans and receipts have a 4 MiB output\nbound. Plans omit environment values, option values and startup text. They can\nstill contain command arguments and paths; treat them as application data.\n\nFor native code, use `Libtmux_json.Workspace.of_string`,\n`Libtmux_workspace.Plan.make`, and the backend's `Workspace.submit` or\n`Workspace.submit_bootstrap`. `inspect` reads the retained journal locally;\n`await` performs I/O. The application owns the Eio switch and scheduler.\nSee the [API reference](api.md), [control outcomes](control.md) and\n[compatibility evidence](compatibility.md).\n" + } + ] +} diff --git a/site/src/data/registry.json b/site/src/data/registry.json index 86e3a7125..00aef885b 100644 --- a/site/src/data/registry.json +++ b/site/src/data/registry.json @@ -157,6 +157,13 @@ "version": "0.1.0", "release": "0.1.0", "tag": "0.1.0" + }, + "ocaml": { + "status": "unpublished", + "version": null, + "release": null, + "tag": null, + "maturity": "unreleased" } } } diff --git a/site/src/data/tmux-usage/ocaml.json b/site/src/data/tmux-usage/ocaml.json new file mode 100644 index 000000000..9d53ed542 --- /dev/null +++ b/site/src/data/tmux-usage/ocaml.json @@ -0,0 +1,1987 @@ +{ + "commands": [ + "attach-session", + "bind-key", + "break-pane", + "capture-pane", + "choose-buffer", + "choose-client", + "choose-tree", + "clear-history", + "clear-prompt-history", + "clock-mode", + "command-prompt", + "confirm-before", + "copy-mode", + "customize-mode", + "delete-buffer", + "detach-client", + "display-menu", + "display-message", + "display-panes", + "display-popup", + "find-window", + "has-session", + "if-shell", + "join-pane", + "kill-pane", + "kill-server", + "kill-session", + "kill-window", + "last-pane", + "last-window", + "link-window", + "list-buffers", + "list-clients", + "list-commands", + "list-keys", + "list-panes", + "list-sessions", + "list-windows", + "load-buffer", + "lock-client", + "lock-server", + "lock-session", + "move-pane", + "move-window", + "new-pane", + "new-session", + "new-window", + "next-layout", + "next-window", + "paste-buffer", + "pipe-pane", + "previous-layout", + "previous-window", + "refresh-client", + "rename-session", + "rename-window", + "resize-pane", + "resize-window", + "respawn-pane", + "respawn-window", + "rotate-window", + "run-shell", + "save-buffer", + "select-layout", + "select-pane", + "select-window", + "send-keys", + "send-prefix", + "server-access", + "set-buffer", + "set-environment", + "set-hook", + "set-option", + "set-window-option", + "show-buffer", + "show-environment", + "show-hooks", + "show-messages", + "show-options", + "show-prompt-history", + "show-window-options", + "source-file", + "split-window", + "start-server", + "suspend-client", + "swap-pane", + "swap-window", + "switch-client", + "unbind-key", + "unlink-window", + "wait-for" + ], + "port": "ocaml", + "repo": "libtmux/libtmux-ocaml", + "revision": "ade2f9787024a5426710cec06f864648c217263c", + "schemaVersion": 1, + "symbols": { + "Libtmux_eio.Client.break_pane": [ + { + "command": "break-pane", + "evidence": [ + "unix/engine.ml:288", + "eio/generated_operations.ml:103", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:317", + "lib/commands.ml:318", + "unix/command_encoding.ml:389", + "unix/command_encoding.ml:390" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.capture": [ + { + "command": "list-clients", + "evidence": [ + "unix/acquisition.ml:118", + "eio/libtmux_eio.ml:400", + "eio/libtmux_eio.ml:390", + "unix/engine.ml:294" + ], + "reviewed": true, + "scope": null + }, + { + "command": "list-panes", + "evidence": [ + "unix/acquisition.ml:65", + "eio/libtmux_eio.ml:400", + "eio/libtmux_eio.ml:390", + "unix/engine.ml:294" + ], + "reviewed": true, + "scope": "server" + }, + { + "command": "list-sessions", + "evidence": [ + "unix/acquisition.ml:16", + "eio/libtmux_eio.ml:400", + "eio/libtmux_eio.ml:390", + "unix/engine.ml:294" + ], + "reviewed": true, + "scope": null + }, + { + "command": "list-windows", + "evidence": [ + "unix/acquisition.ml:30", + "eio/libtmux_eio.ml:400", + "eio/libtmux_eio.ml:390", + "unix/engine.ml:294" + ], + "reviewed": true, + "scope": "server" + } + ], + "Libtmux_eio.Client.capture_environment": [ + { + "command": "show-environment", + "evidence": [ + "unix/environment_io.ml:103", + "eio/generated_operations.ml:42", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:267", + "lib/commands.ml:268", + "unix/engine.ml:101", + "unix/engine.ml:103" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.capture_hooks": [ + { + "command": "show-hooks", + "evidence": [ + "unix/options_io.ml:199", + "eio/generated_operations.ml:73", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:294", + "lib/commands.ml:294", + "unix/engine.ml:120", + "unix/engine.ml:126" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.capture_options": [ + { + "command": "show-options", + "evidence": [ + "unix/options_io.ml:199", + "eio/generated_operations.ml:55", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:279", + "lib/commands.ml:280", + "unix/engine.ml:107", + "unix/engine.ml:110" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.capture_text": [ + { + "command": "capture-pane", + "evidence": [ + "unix/rendered.ml:88", + "eio/libtmux_eio.ml:409", + "eio/libtmux_eio.ml:390", + "unix/engine.ml:311" + ], + "reviewed": true, + "scope": null + }, + { + "command": "delete-buffer", + "evidence": [ + "unix/rendered.ml:81", + "eio/libtmux_eio.ml:409", + "eio/libtmux_eio.ml:390", + "unix/engine.ml:311" + ], + "incidental": true, + "reviewed": true, + "scope": null, + "when": "while the connection remains open" + }, + { + "command": "list-buffers", + "evidence": [ + "unix/rendered.ml:100", + "eio/libtmux_eio.ml:409", + "eio/libtmux_eio.ml:390", + "unix/engine.ml:311" + ], + "incidental": true, + "reviewed": true, + "scope": null + }, + { + "command": "save-buffer", + "evidence": [ + "unix/rendered.ml:125", + "eio/libtmux_eio.ml:409", + "eio/libtmux_eio.ml:390", + "unix/engine.ml:311" + ], + "incidental": true, + "reviewed": true, + "scope": null + }, + { + "command": "show-hooks", + "evidence": [ + "unix/rendered.ml:27", + "eio/libtmux_eio.ml:409", + "eio/libtmux_eio.ml:390", + "unix/engine.ml:311" + ], + "incidental": true, + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.clear_history": [ + { + "command": "clear-history", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:168", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:364", + "lib/commands.ml:364", + "unix/command_encoding.ml:285", + "unix/command_encoding.ml:285" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.clear_option_array": [ + { + "command": "set-option", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:70", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:291", + "lib/commands.ml:292", + "unix/command_encoding.ml:315", + "unix/command_encoding.ml:319" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.create_session": [ + { + "command": "new-session", + "evidence": [ + "unix/engine.ml:288", + "eio/generated_operations.ml:90", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:307", + "lib/commands.ml:309", + "unix/command_encoding.ml:356", + "unix/command_encoding.ml:360" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.create_window": [ + { + "command": "new-window", + "evidence": [ + "unix/engine.ml:288", + "eio/generated_operations.ml:95", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:311", + "lib/commands.ml:312", + "unix/command_encoding.ml:372", + "unix/command_encoding.ml:377" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.cycle_layout": [ + { + "command": "next-layout", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:148", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:348", + "lib/commands.ml:349", + "unix/command_encoding.ml:263", + "unix/command_encoding.ml:265" + ], + "reviewed": true, + "scope": null, + "when": "direction is `Next" + }, + { + "command": "previous-layout", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:148", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:348", + "lib/commands.ml:349", + "unix/command_encoding.ml:263", + "unix/command_encoding.ml:266" + ], + "reviewed": true, + "scope": null, + "when": "direction is `Previous" + } + ], + "Libtmux_eio.Client.kill_pane": [ + { + "command": "kill-pane", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:113", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:322", + "lib/commands.ml:322", + "unix/command_encoding.ml:242", + "unix/command_encoding.ml:242" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.kill_session": [ + { + "command": "kill-session", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:107", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:320", + "lib/commands.ml:320", + "unix/command_encoding.ml:240", + "unix/command_encoding.ml:240" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.kill_window": [ + { + "command": "kill-window", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:110", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:321", + "lib/commands.ml:321", + "unix/command_encoding.ml:241", + "unix/command_encoding.ml:241" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.link_window": [ + { + "command": "link-window", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:123", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:330", + "lib/commands.ml:331", + "unix/command_encoding.ml:248", + "unix/command_encoding.ml:249" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.move_pane": [ + { + "command": "move-pane", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:151", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:351", + "lib/commands.ml:352", + "unix/command_encoding.ml:268", + "unix/command_encoding.ml:269" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.move_window_at": [ + { + "command": "move-window", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:127", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:333", + "lib/commands.ml:334", + "unix/command_encoding.ml:250", + "unix/command_encoding.ml:251" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.read_hook": [ + { + "command": "show-options", + "evidence": [ + "unix/options_io.ml:223", + "eio/generated_operations.ml:76", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:296", + "lib/commands.ml:297", + "unix/engine.ml:127", + "unix/engine.ml:131" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.read_option": [ + { + "command": "show-options", + "evidence": [ + "unix/options_io.ml:223", + "eio/generated_operations.ml:59", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:282", + "lib/commands.ml:283", + "unix/engine.ml:113", + "unix/engine.ml:116" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.refresh_client_at": [ + { + "command": "refresh-client", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:22", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:256", + "lib/commands.ml:257", + "unix/command_encoding.ml:229", + "unix/command_encoding.ml:230" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.remove_environment": [ + { + "command": "set-environment", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:52", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:276", + "lib/commands.ml:277", + "unix/command_encoding.ml:295", + "unix/command_encoding.ml:297" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.remove_hook": [ + { + "command": "set-hook", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:84", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:302", + "lib/commands.ml:303", + "unix/command_encoding.ml:329", + "unix/command_encoding.ml:331" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.rename_session": [ + { + "command": "rename-session", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:12", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:248", + "lib/commands.ml:248", + "unix/engine.ml:154", + "unix/engine.ml:157" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.rename_window": [ + { + "command": "rename-window", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:9", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:247", + "lib/commands.ml:247", + "unix/engine.ml:145", + "unix/engine.ml:148" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.request_detach_client_at": [ + { + "command": "detach-client", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:19", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:253", + "lib/commands.ml:254", + "unix/command_encoding.ml:227", + "unix/command_encoding.ml:228" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.resize_control_client_at": [ + { + "command": "refresh-client", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:26", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:259", + "lib/commands.ml:260", + "unix/command_encoding.ml:232", + "unix/command_encoding.ml:233" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.resize_pane": [ + { + "command": "resize-pane", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:138", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:339", + "lib/commands.ml:340", + "unix/command_encoding.ml:257", + "unix/command_encoding.ml:258" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.resize_window": [ + { + "command": "resize-window", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:141", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:342", + "lib/commands.ml:343", + "unix/command_encoding.ml:259", + "unix/command_encoding.ml:260" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.respawn_pane": [ + { + "command": "respawn-pane", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:164", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:361", + "lib/commands.ml:362", + "unix/command_encoding.ml:279", + "unix/command_encoding.ml:281" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.rotate_panes": [ + { + "command": "rotate-window", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:158", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:356", + "lib/commands.ml:357", + "unix/command_encoding.ml:274", + "unix/command_encoding.ml:275" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.run_hook": [ + { + "command": "set-hook", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:87", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:305", + "lib/commands.ml:305", + "unix/command_encoding.ml:333", + "unix/command_encoding.ml:345" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.select_layout": [ + { + "command": "select-layout", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:145", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:345", + "lib/commands.ml:346", + "unix/command_encoding.ml:261", + "unix/command_encoding.ml:262" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.select_pane": [ + { + "command": "select-pane", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:132", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:336", + "lib/commands.ml:336", + "unix/command_encoding.ml:254", + "unix/command_encoding.ml:254" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.select_window_at": [ + { + "command": "select-window", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:116", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:324", + "lib/commands.ml:325", + "unix/command_encoding.ml:243", + "unix/command_encoding.ml:244" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.send_keys": [ + { + "command": "send-keys", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:33", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:263", + "lib/commands.ml:263", + "unix/engine.ml:165", + "unix/engine.ml:174" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.send_text": [ + { + "command": "send-keys", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:30", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:262", + "lib/commands.ml:262", + "unix/engine.ml:163", + "unix/engine.ml:164" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.set_environment": [ + { + "command": "set-environment", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:45", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:270", + "lib/commands.ml:271", + "unix/command_encoding.ml:286", + "unix/command_encoding.ml:288" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.set_hook": [ + { + "command": "set-hook", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:80", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:299", + "lib/commands.ml:300", + "unix/command_encoding.ml:320", + "unix/command_encoding.ml:325" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.set_option": [ + { + "command": "set-option", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:63", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:285", + "lib/commands.ml:286", + "unix/command_encoding.ml:298", + "unix/command_encoding.ml:307" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.set_pane_title": [ + { + "command": "select-pane", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:135", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:337", + "lib/commands.ml:337", + "unix/command_encoding.ml:255", + "unix/command_encoding.ml:256" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.signal": [ + { + "command": "wait-for", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:39", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:265", + "lib/commands.ml:265", + "unix/engine.ml:175", + "unix/engine.ml:183" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.split_pane": [ + { + "command": "split-window", + "evidence": [ + "unix/engine.ml:288", + "eio/generated_operations.ml:99", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:314", + "lib/commands.ml:315", + "unix/command_encoding.ml:381", + "unix/command_encoding.ml:384" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.subscribe": [ + { + "command": "display-message", + "evidence": [ + "unix/streaming.ml:360", + "eio/libtmux_eio.ml:395" + ], + "scope": null + }, + { + "command": "refresh-client", + "evidence": [ + "unix/streaming.ml:376", + "eio/libtmux_eio.ml:395" + ], + "scope": null, + "when": "when opening a new stream lane" + } + ], + "Libtmux_eio.Client.swap_panes": [ + { + "command": "swap-pane", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:155", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:354", + "lib/commands.ml:354", + "unix/command_encoding.ml:272", + "unix/command_encoding.ml:273" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.switch_client_at": [ + { + "command": "switch-client", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:15", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:250", + "lib/commands.ml:251", + "unix/command_encoding.ml:223", + "unix/command_encoding.ml:224" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.unlink_window_at": [ + { + "command": "unlink-window", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:119", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:327", + "lib/commands.ml:328", + "unix/command_encoding.ml:245", + "unix/command_encoding.ml:246" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.unset_environment": [ + { + "command": "set-environment", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:49", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:273", + "lib/commands.ml:274", + "unix/command_encoding.ml:292", + "unix/command_encoding.ml:294" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.unset_option": [ + { + "command": "set-option", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:67", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:288", + "lib/commands.ml:289", + "unix/command_encoding.ml:311", + "unix/command_encoding.ml:313" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.wait_for": [ + { + "command": "wait-for", + "evidence": [ + "unix/engine.ml:315", + "eio/generated_operations.ml:36", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:264", + "lib/commands.ml:264", + "unix/engine.ml:175", + "unix/engine.ml:183" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_eio.Client.zoom_pane": [ + { + "command": "resize-pane", + "evidence": [ + "unix/engine.ml:283", + "eio/generated_operations.ml:161", + "eio/libtmux_eio.ml:402", + "eio/libtmux_eio.ml:390", + "lib/commands.ml:359", + "lib/commands.ml:359", + "unix/command_encoding.ml:278", + "unix/command_encoding.ml:278" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.break_pane": [ + { + "command": "break-pane", + "evidence": [ + "unix/engine.ml:288", + "unix/generated_operations.ml:117", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:317", + "lib/commands.ml:318", + "unix/command_encoding.ml:389", + "unix/command_encoding.ml:390" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.capture": [ + { + "command": "list-clients", + "evidence": [ + "unix/acquisition.ml:118", + "unix/libtmux_unix.ml:100", + "unix/libtmux_unix.ml:92", + "unix/engine.ml:294" + ], + "reviewed": true, + "scope": null + }, + { + "command": "list-panes", + "evidence": [ + "unix/acquisition.ml:65", + "unix/libtmux_unix.ml:100", + "unix/libtmux_unix.ml:92", + "unix/engine.ml:294" + ], + "reviewed": true, + "scope": "server" + }, + { + "command": "list-sessions", + "evidence": [ + "unix/acquisition.ml:16", + "unix/libtmux_unix.ml:100", + "unix/libtmux_unix.ml:92", + "unix/engine.ml:294" + ], + "reviewed": true, + "scope": null + }, + { + "command": "list-windows", + "evidence": [ + "unix/acquisition.ml:30", + "unix/libtmux_unix.ml:100", + "unix/libtmux_unix.ml:92", + "unix/engine.ml:294" + ], + "reviewed": true, + "scope": "server" + } + ], + "Libtmux_unix.Client.capture_environment": [ + { + "command": "show-environment", + "evidence": [ + "unix/environment_io.ml:103", + "unix/generated_operations.ml:49", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:267", + "lib/commands.ml:268", + "unix/engine.ml:101", + "unix/engine.ml:103" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.capture_hooks": [ + { + "command": "show-hooks", + "evidence": [ + "unix/options_io.ml:199", + "unix/generated_operations.ml:85", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:294", + "lib/commands.ml:294", + "unix/engine.ml:120", + "unix/engine.ml:126" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.capture_options": [ + { + "command": "show-options", + "evidence": [ + "unix/options_io.ml:199", + "unix/generated_operations.ml:65", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:279", + "lib/commands.ml:280", + "unix/engine.ml:107", + "unix/engine.ml:110" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.capture_text": [ + { + "command": "capture-pane", + "evidence": [ + "unix/rendered.ml:88", + "unix/libtmux_unix.ml:109", + "unix/libtmux_unix.ml:92", + "unix/engine.ml:311" + ], + "reviewed": true, + "scope": null + }, + { + "command": "delete-buffer", + "evidence": [ + "unix/rendered.ml:81", + "unix/libtmux_unix.ml:109", + "unix/libtmux_unix.ml:92", + "unix/engine.ml:311" + ], + "incidental": true, + "reviewed": true, + "scope": null, + "when": "while the connection remains open" + }, + { + "command": "list-buffers", + "evidence": [ + "unix/rendered.ml:100", + "unix/libtmux_unix.ml:109", + "unix/libtmux_unix.ml:92", + "unix/engine.ml:311" + ], + "incidental": true, + "reviewed": true, + "scope": null + }, + { + "command": "save-buffer", + "evidence": [ + "unix/rendered.ml:125", + "unix/libtmux_unix.ml:109", + "unix/libtmux_unix.ml:92", + "unix/engine.ml:311" + ], + "incidental": true, + "reviewed": true, + "scope": null + }, + { + "command": "show-hooks", + "evidence": [ + "unix/rendered.ml:27", + "unix/libtmux_unix.ml:109", + "unix/libtmux_unix.ml:92", + "unix/engine.ml:311" + ], + "incidental": true, + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.clear_history": [ + { + "command": "clear-history", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:189", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:364", + "lib/commands.ml:364", + "unix/command_encoding.ml:285", + "unix/command_encoding.ml:285" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.clear_option_array": [ + { + "command": "set-option", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:81", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:291", + "lib/commands.ml:292", + "unix/command_encoding.ml:315", + "unix/command_encoding.ml:319" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.create_session": [ + { + "command": "new-session", + "evidence": [ + "unix/engine.ml:288", + "unix/generated_operations.ml:104", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:307", + "lib/commands.ml:309", + "unix/command_encoding.ml:356", + "unix/command_encoding.ml:360" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.create_window": [ + { + "command": "new-window", + "evidence": [ + "unix/engine.ml:288", + "unix/generated_operations.ml:109", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:311", + "lib/commands.ml:312", + "unix/command_encoding.ml:372", + "unix/command_encoding.ml:377" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.cycle_layout": [ + { + "command": "next-layout", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:167", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:348", + "lib/commands.ml:349", + "unix/command_encoding.ml:263", + "unix/command_encoding.ml:265" + ], + "reviewed": true, + "scope": null, + "when": "direction is `Next" + }, + { + "command": "previous-layout", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:167", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:348", + "lib/commands.ml:349", + "unix/command_encoding.ml:263", + "unix/command_encoding.ml:266" + ], + "reviewed": true, + "scope": null, + "when": "direction is `Previous" + } + ], + "Libtmux_unix.Client.kill_pane": [ + { + "command": "kill-pane", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:127", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:322", + "lib/commands.ml:322", + "unix/command_encoding.ml:242", + "unix/command_encoding.ml:242" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.kill_session": [ + { + "command": "kill-session", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:121", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:320", + "lib/commands.ml:320", + "unix/command_encoding.ml:240", + "unix/command_encoding.ml:240" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.kill_window": [ + { + "command": "kill-window", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:124", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:321", + "lib/commands.ml:321", + "unix/command_encoding.ml:241", + "unix/command_encoding.ml:241" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.link_window": [ + { + "command": "link-window", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:138", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:330", + "lib/commands.ml:331", + "unix/command_encoding.ml:248", + "unix/command_encoding.ml:249" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.move_pane": [ + { + "command": "move-pane", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:171", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:351", + "lib/commands.ml:352", + "unix/command_encoding.ml:268", + "unix/command_encoding.ml:269" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.move_window_at": [ + { + "command": "move-window", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:143", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:333", + "lib/commands.ml:334", + "unix/command_encoding.ml:250", + "unix/command_encoding.ml:251" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.read_hook": [ + { + "command": "show-options", + "evidence": [ + "unix/options_io.ml:223", + "unix/generated_operations.ml:88", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:296", + "lib/commands.ml:297", + "unix/engine.ml:127", + "unix/engine.ml:131" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.read_option": [ + { + "command": "show-options", + "evidence": [ + "unix/options_io.ml:223", + "unix/generated_operations.ml:69", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:282", + "lib/commands.ml:283", + "unix/engine.ml:113", + "unix/engine.ml:116" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.refresh_client_at": [ + { + "command": "refresh-client", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:29", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:256", + "lib/commands.ml:257", + "unix/command_encoding.ml:229", + "unix/command_encoding.ml:230" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.remove_environment": [ + { + "command": "set-environment", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:61", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:276", + "lib/commands.ml:277", + "unix/command_encoding.ml:295", + "unix/command_encoding.ml:297" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.remove_hook": [ + { + "command": "set-hook", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:96", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:302", + "lib/commands.ml:303", + "unix/command_encoding.ml:329", + "unix/command_encoding.ml:331" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.rename_session": [ + { + "command": "rename-session", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:17", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:248", + "lib/commands.ml:248", + "unix/engine.ml:154", + "unix/engine.ml:157" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.rename_window": [ + { + "command": "rename-window", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:13", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:247", + "lib/commands.ml:247", + "unix/engine.ml:145", + "unix/engine.ml:148" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.request_detach_client_at": [ + { + "command": "detach-client", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:25", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:253", + "lib/commands.ml:254", + "unix/command_encoding.ml:227", + "unix/command_encoding.ml:228" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.resize_control_client_at": [ + { + "command": "refresh-client", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:33", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:259", + "lib/commands.ml:260", + "unix/command_encoding.ml:232", + "unix/command_encoding.ml:233" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.resize_pane": [ + { + "command": "resize-pane", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:155", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:339", + "lib/commands.ml:340", + "unix/command_encoding.ml:257", + "unix/command_encoding.ml:258" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.resize_window": [ + { + "command": "resize-window", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:159", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:342", + "lib/commands.ml:343", + "unix/command_encoding.ml:259", + "unix/command_encoding.ml:260" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.respawn_pane": [ + { + "command": "respawn-pane", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:185", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:361", + "lib/commands.ml:362", + "unix/command_encoding.ml:279", + "unix/command_encoding.ml:281" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.rotate_panes": [ + { + "command": "rotate-window", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:178", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:356", + "lib/commands.ml:357", + "unix/command_encoding.ml:274", + "unix/command_encoding.ml:275" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.run_hook": [ + { + "command": "set-hook", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:100", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:305", + "lib/commands.ml:305", + "unix/command_encoding.ml:333", + "unix/command_encoding.ml:345" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.select_layout": [ + { + "command": "select-layout", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:163", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:345", + "lib/commands.ml:346", + "unix/command_encoding.ml:261", + "unix/command_encoding.ml:262" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.select_pane": [ + { + "command": "select-pane", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:148", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:336", + "lib/commands.ml:336", + "unix/command_encoding.ml:254", + "unix/command_encoding.ml:254" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.select_window_at": [ + { + "command": "select-window", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:130", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:324", + "lib/commands.ml:325", + "unix/command_encoding.ml:243", + "unix/command_encoding.ml:244" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.send_keys": [ + { + "command": "send-keys", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:40", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:263", + "lib/commands.ml:263", + "unix/engine.ml:165", + "unix/engine.ml:174" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.send_text": [ + { + "command": "send-keys", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:37", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:262", + "lib/commands.ml:262", + "unix/engine.ml:163", + "unix/engine.ml:164" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.set_environment": [ + { + "command": "set-environment", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:53", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:270", + "lib/commands.ml:271", + "unix/command_encoding.ml:286", + "unix/command_encoding.ml:288" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.set_hook": [ + { + "command": "set-hook", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:92", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:299", + "lib/commands.ml:300", + "unix/command_encoding.ml:320", + "unix/command_encoding.ml:325" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.set_option": [ + { + "command": "set-option", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:73", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:285", + "lib/commands.ml:286", + "unix/command_encoding.ml:298", + "unix/command_encoding.ml:307" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.set_pane_title": [ + { + "command": "select-pane", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:151", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:337", + "lib/commands.ml:337", + "unix/command_encoding.ml:255", + "unix/command_encoding.ml:256" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.signal": [ + { + "command": "wait-for", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:46", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:265", + "lib/commands.ml:265", + "unix/engine.ml:175", + "unix/engine.ml:183" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.split_pane": [ + { + "command": "split-window", + "evidence": [ + "unix/engine.ml:288", + "unix/generated_operations.ml:113", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:314", + "lib/commands.ml:315", + "unix/command_encoding.ml:381", + "unix/command_encoding.ml:384" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.subscribe": [ + { + "command": "display-message", + "evidence": [ + "unix/streaming.ml:360", + "unix/libtmux_unix.ml:97" + ], + "scope": null + }, + { + "command": "refresh-client", + "evidence": [ + "unix/streaming.ml:376", + "unix/libtmux_unix.ml:97" + ], + "scope": null, + "when": "when opening a new stream lane" + } + ], + "Libtmux_unix.Client.swap_panes": [ + { + "command": "swap-pane", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:175", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:354", + "lib/commands.ml:354", + "unix/command_encoding.ml:272", + "unix/command_encoding.ml:273" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.switch_client_at": [ + { + "command": "switch-client", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:21", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:250", + "lib/commands.ml:251", + "unix/command_encoding.ml:223", + "unix/command_encoding.ml:224" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.unlink_window_at": [ + { + "command": "unlink-window", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:134", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:327", + "lib/commands.ml:328", + "unix/command_encoding.ml:245", + "unix/command_encoding.ml:246" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.unset_environment": [ + { + "command": "set-environment", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:57", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:273", + "lib/commands.ml:274", + "unix/command_encoding.ml:292", + "unix/command_encoding.ml:294" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.unset_option": [ + { + "command": "set-option", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:77", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:288", + "lib/commands.ml:289", + "unix/command_encoding.ml:311", + "unix/command_encoding.ml:313" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.wait_for": [ + { + "command": "wait-for", + "evidence": [ + "unix/engine.ml:315", + "unix/generated_operations.ml:43", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:264", + "lib/commands.ml:264", + "unix/engine.ml:175", + "unix/engine.ml:183" + ], + "reviewed": true, + "scope": null + } + ], + "Libtmux_unix.Client.zoom_pane": [ + { + "command": "resize-pane", + "evidence": [ + "unix/engine.ml:283", + "unix/generated_operations.ml:182", + "unix/libtmux_unix.ml:102", + "unix/libtmux_unix.ml:92", + "lib/commands.ml:359", + "lib/commands.ml:359", + "unix/command_encoding.ml:278", + "unix/command_encoding.ml:278" + ], + "reviewed": true, + "scope": null + } + ] + } +} diff --git a/site/src/lib/api-glossary-native.ts b/site/src/lib/api-glossary-native.ts index 76e1d3218..0eba44033 100644 --- a/site/src/lib/api-glossary-native.ts +++ b/site/src/lib/api-glossary-native.ts @@ -24,6 +24,19 @@ const elixirDocs = (page: string) => `https://elixir.hexdocs.pm/${page}` const swiftBook = (page: string) => `https://docs.swift.org/latest/documentation/the-swift-programming-language/${page}/` export const NATIVE_API_GLOSSARIES: Record> = { + ocaml: { + package: term('An installable OCaml library package. Its public modules supply the declarations in this reference.', 'OCaml libraries with Dune', 'https://ocaml.org/docs/libraries-dune', 'A package name and an OCaml module path are distinct: libtmux-unix provides Libtmux_unix.'), + module: term('An OCaml module exposing values, types and nested modules through a signature.', 'OCaml module types', 'https://ocaml.org/manual/5.5/modtypes.html#s:modtypes'), + interface: term('An OCaml module type specifying the declarations a module must provide.', 'OCaml module types', 'https://ocaml.org/manual/5.5/modtypes.html#s:modtypes'), + typealias: term('An OCaml type declaration. A declaration without an equation or representation is abstract.', 'OCaml type and exception definitions', 'https://ocaml.org/manual/5.5/typedecl.html#s:tydef'), + opaque: term('An abstract OCaml type whose representation is hidden by its public signature.', 'OCaml module types', 'https://ocaml.org/manual/5.5/modtypes.html#s:modtypes'), + enum: term('An OCaml variant type with named constructors, which can carry values.', 'OCaml type and exception definitions', 'https://ocaml.org/manual/5.5/typedecl.html#s:tydef'), + struct: term('An OCaml record type with named fields.', 'OCaml type and exception definitions', 'https://ocaml.org/manual/5.5/typedecl.html#s:tydef'), + constant: term('A named OCaml value or variant constructor. The signature does not promise a compile-time constant.', 'OCaml module types', 'https://ocaml.org/manual/5.5/modtypes.html#s:modtypes'), + function: term('An OCaml value with a function type. Arguments are curried and can carry labels or be optional.', 'OCaml expressions', 'https://ocaml.org/manual/5.5/expr.html#s:value-expr'), + attribute: term('A field of an OCaml record. Its module supplies the qualified name; the reference groups it under its declaring type.', 'OCaml type and exception definitions', 'https://ocaml.org/manual/5.5/typedecl.html#s:tydef'), + exception: term('An OCaml exception constructor.', 'OCaml type and exception definitions', 'https://ocaml.org/manual/5.5/typedecl.html#s:tydef'), + }, scala: { module: term('A singleton object that groups Scala declarations.', 'Scala singleton objects', scalaTour('singleton-objects'), 'The module badge represents object declarations here. Its members belong to that object; the label does not identify a separately installed artifact.'), class: term('A Scala class that defines instances, constructors and members.', 'Scala classes', scalaTour('classes'), 'Traits and case classes have their own declaration syntax; read the displayed signature for those distinctions.'), diff --git a/site/src/lib/api-models.ts b/site/src/lib/api-models.ts index 5bf18a561..8c08ce06e 100644 --- a/site/src/lib/api-models.ts +++ b/site/src/lib/api-models.ts @@ -37,6 +37,8 @@ import swiftModel from '../data/api/swift.json' import tsModel from '../data/api/ts.json' import kotlinModel from '../data/api/kotlin.json' import scalaModel from '../data/api/scala.json' +import ocamlModel from '../data/api/ocaml.json' +import ocamlNav from '../data/api/ocaml.nav.json' import fsharpModel from '../data/api/fsharp.json' import kotlinNav from '../data/api/kotlin.nav.json' import scalaNav from '../data/api/scala.nav.json' @@ -67,6 +69,7 @@ export const API_MODELS: Record = { swift: swiftModel as unknown as ApiModel, kotlin: kotlinModel as unknown as ApiModel, scala: scalaModel as unknown as ApiModel, + ocaml: ocamlModel as unknown as ApiModel, fsharp: fsharpModel as unknown as ApiModel, } @@ -130,6 +133,7 @@ export const API_NAV: Record = { swift: swiftNav as unknown as PortNavData, kotlin: kotlinNav as unknown as PortNavData, scala: scalaNav as unknown as PortNavData, + ocaml: ocamlNav as unknown as PortNavData, fsharp: fsharpNav as unknown as PortNavData, } @@ -152,6 +156,7 @@ export const PORT_NAME: Record = { kotlin: 'Kotlin', scala: 'Scala', fsharp: 'F#', + ocaml: 'OCaml', } /** diff --git a/site/src/lib/api-sections.ts b/site/src/lib/api-sections.ts index 982fd64ee..c8b79d93a 100644 --- a/site/src/lib/api-sections.ts +++ b/site/src/lib/api-sections.ts @@ -228,7 +228,7 @@ export function aliasDeclaration(symbol: ApiSymbol, language?: string): { name: /** Keep native declaration syntax consistent in HTML and copied Markdown. */ export function usesNativeSignatures(symbol: ApiSymbol, port?: string): boolean { - return (port === 'rs' && Boolean(symbol.variant)) || supportsRustSignatures(symbol, port) || supportsTypeScriptSignatures(symbol, port) || supportsGoSignatures(symbol, port) || supportsJavaSignatures(symbol, port) || supportsCSharpSignatures(symbol, port) || supportsRubySignatures(symbol, port) || supportsLuaSignatures(symbol, port) || supportsElixirSignatures(symbol, port) || ['kotlin', 'scala', 'fsharp', 'c', 'powershell', 'julia'].includes(port ?? '') || + return (port === 'rs' && Boolean(symbol.variant)) || supportsRustSignatures(symbol, port) || supportsTypeScriptSignatures(symbol, port) || supportsGoSignatures(symbol, port) || supportsJavaSignatures(symbol, port) || supportsCSharpSignatures(symbol, port) || supportsRubySignatures(symbol, port) || supportsLuaSignatures(symbol, port) || supportsElixirSignatures(symbol, port) || ['kotlin', 'scala', 'fsharp', 'ocaml', 'c', 'powershell', 'julia'].includes(port ?? '') || (port === 'cxx' && symbol.signatures.length > 0 && symbol.signatures.every((signature) => Boolean(signature.raw))) } diff --git a/site/src/lib/api-sidebar.ts b/site/src/lib/api-sidebar.ts index 802677c80..a6da78954 100644 --- a/site/src/lib/api-sidebar.ts +++ b/site/src/lib/api-sidebar.ts @@ -154,8 +154,6 @@ export function sidebarNodes(source: ApiTreeJson, base: string, mode: SidebarPre branch?: { lazy: string; level: number }): SidebarNode[] { const json = sidebarInventory(source) const catalog = sidebarCatalog(json) - const ancestry = new Set() - for (let id: string | undefined = selected; id && !ancestry.has(id); id = catalog.parent.get(id)) ancestry.add(id) const buckets = new Map() const placements = new Map() const index = (list: ApiTreeBucket[], path: string[] = []) => { @@ -167,6 +165,12 @@ export function sidebarNodes(source: ApiTreeJson, base: string, mode: SidebarPre } } index(json.buckets) + const ancestry = new Set() + for (let id: string | undefined = selected; id && !ancestry.has(id); id = catalog.parent.get(id)) { + ancestry.add(id) + // A curated root owns its branch even when its language module is also listed. + if (placements.has(id)) break + } const currentBuckets = new Set([...ancestry].map((id) => placements.get(id)).find(Boolean) ?? []) let seq = 0 const nextId = () => `api-presentation-${++seq}` diff --git a/site/src/lib/brand-palettes.json b/site/src/lib/brand-palettes.json index 786aa18b1..9faf73be3 100644 --- a/site/src/lib/brand-palettes.json +++ b/site/src/lib/brand-palettes.json @@ -414,5 +414,31 @@ "solid": "#54167b", "onSolid": "#ffffff" } + }, + "ocaml": { + "name": "OCaml", + "color": "#EF7A08", + "light": { + "background": "#fafbfc", + "surface": "#f3f5f7", + "hover": "#e9edf1", + "border": "#d6dce3", + "text": "#202830", + "muted": "#53606d", + "link": "#6c3704", + "solid": "#6c3704", + "onSolid": "#ffffff" + }, + "dark": { + "background": "#15191d", + "surface": "#1c2229", + "hover": "#29323d", + "border": "#3e4a57", + "text": "#e7edf3", + "muted": "#b7c1cd", + "link": "#fad7b5", + "solid": "#6c3704", + "onSolid": "#ffffff" + } } } diff --git a/site/src/lib/core-apis.ts b/site/src/lib/core-apis.ts index b61257258..e691d7d84 100644 --- a/site/src/lib/core-apis.ts +++ b/site/src/lib/core-apis.ts @@ -14,7 +14,7 @@ import { API_MODELS, referenceHref } from './api-models.ts' import { PORT_BY_SLUG, referenceUrl } from './ports.ts' /** The language each port's examples are written in. */ -const LANG: Record = { rs: 'rust', go: 'go', ruby: 'ruby' } +const LANG: Record = { rs: 'rust', go: 'go', ruby: 'ruby', ocaml: 'ocaml' } /** Entries shown before "+N more". */ export const MAX_APIS = 10 @@ -38,7 +38,8 @@ export interface ApisUsed { const escape = (text: string) => text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') /** Languages the examples are written in, and what starts a comment or a string in each. */ -const SYNTAX: Record = { +const SYNTAX: Record = { + ocaml: { block: ['(*', '*)'], quotes: ['"'] }, rust: { line: '//', block: ['/*', '*/'], quotes: ['"'] }, go: { line: '//', block: ['/*', '*/'], quotes: ['"', '`', "'"] }, ruby: { line: '#', quotes: ['"', "'"] }, @@ -52,11 +53,21 @@ export function withoutLiterals(code: string, lang: string): string { for (let i = 0; i < code.length;) { const rest = code.slice(i) const blank = (length: number) => { out += code.slice(i, i + length).replace(/[^\n]/g, ' '); i += length } - if (rest.startsWith(syntax.line)) { + if (syntax.line && rest.startsWith(syntax.line)) { const end = rest.indexOf('\n') blank(end < 0 ? rest.length : end) } else if (syntax.block && rest.startsWith(syntax.block[0])) { - const end = rest.indexOf(syntax.block[1], syntax.block[0].length) + let end = rest.indexOf(syntax.block[1], syntax.block[0].length) + if (lang === 'ocaml') { + let depth = 1 + let at = syntax.block[0].length + while (at < rest.length && depth > 0) { + if (rest.startsWith(syntax.block[0], at)) { depth++; at += syntax.block[0].length } + else if (rest.startsWith(syntax.block[1], at)) { depth--; at += syntax.block[1].length } + else at++ + } + end = depth ? -1 : at - syntax.block[1].length + } blank(end < 0 ? rest.length : end + syntax.block[1].length) } else if (syntax.quotes.includes(rest[0]!)) { const quote = rest[0]! diff --git a/site/src/lib/core-capabilities.ts b/site/src/lib/core-capabilities.ts index d6225b8a2..de941507c 100644 --- a/site/src/lib/core-capabilities.ts +++ b/site/src/lib/core-capabilities.ts @@ -96,6 +96,7 @@ export const MAX_PROGRAM_LINES = 150 */ export function programProblems(lang: string, content: string): string[] { const rules: Record = { + ocaml: { imports: /^open Libtmux$/m, entry: /^let \(\) =/m, local: /open Example|#use/ }, rust: { imports: /^use /m, entry: /^(?:async )?fn main\(|^(?:#\[[^\]]+\]\s*)+(?:async )?fn main\(/m }, go: { imports: /^import[ (]/m, entry: /^func main\(\)/m }, // A port may indent its require inside the begin block so excerpts of that block carry it. diff --git a/site/src/lib/core-home.ts b/site/src/lib/core-home.ts index 7afb58085..6f183f75b 100644 --- a/site/src/lib/core-home.ts +++ b/site/src/lib/core-home.ts @@ -70,11 +70,14 @@ const CAPABILITY_EVIDENCE: Record /capture|content|text|screen|scrollback/i.test(symbol.name) }, 'current-pane': { needs: 'an environment constructor', test: (symbol) => /env/i.test(symbol.name) }, 'test-fixtures': { needs: 'a test or fixture symbol', test: (symbol) => /test|fixture|junit|pytest/i.test(`${qualifiedNameOf(symbol)} ${symbol.source?.file ?? ''}`) }, - async: { needs: 'an async, suspend, Promise or Task signature', test: (symbol) => /async|suspend|promise|\btask\b/i.test([symbol.name, ...symbol.signatures.map((signature) => `${signature.raw ?? ''} ${signature.returns ?? ''}`)].join(' ')) }, + async: { needs: 'an async, suspend, Promise or Task signature, or a documented Eio capture operation', test: (symbol) => + (symbol.package === 'libtmux-eio' && symbol.id === 'Libtmux_eio.Client.capture') || /async|suspend|promise|\btask\b/i.test([symbol.name, ...symbol.signatures.map((signature) => `${signature.raw ?? ''} ${signature.returns ?? ''}`)].join(' ')) }, } export interface CoreHomeEntry { objects: Record + /** A native model may distinguish a connection or global window from contextual handles. */ + wraps?: Partial> capabilities: Partial> } @@ -114,7 +117,7 @@ export function resolveCoreHome(port: string, version: string, entry: CoreHomeEn if (!entry) throw new Error(`core-home: ${port} has no entry`) const objects = CORE_ROLES.map((role) => { if (!entry.objects[role]) throw new Error(`core-home: ${port} names no ${role} type`) - return { role, ...link(port, entry.objects[role], version, role), wraps: TMUX_OBJECTS[role].wraps, tmuxId: TMUX_OBJECTS[role].id } + return { role, ...link(port, entry.objects[role], version, role), wraps: entry.wraps?.[role] ?? TMUX_OBJECTS[role].wraps, tmuxId: TMUX_OBJECTS[role].id } }) const capabilities: CoreHome['capabilities'] = { typed: [], cli: [] } for (const [key, id] of Object.entries(entry.capabilities)) { diff --git a/site/src/lib/highlight.ts b/site/src/lib/highlight.ts index 790f56782..3ee6c2d0a 100644 --- a/site/src/lib/highlight.ts +++ b/site/src/lib/highlight.ts @@ -121,7 +121,7 @@ const EC_LANGS = new Set([ 'python', 'ruby', 'lua', 'rust', 'ts', 'tsx', 'js', 'jsx', 'java', 'kotlin', 'scala', 'fsharp', 'swift', 'csharp', 'cpp', 'c', 'go', 'bash', 'shell', 'console', 'json', 'yaml', 'toml', 'xml', 'diff', 'text', 'tmux-usage', 'tmux-shell', 'tmux-config', 'powershell', 'julia', 'elixir', 'properties', 'ini', - 'cmake', + 'cmake', 'ocaml', 'lisp', ]) const EC_ALIASES: Record = { @@ -133,6 +133,8 @@ const EC_ALIASES: Record = { rs: 'rust', 'c#': 'csharp', cs: 'csharp', + dune: 'lisp', + ml: 'ocaml', ex: 'elixir', exs: 'elixir', sh: 'bash', diff --git a/site/src/lib/native-name.ts b/site/src/lib/native-name.ts index 0550d62be..513a5e1ce 100644 --- a/site/src/lib/native-name.ts +++ b/site/src/lib/native-name.ts @@ -7,7 +7,7 @@ import { qualifiedNameOf, type ApiSymbol } from '@libtmux/api-model' * write that path as it is (Python `libtmux.Server.new_session`, Go `tmux.Client.Session`), and two already keep * their own separators in the id (C++ `libtmux::Server`, Ruby `LibTmux::Server#list_sessions`, Lua * `libtmux.Buffer:reference`, Elixir `LibTmux.Capture.fetch/2`, PowerShell `LibTmux\Connect-TmuxServer`). Rust and - * TypeScript are the two that need a spelling of their own: + * TypeScript need a spelling of their own: * * - Rust names a path with `::` from the crate: `libtmux::control::ControlSender::unmute_pane`. The id begins at the * module, so the crate comes from the file the symbol is written in, and the markers the extractor adds for the @@ -19,6 +19,7 @@ import { qualifiedNameOf, type ApiSymbol } from '@libtmux/api-model' * separator (`ControlSender::unmute_pane`, `Server#new_session`, `Buffer:reference`, `Capture.fetch/2`), and the bare name * for a declaration with no owner. The full name is the page's Qualified name row. The page heading still joins the owner * and the member with a dot in every port, so for Rust, C++, Ruby, Lua and PowerShell it differs from the card's header. + * OCaml constructors and record fields use their module's namespace, while their stable ids retain the owning type. * * This is for display. The public id, the anchors and the URLs stay as the model has them. */ @@ -94,6 +95,8 @@ export function nativeShortName(model: { port?: string; symbols: readonly ApiSym if (!owner) return symbol.name if (model?.port === 'rs') return `${owner.name}${tupleField(symbol.name) ? '.' : '::'}${symbol.name}` const id = qualifiedNameOf(symbol), ownerId = qualifiedNameOf(owner) + // OCaml constructors and record fields live in their module's namespace, not their type's. + if (model?.port === 'ocaml') return id.split('.').slice(-2).join('.') // Swift writes a member's labels in its name and fewer of them in its id, so the id is not always the owner and the name. const fits = id.startsWith(ownerId) && id.endsWith(symbol.name) && id.length > ownerId.length + symbol.name.length return `${owner.name}${(fits && id.slice(ownerId.length, id.length - symbol.name.length)) || '.'}${symbol.name}` diff --git a/site/src/lib/port-documentation.ts b/site/src/lib/port-documentation.ts index f290e8adc..e91306134 100644 --- a/site/src/lib/port-documentation.ts +++ b/site/src/lib/port-documentation.ts @@ -44,6 +44,7 @@ export interface PortSourceGuide { interface PortDocumentation { domains: readonly DocumentationDomain[] sourceGuides: readonly PortSourceGuide[] + stagedSections?: readonly string[] redirects?: readonly { sourcePath: string; path: string; target: string }[] } @@ -65,6 +66,20 @@ const libraryDomain = (description: string): DocumentationDomain => ({ }) const PORT_DOCUMENTATION: Readonly> = { + ocaml: { + stagedSections: ['guides'], + domains: [ + libraryDomain('Immutable OCaml observations, typed queries and explicit native transports.'), + { id: 'workspace', label: 'Workspace Manager', kind: 'product', navGroup: 'Apps', route: 'workspace', package: 'workspace', product: 'workspace', + description: 'Validate, preview and apply JSON workspaces with retained execution receipts.' }, + ], + sourceGuides: [ + ...['getting-started', 'graph', 'queries', 'control', 'streaming', 'showcases', 'packages', 'compatibility', 'testing', 'benchmarking', 'status'].map((name, index) => + guide(`docs/${name}.md`, `guides/${name}`, 'core', { aliases: [], sidebar: { group: 'Guides', order: index + 1 } })), + guide('docs/workspaces.md', 'workspace/source-guide', 'workspace', { title: 'Workspace guide', product: 'workspace', package: 'workspace', aliases: [] }), + ], + redirects: [{ sourcePath: 'docs/api.md', path: 'guides/api', target: 'reference' }], + }, powershell: { domains: [ libraryDomain('Install LibTmux and use cmdlets to read and control tmux.'), @@ -380,12 +395,15 @@ export function sourceGuidesFor(portSlug: string): readonly PortSourceGuide[] { /** * The section overviews staging writes for a port's source guides, unless the * port authors one itself: guides for every staged port, and examples, topics - * and concepts too unless the port wraps another library's source. + * and concepts too unless the catalog selects its populated sections or the + * port wraps another library's source. * `scripts/stage-port-docs.mjs` writes them; the Core page cards are tested * against this list. */ export function stagedSectionsFor(portSlug: string): readonly string[] { - if (!documentationFor(portSlug)) return [] + const documentation = documentationFor(portSlug) + if (!documentation) return [] + if (documentation.stagedSections) return documentation.stagedSections return PORT_BY_SLUG[portSlug]!.parentLibrary ? ['guides'] : ['guides', 'examples', 'topics', 'concepts'] } diff --git a/site/src/lib/port-families.ts b/site/src/lib/port-families.ts index 7ebee4884..efbd42a77 100644 --- a/site/src/lib/port-families.ts +++ b/site/src/lib/port-families.ts @@ -11,7 +11,7 @@ export interface PortFamily { */ export const PORT_FAMILIES: readonly PortFamily[] = [ { label: 'Scripting & web', ports: ['py', 'ruby', 'lua', 'julia', 'ts'] }, - { label: 'Compiled & native', ports: ['rs', 'go', 'cxx', 'swift'] }, + { label: 'Compiled & native', ports: ['rs', 'go', 'cxx', 'swift', 'ocaml'] }, { label: 'JVM', ports: ['java', 'kotlin', 'scala'] }, { label: '.NET', ports: ['csharp', 'fsharp', 'powershell'] }, { label: 'BEAM', ports: ['elixir'] }, diff --git a/site/src/lib/port-inventory.ts b/site/src/lib/port-inventory.ts index 261c0664b..de4deb79e 100644 --- a/site/src/lib/port-inventory.ts +++ b/site/src/lib/port-inventory.ts @@ -285,6 +285,20 @@ const GO = 'github.com/libtmux/libtmux-go' * testing products in the order a reader reaches for them. */ export const INVENTORY: Readonly> = { + ocaml: [ + { id: 'libtmux', kind: 'library', product: 'core', unit: 'opam package', label: 'libtmux', coordinate: 'libtmux', + aliases: ['Libtmux'], repo: 'libtmux/libtmux-ocaml', ref: 'master', path: 'lib', status: 'published' }, + { id: 'libtmux-unix', kind: 'companion', product: 'core', unit: 'opam package', label: 'libtmux-unix', coordinate: 'libtmux-unix', + aliases: ['Libtmux_unix'], repo: 'libtmux/libtmux-ocaml', ref: 'master', path: 'unix', status: 'published' }, + { id: 'libtmux-eio', kind: 'companion', product: 'core', unit: 'opam package', label: 'libtmux-eio', coordinate: 'libtmux-eio', + aliases: ['Libtmux_eio'], repo: 'libtmux/libtmux-ocaml', ref: 'master', path: 'eio', status: 'published' }, + { id: 'libtmux-json', kind: 'companion', product: 'core', unit: 'opam package', label: 'libtmux-json', coordinate: 'libtmux-json', + aliases: ['Libtmux_json'], repo: 'libtmux/libtmux-ocaml', ref: 'master', path: 'json', status: 'published' }, + { id: 'libtmux-workspace', kind: 'companion', product: 'workspace', unit: 'opam package', label: 'libtmux-workspace', coordinate: 'libtmux-workspace', + aliases: ['Libtmux_workspace'], repo: 'libtmux/libtmux-ocaml', ref: 'master', path: 'workspace', status: 'published' }, + { id: 'libtmux-workspace-cli', kind: 'cli', product: 'workspace', unit: 'opam package', label: 'libtmux-workspace-cli', coordinate: 'libtmux-workspace-cli', + aliases: ['tmux-workspace'], repo: 'libtmux/libtmux-ocaml', ref: 'master', path: 'cli', status: 'published' }, + ], py: [ py({ id: 'libtmux', kind: 'library', product: 'core', label: 'libtmux', ...pypi('libtmux'), aliases: ['libtmux'] }), // The pytest plugin is an entry point of the libtmux distribution, not a package of its own. diff --git a/site/src/lib/ports.ts b/site/src/lib/ports.ts index 2d3579d67..669b2883f 100644 --- a/site/src/lib/ports.ts +++ b/site/src/lib/ports.ts @@ -60,7 +60,7 @@ export interface PortPackage { installs?: readonly InstallCommand[] } -export type ProductAvailability = 'available' | 'unpublished' +export type ProductAvailability = 'available' | 'unpublished' | 'excluded' /** * One way to add a port's package to a project. @@ -1255,6 +1255,30 @@ target_link_libraries(your_target PRIVATE libtmux::libtmux)`, installNote: 'A target depends on the product, not the package: write .product(name: "LibTmux", package: "libtmux-swift"). The library is `LibTmux` while the package identity SwiftPM derives from the URL is `libtmux-swift`, which is neither the product name nor the `name:` in the package manifest.', }, + { + slug: 'ocaml', projectName: 'libtmux-ocaml', logoLanguage: 'ocaml', shortName: 'ML', + name: 'OCaml', language: 'OCaml', packageName: 'libtmux', + repo: 'libtmux/libtmux-ocaml', checkout: '~/work/libtmux/libtmux-ocaml', + worktree: '~/work/libtmux/libtmux-ocaml-docs-site', + source: { path: 'lib', ref: 'master' }, versionedDocs: true, tagGrammar: 'semver', + publishesOwnTree: true, + renderer: 'astro', generator: 'OCaml typed interfaces and odoc comments', referenceKind: 'model', + workspaceCli: 'tmux-workspace apply', workspaceCliAvailability: 'local', + productAvailability: { workspace: 'available', mcp: 'excluded' }, + packages: [{ id: 'workspace', name: 'libtmux-workspace-cli', executable: 'tmux-workspace', + source: { path: 'cli', ref: 'master' }, + installs: [{ label: 'opam (source)', lang: 'console', code: 'git clone https://github.com/libtmux/libtmux-ocaml.git && \\\n cd libtmux-ocaml && \\\n opam install .', + note: 'Build the CLI from source, then use tmux-workspace apply with a validated JSON workspace.' }] }], + installs: [{ label: 'opam (source)', lang: 'console', + code: 'git clone https://github.com/libtmux/libtmux-ocaml.git && \\\n cd libtmux-ocaml && \\\n opam install .', + note: 'Source installation; no registry release. Requires OCaml 5.5.2, Linux and tmux 3.3 or newer.' }], + initProject: { lang: 'console', code: 'dune init project my_tmux_app' }, + installForms: { + release: { lang: 'console', code: 'opam install .' }, + prerelease: { lang: 'console', code: 'opam install .' }, + git: { lang: 'console', code: 'git clone https://github.com/libtmux/libtmux-ocaml.git && \\\n cd libtmux-ocaml && \\\n opam install .' }, + }, + }, ] as const type WrapperLibrary = Omit & { @@ -1457,7 +1481,7 @@ export const PICKER_GROUP_SUMMARY: Readonly> = { /** Whether a companion product has a published implementation for a port. */ export function productAvailable(port: Port, product: DocProduct): boolean { - return !port.parentLibrary && port.productAvailability?.[product] !== 'unpublished' + return !port.parentLibrary && !['unpublished', 'excluded'].includes(port.productAvailability?.[product] ?? 'available') } /** Non-Python companions dogfood their core library as concept examples. */ diff --git a/site/src/lib/symbol-form.ts b/site/src/lib/symbol-form.ts index b8264415a..4942acb37 100644 --- a/site/src/lib/symbol-form.ts +++ b/site/src/lib/symbol-form.ts @@ -49,6 +49,7 @@ export const FORMS: Record = { kotlin: { qualifier: '.', call: false }, scala: { qualifier: '.', call: false }, fsharp: { qualifier: '.', call: false }, + ocaml: { qualifier: '.', call: false }, julia: { qualifier: '.', call: false }, ruby: { qualifier: '::', call: false }, lua: { qualifier: '.', call: true }, @@ -158,6 +159,7 @@ interface EnumContext extends Pick part.link)) return undefined let plain = '' let linked = '' @@ -122,8 +123,8 @@ function proseMarkdown(markdown: string, index: SymbolIndex, symbol: ApiSymbol, } else if (markdown.slice(start, end) === node.value) { const spans = index.docSpans(node.value, symbol) const linked = spans.map((span) => (span.kind === 'ref' ? referenceMarkdown(span) : undefined)) - if (linked.some(Boolean)) edits.push({ start, end, - text: spans.map((span, i) => linked[i] ?? ('text' in span ? span.text : span.label)).join('') }) + if (linked.some(Boolean) || (index.language === 'ocaml' && spans.some((span) => span.kind === 'ref'))) edits.push({ start, end, + text: spans.map((span, i) => linked[i] ?? ('text' in span ? span.text : span.kind === 'citation' || span.code === false ? span.label : inlineCode(span.label))).join('') }) } } else if ('children' in node) for (const child of node.children) visit(child as Parameters[0]) } @@ -199,7 +200,7 @@ export function symbolMarkdown(ctx: MarkdownContext): string { const port = 'port' in model ? model.port : undefined const language = 'language' in model ? model.language : port const index = ctx.index ?? (port && 'port' in model ? productApiIndex(model, ctx.version ?? defaultVersionFor(port)) : undefined) - const prose = (text: string) => index ? proseMarkdown(text, index, symbol, ['powershell', 'scala', 'ts'].includes(language ?? '')) : text + const prose = (text: string) => index ? proseMarkdown(text, index, symbol, ['powershell', 'scala', 'ts', 'ocaml'].includes(language ?? '')) : text const id = qualifiedNameOf(symbol) const out: string[] = [`# ${id}`, ''] const info = port ? PORT_BY_SLUG[port] : undefined @@ -261,6 +262,7 @@ export function symbolMarkdown(ctx: MarkdownContext): string { else if (parent?.variant && symbol.type) out.push(fencedCode(`${symbol.name}: ${symbol.type}`, language), '') else if (symbol.value !== undefined) out.push(fencedCode(`${qualifiedNameOf(symbol)}${symbol.type ? `: ${symbol.type}` : ''} = ${symbol.value}`, language ?? ''), '') else if (language === 'c') out.push(`${anonymousDeclarationLabel(symbol)}.`, '') + else if (language === 'ocaml' && ['module', 'interface'].includes(symbol.kind)) out.push(fencedCode(`${symbol.kind === 'interface' ? 'module type' : 'module'} ${symbol.name}`, 'ocaml'), '') if (symbol.doc?.summary) out.push(prose(symbol.doc.summary), '') if (symbol.doc?.body) out.push(prose(symbol.doc.body), '') diff --git a/site/src/lib/tmux-library-usage.ts b/site/src/lib/tmux-library-usage.ts index 66402f8be..9baa0c624 100644 --- a/site/src/lib/tmux-library-usage.ts +++ b/site/src/lib/tmux-library-usage.ts @@ -19,6 +19,7 @@ import java from '../data/tmux-usage/java.json' import julia from '../data/tmux-usage/julia.json' import kotlin from '../data/tmux-usage/kotlin.json' import lua from '../data/tmux-usage/lua.json' +import ocaml from '../data/tmux-usage/ocaml.json' import powershell from '../data/tmux-usage/powershell.json' import py from '../data/tmux-usage/py.json' import rs from '../data/tmux-usage/rs.json' @@ -67,7 +68,7 @@ export interface TmuxScope { } export const TMUX_USAGE: Record = { - csharp, cxx, elixir, fsharp, go, java, julia, kotlin, lua, powershell, py, rs, ruby, scala, swift, ts, + csharp, cxx, elixir, fsharp, go, java, julia, kotlin, lua, ocaml, powershell, py, rs, ruby, scala, swift, ts, } as unknown as Record const SCOPES = scopeTable.commands as Record diff --git a/site/src/plugins/remark-port-code.mjs b/site/src/plugins/remark-port-code.mjs index 6c2925dae..8cd0e49cd 100644 --- a/site/src/plugins/remark-port-code.mjs +++ b/site/src/plugins/remark-port-code.mjs @@ -21,6 +21,7 @@ import { visit } from 'unist-util-visit' */ /** @type {Record} */ export const LANG_TO_PORT = { + ocaml: 'ocaml', python: 'py', py: 'py', ruby: 'ruby', @@ -51,6 +52,7 @@ export const LANG_TO_PORT = { /** Checkout locations used to refresh the revision-bound cache. */ export const CHECKOUTS = { + ocaml: '~/work/libtmux/libtmux-ocaml-docs-site', py: '~/work/python/libtmux', ruby: '~/work/libtmux/libtmux-ruby-docs', lua: '~/work/libtmux/libtmux-lua-docs', diff --git a/site/src/styles/brand.css b/site/src/styles/brand.css index cfdcb30bd..b1b171126 100644 --- a/site/src/styles/brand.css +++ b/site/src/styles/brand.css @@ -1999,3 +1999,128 @@ html[data-brand="elixir"][data-theme-mode="dark"], html[data-brand="elixir"][dat --lt-color-code-bg: #1c2229; } } +html[data-brand="ocaml"] { + color-scheme: light; + --brand-color: #EF7A08; + --brand-solid: #6c3704; + --brand-on-solid: #ffffff; + --button-bg-primary: #6c3704; + --button-text-primary: #ffffff; + --theme-primary: #6c3704; + --theme-secondary: #53606d; + --theme-accent: #6c3704; + --theme-background: #fafbfc; + --theme-text: #202830; + --background-color: #fafbfc; + --text-color: #202830; + --topnav-background: #fafbfc; + --topnav-text-color: #202830; + --topnav-link-color: #53606d; + --topnav-link-hover-color: #202830; + --color-background-primary: #fafbfc; + --color-background-secondary: #f3f5f7; + --color-background-border: #d6dce3; + --color-api-background-hover: #e9edf1; + --color-foreground-primary: #202830; + --color-foreground-secondary: #53606d; + --color-foreground-muted: #53606d; + --color-link: #6c3704; + --color-brand-primary: #6c3704; + --color-brand-content: #6c3704; + --color-inline-code-background: #f3f5f7; + --lt-color-bg: #fafbfc; + --lt-color-bg-secondary: #f3f5f7; + --lt-color-bg-hover: #e9edf1; + --lt-color-fg: #202830; + --lt-color-fg-secondary: #53606d; + --lt-color-fg-muted: #53606d; + --lt-color-border: #d6dce3; + --lt-color-accent: #6c3704; + --lt-color-link: #6c3704; + --lt-color-link-visited: #6c3704; + --lt-color-code-bg: #f3f5f7; +} +html[data-brand="ocaml"][data-theme-mode="dark"], html[data-brand="ocaml"][data-theme="dark"] { + color-scheme: dark; + --brand-color: #EF7A08; + --brand-solid: #6c3704; + --brand-on-solid: #ffffff; + --button-bg-primary: #6c3704; + --button-text-primary: #ffffff; + --theme-primary: #fad7b5; + --theme-secondary: #b7c1cd; + --theme-accent: #fad7b5; + --theme-background: #15191d; + --theme-text: #e7edf3; + --background-color: #15191d; + --text-color: #e7edf3; + --topnav-background: #15191d; + --topnav-text-color: #e7edf3; + --topnav-link-color: #b7c1cd; + --topnav-link-hover-color: #e7edf3; + --color-background-primary: #15191d; + --color-background-secondary: #1c2229; + --color-background-border: #3e4a57; + --color-api-background-hover: #29323d; + --color-foreground-primary: #e7edf3; + --color-foreground-secondary: #b7c1cd; + --color-foreground-muted: #b7c1cd; + --color-link: #fad7b5; + --color-brand-primary: #fad7b5; + --color-brand-content: #fad7b5; + --color-inline-code-background: #1c2229; + --lt-color-bg: #15191d; + --lt-color-bg-secondary: #1c2229; + --lt-color-bg-hover: #29323d; + --lt-color-fg: #e7edf3; + --lt-color-fg-secondary: #b7c1cd; + --lt-color-fg-muted: #b7c1cd; + --lt-color-border: #3e4a57; + --lt-color-accent: #fad7b5; + --lt-color-link: #fad7b5; + --lt-color-link-visited: #fad7b5; + --lt-color-code-bg: #1c2229; +} +@media (prefers-color-scheme: dark) { + html[data-brand="ocaml"]:not([data-theme-mode]):not([data-theme="light"]) { + color-scheme: dark; + --brand-color: #EF7A08; + --brand-solid: #6c3704; + --brand-on-solid: #ffffff; + --button-bg-primary: #6c3704; + --button-text-primary: #ffffff; + --theme-primary: #fad7b5; + --theme-secondary: #b7c1cd; + --theme-accent: #fad7b5; + --theme-background: #15191d; + --theme-text: #e7edf3; + --background-color: #15191d; + --text-color: #e7edf3; + --topnav-background: #15191d; + --topnav-text-color: #e7edf3; + --topnav-link-color: #b7c1cd; + --topnav-link-hover-color: #e7edf3; + --color-background-primary: #15191d; + --color-background-secondary: #1c2229; + --color-background-border: #3e4a57; + --color-api-background-hover: #29323d; + --color-foreground-primary: #e7edf3; + --color-foreground-secondary: #b7c1cd; + --color-foreground-muted: #b7c1cd; + --color-link: #fad7b5; + --color-brand-primary: #fad7b5; + --color-brand-content: #fad7b5; + --color-inline-code-background: #1c2229; + --lt-color-bg: #15191d; + --lt-color-bg-secondary: #1c2229; + --lt-color-bg-hover: #29323d; + --lt-color-fg: #e7edf3; + --lt-color-fg-secondary: #b7c1cd; + --lt-color-fg-muted: #b7c1cd; + --lt-color-border: #3e4a57; + --lt-color-accent: #fad7b5; + --lt-color-link: #fad7b5; + --lt-color-link-visited: #fad7b5; + --lt-color-code-bg: #1c2229; + } +} diff --git a/site/test/api-destination-evidence.test.ts b/site/test/api-destination-evidence.test.ts index 134a960df..d121ba134 100644 --- a/site/test/api-destination-evidence.test.ts +++ b/site/test/api-destination-evidence.test.ts @@ -274,6 +274,16 @@ describe('what the verifier reads from a page', () => { }) it('knows which hosts document a language or an SDK', () => { + expect(apiHostOf('https://ocaml.org/manual/5.5/api/Iarray.html#TYPEt')).toBe('ocaml.org') + expect(languageOfUrl('https://ocaml.org/manual/5.5/api/Iarray.html#TYPEt')).toBe('ocaml') + expect(languageProblem('ocaml', 'https://ocaml.org/manual/5.5/api/Iarray.html#TYPEt')).toBeUndefined() + const url = 'https://ocaml.org/manual/5.5/api/Iarray.html#TYPEt' + const html = 'OCaml library : Iarray

    Module Iarray

    type \'a t = \'a iarray
    ' + const identity = pageIdentity(url, readPage(html)) + expect(identity).toMatchObject({ kind: 'type', path: ['Iarray', 't'] }) + expect(judge(sourceIdentity({ port: 'ocaml', name: 'Iarray.t', source: 'type' }), identity)).toBeUndefined() + expect(judge(sourceIdentity({ port: 'ocaml', name: 'Seq.t', source: 'type' }), identity)).toMatchObject({ failure: 'owner' }) + expect(pageIdentity(url, readPage(html.replace('type', 'val')))).toMatchObject({ kind: 'other' }) expect(apiHostOf('https://pkg.go.dev/time#Duration')).toBe('pkg.go.dev') expect(apiHostOf('https://elixir.hexdocs.pm/Enum.html')).toBe('elixir.hexdocs.pm') expect(apiHostOf('https://github.com/libtmux/libtmux')).toBeUndefined() diff --git a/site/test/api-glossary.test.ts b/site/test/api-glossary.test.ts index 24d06ec41..b2296d1f0 100644 --- a/site/test/api-glossary.test.ts +++ b/site/test/api-glossary.test.ts @@ -19,6 +19,7 @@ const astroRequire = createRequire(realpathSync(new URL('../node_modules/astro/p const windows: Window[] = [] const nativeAuthorities: Record = { scala: /^https:\/\/docs\.scala-lang\.org\//, java: /^https:\/\/docs\.oracle\.com\//, + ocaml: /^https:\/\/ocaml\.org\//, kotlin: /^https:\/\/kotlinlang\.org\//, julia: /^https:\/\/docs\.julialang\.org\//, py: /^https:\/\/(?:docs\.python\.org|peps\.python\.org|packaging\.python\.org)\//, ts: /^https:\/\/www\.typescriptlang\.org\//, diff --git a/site/test/api-search.test.ts b/site/test/api-search.test.ts index 84e1ce522..acb96b79b 100644 --- a/site/test/api-search.test.ts +++ b/site/test/api-search.test.ts @@ -64,8 +64,9 @@ describe('reference symbol search', () => { } expect(searchApi(inventory, '', 'types').every((entry) => entry.category === 'types')).toBe(true) expect(searchApi(inventory, '', 'members').every((entry) => entry.category === 'members')).toBe(true) - const server = searchApi(inventory, 'Server')[0] - expect(server.category, `${port}: Server type precedes properties with the same name`).toBe('types') - expect(symbols.get(server.id)?.name).toBe('Server') + const server = searchApi(inventory, port === 'ocaml' ? 'Libtmux_unix.Client' : 'Server')[0] + expect(server.category, `${port}: primary server declaration category`).toBe('types') + expect(symbols.get(server.id)?.name).toBe(port === 'ocaml' ? 'Client' : 'Server') + if (port === 'ocaml') expect(server).toMatchObject({ id: 'Libtmux_unix.Client', kind: 'module' }) }) }) diff --git a/site/test/api-sidebar.test.ts b/site/test/api-sidebar.test.ts index ff5568196..79fb6e433 100644 --- a/site/test/api-sidebar.test.ts +++ b/site/test/api-sidebar.test.ts @@ -51,6 +51,16 @@ describe('API sidebar presentations', () => { expect(nodes[0]?.kind).toBeUndefined() }) + it('opens a curated root once when its module also lists it as a member', () => { + const inventory = structuredClone(json) + inventory.buckets[0]!.types.push({ id: 'nested', name: 'Companion', slug: 'companion', m: 1, kind: 'module', category: 'types' }) + for (const selected of ['nested', 'create']) { + const rows = rowsOf(sidebarNodes(inventory, '/reference/', 'outline', selected)) + expect(rows.filter((row) => row.current)).toHaveLength(1) + expect(rows.find((row) => row.label === 'Session')?.expanded).toBe(false) + } + }) + it('focuses the selected owner and represents empty owners without invented members', () => { const nodes = sidebarNodes(json, '/reference/', 'focus', 'create') expect(nodes.map((node) => node.label)).toEqual(['Companion', 'create']) diff --git a/site/test/api-tree.test.ts b/site/test/api-tree.test.ts index b3c5b79df..7ddf6ce95 100644 --- a/site/test/api-tree.test.ts +++ b/site/test/api-tree.test.ts @@ -89,7 +89,12 @@ describe('shared reference index sections', () => { expect(sections[0].id).toBe('server') if (port === 'powershell') expect(sections[0].free.map((symbol) => symbol.name)) .toEqual(expect.arrayContaining(['Connect-TmuxServer', 'Get-TmuxServer', 'New-TmuxServer'])) - else expect(sections[0].types[0].name).toBe('Server') + else if (port === 'ocaml') { + expect(sections[0].types).toEqual([]) + expect(sections[0].free.slice(0, 2).map((symbol) => [symbol.id, symbol.kind])) + .toEqual([['Libtmux_unix.Client', 'module'], ['Libtmux_eio.Client', 'module']]) + expect(firstEntry(navTree(port)[0]!)?.id).toBe('Libtmux_unix.Client') + } else expect(sections[0].types[0].name).toBe('Server') const ids = sections.flatMap((section) => [...section.types, ...section.free]).map((symbol) => symbol.id) expect(new Set(ids).size).toBe(ids.length) const available = new Set(sections.map((section) => section.id)) @@ -241,14 +246,24 @@ describe('major tmux object domains', () => { expect(Object.keys(API_MODELS).sort()).toEqual([...PORTS].sort()) expect(Object.keys(API_NAV).sort()).toEqual([...PORTS].sort()) }) + it('separates OCaml live server connections from captured client observations', () => { + const buckets = navTree('ocaml') + expect(buckets.find((bucket) => bucket.id === 'server')!.entries.slice(0, 2).map((entry) => entry.id)) + .toEqual(['Libtmux_unix.Client', 'Libtmux_eio.Client']) + expect(buckets.find((bucket) => bucket.id === 'client')!.entries.map((entry) => entry.id)) + .toContain('Libtmux.Client_observation') + expect(API_MODELS.ocaml.symbols.some((symbol) => symbol.kind === 'class' && symbol.name === 'Server')).toBe(false) + }) it.each(PORTS)('uses the same useful member order for %s pages and lazy branches', (port) => { const model = API_MODELS[port]! const branches = membersByType(port) const compare = compareMembers(memberSignals(port, mentions.mentions)) const owners = model.symbols.filter((symbol) => port === 'powershell' ? symbol.kind === 'module' - : OWNER_KINDS.has(symbol.kind) && ['Server', 'Session', 'Window', 'Pane', 'Client', 'Snapshot'].includes(symbol.name)) + : OWNER_KINDS.has(symbol.kind) && ['Server', 'Session', 'Window', 'Pane', 'Client', 'Snapshot', ...(port === 'ocaml' ? ['Client_observation', 'Window_link'] : [])].includes(symbol.name)) if (port === 'powershell') expect(owners.map((owner) => owner.name).sort()).toEqual(['LibTmux', 'LibTmux.Workspace']) + else if (port === 'ocaml') expect(owners.filter((owner) => owner.name === 'Client').map((owner) => owner.id)) + .toEqual(['Libtmux_eio.Client', 'Libtmux_unix.Client']) else expect(owners.some((owner) => owner.name === 'Server'), port).toBe(true) for (const owner of owners) { const displayed = membersOf(model, owner, memberSignals(port, mentions.mentions)).sort(compare) diff --git a/site/test/branding.test.ts b/site/test/branding.test.ts index 483dec058..b714f63cb 100644 --- a/site/test/branding.test.ts +++ b/site/test/branding.test.ts @@ -28,6 +28,7 @@ describe('route branding', () => { kotlin: 'libtmux-kotlin: Kotlin-based tmux client', scala: 'libtmux-scala: Scala-based tmux client', csharp: 'libtmux-dotnet: C#-based tmux client', fsharp: 'libtmux-fsharp: F#-based tmux client', cxx: 'libtmux-cxx: C++-based tmux client', swift: 'libtmux-swift: Swift-based tmux client', + ocaml: 'libtmux-ocaml: OCaml-based tmux client', }) expect(portTagline(PORTS.find((port) => port.slug === 'rs')!)).toBe('Rust-based tmux client') // The home title carries no ` | project` suffix, for Julia's differing project name too. @@ -46,6 +47,7 @@ describe('route branding', () => { rs: 'libtmux-rs', go: 'libtmux-go', java: 'libtmux-java', kotlin: 'libtmux-kotlin', scala: 'libtmux-scala', csharp: 'libtmux-dotnet', fsharp: 'libtmux-fsharp', cxx: 'libtmux-cxx', swift: 'libtmux-swift', + ocaml: 'libtmux-ocaml', } expect(Object.fromEntries(PORTS.map((port) => [port.slug, branding(port.slug).projectName]))).toEqual(names) expect(branding('java', 'reference/libtmux-scala-cats').projectName).toBe('libtmux-scala') @@ -96,6 +98,8 @@ describe('route branding', () => { }) it('ships raster and vector fallbacks for every palette and product', () => { for (const language of Object.keys(palettes)) for (const product of ['library', 'mcp', 'workspace']) { + const owners = PORTS.filter((port) => port.logoLanguage === language) + if (product !== 'library' && owners.length && owners.every((port) => port.productAvailability?.[product as 'mcp' | 'workspace'] === 'excluded')) continue const brand = { asset: (file: string) => `/brand/${language}/${product}/${file}` } for (const file of ['logo.svg', 'favicon.ico', 'logo-32.png', 'logo-512.png', 'apple-touch-icon-light.png', 'opengraph-light.png', 'twitter-light.png', 'site.webmanifest']) { expect(existsSync(publicFile(brand.asset(file))), brand.asset(file)).toBe(true) diff --git a/site/test/concept-coverage.test.ts b/site/test/concept-coverage.test.ts index 892b04011..00c62f912 100644 --- a/site/test/concept-coverage.test.ts +++ b/site/test/concept-coverage.test.ts @@ -27,7 +27,7 @@ function coverage(concept: string) { describe('the ports that have a page for an operation', () => { it('lists every port for a server snapshot except those with no whole-server snapshot', () => { const { pages, reasons } = coverage('snapshot') - expect(pages.toSorted()).toEqual(['csharp', 'elixir', 'fsharp', 'go', 'java', 'julia', 'kotlin', 'lua', 'powershell', 'rs', 'ruby', 'scala', 'swift', 'ts']) + expect(pages.toSorted()).toEqual(['csharp', 'elixir', 'fsharp', 'go', 'java', 'julia', 'kotlin', 'lua', 'ocaml', 'powershell', 'rs', 'ruby', 'scala', 'swift', 'ts']) // Python's core and C++ have no snapshot of a whole server, and each says so. expect(reasons.toSorted()).toEqual(['cxx', 'py']) for (const port of ['py', 'cxx']) expect(CONCEPTS.snapshot!.absent![port], port).toMatch(/^no equivalent on `Server`/) diff --git a/site/test/destination-evidence.test.ts b/site/test/destination-evidence.test.ts index de64e2eef..5f67633e0 100644 --- a/site/test/destination-evidence.test.ts +++ b/site/test/destination-evidence.test.ts @@ -183,6 +183,7 @@ describe('destination evidence', () => { describe('age', () => { const checked = new Date(`${evidence.checkedAt}T12:00:00Z`) const later = (days: number) => new Date(checked.getTime() + days * DAY) + const sameDate = withEvidence(evidence.destinations.map((record) => ({ ...record, checkedAt: evidence.checkedAt }))) it('is measured, never judged, by the agreement check, so a change that touches none of this cannot fail for the passage of time', () => { const ancient = withEvidence(evidence.destinations.map((record) => ({ ...record, checkedAt: '2001-01-01' }))) @@ -192,8 +193,8 @@ describe('destination evidence', () => { }) it('reports a record as stale only after the bound, oldest first, with its date', () => { - expect(staleRecords(evidence, { today: later(EVIDENCE_MAX_AGE_DAYS) })).toEqual([]) - const stale = staleRecords(evidence, { today: later(EVIDENCE_MAX_AGE_DAYS + 2) }) + expect(staleRecords(sameDate, { today: later(EVIDENCE_MAX_AGE_DAYS) })).toEqual([]) + const stale = staleRecords(sameDate, { today: later(EVIDENCE_MAX_AGE_DAYS + 2) }) expect(stale).toHaveLength(evidence.destinations.length) expect(stale[0]).toMatchObject({ checkedAt: evidence.checkedAt, days: EVIDENCE_MAX_AGE_DAYS + 2 }) const old = new Date(checked.getTime() - (EVIDENCE_MAX_AGE_DAYS + 5) * DAY).toISOString().slice(0, 10) @@ -203,7 +204,7 @@ describe('destination evidence', () => { }) it('words a warning with the date and the command that clears it', () => { - const stale = staleRecords(evidence, { today: later(EVIDENCE_MAX_AGE_DAYS + 2) }) + const stale = staleRecords(sameDate, { today: later(EVIDENCE_MAX_AGE_DAYS + 2) }) expect(staleWarnings(stale)).toEqual([`${evidence.destinations.length} destination records were last checked ${evidence.checkedAt}, more than ${EVIDENCE_MAX_AGE_DAYS} days ago: run node scripts/verify-destinations.mjs`]) expect(staleWarnings(stale.slice(0, 1))[0]).toMatch(/^1 destination record was last checked/) }) @@ -244,12 +245,12 @@ describe('destination evidence', () => { }) it('names every record dated beyond a day ahead of today, and fails the agreement check on it', () => { - expect(futureRecords(evidence, { today: new Date(checked.getTime() - DAY) })).toEqual([]) - const early = futureRecords(evidence, { today: new Date(checked.getTime() - 3 * DAY) }) + expect(futureRecords(sameDate, { today: new Date(checked.getTime() - DAY) })).toEqual([]) + const early = futureRecords(sameDate, { today: new Date(checked.getTime() - 3 * DAY) }) expect(early).toHaveLength(evidence.destinations.length) expect(early[0]).toMatchObject({ checkedAt: evidence.checkedAt }) - expect(checkEvidence(INVENTORY, evidence, { manifests, today: checked })).toEqual([]) - expect(checkEvidence(INVENTORY, evidence, { manifests, today: new Date(checked.getTime() - 3 * DAY) })) + expect(checkEvidence(INVENTORY, sameDate, { manifests, today: checked })).toEqual([]) + expect(checkEvidence(INVENTORY, sameDate, { manifests, today: new Date(checked.getTime() - 3 * DAY) })) .toContain(`${evidence.destinations[0]!.url} was checked ${evidence.checkedAt}, which is in the future`) }) diff --git a/site/test/docs-paths.test.ts b/site/test/docs-paths.test.ts index 34bbd0b04..8a40bc3dd 100644 --- a/site/test/docs-paths.test.ts +++ b/site/test/docs-paths.test.ts @@ -75,8 +75,9 @@ describe('product document URLs', () => { expect(docsRoutePath({ id: 'meta/third-party-notices', data: {} })).toBe('meta/third-party-notices') }) - it('retires duplicate Julia and F# API overviews in root and selected-version builds', () => { + it('retires source API overviews in root and selected-version builds', () => { expect(sourceGuideRedirects(undefined, { fsharp: 'v0.46.2' })).toEqual([ + { path: 'ocaml/latest/guides/api', target: 'ocaml/latest/reference' }, { path: 'julia/latest/guides/api-overview', target: 'julia/latest/reference' }, { path: 'fsharp/v0.46.2/guides/api-overview', target: 'fsharp/v0.46.2/reference' }, ]) @@ -86,6 +87,9 @@ describe('product document URLs', () => { expect(sourceGuideRedirects('fsharp')).toEqual([ { path: 'guides/api-overview', target: 'reference' }, ]) + expect(sourceGuideRedirects('ocaml')).toEqual([ + { path: 'guides/api', target: 'reference' }, + ]) expect(sourceGuideRedirects('py')).toEqual([]) }) it('uses the same path in root and per-port builds', () => { diff --git a/site/test/fixtures/header-links.ts b/site/test/fixtures/header-links.ts index fbc6d6c9f..7e0b8cddf 100644 --- a/site/test/fixtures/header-links.ts +++ b/site/test/fixtures/header-links.ts @@ -25,6 +25,18 @@ export interface ExpectedLinks { } export const LINKS: Record = { + ocaml: { + actions: [['source', 'GitHub', 'GitHub: libtmux/libtmux-ocaml/lib', 'https://github.com/libtmux/libtmux-ocaml/tree/master/lib']], + indexed: true, + rows: [ + ['source', 'libtmux', 'opam package · lib', 'https://github.com/libtmux/libtmux-ocaml/tree/master/lib', ['libtmux']], + ['source', 'libtmux-unix', 'opam package · unix', 'https://github.com/libtmux/libtmux-ocaml/tree/master/unix', ['libtmux-unix']], + ['source', 'libtmux-eio', 'opam package · eio', 'https://github.com/libtmux/libtmux-ocaml/tree/master/eio', ['libtmux-eio']], + ['source', 'libtmux-json', 'opam package · json', 'https://github.com/libtmux/libtmux-ocaml/tree/master/json', ['libtmux-json']], + ['source', 'libtmux-workspace', 'opam package · workspace', 'https://github.com/libtmux/libtmux-ocaml/tree/master/workspace', ['libtmux-workspace']], + ['source', 'libtmux-workspace-cli', 'opam package · cli', 'https://github.com/libtmux/libtmux-ocaml/tree/master/cli', ['libtmux-workspace-cli']], + ], + }, py: { actions: [['source', 'GitHub', 'GitHub: tmux-python/libtmux', 'https://github.com/tmux-python/libtmux'], ['package', 'PyPI', 'PyPI: libtmux package', 'https://pypi.org/project/libtmux/']], diff --git a/site/test/fixtures/home-examples.json b/site/test/fixtures/home-examples.json index e431ba348..4da8d5091 100644 --- a/site/test/fixtures/home-examples.json +++ b/site/test/fixtures/home-examples.json @@ -1465,6 +1465,107 @@ "excerptSha256": "315b120fc40982d69ab2945b84a0b2c6df5faf8d63d75bf940739cd6e23b68af" } } + }, + { + "port": "ocaml", + "page": "home", + "sourceRepository": "libtmux/libtmux-ocaml", + "sourceRevision": "6ef4ac3c255ce503270edba7640c5bd65cdc43a1", + "sourceTree": "2d3cfff8570f97d0498db2a3dbeb26124b1eeeba", + "files": [ + { + "name": "examples/showcase_graph.ml", + "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", + "clipboardSha256": "3417aac5cfb59506b776d82344e4a4a2bd5749eecc684f33b255148c9d540bed" + }, + { + "name": "dune-project", + "sha256": "daaacf75db08cde5fbf1b18daa332e83a3b64949f61b5ab9e83194a35f4628d4", + "clipboardSha256": "9872d829a36399cf09b1a1e486428dc80151c7fb8635c6d0bd124ec213b5d847" + }, + { + "name": "examples/dune", + "sha256": "d8b6dc92ae4d7b32866d3ff4e9fb175d05abfb1518e11af582260e64c46c5022", + "clipboardSha256": "10e66c40d8a664c75c9f7a8a236bcaee8e90de47f742b4bdebf956a072a49590" + } + ], + "excerptSha256": "3417aac5cfb59506b776d82344e4a4a2bd5749eecc684f33b255148c9d540bed", + "shellRecipe": [ + "opam exec -- dune exec examples/showcase_graph.exe" + ], + "expectedOutputs": [ + [ + "graph: 2 sessions, 2 windows, 3 links, 2 panes" + ] + ], + "tmuxVersions": [ + "3.3", + "3.3a", + "3.4", + "3.8" + ], + "variants": { + "concise": { + "files": [ + { + "name": "examples/showcase_graph.ml", + "sha256": "05b3cc89ebfd071169c0b7723154eeb02071079528c7cd50dd44f4da8f0383e6", + "clipboardSha256": "175a3e563c3fcb69add9bf8ab74d721b07ab2530ad4cb60a63244f84453db11b" + }, + { + "name": "dune-project", + "sha256": "daaacf75db08cde5fbf1b18daa332e83a3b64949f61b5ab9e83194a35f4628d4", + "clipboardSha256": "9872d829a36399cf09b1a1e486428dc80151c7fb8635c6d0bd124ec213b5d847" + }, + { + "name": "examples/dune", + "sha256": "d8b6dc92ae4d7b32866d3ff4e9fb175d05abfb1518e11af582260e64c46c5022", + "clipboardSha256": "10e66c40d8a664c75c9f7a8a236bcaee8e90de47f742b4bdebf956a072a49590" + } + ], + "excerptSha256": "175a3e563c3fcb69add9bf8ab74d721b07ab2530ad4cb60a63244f84453db11b" + }, + "errors": { + "files": [ + { + "name": "examples/showcase_graph.ml", + "sha256": "05b3cc89ebfd071169c0b7723154eeb02071079528c7cd50dd44f4da8f0383e6", + "clipboardSha256": "175a3e563c3fcb69add9bf8ab74d721b07ab2530ad4cb60a63244f84453db11b" + }, + { + "name": "dune-project", + "sha256": "daaacf75db08cde5fbf1b18daa332e83a3b64949f61b5ab9e83194a35f4628d4", + "clipboardSha256": "9872d829a36399cf09b1a1e486428dc80151c7fb8635c6d0bd124ec213b5d847" + }, + { + "name": "examples/dune", + "sha256": "d8b6dc92ae4d7b32866d3ff4e9fb175d05abfb1518e11af582260e64c46c5022", + "clipboardSha256": "10e66c40d8a664c75c9f7a8a236bcaee8e90de47f742b4bdebf956a072a49590" + } + ], + "excerptSha256": "175a3e563c3fcb69add9bf8ab74d721b07ab2530ad4cb60a63244f84453db11b" + }, + "cleanup": { + "files": [ + { + "name": "examples/showcase_graph.ml", + "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", + "clipboardSha256": "3417aac5cfb59506b776d82344e4a4a2bd5749eecc684f33b255148c9d540bed" + }, + { + "name": "dune-project", + "sha256": "daaacf75db08cde5fbf1b18daa332e83a3b64949f61b5ab9e83194a35f4628d4", + "clipboardSha256": "9872d829a36399cf09b1a1e486428dc80151c7fb8635c6d0bd124ec213b5d847" + }, + { + "name": "examples/dune", + "sha256": "d8b6dc92ae4d7b32866d3ff4e9fb175d05abfb1518e11af582260e64c46c5022", + "clipboardSha256": "10e66c40d8a664c75c9f7a8a236bcaee8e90de47f742b4bdebf956a072a49590" + } + ], + "excerptSha256": "3417aac5cfb59506b776d82344e4a4a2bd5749eecc684f33b255148c9d540bed" + } + } } ] } diff --git a/site/test/fixtures/port-destinations.ts b/site/test/fixtures/port-destinations.ts index e420562eb..ee0ff54c8 100644 --- a/site/test/fixtures/port-destinations.ts +++ b/site/test/fixtures/port-destinations.ts @@ -20,6 +20,9 @@ export interface ExpectedDestinations { const github = (url: string, name: string): ExpectedLink => ({ url, label: `${name} on GitHub` }) export const DESTINATIONS: Record = { + ocaml: { + source: github('https://github.com/libtmux/libtmux-ocaml/tree/master/lib', 'libtmux-ocaml/lib'), + }, py: { source: github('https://github.com/tmux-python/libtmux', 'libtmux'), registry: { name: 'PyPI', url: 'https://pypi.org/project/libtmux/', icon: 'pypi', label: 'libtmux on PyPI' }, diff --git a/site/test/fixtures/port-links.json b/site/test/fixtures/port-links.json index 96e38b455..d4b8ff9eb 100644 --- a/site/test/fixtures/port-links.json +++ b/site/test/fixtures/port-links.json @@ -31,6 +31,8 @@ "cxx v1.2.3 @revision": "", "swift": "", "swift v1.2.3 @revision": "", + "ocaml": "", + "ocaml v1.2.3 @revision": "", "powershell v1.2.3": "", "powershell next": "", "powershell latest @revision": "", @@ -93,6 +95,8 @@ "swift mcp v1.2.3 @revision": "", "swift workspace": "", "swift workspace v1.2.3 @revision": "", + "ocaml workspace": "", + "ocaml workspace v1.2.3 @revision": "", "ts mcp v1.2.3": "", "py workspace v1.2.3": "", "lua mcp (no package)": "", diff --git a/site/test/native-name.test.ts b/site/test/native-name.test.ts index de5e9b2cd..5ceffa4f5 100644 --- a/site/test/native-name.test.ts +++ b/site/test/native-name.test.ts @@ -196,7 +196,7 @@ describe('short names', () => { expect(nativeShortName(API_MODELS.swift, symbol)).toBe(`Server.${symbol.name}`) }) - it('are the owner, a separator that the language writes, and the member, for every symbol of every port', { timeout: 30_000 }, () => { + it('use the native owner namespace and member separator across ports', { timeout: 30_000 }, () => { const separators: Record = { rs: ['::'], cxx: ['::'], ruby: ['::', '.', '#'], lua: ['.', ':'], powershell: ['\\'] } for (const [port, model] of Object.entries(API_MODELS)) { const owners = new Map(model.symbols.map((symbol) => [symbol.id, symbol])) @@ -204,6 +204,8 @@ describe('short names', () => { const shown = nativeShortName(model, symbol) const owner = symbol.parent ? owners.get(symbol.parent) : undefined if (!owner) { expect(shown, `${port} ${symbol.id}`).toBe(symbol.name); continue } + // OCaml types group constructors and fields without qualifying their names. + if (port === 'ocaml' && owner.kind !== 'module') continue expect(shown.startsWith(owner.name) && shown.endsWith(symbol.name), `${port} ${symbol.id}`).toBe(true) const separator = shown.slice(owner.name.length, shown.length - symbol.name.length) // A Rust tuple field follows its owner with a dot, as rustdoc writes it; every other Rust member with `::`. @@ -213,6 +215,16 @@ describe('short names', () => { } }) + it.each([ + ['Libtmux.Cardinality.error.Multiple_matches', 'Cardinality.Multiple_matches'], + ['Libtmux.Cardinality.error.Multiple_matches.at_least', 'Cardinality.at_least'], + ['Libtmux.Command.view:type.Rename_session', 'Command.Rename_session'], + ['Libtmux.Snapshot.t', 'Snapshot.t'], + ['Libtmux_unix.Client.capture', 'Client.capture'], + ])('writes the native OCaml namespace of %s as %s', (id, expected) => { + expect(nativeShortName(API_MODELS.ocaml, symbolNamed('ocaml', id))).toBe(expected) + }) + it('are the end of the full name wherever the id ends with the name, so the card is the page\'s name without its path', { timeout: 30_000 }, () => { for (const [port, model] of Object.entries(API_MODELS)) { for (const symbol of model.symbols) { diff --git a/site/test/native-signature.test.ts b/site/test/native-signature.test.ts index cc6cdc15a..4629af7c5 100644 --- a/site/test/native-signature.test.ts +++ b/site/test/native-signature.test.ts @@ -70,6 +70,10 @@ const cases = [ ['scala', 'io.github.libtmux.scaladsl.Server.sessions'], ['kotlin', 'io.github.libtmux.kotlin.Server.sessions'], ['fsharp', 'LibTmux.FSharp.Server.newSession'], + ['ocaml', 'Libtmux_unix.Client.capture'], + ['ocaml', 'Libtmux_unix.Client.t'], + ['ocaml', 'Libtmux.Snapshot.panes'], + ['ocaml', 'Libtmux.Command.view:type'], ['julia', 'LibTmux.Server'], ['powershell', 'LibTmux\\Connect-TmuxControl'], ] as const @@ -625,7 +629,7 @@ describe('native signature emission', () => { const before = JSON.stringify(models.julia) const { entries } = await signatureProbe(models) expect([...new Set(entries.map(({ port }) => port))]).toEqual(API_MODEL_PORTS.map(({ slug }) => slug)) - expect(new Set(entries.map(({ port }) => port)).size).toBe(16) + expect(new Set(entries.map(({ port }) => port)).size).toBe(API_MODEL_PORTS.length) for (const [port, model] of Object.entries(models)) { const callables = model.symbols.filter((symbol) => symbol.signatures.some((signature) => signature.params.length > 0 && signature.returns)) const selected = callables.find((symbol) => /capture/i.test(symbol.name)) ?? callables[0] diff --git a/site/test/ocaml.test.ts b/site/test/ocaml.test.ts new file mode 100644 index 000000000..cb0744c96 --- /dev/null +++ b/site/test/ocaml.test.ts @@ -0,0 +1,34 @@ +import { expect, it } from 'vitest' +import { PORT_BY_SLUG, productAvailable } from '../src/lib/ports' +import { usesNativeSignatures, nativeSignatureText } from '../src/lib/api-sections' +import { API_MODELS } from '../src/lib/api-models' +import { navSidecar } from '../../packages/api-model/src/nav-sidecar' +import { SymbolIndex } from '@libtmux/api-model' + +it('resolves authored odoc references from every exported public declaration', () => { + const model = API_MODELS.ocaml! + const index = new SymbolIndex(model.symbols, (symbol) => `/reference/${symbol.id}`, 'ocaml') + const missing = model.symbols.flatMap((symbol) => [symbol.doc?.summary, symbol.doc?.body].filter(Boolean) + .flatMap((text) => index.docSpans(text!, symbol).filter((span) => span.kind === 'ref' && !span.link) + .map((span) => `${symbol.id}: ${span.kind === 'ref' ? span.target : ''}`))) + expect(missing).toEqual([]) +}) + +it('keeps OCaml native type syntax and excludes MCP while exposing workspaces', () => { + const port = PORT_BY_SLUG.ocaml! + expect(port.productAvailability?.mcp).toBe('excluded') + expect(productAvailable(port, 'mcp')).toBe(false) + expect(productAvailable(port, 'workspace')).toBe(true) + const opaque = API_MODELS.ocaml!.symbols.find((symbol) => symbol.id === 'Libtmux.Pane.t')! + expect(opaque.modifiers).toContain('opaque') + expect(usesNativeSignatures(opaque, 'ocaml')).toBe(true) + expect(nativeSignatureText(opaque, opaque.signatures[0]!, 'ocaml')).toBe('type t') + expect(API_MODELS.ocaml!.symbols.some((symbol) => symbol.product === 'mcp')).toBe(false) +}) + +it('places live server connections under Server and captured tmux clients under Client', () => { + const nav = navSidecar('ocaml', API_MODELS.ocaml!)! + expect(nav.placement['Libtmux_unix.Client']).toBe('server') + expect(nav.placement['Libtmux_eio.Client']).toBe('server') + expect(nav.placement['Libtmux.Client_observation']).toBe('client') +}) diff --git a/site/test/port-docs-runtime.test.ts b/site/test/port-docs-runtime.test.ts index 9dcee55c7..635bf3cb1 100644 --- a/site/test/port-docs-runtime.test.ts +++ b/site/test/port-docs-runtime.test.ts @@ -327,6 +327,56 @@ if (process.argv[2] === process.env.FAILING_TASK) process.exit(23) }) }) +describe('OCaml documentation producer', () => { + it.each(['', 'install', 'build', 'tools/export_api.py'])('exports installed interfaces and stops on task %j failure', (failure) => { + const directory = mkdtempSync(join(tmpdir(), 'libtmux-ocaml-export-')) + try { + const source = join(directory, 'selected source') + const calls = join(directory, 'calls') + mkdirSync(source) + writeFileSync(join(directory, 'opam'), `#!${process.execPath} +const fs = require('node:fs') +const argv = process.argv.slice(2) +fs.appendFileSync(process.env.EXPORT_CALLS, JSON.stringify({ argv, cwd: process.cwd(), export: process.env.LIBTMUX_API_EXPORT }) + '\\n') +if (argv.includes(process.env.FAILING_TASK)) process.exit(23) +`, { mode: 0o700 }) + const result = spawnSync('bash', ['-e', '-c', script('Export OCaml API from the selected source')], { + cwd: source, encoding: 'utf8', timeout: 1000, + env: { ...process.env, PATH: `${directory}:${process.env.PATH}`, LIBTMUX_API_EXPORT: '1', + EXPORT_CALLS: calls, FAILING_TASK: failure }, + }) + const commands = readFileSync(calls, 'utf8').trim().split('\n').map((line) => JSON.parse(line)) + const expected = [ + ['install', '.', '--deps-only', '--with-doc', '--yes'], + ['exec', '--', 'dune', 'build', '@install', 'tools/api_export.exe'], + ['exec', '--', 'python3', 'tools/export_api.py', '--output', '_build/docs/ocaml.json'], + ] + expect(result.status, result.stderr).toBe(failure ? 23 : 0) + expect(commands).toEqual(expected.slice(0, failure === 'install' ? 1 : failure === 'build' ? 2 : 3) + .map((argv) => ({ argv, cwd: realpathSync(source), export: '1' }))) + } finally { rmSync(directory, { recursive: true, force: true }) } + }) + + it('prepares the pinned compiler and public exporter before building the port tree', () => { + const setup = workflow.indexOf('uses: ocaml/setup-ocaml@') + const exporter = workflow.indexOf('name: Export OCaml API from the selected source') + const build = workflow.indexOf("name: Build this port's tree") + expect(setup).toBeGreaterThan(workflow.indexOf('name: Snapshot source inputs before native generation')) + expect(exporter).toBeGreaterThan(setup) + expect(exporter).toBeLessThan(build) + const steps = workflow.slice(workflow.lastIndexOf('\n - ', setup), exporter) + expect(steps).toContain("if: matrix.port == 'ocaml'") + expect(steps).toContain('ocaml-compiler: ocaml-base-compiler.5.5.2') + expect(steps).toContain('opam-local-packages: port/*.opam') + expect(steps).toMatch(/uses: ocaml\/setup-ocaml@[0-9a-f]{40} # v\d+\.\d+\.\d+/) + expect(workflow.slice(exporter, build)).toContain("LIBTMUX_API_EXPORT: '1'") + const model = readFileSync(join(root, 'scripts/gen-api-model.mjs'), 'utf8') + const artifact = /\bocaml: \{[^}]*nativeArtifact: '([^']+)'/.exec(model)?.[1] + expect(artifact).toBe('_build/docs/ocaml.json') + expect(script('Export OCaml API from the selected source')).toContain(` ${artifact}\n`) + }) +}) + describe('source-bound guide staging', () => { const build = readFileSync(join(root, 'scripts/build-site.sh'), 'utf8') // Ruby and Lua carry their guides in the exporter artifact, wrappers stage diff --git a/site/test/port-inventory.test.ts b/site/test/port-inventory.test.ts index 0e204c4e2..613ec1829 100644 --- a/site/test/port-inventory.test.ts +++ b/site/test/port-inventory.test.ts @@ -18,7 +18,7 @@ const coordinates = (slug: string, kinds?: InventoryEntry['kind'][]) => */ const manifests = manifestPackages.ports as Record const distributions = (slug: string) => published(slug).filter((entry) => !entry.within && entry.kind !== 'source') diff --git a/site/test/port-landing.test.ts b/site/test/port-landing.test.ts index b30d233db..d9e144330 100644 --- a/site/test/port-landing.test.ts +++ b/site/test/port-landing.test.ts @@ -20,6 +20,7 @@ const read = (path: string) => JSON.parse(readFileSync(new URL(path, import.meta /** Every product a port ships, as the selector offers it. PowerShell serves MCP with the .NET tool. */ const PRODUCTS: Record = { + ocaml: ['core', 'workspace'], py: ['core', 'mcp', 'workspace'], ruby: ['core', 'mcp', 'workspace'], lua: ['core'], @@ -50,6 +51,7 @@ const GAPS: readonly string[] = ['julia/mcp'] * is a reviewed change to this list, with the CI evidence that goes with it. */ const EXCERPT_FILES: Record = { + 'ocaml/workspace': 'examples/showcase_graph.ml', 'py/mcp': 'tests/test_window_tools.py', 'py/workspace': 'src/tmuxp/workspace/builder/classic.py', 'ruby/mcp': 'examples/mcp_protocol.rb', diff --git a/site/test/port-links.test.ts b/site/test/port-links.test.ts index 76db174a1..13ccc37d2 100644 --- a/site/test/port-links.test.ts +++ b/site/test/port-links.test.ts @@ -33,6 +33,7 @@ function cases(): Case[] { } for (const port of PORTS.filter((entry) => entry.packages?.some(({ id }) => id === 'mcp' || id === 'workspace'))) { for (const product of ['mcp', 'workspace']) { + if (port.productAvailability?.[product as 'mcp' | 'workspace'] === 'excluded') continue add(`${port.slug} ${product}`, { port, product, version: 'latest' }) add(`${port.slug} ${product} v1.2.3 @revision`, { port, product, version: 'v1.2.3', revision: REVISION }) } diff --git a/site/test/product-docs.test.ts b/site/test/product-docs.test.ts index 576d7b398..15be38a44 100644 --- a/site/test/product-docs.test.ts +++ b/site/test/product-docs.test.ts @@ -92,10 +92,10 @@ it('advertises local native loaders while retaining their development status', ( // py-vs-generic-local-CLI dichotomy this test covers. const native = (p: Port) => p.workspaceCliAvailability === 'local' || p.workspaceCliAvailability === 'published' for (const port of PORTS.filter((p) => p.slug === 'py' || native(p))) { - expect(port.workspaceCli).toBe(port.slug === 'julia' ? 'libtmux-workspace load' : native(port) ? 'tmux-workspace load' : 'tmuxp load') + expect(port.workspaceCli).toBe(port.slug === 'julia' ? 'libtmux-workspace load' : port.slug === 'ocaml' ? 'tmux-workspace apply' : native(port) ? 'tmux-workspace load' : 'tmuxp load') if (!native(port)) expect(port.workspaceCliAvailability).toBe('released') expect(productInDevelopment(port, 'workspace')).toBe(native(port)) - expect(productInDevelopment(port, 'mcp')).toBe(true) + expect(productInDevelopment(port, 'mcp')).toBe(port.productAvailability?.mcp !== 'excluded') expect(productDescription(port, 'workspace')).not.toMatch(/worktree|checkpoint/) if (port.workspaceCliAvailability === 'local') { expect(productDescription(port, 'workspace')).toContain(port.slug === 'julia' ? 'LibTmuxWorkspace' : 'Build the CLI from source') diff --git a/site/test/prose-markdown.test.ts b/site/test/prose-markdown.test.ts index 8b7a92b53..a2854f787 100644 --- a/site/test/prose-markdown.test.ts +++ b/site/test/prose-markdown.test.ts @@ -362,8 +362,8 @@ describe('prose Markdown links', () => { it.each(Object.keys(PORT_BY_SLUG))('links a real %s declaration in its selected version', (port) => { const model = API_MODELS[port] - const name = port === 'powershell' ? 'New-TmuxServer' : 'Server' - const symbol = model.symbols.find((entry) => entry.name === name && (port === 'powershell' ? entry.command : !entry.parent))! + const name = port === 'powershell' ? 'New-TmuxServer' : port === 'ocaml' ? 'Libtmux_unix.Client' : 'Server' + const symbol = model.symbols.find((entry) => port === 'ocaml' ? entry.id === name : entry.name === name && (port === 'powershell' ? entry.command : !entry.parent))! expect(symbol, `${port} ${name} declaration`).toBeDefined() vi.stubEnv('LIBTMUX_DOCS_PORT', port) vi.stubEnv('LIBTMUX_DOCS_VERSION', 'next') diff --git a/site/test/stage-port-docs.outer.test.ts b/site/test/stage-port-docs.outer.test.ts index 7c7ab8f4f..fdfa3d0de 100644 --- a/site/test/stage-port-docs.outer.test.ts +++ b/site/test/stage-port-docs.outer.test.ts @@ -5,15 +5,16 @@ import { dirname, join } from 'node:path' import { expect, it } from 'vitest' import { stagedRoutesFor } from '../../scripts/stage-port-docs.mjs' import { PORTS } from '../src/lib/ports.ts' +import { SOURCE_GUIDE_PORTS } from '../src/lib/port-documentation.ts' const root = new URL('../../', import.meta.url).pathname const cachedRevision = 'a'.repeat(40) const files = ['scripts/stage-port-docs.mjs', 'site/src/lib/ports.ts', 'site/src/lib/site-root.ts', 'site/src/lib/cooldown.ts', 'site/src/lib/port-documentation.ts', 'site/src/lib/versions.ts'] -const stagedPorts = ['ruby', 'lua', 'powershell', 'julia', 'elixir', 'kotlin', 'scala', 'fsharp'] +const stagedPorts = SOURCE_GUIDE_PORTS -function fixture(slug: 'ruby' | 'lua' | 'kotlin', run: (fixture: { +function fixture(slug: 'ruby' | 'lua' | 'kotlin' | 'ocaml', run: (fixture: { directory: string; checkout: string; revision: string; write: (path: string, value: string) => void; artifact: (port: string, revision: string, label: string) => string; @@ -42,8 +43,8 @@ function fixture(slug: 'ruby' | 'lua' | 'kotlin', run: (fixture: { })) } let revision = 'b'.repeat(40) - if (slug === 'kotlin') { - for (const path of Object.keys(stagedRoutesFor(slug))) write(join(checkout, path), '# Guide\n\nfresh-kotlin\n') + if (['kotlin', 'ocaml'].includes(slug)) { + for (const path of Object.keys(stagedRoutesFor(slug))) write(join(checkout, path), `# Guide\n\nfresh-${slug}\n`) const git = (...args: string[]) => execFileSync('git', ['-C', checkout, ...args], { encoding: 'utf8', stdio: 'pipe' }).trim() git('init', '-q') git('add', '.') @@ -85,7 +86,7 @@ it('leaves the preview mount to Markdown while selecting the parent API version' }) }) -it.each(['ruby', 'lua', 'kotlin'] as const)('stages other caches before accepting only the selected %s source', (slug) => { +it.each(['ruby', 'lua', 'kotlin', 'ocaml'] as const)('stages other caches before accepting only the selected %s source', (slug) => { fixture(slug, ({ directory, checkout, revision, write, artifact, invoke }) => { const staged = join(directory, 'site/src/content/docs/_staged') const cache = join(directory, `site/src/data/port-guides/${slug}.json`) @@ -106,11 +107,13 @@ it.each(['ruby', 'lua', 'kotlin'] as const)('stages other caches before acceptin expect(explicit.stderr).toContain(`--cached cannot stage selected publication port ${slug}`) expect(readFileSync(cache, 'utf8')).toBe(cachedBytes) - if (slug !== 'kotlin') { + const fromSource = ['kotlin', 'ocaml'].includes(slug) + if (slug === 'ocaml') write(join(directory, `site/src/data/api/${slug}.json`), JSON.stringify({ revision })) + if (!fromSource) { write(join(directory, `site/src/data/api/${slug}.json`), JSON.stringify({ revision })) write(join(checkout, 'docs/_build/api.json'), artifact(slug, revision, 'fresh')) } - const fresh = invoke('--port', slug, ...(slug === 'kotlin' ? ['--from-source'] : [])) + const fresh = invoke('--port', slug, ...(fromSource ? ['--from-source'] : [])) expect(fresh.status, fresh.stderr).toBe(0) const route = Object.values(stagedRoutesFor(slug))[0].route const rendered = join(staged, slug, route, 'index.md') @@ -127,14 +130,17 @@ it.each(['ruby', 'lua', 'kotlin'] as const)('stages other caches before acceptin } const wrong = 'c'.repeat(40) - if (slug === 'kotlin') { + if (fromSource) { execFileSync('git', ['-C', checkout, '-c', 'user.name=Fixture', '-c', 'user.email=fixture@example.invalid', 'commit', '--allow-empty', '-qm', 'Different source'], { stdio: 'pipe' }) + if (slug === 'ocaml') write(join(directory, `site/src/data/api/${slug}.json`), JSON.stringify({ + revision: execFileSync('git', ['-C', checkout, 'rev-parse', 'HEAD'], { encoding: 'utf8' }).trim(), + })) } else { write(join(directory, `site/src/data/api/${slug}.json`), JSON.stringify({ revision: wrong })) write(join(checkout, 'docs/_build/api.json'), artifact(slug, wrong, 'wrong')) } - const rejected = invoke('--port', slug, ...(slug === 'kotlin' ? ['--from-source'] : [])) + const rejected = invoke('--port', slug, ...(fromSource ? ['--from-source'] : [])) expect(rejected.status).not.toBe(0) expect(rejected.stderr).toContain(`${slug}: expected source ${revision}, artifact records`) expect(readFileSync(rendered, 'utf8')).toBe(renderedBytes) diff --git a/site/test/stage-port-docs.test.ts b/site/test/stage-port-docs.test.ts index 6cab3c66d..7dcf531d3 100644 --- a/site/test/stage-port-docs.test.ts +++ b/site/test/stage-port-docs.test.ts @@ -127,8 +127,10 @@ describe('staged port guide links', () => { expect(index).toContain('title: "Guides"') expect(index).toContain('"label":"Overview","order":1') const cards = JSON.parse(/^cards: (.+)$/m.exec(index)![1]) - expect(cards[0].label).toBe('Getting started') - expect(cards[1].label).toBe('Attaching to tmux') + expect(cards[0].href).toMatch(/^\.\.\/guides\/(?:getting-started|overview)\/$/) + const setup = files.get(`${port}/${cards[0].href.slice(3)}index.md`)! + expect(cards[0].label).toBe(JSON.parse(/^title: (.+)$/m.exec(setup)![1])) + if (port !== 'ocaml') expect(cards[1].label).toBe('Attaching to tmux') for (const section of ['examples', 'topics']) { const page = files.get(`${port}/${section}/index.md`) if (!page) continue @@ -136,6 +138,13 @@ describe('staged port guide links', () => { expect(JSON.parse(/^cards: (.+)$/m.exec(page)![1]).length).toBeGreaterThan(0) } }) + it('keeps the OCaml setup title and source examples', () => { + const artifact = JSON.parse(readFileSync(new URL('../src/data/port-guides/ocaml.json', import.meta.url), 'utf8')) + const setup = artifact.guides.find((guide: { path: string }) => guide.path === 'docs/getting-started.md') + const page = stagedPortGuides('ocaml', artifact).get('ocaml/guides/getting-started/index.md')! + expect(page).toContain('title: "Install and run your first capture"') + for (const [example] of setup.content.matchAll(/^```[^\n]*\n[\s\S]*?^```/gm)) expect(page).toContain(example) + }) const routes = { 'docs/runtime.md': ['guides/source/runtime'], 'docs/query.md': ['guides/source/query'], diff --git a/site/test/symbol-form.test.ts b/site/test/symbol-form.test.ts index 4fbd3b1e9..86dde8ba9 100644 --- a/site/test/symbol-form.test.ts +++ b/site/test/symbol-form.test.ts @@ -18,6 +18,7 @@ interface Row { } const ROWS: Record = { + ocaml: { type: ['Libtmux::Snapshot.t', 'Libtmux.Snapshot.t'], method: ['Client.capture', 'Client.capture', 'Libtmux_unix.Client.capture'], function: ['Query.matching', 'Query.matching', 'Libtmux.Query.matching'], property: ['Generation.value', 'Generation.value', 'Libtmux.Generation.t.value'], member: ['error', 'No_match', 'Libtmux.Cardinality.error.No_match', 'No_match', 'No_match'] }, py: { type: ['libtmux::Server', 'libtmux.Server'], method: ['Server.list_sessions', 'Server.list_sessions()', 'libtmux.Server.list_sessions'], function: ['get_version', 'get_version()', 'libtmux.get_version'], property: ['Server.socket_name', 'Server.socket_name', 'libtmux.Server.socket_name'], member: ['Direction', 'UP', 'libtmux.Direction.UP', 'Direction.UP', 'Direction.UP'] }, ts: { type: ['server.Server', 'server.Server'], method: ['Server.listSessions', 'Server.listSessions()', 'server.Server.listSessions'], function: ['parseWorkspace', 'parseWorkspace()', 'config.parseWorkspace'], property: ['Pane.id', 'Pane.id', 'pane.Pane.id'], member: ['Direction', 'Up', 'constants.Direction.Up', 'Direction.Up', 'Direction.Up'] }, rs: { type: ['crate.Server', 'crate::Server'], method: ['Server.list_sessions', 'Server::list_sessions()', 'server.Server.list_sessions'], function: ['retry_until', 'retry_until()', 'test.retry_until'], property: ['Pane::id', 'Pane::id', 'pane.Pane.id'], member: ['Direction', 'Up', 'pane.Direction.Up', 'Direction::Up', 'Direction::Up'] }, diff --git a/site/test/tmux-library-usage.test.ts b/site/test/tmux-library-usage.test.ts index c86ad7022..cba46eeee 100644 --- a/site/test/tmux-library-usage.test.ts +++ b/site/test/tmux-library-usage.test.ts @@ -31,6 +31,26 @@ const usage = tmuxUsage('list-panes')! const cell = (scope: string, port: string) => usage.groups.find((group) => group.scope?.id === scope)!.ports.find((entry) => entry.port === port)?.links.map((link) => link.label) describe('the recorded usage', () => { + it('records OCaml execution methods from its public interfaces and keeps pure builders off the table', () => { + for (const backend of ['unix', 'eio']) { + const client = `Libtmux_${backend}.Client` + expect(TMUX_USAGE.ocaml.symbols[`${client}.capture`].map((use) => [use.command, use.scope])).toEqual([ + ['list-clients', null], ['list-panes', 'server'], ['list-sessions', null], ['list-windows', 'server'], + ]) + expect(TMUX_USAGE.ocaml.symbols[`${client}.rename_window`]).toEqual([expect.objectContaining({ command: 'rename-window', reviewed: true })]) + expect(TMUX_USAGE.ocaml.symbols[`${client}.capture_text`].find((use) => use.command === 'capture-pane')).toBeDefined() + expect(TMUX_USAGE.ocaml.symbols[`${client}.cycle_layout`].map((use) => [use.command, use.when])).toEqual([ + ['next-layout', 'direction is `Next'], ['previous-layout', 'direction is `Previous'], + ]) + } + const byId = new Map(API_MODELS.ocaml.symbols.map((symbol) => [symbol.publicId ?? symbol.id, symbol])) + for (const id of Object.keys(TMUX_USAGE.ocaml.symbols)) { + expect(byId.get(id)).toMatchObject({ kind: 'function', apiScope: 'exported' }) + expect(byId.get(id)?.source?.file).toMatch(/\.mli$/) + expect(id).not.toMatch(/^Libtmux\.(?:Operations|Snapshot|Session|Window)\./) + } + }) + /** Every command either pinned manual documents. */ const manualCommands = [...new Set(Object.values(TMUX_MANUALS).flatMap((manual) => manual.commands.map((command) => command.name)))].sort() diff --git a/site/test/tmux-minimum.test.ts b/site/test/tmux-minimum.test.ts index 62afda9d1..3c4a17321 100644 --- a/site/test/tmux-minimum.test.ts +++ b/site/test/tmux-minimum.test.ts @@ -45,6 +45,24 @@ export const PORT_FLOORS = [ * covers. */ export const OTHER_FLOORS = [ + { + path: 'packages/api-model/src/languages/ocaml-examples.ts', + version: '3.3', + near: /OCaml 5\.5\.2/, + why: 'The OCaml capability programs run on the native literal tmux 3.3 floor.', + }, + { + path: 'site/src/data/home-examples.json', + version: '3.3', + within: 'ocaml', + why: 'The OCaml quickstart is executed on the native 3.3 floor.', + }, + { + path: 'site/src/lib/ports.ts', + version: '3.3', + near: /OCaml 5\.5\.2/, + why: 'The OCaml source installation names its tested tmux 3.3 floor.', + }, { path: 'site/src/content/_workspace-shared/workspace/guides/installation.md', version: '3.2a', diff --git a/site/test/tmux-usage-derive.test.ts b/site/test/tmux-usage-derive.test.ts index 70e3cdb6c..9cd8610ee 100644 --- a/site/test/tmux-usage-derive.test.ts +++ b/site/test/tmux-usage-derive.test.ts @@ -8,6 +8,7 @@ import { forwardUsage } from '../../scripts/lib/tmux-usage-forward.mjs' import { carriesCommand, memberWords, selects, settleCandidates, sweepCandidates } from '../../scripts/lib/tmux-usage-sweep.mjs' import { scanElixir, scanFSharp, scanJulia, tokenizeElixir } from '../../scripts/lib/tmux-usage-lexical.mjs' import { guardFlag, libraryScopes, scopeProblems } from '../../scripts/lib/tmux-usage-scopes.mjs' +import { bindOcamlDefinitions } from '../../scripts/lib/tmux-usage-ocaml.mjs' type Forwarded = { symbol: string; command: string; scope: string | null; evidence: string[]; hops: number; via: { port: string; symbol: string; evidence: string[]; reviewed?: boolean } } type Scanned = { name: string; owner?: string; start: number; end: number; sites: { command: string; line: number; flags: string }[]; calls: Map; receivers: Map> } @@ -18,6 +19,66 @@ const scopes = readFileSync(new URL('../src/data/tmux-usage/scopes.json', import const spec = { scopes: libraryScopes(JSON.parse(scopes).commands['list-panes']) } describe('scanning a send site', () => { + it('reads OCaml curried dispatch calls without crediting comments, labels or local bindings', async () => { + const { functions } = await scanSource({ + grammar: 'ocaml', known, commands: new Set(['list-panes']), dispatch: new Set(['metadata']), + text: [ + 'module Client = struct', + ' (* metadata client "list-panes" [ "-s" ] *)', + ' let capture client =', + ' let rows = metadata client "list-panes" [ "-a" ] in', + ' rows', + ' let label client = Error ("list-panes")', + 'end', + ].join('\n'), + }) + expect(functions.map((fn) => fn.name)).toEqual(['capture', 'label']) + expect(functions[0]).toMatchObject({ name: 'capture', owner: 'Client' }) + expect(functions[0].sites).toEqual([{ command: 'list-panes', line: 4, flags: 'a', depth: 0, dispatch: { line: 4, name: 'metadata' } }]) + expect(functions[1].sites).toEqual([]) + expect(functions[0].calls.get('metadata')).toBe(4) + }) + + it('resolves OCaml public interfaces through aliases and functor includes without matching another module', async () => { + const sources = new Map([ + ['lib/libtmux.ml', 'module Operations = Commands.Operations'], + ['lib/commands.ml', 'module Operations = struct let rename_window target = Command.Rename_window target end'], + ['unix/libtmux_unix.ml', 'module Client = struct\nlet capture c = Acquisition.snapshot c\ninclude Generated_operations.Make (struct let run x = x end)\nend'], + ['unix/acquisition.ml', 'open Connection\nlet snapshot c = metadata c "list-panes" [ "-a" ]'], + ['unix/connection.ml', 'let metadata c command flags = transport c command flags'], + ['unix/generated_operations.ml', 'module Make (Client : sig val run : unit -> unit end) = struct\nlet rename_window target = Client.run target\nend'], + ['eio/generated_operations.ml', 'module Make = struct let rename_window target = target end'], + ['unix/private.ml', 'let snapshot c = metadata c "list-panes" [ "-s" ]'], + ]) + const functions: (Awaited>['functions'][number] & { file: string })[] = [] + const modules: { file: string; path: string; target?: string; include?: boolean; open?: boolean }[] = [] + for (const [file, text] of sources) { + const scanned = await scanSource({ grammar: 'ocaml', text, commands: new Set(['list-panes']), known, dispatch: new Set(['metadata']) }) + functions.push(...scanned.functions.map((fn) => ({ ...fn, file }))) + modules.push(...(scanned.modules ?? []).map((module) => ({ ...module, file }))) + } + const symbols = [ + { id: 'Libtmux.Operations.rename_window', name: 'rename_window', file: 'lib/libtmux.mli', line: 100 }, + { id: 'Libtmux_unix.Client.capture', name: 'capture', file: 'unix/libtmux_unix.mli', line: 100 }, + { id: 'Libtmux_unix.Client.rename_window', name: 'rename_window', file: 'unix/libtmux_unix.mli', line: 200 }, + ] + bindOcamlDefinitions({ symbols, functions, modules, sources }) + const definitions = definitionsOf(functions, symbols) + expect([...definitions].map(([fn, own]) => [fn.file, fn.name, own[0].id])).toEqual([ + ['lib/commands.ml', 'rename_window', 'Libtmux.Operations.rename_window'], + ['unix/libtmux_unix.ml', 'capture', 'Libtmux_unix.Client.capture'], + ['unix/generated_operations.ml', 'rename_window', 'Libtmux_unix.Client.rename_window'], + ]) + const entries = deriveUsage({ command: 'list-panes', spec, functions, symbols }).entries + expect(entries.map((entry) => [entry.symbol, entry.scope])).toEqual([['Libtmux_unix.Client.capture', 'server']]) + expect(entries[0].evidence).toEqual(['unix/acquisition.ml:2', 'unix/libtmux_unix.ml:2']) + expect(deriveUsage({ command: 'list-panes', spec, functions, symbols: [] }).entries).toEqual([]) + }) + + it('refuses OCaml syntax errors instead of deriving an empty result', async () => { + await expect(scan('ocaml', 'module Client = struct let capture =')).rejects.toThrow(/could not parse/) + }) + it('reads the flags written beside the command and ignores a docstring and a default value', async () => { const { functions } = await scan('python', [ 'class Session:', From 7bc15b2acf0c06808359c94cf9af4cc1fb88e546 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 16:50:43 -0600 Subject: [PATCH 02/26] perf(site[api-links]) Bound parser and render setup costs why: Exhaustive link checks repeat parser work and retain a growing route history while rendering independent fragments. what: - Share a page's Markdown AST between its independent link validators - Use default parser exports within isolated test workers - Scope type-render containers to the symbol being checked --- site/test/api-links-rendered.test.ts | 13 ++++++++----- site/test/markdown-conditions.mjs | 14 ++++++++++++++ site/vitest.config.ts | 1 + 3 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 site/test/markdown-conditions.mjs diff --git a/site/test/api-links-rendered.test.ts b/site/test/api-links-rendered.test.ts index d65533eb1..77159b197 100644 --- a/site/test/api-links-rendered.test.ts +++ b/site/test/api-links-rendered.test.ts @@ -34,14 +34,14 @@ const collected = (href: string) => destinations.has(normalizeAddress(href)) const PORTS = Object.keys(API_MODELS) /** Every address on an API host that a tree of Markdown links, and where. */ -function markdownAddresses(markdown: string): string[] { +function markdownAddresses(markdown: string, tree = fromMarkdown(markdown)): string[] { const found: string[] = [] const walk = (node: any) => { if ((node.type === 'link' || node.type === 'definition') && apiHostOf(node.url)) found.push(node.url) if (node.type === 'html') for (const match of node.value.matchAll(/href\s*=\s*["']([^"']+)["']/gi)) if (apiHostOf(match[1])) found.push(match[1]) for (const child of node.children ?? []) walk(child) } - walk(fromMarkdown(markdown)) + walk(tree) return found } @@ -240,7 +240,8 @@ describe('the pages, rendered for each port', () => { const pagePort = (page.data.port as string | undefined) || undefined for (const build of builds(page)) { const markdown = twin(page, build) - for (const href of markdownAddresses(markdown)) { + const tree = fromMarkdown(markdown) + for (const href of markdownAddresses(markdown, tree)) { linked += 1 if (!collected(href) && !missing.has(href)) missing.set(href, where(page, build)) } @@ -253,7 +254,7 @@ describe('the pages, rendered for each port', () => { } for (const child of node.children ?? []) walk(child) } - walk(fromMarkdown(markdown)) + walk(tree) } } expect([...missing].map(([href, place]) => `${href} (${place})`)).toEqual([]) @@ -302,16 +303,18 @@ describe('the symbol pages, drawn by the components', () => { it('draw the types of every symbol with the addresses the index gives them, each one a destination the collector reads', async () => { components ??= await apiComponents() - const container = await experimental_AstroContainer.create() const stray = new Map() let drawn = 0 let linked = 0 for (const [port, model] of Object.entries(API_MODELS)) { const index = productApiIndex(model, defaultVersionFor(port)) for (const symbol of model.symbols) { + // Containers retain rendered routes; keep that history within one symbol. + let container: experimental_AstroContainer | undefined for (const { signature, text } of typeInputs(symbol)) { const expected = given(index.linkType(text, symbol, signature)) if (!expected.size) continue + container ??= await experimental_AstroContainer.create() const html = await container.renderToString(components.type, { props: { type: text, index, context: symbol, signature } }) drawn += 1 for (const href of hostAddresses(html)) { diff --git a/site/test/markdown-conditions.mjs b/site/test/markdown-conditions.mjs new file mode 100644 index 000000000..357998365 --- /dev/null +++ b/site/test/markdown-conditions.mjs @@ -0,0 +1,14 @@ +import { registerHooks } from 'node:module' + +const parser = /^(?:mdast-util-from-markdown|micromark(?:-[^/]+)?)(?:\/.*)?$/ + +// Production parser entries omit per-token development assertions. +registerHooks({ + resolve(specifier, context, nextResolve) { + if (!parser.test(specifier) || !context.conditions.includes('development')) return nextResolve(specifier, context) + return nextResolve(specifier, { + ...context, + conditions: context.conditions.filter((condition) => condition !== 'development'), + }) + }, +}) diff --git a/site/vitest.config.ts b/site/vitest.config.ts index b88f11555..215c4bd4b 100644 --- a/site/vitest.config.ts +++ b/site/vitest.config.ts @@ -7,6 +7,7 @@ export default defineConfig({ // Astro supplies this virtual module inside a build; tests that read the project root use a stand-in. resolve: { alias: { 'astro:config/server': fileURLToPath(new URL('./test/astro-config-server.ts', import.meta.url)) } }, test: { + execArgv: ['--import', new URL('./test/markdown-conditions.mjs', import.meta.url).href], // Reuse transforms of the generated API and protocol catalogs across workers. fsModuleCache: true, // Report skipped assembly suites beside the summary, outside worker output. From d482cbc1e673b2768a62b49828d63fed6d271178 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 16:50:43 -0600 Subject: [PATCH 03/26] perf(site[workspace]) Run isolated picker checks concurrently why: Independent browser contexts can overlap their real frame waits without sharing page state. what: - Limit concurrent picker cases to two within their existing suites - Restore test configuration after closing the fixture browser --- site/test/workspace-picker.outer.test.ts | 73 +++++++++++++----------- 1 file changed, 39 insertions(+), 34 deletions(-) diff --git a/site/test/workspace-picker.outer.test.ts b/site/test/workspace-picker.outer.test.ts index c21130095..cce6b8240 100644 --- a/site/test/workspace-picker.outer.test.ts +++ b/site/test/workspace-picker.outer.test.ts @@ -4,7 +4,7 @@ import type { AddressInfo } from 'node:net' import { createComponent, renderTemplate } from 'astro/runtime/server/index.js' import { chromium, type Browser, type BrowserContext, type Page } from 'playwright' import ts from 'typescript' -import { afterAll, beforeAll, describe, expect, it } from 'vitest' +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest' import { presetOptions, workspaceShowcase } from '../src/lib/workspace-showcase' import { loadAstroTemplate, renderAstroTemplate } from './astro-templates' @@ -86,11 +86,16 @@ const ADDRESS = 'http://workspace.test/en/rs/latest/workspace/' let browser: Browser let page: string +// Each case owns a browser context; keep at most two cases active. +vi.setConfig({ maxConcurrency: 2 }) + beforeAll(async () => { browser = await chromium.launch({ headless: true }) page = await html() }, 60_000) -afterAll(async () => { await browser?.close() }) +afterAll(async () => { + try { await browser?.close() } finally { vi.resetConfig() } +}) async function open(context: BrowserContext, path = '', body = page): Promise { await context.route('http://workspace.test/**', (route) => route.fulfill({ contentType: 'text/html', body })) @@ -197,7 +202,7 @@ const strip = (tab: Page, preset: string) => tab.evaluate((id) => { }, preset) describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { - it('has presets of different heights to reserve for', async () => { + it.concurrent('has presets of different heights to reserve for', async () => { const context = await browser.newContext() const tab = await open(context) const natural = await tab.evaluate(() => [...document.querySelectorAll('.ws-picker__panel')].map((panel) => panel.querySelector('pre')!.scrollHeight)) @@ -207,7 +212,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) for (const width of WIDTHS) { - it(`reserves the tallest preset's height at ${width} px, so no choice, window, search or roll shifts anything`, async () => { + it.concurrent(`reserves the tallest preset's height at ${width} px, so no choice, window, search or roll shifts anything`, async () => { const context = await browser.newContext({ viewport: { width, height: 900 } }) await context.addInitScript(layoutShift) const tab = await open(context) @@ -278,12 +283,12 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { return total } - it('shifts nothing, because the picker shows once every preset is parsed', async () => { + it.concurrent('shifts nothing, because the picker shows once every preset is parsed', async () => { expect(page).toContain('ws-picker__end') expect(await loaded(page)).toBe(0) }) - it('does shift when the picker shows as it is parsed, so the check can fail', async () => { + it.concurrent('does shift when the picker shows as it is parsed, so the check can fail', async () => { const shown = page.replace(/\.ws-picker:not\(:has\(\.ws-picker__end\)\)/g, '.ws-never') expect(shown).not.toBe(page) expect(await loaded(shown)).toBeGreaterThan(0) @@ -291,7 +296,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) for (const width of [1440, 1024, 768]) { - it(`puts the configuration and the drawing side by side at equal height at ${width} px`, async () => { + it.concurrent(`puts the configuration and the drawing side by side at equal height at ${width} px`, async () => { const context = await browser.newContext({ viewport: { width, height: 900 } }) const tab = await open(context) for (const preset of IDS) { @@ -309,7 +314,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) } - it('stacks the configuration over the drawing on a phone', async () => { + it.concurrent('stacks the configuration over the drawing on a phone', async () => { const context = await browser.newContext({ viewport: { width: 390, height: 900 } }) const tab = await open(context) const { config, layout, stage } = await measure(tab) @@ -319,7 +324,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { await context.close() }) - it('keeps a long file inside its panel, where it scrolls', async () => { + it.concurrent('keeps a long file inside its panel, where it scrolls', async () => { const context = await browser.newContext({ viewport: { width: 1440, height: 900 } }) const tab = await open(context) await choose(tab, 'start-directory') @@ -333,7 +338,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) for (const width of [320, 390, 480, 768, 1024, 1440]) { - it(`never scrolls the page sideways at ${width} px, whichever preset shows, with the menu shut or open`, async () => { + it.concurrent(`never scrolls the page sideways at ${width} px, whichever preset shows, with the menu shut or open`, async () => { const context = await browser.newContext({ viewport: { width, height: 800 } }) const tab = await open(context) for (const preset of IDS) { @@ -352,7 +357,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { } for (const width of [320, 390, 480, 768, 1440]) { - it(`paints nothing of a preset that is not shown, and takes no pointer or focus from it, at ${width} px`, async () => { + it.concurrent(`paints nothing of a preset that is not shown, and takes no pointer or focus from it, at ${width} px`, async () => { const context = await browser.newContext({ viewport: { width, height: 800 } }) const tab = await open(context) for (const preset of IDS) { @@ -374,7 +379,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) } - it('catches a shown window that paints through a hidden preset, as the first stylesheet let it', async () => { + it.concurrent('catches a shown window that paints through a hidden preset, as the first stylesheet let it', async () => { const bad = STYLES.replace(/html\[data-js\] \.ws-layout__stack > \.ws-win:not\(\[data-active\]\) \{\s*visibility: hidden;\s*\}/, 'html[data-js] .ws-layout__stack > .ws-win { visibility: hidden; }\nhtml[data-js] .ws-layout__stack > .ws-win[data-active] { visibility: visible; }') expect(bad).not.toBe(STYLES) const context = await browser.newContext({ viewport: { width: 480, height: 800 } }) @@ -386,7 +391,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) for (const width of [320, 390, 480, 768, 1024, 1440]) { - it(`draws the window tabs above the drawing, never over it, with one caption, at ${width} px`, async () => { + it.concurrent(`draws the window tabs above the drawing, never over it, with one caption, at ${width} px`, async () => { const context = await browser.newContext({ viewport: { width, height: 800 } }) const tab = await open(context) for (const preset of IDS) { @@ -429,7 +434,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) } - it('scrolls the window tabs of a preset with many inside their strip on a phone, and brings the one chosen into view', async () => { + it.concurrent('scrolls the window tabs of a preset with many inside their strip on a phone, and brings the one chosen into view', async () => { const context = await browser.newContext({ viewport: { width: 390, height: 900 } }) const tab = await open(context, '?preset=start-directory') const strip = await tab.evaluate(() => { @@ -451,7 +456,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) for (const width of [320, 390, 480, 768, 1024, 1440]) { - it(`shows the scroll buttons and the slider only on a strip that overflows, with the right ones at each end, at ${width} px`, async () => { + it.concurrent(`shows the scroll buttons and the slider only on a strip that overflows, with the right ones at each end, at ${width} px`, async () => { const context = await browser.newContext({ viewport: { width, height: 800 }, reducedMotion: 'reduce' }) const tab = await open(context) let overflowed = 0 @@ -490,7 +495,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) } - it('shows no controls on a strip whose tabs fit', async () => { + it.concurrent('shows no controls on a strip whose tabs fit', async () => { const context = await browser.newContext({ viewport: { width: 1440, height: 800 } }) const tab = await open(context, '?preset=window-index') const now = await strip(tab, 'window-index') @@ -501,7 +506,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) for (const width of [390, 768, 1440]) { - it(`scrolls about one tab with a click and keeps the slider in step, at ${width} px`, async () => { + it.concurrent(`scrolls about one tab with a click and keeps the slider in step, at ${width} px`, async () => { const context = await browser.newContext({ viewport: { width, height: 900 }, reducedMotion: 'reduce' }) await context.addInitScript(layoutShift) const tab = await open(context, '?preset=start-directory') @@ -550,7 +555,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) } - it('drags the thumb to scroll the strip, and pages when the track beside it is pressed', async () => { + it.concurrent('drags the thumb to scroll the strip, and pages when the track beside it is pressed', async () => { const context = await browser.newContext({ viewport: { width: 390, height: 900 }, reducedMotion: 'reduce' }) const tab = await open(context, '?preset=start-directory') await tab.locator('.ws-picker__panel[data-preset="start-directory"] .ws-layout').scrollIntoViewIfNeeded() @@ -579,7 +584,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) for (const width of [320, 390, 480, 768, 1440]) { - it(`keeps the selected window's tab in view, clear of the buttons, as the arrow keys move along the tabs, at ${width} px`, async () => { + it.concurrent(`keeps the selected window's tab in view, clear of the buttons, as the arrow keys move along the tabs, at ${width} px`, async () => { const context = await browser.newContext({ viewport: { width, height: 900 }, reducedMotion: 'reduce' }) const tab = await open(context, '?preset=start-directory') await tab.focus('.ws-picker__panel[data-preset="start-directory"] [role="tab"][aria-selected="true"]') @@ -617,7 +622,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { }) } - it('keeps the buttons focusable and labelled, and hands focus to the tab when the one that has it goes', async () => { + it.concurrent('keeps the buttons focusable and labelled, and hands focus to the tab when the one that has it goes', async () => { const context = await browser.newContext({ viewport: { width: 390, height: 900 }, reducedMotion: 'reduce' }) const tab = await open(context, '?preset=start-directory') const end = '.ws-picker__panel[data-preset="start-directory"] .ws-layout__scroll--end' @@ -636,7 +641,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { await context.close() }) - it('fades the strip with the colour of the card in both colour schemes', async () => { + it.concurrent('fades the strip with the colour of the card in both colour schemes', async () => { const context = await browser.newContext({ viewport: { width: 390, height: 900 } }) const tab = await open(context, '?preset=start-directory') const surface = (scheme: 'light' | 'dark') => tab.evaluate((mode) => { @@ -656,7 +661,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { await context.close() }) - it('shows the current preset on the menu, with the roll button beside it, as the front page does', async () => { + it.concurrent('shows the current preset on the menu, with the roll button beside it, as the front page does', async () => { for (const width of [1440, 390]) { const context = await browser.newContext({ viewport: { width, height: 900 } }) const tab = await open(context) @@ -671,7 +676,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { } }) - it('opens a searchable menu of every preset, each row a tile, a name and one line', async () => { + it.concurrent('opens a searchable menu of every preset, each row a tile, a name and one line', async () => { const context = await browser.newContext({ viewport: { width: 1440, height: 900 } }) const tab = await open(context) await tab.click('.ws-picker__menu > summary') @@ -694,7 +699,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { await context.close() }) - it('filters the menu by name, summary and key, says when nothing matches, and closes with Escape', async () => { + it.concurrent('filters the menu by name, summary and key, says when nothing matches, and closes with Escape', async () => { const context = await browser.newContext({ viewport: { width: 1440, height: 900 } }) const tab = await open(context) const shownRows = () => tab.evaluate(() => [...document.querySelectorAll('[data-preset-option]')].filter((row) => !row.hidden).map((row) => row.dataset.presetOption)) @@ -717,7 +722,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { await context.close() }) - it('chooses from the menu by keyboard: search, arrow down, enter', async () => { + it.concurrent('chooses from the menu by keyboard: search, arrow down, enter', async () => { const context = await browser.newContext() const tab = await open(context) await tab.focus('.ws-picker__menu > summary') @@ -742,7 +747,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { await context.close() }) - it('rolls to a different preset every time, with the front page\'s own button', async () => { + it.concurrent('rolls to a different preset every time, with the front page\'s own button', async () => { const context = await browser.newContext() const tab = await open(context) expect(await tab.locator('[data-action="roll"]').evaluate((button) => button.classList.contains('lm-reroll') && button.textContent!.includes('🎲'))).toBe(true) @@ -761,7 +766,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { await context.close() }) - it('remembers the choice per port, writes it to the address and opens on it again', async () => { + it.concurrent('remembers the choice per port, writes it to the address and opens on it again', async () => { const context = await browser.newContext() const tab = await open(context) await choose(tab, 'environment') @@ -775,7 +780,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { await context.close() }) - it('shows the remembered or named preset before the picker\'s own script runs, so nothing flashes', async () => { + it.concurrent('shows the remembered or named preset before the picker\'s own script runs, so nothing flashes', async () => { const context = await browser.newContext() const tab = await open(context) await choose(tab, 'environment') @@ -799,7 +804,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { await context.close() }) - it('opens on the preset the address names in both colour schemes, with all of its windows', async () => { + it.concurrent('opens on the preset the address names in both colour schemes, with all of its windows', async () => { const context = await browser.newContext() const tab = await open(context) await choose(tab, 'environment') @@ -816,7 +821,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { await context.close() }) - it('shows the first preset when storage is unavailable, and still swaps', async () => { + it.concurrent('shows the first preset when storage is unavailable, and still swaps', async () => { const context = await browser.newContext() await context.addInitScript(() => { Object.defineProperty(window, 'localStorage', { get() { throw new DOMException('denied', 'SecurityError') } }) @@ -834,7 +839,7 @@ describe('the workspace picker in Chromium', { timeout: 60_000 }, () => { await context.close() }) - it('without script shows the first preset alone and every example in full below it', async () => { + it.concurrent('without script shows the first preset alone and every example in full below it', async () => { const context = await browser.newContext({ javaScriptEnabled: false }) const tab = await open(context) const panels = tab.locator('.ws-picker__panel') @@ -897,7 +902,7 @@ describe('the workspace picker as a landing page tab in Chromium', { timeout: 60 beforeAll(async () => { page = await landing() }) for (const width of [1440, 768, 390]) { - it(`ends every preset's evidence where the stage ends, and moves nothing below, at ${width} px`, async () => { + it.concurrent(`ends every preset's evidence where the stage ends, and moves nothing below, at ${width} px`, async () => { const context = await browser.newContext({ viewport: { width, height: 900 } }) await context.addInitScript(layoutShift) const tab = await open(context, '', page) @@ -920,7 +925,7 @@ describe('the workspace picker as a landing page tab in Chromium', { timeout: 60 }) } - it('shows the opening preset, with its command and evidence, to a reader without script', async () => { + it.concurrent('shows the opening preset, with its command and evidence, to a reader without script', async () => { const context = await browser.newContext({ viewport: { width: 1280, height: 900 }, javaScriptEnabled: false }) const tab = await open(context, '', page) const panels = tab.locator('.ws-picker__panel') @@ -937,7 +942,7 @@ describe('the workspace picker as a landing page tab in Chromium', { timeout: 60 await context.close() }) - it('leaves the evidence off the foot of the stage when the panel is not a column, so the check can fail', async () => { + it.concurrent('leaves the evidence off the foot of the stage when the panel is not a column, so the check can fail', async () => { const bad = STYLES.replace(/html\[data-js\] \.ws-picker--landing \.ws-picker__panel \{[^}]*\}/, '') expect(bad).not.toBe(STYLES) const context = await browser.newContext({ viewport: { width: 1280, height: 900 } }) From 2d68bbc8de50a8f8e766fe4d1864f8538e42435f Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 17:03:45 -0600 Subject: [PATCH 04/26] ci(docs[ocaml]) Check out the pinned guide source why: A fresh CI checkout cannot stage OCaml guides without the native source commit selected by the compiled API model. what: - Resolve and check out the model's OCaml source revision - Supply the checkout to guide staging and source-derived usage checks - Keep compiled API freshness in the owning port's exporter job --- .github/workflows/test.yml | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 91f9f8e88..e9d612640 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -53,11 +53,14 @@ jobs: - name: Resolve integrated guide sources id: integrated-sources run: | - echo "ruby=$(jq -r .revision site/src/data/api/ruby.json)" >> "$GITHUB_OUTPUT" - echo "lua=$(jq -r .revision site/src/data/api/lua.json)" >> "$GITHUB_OUTPUT" - echo "powershell=$(jq -r .revision site/src/data/api/powershell.json)" >> "$GITHUB_OUTPUT" - echo "julia=$(jq -r .revision site/src/data/api/julia.json)" >> "$GITHUB_OUTPUT" - echo "elixir=$(jq -r .revision site/src/data/api/elixir.json)" >> "$GITHUB_OUTPUT" + { + echo "ruby=$(jq -r .revision site/src/data/api/ruby.json)" + echo "lua=$(jq -r .revision site/src/data/api/lua.json)" + echo "powershell=$(jq -r .revision site/src/data/api/powershell.json)" + echo "julia=$(jq -r .revision site/src/data/api/julia.json)" + echo "elixir=$(jq -r .revision site/src/data/api/elixir.json)" + echo "ocaml=$(jq -r .revision site/src/data/api/ocaml.json)" + } >> "$GITHUB_OUTPUT" - uses: actions/checkout@v7 with: @@ -89,6 +92,12 @@ jobs: ref: ${{ steps.integrated-sources.outputs.elixir }} path: .port-sources/elixir persist-credentials: false + - uses: actions/checkout@v7 + with: + repository: libtmux/libtmux-ocaml + ref: ${{ steps.integrated-sources.outputs.ocaml }} + path: .port-sources/ocaml + persist-credentials: false # The exporter tests compile a fixture with the package's own toolchain: # the exact pair the integrated Elixir source pins, read as port-docs.yml @@ -112,6 +121,7 @@ jobs: LIBTMUX_DOCS_CHECKOUT_POWERSHELL: ${{ github.workspace }}/.port-sources/powershell LIBTMUX_DOCS_CHECKOUT_JULIA: ${{ github.workspace }}/.port-sources/julia LIBTMUX_DOCS_CHECKOUT_ELIXIR: ${{ github.workspace }}/.port-sources/elixir + LIBTMUX_DOCS_CHECKOUT_OCAML: ${{ github.workspace }}/.port-sources/ocaml run: | node scripts/stage-port-docs.mjs --from-source node scripts/stage-port-docs.mjs --cached --check @@ -131,12 +141,15 @@ jobs: PREVIEW_PREFIX: pr-${{ github.event.pull_request.number }} LIBTMUX_DOCS_CHECKOUT_RUBY: ${{ github.workspace }}/.port-sources/ruby LIBTMUX_DOCS_CHECKOUT_LUA: ${{ github.workspace }}/.port-sources/lua + LIBTMUX_DOCS_CHECKOUT_OCAML: ${{ github.workspace }}/.port-sources/ocaml # PowerShell, Julia and Elixir paths stay scoped to guide staging # above, which checks the cache used by ordinary builds. Native API # and MCP export freshness remain owning-port checks, not claims of # this root audit. Elixir's exporter tests run in the unit step; its # committed model is derived again by port-docs.yml at publication. - LIBTMUX_DOCS_SKIP_NATIVE_MODEL_PORTS: ruby,lua,powershell,julia,elixir + # OCaml's checkout also feeds source-derived usage checks. Its + # compiled API is qualified by the owning port's exporter job. + LIBTMUX_DOCS_SKIP_NATIVE_MODEL_PORTS: ruby,lua,powershell,julia,elixir,ocaml - name: Upload audited preview if: github.event_name == 'pull_request' From ba2acc1baf6346c15364ccecee8ed5bab77b9912 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 17:23:16 -0600 Subject: [PATCH 05/26] feat(scripts[opam]) Read OCaml package registry versions why: Online registry refreshes require a probe for each registered port; OCaml otherwise stops the publication audit before its checks can run. what: - Read version directories from the central opam repository - Validate versions against the port's declared release-tag grammar - Preserve known metadata when registry data is unavailable or malformed - Cover published releases, prerelease tags and failed registry reads --- scripts/gen-registry.mjs | 19 +++++++++++++++++++ scripts/gen-registry.negative.mjs | 28 ++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/scripts/gen-registry.mjs b/scripts/gen-registry.mjs index 4eb7c70cf..496b0f53e 100644 --- a/scripts/gen-registry.mjs +++ b/scripts/gen-registry.mjs @@ -290,6 +290,25 @@ const PROBES = { const versions = body.split('\n').filter(Boolean) return versions.length > 0 ? versions : null }, + async ocaml(port) { + // The central opam repository stores each release in a package.version directory. + const token = process.env.GITHUB_TOKEN || process.env.GH_TOKEN + const { missing, body } = await getJson( + `https://api.github.com/repos/ocaml/opam-repository/contents/packages/${encodeURIComponent(port.packageName)}`, + { accept: 'application/vnd.github+json', ...(token ? { authorization: `Bearer ${token}` } : {}) }, + ) + if (missing || !Array.isArray(body)) throw new Error('opam package index is unavailable') + const prefix = `${port.packageName}.` + const versions = body.flatMap((entry) => { + if (!entry || typeof entry.name !== 'string' || typeof entry.type !== 'string') throw new Error('invalid opam package index') + if (entry.type !== 'dir' || !entry.name.startsWith(prefix)) return [] + const version = entry.name.slice(prefix.length) + if (!releaseTag(`v${version}`, port)) throw new Error('unrecognized opam package version') + return [version] + }) + if (!versions.length) throw new Error('opam package index contains no recognized versions') + return versions + }, async java(port) { const { missing, body } = await getText( `https://repo.maven.apache.org/maven2/${port.packageName.split(':')[0].replaceAll('.', '/')}/${port.packageName.split(':')[1]}/maven-metadata.xml`, diff --git a/scripts/gen-registry.negative.mjs b/scripts/gen-registry.negative.mjs index 6c0b1827f..f2b48d183 100644 --- a/scripts/gen-registry.negative.mjs +++ b/scripts/gen-registry.negative.mjs @@ -251,6 +251,34 @@ for (const [name, mutate] of mutations) { check('an incomplete Gallery entry is not an empty package feed', same(result.ports.powershell, seed.ports.powershell), result.error) result = invoke({ ...replies, [workspace]: { status: 500, body: 'unavailable' } }) check('a failed sibling package probe does not publish a partial PowerShell entry', same(result.ports.powershell, seed.ports.powershell), result.error) + + const ocamlTags = 'https://api.github.com/repos/libtmux/libtmux-ocaml/tags?per_page=100' + const opam = 'https://api.github.com/repos/ocaml/opam-repository/contents/packages/libtmux' + const ocaml = { ...replies, [ocamlTags]: tagged('v0.1.0-alpha.1', 'v0.1.0') } + writeFileSync(join(dir, 'published.json'), JSON.stringify(baseline)) + result = invoke({ ...ocaml, [opam]: { body: JSON.stringify([ + { type: 'dir', name: 'libtmux.0.1.0-alpha.1' }, + { type: 'dir', name: 'libtmux.0.1.0' }, + { type: 'file', name: 'README.md' }, + { type: 'dir', name: 'another-package.9.0.0' }, + ]) } }) + const publishedOcaml = { status: 'release', version: '0.1.0', release: '0.1.0', tag: 'v0.1.0' } + check('opam directory versions select the published release and its tag', + same(result.ports.ocaml, publishedOcaml), `${JSON.stringify(result.ports.ocaml)} ${result.error}`) + result = invoke({ ...ocaml, [opam]: { body: JSON.stringify([{ type: 'dir', name: 'libtmux.0.1.0-alpha.1' }]) } }) + check('opam does not treat an unpublished final tag as a registry release', + same(result.ports.ocaml, { status: 'prerelease', version: '0.1.0-alpha.1', release: null, tag: 'v0.1.0-alpha.1' }), result.error) + writeFileSync(join(dir, 'published.json'), JSON.stringify({ ...baseline, ports: { ...baseline.ports, ocaml: publishedOcaml } })) + for (const [why, response] of [ + ['HTTP 403', { status: 403, body: 'unavailable' }], + ['HTTP 404', { status: 404, body: 'not found' }], + ['HTTP 500', { status: 500, body: 'unavailable' }], + ['malformed data', { body: JSON.stringify([{ type: 'dir', name: 'libtmux.not-a-version' }]) }], + ]) { + result = invoke({ ...ocaml, [opam]: response }) + check(`opam ${why} preserves the last published entry`, same(result.ports.ocaml, publishedOcaml), result.error) + } + writeFileSync(join(dir, 'published.json'), JSON.stringify(baseline)) result = invoke({}, true) check('offline refresh fills missing ports and preserves published entries', Object.keys(result.ports).length === PORTS.length && same(result.ports.powershell, seed.ports.powershell) From 3765b85e8d136163e5b247d8273f7548cdbbc1bc Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 17:39:14 -0600 Subject: [PATCH 06/26] feat(site[ocaml]) Register the qualified docs caller why: Documentation planning can include OCaml after its real build-only caller and complete artifact have passed source-provenance validation. what: - Register the native repository's explicit docs workflow - Preserve its source, version and publication controls in shared planning --- site/src/lib/ports.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/site/src/lib/ports.ts b/site/src/lib/ports.ts index 669b2883f..7b92d684a 100644 --- a/site/src/lib/ports.ts +++ b/site/src/lib/ports.ts @@ -1262,6 +1262,7 @@ target_link_libraries(your_target PRIVATE libtmux::libtmux)`, worktree: '~/work/libtmux/libtmux-ocaml-docs-site', source: { path: 'lib', ref: 'master' }, versionedDocs: true, tagGrammar: 'semver', publishesOwnTree: true, + docsDispatch: { workflow: 'docs.yml' }, renderer: 'astro', generator: 'OCaml typed interfaces and odoc comments', referenceKind: 'model', workspaceCli: 'tmux-workspace apply', workspaceCliAvailability: 'local', productAvailability: { workspace: 'available', mcp: 'excluded' }, From ef1c8ff2a5c543620193ff0e0e8db0a7ef21c8c2 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 17:57:20 -0600 Subject: [PATCH 07/26] fix(site[ocaml]) Align generated documentation inventories why: Publication checks compare repository identities and the evidence bundle clock with the data produced by the canonical generators. what: - Generate OCaml manifest entries with the repository slug - Retain the date of the latest destination verification in the bundle --- site/src/data/destination-evidence.json | 2 +- site/src/data/manifest-packages.json | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/site/src/data/destination-evidence.json b/site/src/data/destination-evidence.json index 8e14c09e6..e03a27d5f 100644 --- a/site/src/data/destination-evidence.json +++ b/site/src/data/destination-evidence.json @@ -1,6 +1,6 @@ { "schema": 1, - "checkedAt": "2026-11-03", + "checkedAt": "2026-11-07", "destinations": [ { "url": "https://central.sonatype.com/artifact/io.github.libtmux/libtmux", diff --git a/site/src/data/manifest-packages.json b/site/src/data/manifest-packages.json index ca1cc903a..0cd1b3a55 100644 --- a/site/src/data/manifest-packages.json +++ b/site/src/data/manifest-packages.json @@ -737,43 +737,43 @@ ] }, "ocaml": { - "repo": "https://github.com/libtmux/libtmux-ocaml", + "repo": "libtmux/libtmux-ocaml", "revision": "ade2f9787024a5426710cec06f864648c217263c", "distributions": [ { "name": "libtmux", "manifest": "libtmux.opam", - "repo": "https://github.com/libtmux/libtmux-ocaml", + "repo": "libtmux/libtmux-ocaml", "revision": "ade2f9787024a5426710cec06f864648c217263c" }, { "name": "libtmux-eio", "manifest": "libtmux-eio.opam", - "repo": "https://github.com/libtmux/libtmux-ocaml", + "repo": "libtmux/libtmux-ocaml", "revision": "ade2f9787024a5426710cec06f864648c217263c" }, { "name": "libtmux-json", "manifest": "libtmux-json.opam", - "repo": "https://github.com/libtmux/libtmux-ocaml", + "repo": "libtmux/libtmux-ocaml", "revision": "ade2f9787024a5426710cec06f864648c217263c" }, { "name": "libtmux-unix", "manifest": "libtmux-unix.opam", - "repo": "https://github.com/libtmux/libtmux-ocaml", + "repo": "libtmux/libtmux-ocaml", "revision": "ade2f9787024a5426710cec06f864648c217263c" }, { "name": "libtmux-workspace", "manifest": "libtmux-workspace.opam", - "repo": "https://github.com/libtmux/libtmux-ocaml", + "repo": "libtmux/libtmux-ocaml", "revision": "ade2f9787024a5426710cec06f864648c217263c" }, { "name": "libtmux-workspace-cli", "manifest": "libtmux-workspace-cli.opam", - "repo": "https://github.com/libtmux/libtmux-ocaml", + "repo": "libtmux/libtmux-ocaml", "revision": "ade2f9787024a5426710cec06f864648c217263c" } ], From 325983163e55e5839d0e80399fb8989f838800ef Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 18:21:54 -0600 Subject: [PATCH 08/26] perf(site[styles]) Bound Tailwind to rendering sources why: Isolated previews link installed dependencies beside their sources. Scanning those links blocks module loading and browser navigation. what: - Resolve utility candidates from the site's rendering source tree - Keep explicit theme and typography plugins in the stylesheet --- site/src/styles/global.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site/src/styles/global.css b/site/src/styles/global.css index f65de687d..e22a5dccf 100644 --- a/site/src/styles/global.css +++ b/site/src/styles/global.css @@ -4,7 +4,8 @@ Navigation is motionless. Homepage hover previews have a brief fade, disabled when the reader prefers reduced motion. */ -@import "tailwindcss"; +/* Isolated previews link dependencies beside src; scan the rendering sources. */ +@import "tailwindcss" source("../"); @import "./gp-sphinx-tokens.css"; @import "./brand.css"; @import "./api-kinds.css"; From 5b1736d800e5f08a21939fda6f3b2eb49991f097 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 18:52:35 -0600 Subject: [PATCH 09/26] test(ci[sources]) Verify emitted documentation revisions why: Source binding depends on the values written to GITHUB_OUTPUT, including when the workflow groups its redirects for ShellCheck. what: - Execute the source-output step against isolated revision fixtures - Include OCaml in checkout and native freshness contracts - Reject missing output, incorrect fields and altered revision values --- site/test/deploy-workflow.test.ts | 36 ++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/site/test/deploy-workflow.test.ts b/site/test/deploy-workflow.test.ts index d4190ac78..ab044dc92 100644 --- a/site/test/deploy-workflow.test.ts +++ b/site/test/deploy-workflow.test.ts @@ -12,16 +12,37 @@ const shell = readFileSync(new URL('../../.github/workflows/deploy-shell.yml', i const testWorkflow = readFileSync(new URL('../../.github/workflows/test.yml', import.meta.url), 'utf8') const publicationAudit = readFileSync(new URL('../../scripts/test-all.sh', import.meta.url), 'utf8') const publishRoot = readFileSync(new URL('../../scripts/publish-root.sh', import.meta.url), 'utf8') -const sourceGuidePorts = ['ruby', 'lua', 'powershell', 'julia', 'elixir'] +const sourceGuidePorts = ['ruby', 'lua', 'powershell', 'julia', 'elixir', 'ocaml'] function sourceCheckoutContract(workflow: string): void { for (const port of sourceGuidePorts) { - expect(workflow).toContain(`echo "${port}=$(jq -r .revision site/src/data/api/${port}.json)" >> "$GITHUB_OUTPUT"`) expect(workflow).toContain(`repository: libtmux/libtmux-${port}`) expect(workflow).toContain('ref: ${{ steps.integrated-sources.outputs.' + port + ' }}') expect(workflow).toContain(`path: .port-sources/${port}`) } expect(workflow).toContain('persist-credentials: false') + + const body = /^ {8}id: integrated-sources\n {8}run: \|\n((?: {10}[^\n]*\n|\n)*)/m.exec(workflow)?.[1] + expect(body, 'the integrated-sources step has an executable run block').toBeDefined() + const directory = mkdtempSync(join(tmpdir(), 'libtmux-source-outputs-')) + try { + const models = join(directory, 'site/src/data/api') + mkdirSync(models, { recursive: true }) + const revisions = Object.fromEntries(sourceGuidePorts.map((port, index) => [port, String(index + 1).repeat(40)])) + for (const [port, revision] of Object.entries(revisions)) writeFileSync(join(models, `${port}.json`), JSON.stringify({ revision })) + const output = join(directory, 'github-output') + writeFileSync(output, '') + const result = spawnSync('bash', ['-e', '-c', body!.replace(/^ {10}/gm, '')], { + cwd: directory, encoding: 'utf8', timeout: 1000, env: { PATH: process.env.PATH, GITHUB_OUTPUT: output }, + }) + expect(result.error, result.stderr).toBeUndefined() + expect(result.status, result.stderr).toBe(0) + const emitted = Object.fromEntries(readFileSync(output, 'utf8').split('\n').filter(Boolean).map((line) => { + const separator = line.indexOf('=') + return [line.slice(0, separator), line.slice(separator + 1)] + })) + expect(emitted, 'source revisions emitted to GITHUB_OUTPUT').toEqual(revisions) + } finally { rmSync(directory, { recursive: true, force: true }) } } interface ManifestResponse { @@ -397,6 +418,15 @@ describe('port publisher contract', () => { expect(merge).not.toMatch(/\|\| true|2>\/dev\/null/) }) + it.each([ + ['missing output', testWorkflow.replace('} >> "$GITHUB_OUTPUT"', '}')], + ['the wrong revision field', testWorkflow.replace('jq -r .revision', 'jq -r .missing')], + ['an extra equals sign in the revision', testWorkflow.replace('ruby.json)"', 'ruby.json)=unexpected"')], + ['trailing whitespace in the revision', testWorkflow.replace('ocaml.json)"', 'ocaml.json) "')], + ])('rejects source revisions with %s', (_name, workflow) => { + expect(() => sourceCheckoutContract(workflow)).toThrow(/source revisions emitted to GITHUB_OUTPUT/) + }) + it('stages every source-bound native guide before the publication audit checks backlinks', () => { sourceCheckoutContract(testWorkflow) expect(testWorkflow).toContain('node scripts/stage-port-docs.mjs --from-source') @@ -407,7 +437,7 @@ describe('port publisher contract', () => { } expect(stage).toContain('node scripts/stage-port-docs.mjs --cached --check') expect(stage.indexOf('--cached --check')).toBeGreaterThan(stage.indexOf('--from-source')) - for (const port of ['ruby', 'lua']) { + for (const port of ['ruby', 'lua', 'ocaml']) { expect(audit).toContain(`LIBTMUX_DOCS_CHECKOUT_${port.toUpperCase()}: ` + '${{ github.workspace }}/.port-sources/' + port) } expect(audit).not.toMatch(/LIBTMUX_DOCS_CHECKOUT_(POWERSHELL|JULIA|ELIXIR):/) From 672f8eb92a56739004c162b9b2eb7dceebe601a2 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 20:51:59 -0600 Subject: [PATCH 10/26] docs(fix[ocaml]) Resolve native prose references precisely why: Native guides contain standard-library references, saved filenames and wire schemas that the shared renderer must distinguish before publication. what: - Recognize OCaml source filenames and numeric output labels - Link registered source paths and verified standard-library declarations - Validate complete value and type names, including apostrophes - Preserve Lua method and Elixir arity recognition --- packages/api-model/src/builtins.ts | 3 ++ packages/api-model/src/resolver.ts | 3 +- packages/api-model/test/builtins.test.ts | 10 ++++++ packages/api-model/test/resolver.test.ts | 8 +++++ scripts/check-api-links.mjs | 2 +- scripts/lib/api-addresses.mjs | 2 +- scripts/lib/api-identities.mjs | 13 +++++--- scripts/lib/api-sources.mjs | 4 +-- site/src/data/api-destination-evidence.json | 21 +++++++------ site/src/lib/prose-resolver.ts | 5 +-- site/test/api-destination-evidence.test.ts | 34 +++++++++++++++++++++ site/test/prose-markdown.test.ts | 13 ++++++++ 12 files changed, 97 insertions(+), 21 deletions(-) diff --git a/packages/api-model/src/builtins.ts b/packages/api-model/src/builtins.ts index e2f439831..45ec7877a 100644 --- a/packages/api-model/src/builtins.ts +++ b/packages/api-model/src/builtins.ts @@ -156,8 +156,11 @@ export const BUILTINS: Record> = { ocaml: { Iarray: 'https://ocaml.org/manual/5.5/api/Iarray.html', 'Iarray.t': 'https://ocaml.org/manual/5.5/api/Iarray.html#TYPEt', + List: 'https://ocaml.org/manual/5.5/api/List.html', Seq: 'https://ocaml.org/manual/5.5/api/Seq.html', 'Seq.t': 'https://ocaml.org/manual/5.5/api/Seq.html#TYPEt', + 'Seq.filter': 'https://ocaml.org/manual/5.5/api/Seq.html#VALfilter', + Unix: 'https://ocaml.org/manual/5.5/api/Unix.html', }, elixir: { ...Object.fromEntries(ELIXIR_BASIC_TYPES.map((name) => [name, elixirDocs('typespecs.html#basic-types')])), diff --git a/packages/api-model/src/resolver.ts b/packages/api-model/src/resolver.ts index 676e2b52d..5d2845d48 100644 --- a/packages/api-model/src/resolver.ts +++ b/packages/api-model/src/resolver.ts @@ -106,7 +106,8 @@ export function notASymbol(text: string): string | undefined { if (/^\w+(?:\.\w+)+:[\w.-]+(?::[\w.<>{}-]+)?$/.test(text)) return 'a dependency coordinate' // `objects.inv` is the published Sphinx inventory, named by the setup guides next to a Python fence. if (/\.(?:tsv|html|inv)$/.test(text)) return 'a filename' - if (/\.(py|ts|go|rs|java|kt|kts|scala|cs|fs|fsi|fsproj|properties|cpp|hpp|c|h|lua|rb|swift|jl|exs?|ps1|psm1|psd1|md|json|ya?ml|toml|sh)\b/.test(text)) return 'a filename' + if (/\.(py|ts|go|rs|java|kt|kts|scala|cs|fs|fsi|fsproj|properties|cpp|hpp|c|h|lua|rb|swift|jl|exs?|ps1|psm1|psd1|ml|mli|opam|md|json|ya?ml|toml|sh)\b/.test(text)) return 'a filename' + if (/^[A-Za-z_][\w-]*:\d+$/.test(text)) return 'a numeric label' if (/(^|\s)--?[A-Za-z]/.test(text)) return 'a command-line flag' if (/[=<>!]=|\s[=<>]\s/.test(text)) return 'an expression, not a reference' if (/^new\s/.test(text)) return 'a constructor call' diff --git a/packages/api-model/test/builtins.test.ts b/packages/api-model/test/builtins.test.ts index 3d7ce1d7f..92c4addcf 100644 --- a/packages/api-model/test/builtins.test.ts +++ b/packages/api-model/test/builtins.test.ts @@ -92,6 +92,16 @@ describe('C++ standard references', () => { }) describe('standard types in product signatures', () => { + it('links the OCaml modules and sequence function used in native guides', () => { + const index = new SymbolIndex([], () => '#', 'ocaml') + for (const [name, page] of [['List', 'List.html'], ['Unix', 'Unix.html'], ['Seq.filter', 'Seq.html#VALfilter']]) { + expect(builtinHref('ocaml', name), name).toBe(`https://ocaml.org/manual/5.5/api/${page}`) + expect(index.resolve(name), name).toMatchObject({ href: `https://ocaml.org/manual/5.5/api/${page}`, external: true }) + expect(builtinHref('ts', name), name).toBeUndefined() + } + expect(index.resolve('Seq.invented')).toBeUndefined() + }) + it('links Scala Using.resource without losing the callee owner or expression', () => { const model = JSON.parse(readFileSync(new URL('../../../site/src/data/api/scala.json', import.meta.url), 'utf8')) as ApiModel const context = model.symbols.find((symbol) => symbol.id === 'io.github.libtmux.scaladsl.Server')! diff --git a/packages/api-model/test/resolver.test.ts b/packages/api-model/test/resolver.test.ts index 968b8d19a..6db39b07f 100644 --- a/packages/api-model/test/resolver.test.ts +++ b/packages/api-model/test/resolver.test.ts @@ -94,6 +94,14 @@ d('resolver', () => { expect(notASymbol('pane.height')).toBeUndefined() }) + it('keeps OCaml filenames and numeric output labels out of API references', () => { + for (const text of ['main.ml', 'json/libtmux_json.mli', 'libtmux.opam']) expect(notASymbol(text), text).toBe('a filename') + for (const text of ['editor:2', 'logs:1']) expect(notASymbol(text), text).toBe('a numeric label') + for (const text of ['Seq.filter', 'Enum.map/2', 'LibTmux.Session.new_window/1', 'Server:new_session']) { + expect(notASymbol(text), text).toBeUndefined() + } + }) + it('preserves an exact Swift selector instead of resolving its same-named property', () => { for (const id of ['Snapshot.panes(of:)', 'Snapshot.panes']) { const result = r.resolve('swift', id) diff --git a/scripts/check-api-links.mjs b/scripts/check-api-links.mjs index 6015c8b25..3b81dd8c8 100755 --- a/scripts/check-api-links.mjs +++ b/scripts/check-api-links.mjs @@ -101,7 +101,7 @@ const EXCEPTIONS = new Map() } } -const FILE_RE = /^[\w./@-]+\.(py|ts|tsx|js|rs|go|java|cs|cpp|hpp|h|swift|jl|ex|exs|ps1|psm1|psd1|md|toml|json|ya?ml|sh)$/ +const FILE_RE = /^[\w./@-]+\.(py|ts|tsx|js|rs|go|java|cs|cpp|hpp|h|swift|jl|ex|exs|ps1|psm1|psd1|ml|mli|opam|md|toml|json|ya?ml|sh)$/ const PORT_BY_LABEL = Object.fromEntries(PORT_DEFS.map((port) => [port.name, port.slug])) PORT_BY_LABEL['C#'] = 'csharp' diff --git a/scripts/lib/api-addresses.mjs b/scripts/lib/api-addresses.mjs index a4c7de0cf..82030be54 100644 --- a/scripts/lib/api-addresses.mjs +++ b/scripts/lib/api-addresses.mjs @@ -54,7 +54,7 @@ export function addressOf(url) { if (host === 'ocaml.org' && /^\/manual\/[^/]+\/api\//.test(u.pathname)) { const path = dotted(stem) - const member = /^TYPE([a-z_][\w']*)$/.exec(fragment) + const member = /^(?:TYPE|VAL)([a-z_][\w']*)$/.exec(fragment) return { path: member ? [...path, member[1]] : path, exact: true, fragment: member ? 'member' : none, type: stem } } diff --git a/scripts/lib/api-identities.mjs b/scripts/lib/api-identities.mjs index 050b2044f..2115676df 100644 --- a/scripts/lib/api-identities.mjs +++ b/scripts/lib/api-identities.mjs @@ -287,15 +287,18 @@ function ocamldoc(_url, page, fragment) { if (!module) return undefined const base = { via: 'ocamldoc', declared: 'module', kind: 'module', path: dotted(module[1]), title: page.title } if (!fragment) return base - const type = /^TYPE([a-z_][\w']*)$/.exec(fragment) + const member = /^(TYPE|VAL)([a-z_][\w']*)$/.exec(fragment) const anchor = page.anchors.find((entry) => entry.id === fragment) - if (!type || !anchor) return undefined + if (!member || !anchor) return undefined const end = page.html.indexOf('', anchor.at) if (end < 0) return undefined const declaration = strip(page.html.slice(anchor.at, end)) - const named = /^type\s+(?:(?:[+-]?'[\w']+|\([^)]*\))\s+)?([a-z_][\w']*)\b/.exec(declaration) - if (named?.[1] !== type[1]) return undefined - return { ...base, declared: 'type', kind: 'type', path: [...base.path, type[1]] } + const isType = member[1] === 'TYPE' + const named = (isType + ? /^type\s+(?:(?:[+-]?'[\w']+|\([^)]*\))\s+)?([a-z_][\w']*)(?![\w'])/ + : /^val\s+([a-z_][\w']*)(?![\w'])/).exec(declaration) + if (named?.[1] !== member[2]) return undefined + return { ...base, declared: isType ? 'type' : 'val', kind: isType ? 'type' : 'member', path: [...base.path, member[2]] } } function mdn(url, page) { diff --git a/scripts/lib/api-sources.mjs b/scripts/lib/api-sources.mjs index d5423fa07..a3fe4d643 100644 --- a/scripts/lib/api-sources.mjs +++ b/scripts/lib/api-sources.mjs @@ -62,7 +62,7 @@ export const GO_PACKAGES = { * is one whole name. The rest are read from the name by `kindOf`. */ export const NAME_KINDS = { - ocaml: { Iarray: 'module', Seq: 'module', 'Iarray.t': 'type', 'Seq.t': 'type' }, + ocaml: { Iarray: 'module', List: 'module', Seq: 'module', Unix: 'module', 'Iarray.t': 'type', 'Seq.t': 'type', 'Seq.filter': 'member' }, kotlin: { Dispatchers: 'object', NonCancellable: 'object', Unit: 'object' }, // `String` in Scala is the alias `Predef` declares, and its page is Predef's. scala: { Using: 'object', String: 'object' }, @@ -131,7 +131,7 @@ export const PRELUDE_MACROS = new Set(['std', 'core', 'alloc']) /** What each port means by a bare name it imports, as the owner the name's page is under. */ export const BARE_OWNERS = Object.fromEntries(Object.entries({ - ocaml: { '': ['Iarray', 'Seq'] }, + ocaml: { '': ['Iarray', 'List', 'Seq', 'Unix'] }, java: { 'java.util': ['List', 'Set', 'Map', 'Optional', 'OptionalInt', 'OptionalLong', 'Collection', 'Iterator'], 'java.util.function': ['Function', 'Supplier', 'Consumer', 'Predicate', 'LongSupplier'], diff --git a/site/src/data/api-destination-evidence.json b/site/src/data/api-destination-evidence.json index 234f08304..b3a9fa09f 100644 --- a/site/src/data/api-destination-evidence.json +++ b/site/src/data/api-destination-evidence.json @@ -1,6 +1,6 @@ { "schema": 2, - "checkedAt": "2026-11-07", + "checkedAt": "2026-11-08", "inventories": [ {"name":"python","source":"https://docs.python.org/3/objects.inv","kind":"objects.inv","entries":16493,"digest":"9b186d22c55bd3056145d7009198a34a0274d7e4","ok":true,"missing":0,"checkedAt":"2026-10-25"}, {"name":"julia","source":"https://docs.julialang.org/en/v1/objects.inv","kind":"objects.inv","entries":2545,"digest":"94ff52276c38e7feea3d68234092a72496935b01","ok":true,"missing":0,"checkedAt":"2026-10-25"}, @@ -711,14 +711,17 @@ {"url":"https://luals.github.io/wiki/annotations/#documenting-types","host":"luals.github.io","status":200,"via":"html","title":"Lua Language Server | Wiki","ok":true,"fragment":"found","terminal":[{"symbol":"any","at":"section","reason":"the wiki lists the recognized types in one section"}],"checkedAt":"2026-10-25","names":["lua:any"],"sources":["builtin","prose"]}, {"url":"https://luals.github.io/wiki/annotations/#overload","host":"luals.github.io","status":200,"via":"html","title":"Lua Language Server | Wiki","heading":"@overload","ok":true,"fragment":"found","terminal":[{"key":"authored:Lua overload annotations","symbol":"Lua overload annotations","at":"review"}],"checkedAt":"2026-10-25","names":["glossary lua overload"],"sources":["authored"]}, {"url":"https://modelcontextprotocol.io/specification/2025-11-25/schema#toolannotations","host":"modelcontextprotocol.io","status":200,"via":"html","title":"Schema Reference - Model Context Protocol","heading":"ToolAnnotations","ok":true,"fragment":"found","terminal":[{"key":"authored:MCP ToolAnnotations","symbol":"MCP ToolAnnotations","at":"review"}],"checkedAt":"2026-10-25","names":["site/src/lib/api-glossary.ts"],"sources":["authored"]}, - {"url":"https://ocaml.org/docs/libraries-dune","host":"ocaml.org","status":200,"via":"html","title":"Libraries With Dune · OCaml Documentation","heading":"Libraries With Dune","ok":true,"terminal":[{"key":"authored:OCaml libraries with Dune","symbol":"OCaml libraries with Dune","at":"review"}],"checkedAt":"2026-11-07","names":["glossary ocaml package"],"sources":["authored"]}, - {"url":"https://ocaml.org/manual/5.5/api/Iarray.html","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Iarray","identity":{"via":"ocamldoc","declared":"module","kind":"module","path":["Iarray"]},"ok":true,"terminal":[{"key":"ocaml:Iarray","symbol":"Iarray","at":"identity"}],"checkedAt":"2026-11-07","names":["ocaml:Iarray"],"sources":["builtin","prose"]}, - {"url":"https://ocaml.org/manual/5.5/api/Iarray.html#TYPEt","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Iarray","identity":{"via":"ocamldoc","declared":"type","kind":"type","path":["Iarray","t"]},"fragment":"found","ok":true,"terminal":[{"key":"ocaml:Iarray.t","symbol":"t","at":"identity"}],"checkedAt":"2026-11-07","names":["ocaml:Iarray.t"],"sources":["builtin","type"]}, - {"url":"https://ocaml.org/manual/5.5/api/Seq.html","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Seq","identity":{"via":"ocamldoc","declared":"module","kind":"module","path":["Seq"]},"ok":true,"terminal":[{"key":"ocaml:Seq","symbol":"Seq","at":"identity"}],"checkedAt":"2026-11-07","names":["ocaml:Seq"],"sources":["builtin","prose"]}, - {"url":"https://ocaml.org/manual/5.5/api/Seq.html#TYPEt","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Seq","identity":{"via":"ocamldoc","declared":"type","kind":"type","path":["Seq","t"]},"fragment":"found","ok":true,"terminal":[{"key":"ocaml:Seq.t","symbol":"t","at":"identity"}],"checkedAt":"2026-11-07","names":["ocaml:Seq.t"],"sources":["builtin","type"]}, - {"url":"https://ocaml.org/manual/5.5/expr.html#s:value-expr","host":"ocaml.org","status":200,"via":"html","title":"OCaml - The OCaml language","heading":"7 Expressions","ok":true,"fragment":"found","terminal":[{"key":"authored:OCaml expressions","symbol":"OCaml expressions","at":"review"}],"checkedAt":"2026-11-07","names":["glossary ocaml function"],"sources":["authored"]}, - {"url":"https://ocaml.org/manual/5.5/modtypes.html#s:modtypes","host":"ocaml.org","status":200,"via":"html","title":"OCaml - The OCaml language","heading":"10 Module types (module specifications)","ok":true,"fragment":"found","terminal":[{"key":"authored:OCaml module types","symbol":"OCaml module types","at":"review"}],"checkedAt":"2026-11-07","names":["glossary ocaml constant","glossary ocaml interface","glossary ocaml module","glossary ocaml opaque"],"sources":["authored"]}, - {"url":"https://ocaml.org/manual/5.5/typedecl.html#s:tydef","host":"ocaml.org","status":200,"via":"html","title":"OCaml - The OCaml language","heading":"8 Type and exception definitions","ok":true,"fragment":"found","terminal":[{"key":"authored:OCaml type and exception definitions","symbol":"OCaml type and exception definitions","at":"review"}],"checkedAt":"2026-11-07","names":["glossary ocaml attribute","glossary ocaml enum","glossary ocaml exception","glossary ocaml struct","glossary ocaml typealias"],"sources":["authored"]}, + {"url":"https://ocaml.org/docs/libraries-dune","host":"ocaml.org","status":200,"via":"html","title":"Libraries With Dune · OCaml Documentation","heading":"Libraries With Dune","ok":true,"terminal":[{"key":"authored:OCaml libraries with Dune","symbol":"OCaml libraries with Dune","at":"review"}],"checkedAt":"2026-11-08","names":["glossary ocaml package"],"sources":["authored"]}, + {"url":"https://ocaml.org/manual/5.5/api/Iarray.html","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Iarray","identity":{"via":"ocamldoc","declared":"module","kind":"module","path":["Iarray"]},"ok":true,"terminal":[{"key":"ocaml:Iarray","symbol":"Iarray","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:Iarray"],"sources":["builtin","prose"]}, + {"url":"https://ocaml.org/manual/5.5/api/Iarray.html#TYPEt","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Iarray","identity":{"via":"ocamldoc","declared":"type","kind":"type","path":["Iarray","t"]},"fragment":"found","ok":true,"terminal":[{"key":"ocaml:Iarray.t","symbol":"t","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:Iarray.t"],"sources":["builtin","type"]}, + {"url":"https://ocaml.org/manual/5.5/api/List.html","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : List","identity":{"via":"ocamldoc","declared":"module","kind":"module","path":["List"]},"ok":true,"terminal":[{"key":"ocaml:List","symbol":"List","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:List"],"sources":["builtin","prose"]}, + {"url":"https://ocaml.org/manual/5.5/api/Seq.html","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Seq","identity":{"via":"ocamldoc","declared":"module","kind":"module","path":["Seq"]},"ok":true,"terminal":[{"key":"ocaml:Seq","symbol":"Seq","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:Seq"],"sources":["builtin","prose"]}, + {"url":"https://ocaml.org/manual/5.5/api/Seq.html#TYPEt","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Seq","identity":{"via":"ocamldoc","declared":"type","kind":"type","path":["Seq","t"]},"fragment":"found","ok":true,"terminal":[{"key":"ocaml:Seq.t","symbol":"t","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:Seq.t"],"sources":["builtin","type"]}, + {"url":"https://ocaml.org/manual/5.5/api/Seq.html#VALfilter","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Seq","identity":{"via":"ocamldoc","declared":"val","kind":"member","path":["Seq","filter"]},"fragment":"found","ok":true,"terminal":[{"key":"ocaml:Seq.filter","symbol":"filter","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:Seq.filter"],"sources":["builtin","prose"]}, + {"url":"https://ocaml.org/manual/5.5/api/Unix.html","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Unix","identity":{"via":"ocamldoc","declared":"module","kind":"module","path":["Unix"]},"ok":true,"terminal":[{"key":"ocaml:Unix","symbol":"Unix","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:Unix"],"sources":["builtin","prose"]}, + {"url":"https://ocaml.org/manual/5.5/expr.html#s:value-expr","host":"ocaml.org","status":200,"via":"html","title":"OCaml - The OCaml language","heading":"7 Expressions","ok":true,"fragment":"found","terminal":[{"key":"authored:OCaml expressions","symbol":"OCaml expressions","at":"review"}],"checkedAt":"2026-11-08","names":["glossary ocaml function"],"sources":["authored"]}, + {"url":"https://ocaml.org/manual/5.5/modtypes.html#s:modtypes","host":"ocaml.org","status":200,"via":"html","title":"OCaml - The OCaml language","heading":"10 Module types (module specifications)","ok":true,"fragment":"found","terminal":[{"key":"authored:OCaml module types","symbol":"OCaml module types","at":"review"}],"checkedAt":"2026-11-08","names":["glossary ocaml constant","glossary ocaml interface","glossary ocaml module","glossary ocaml opaque"],"sources":["authored"]}, + {"url":"https://ocaml.org/manual/5.5/typedecl.html#s:tydef","host":"ocaml.org","status":200,"via":"html","title":"OCaml - The OCaml language","heading":"8 Type and exception definitions","ok":true,"fragment":"found","terminal":[{"key":"authored:OCaml type and exception definitions","symbol":"OCaml type and exception definitions","at":"review"}],"checkedAt":"2026-11-08","names":["glossary ocaml attribute","glossary ocaml enum","glossary ocaml exception","glossary ocaml struct","glossary ocaml typealias"],"sources":["authored"]}, {"url":"https://pkg.go.dev/builtin#any","host":"pkg.go.dev","status":200,"via":"html","title":"builtin package - builtin - Go Packages","identity":{"via":"godoc","declared":"type","kind":"type","path":["builtin","any"]},"fragment":"found","ok":true,"terminal":[{"key":"go:any","symbol":"any","at":"identity"}],"checkedAt":"2026-10-25","names":["go:any"],"sources":["builtin","type"]}, {"url":"https://pkg.go.dev/builtin#bool","host":"pkg.go.dev","status":200,"via":"html","title":"builtin package - builtin - Go Packages","identity":{"via":"godoc","declared":"type","kind":"type","path":["builtin","bool"]},"fragment":"found","ok":true,"terminal":[{"key":"go:bool","symbol":"bool","at":"identity"}],"checkedAt":"2026-10-25","names":["go:bool"],"sources":["builtin","doc","type"]}, {"url":"https://pkg.go.dev/builtin#byte","host":"pkg.go.dev","status":200,"via":"html","title":"builtin package - builtin - Go Packages","identity":{"via":"godoc","declared":"type","kind":"type","path":["builtin","byte"]},"fragment":"found","ok":true,"terminal":[{"key":"go:byte","symbol":"byte","at":"identity"}],"checkedAt":"2026-10-25","names":["go:byte"],"sources":["builtin","type"]}, diff --git a/site/src/lib/prose-resolver.ts b/site/src/lib/prose-resolver.ts index cdaa33e19..d42c2396e 100644 --- a/site/src/lib/prose-resolver.ts +++ b/site/src/lib/prose-resolver.ts @@ -26,6 +26,7 @@ import fsharpPaths from '../data/api/fsharp.paths.json' import powershellPaths from '../data/api/powershell.paths.json' import juliaPaths from '../data/api/julia.paths.json' import elixirPaths from '../data/api/elixir.paths.json' +import ocamlPaths from '../data/api/ocaml.paths.json' /** Language labels used by shared prose headings and comparison rows. */ export const PORT_BY_LABEL: Record = Object.fromEntries( @@ -38,10 +39,10 @@ const PATHS: Record py: pyPaths, ruby: rubyPaths, lua: luaPaths, ts: tsPaths, rs: rsPaths, go: goPaths, java: javaPaths, csharp: csharpPaths, cxx: cxxPaths, swift: swiftPaths, kotlin: kotlinPaths, scala: scalaPaths, fsharp: fsharpPaths, - powershell: powershellPaths, julia: juliaPaths, elixir: elixirPaths, + powershell: powershellPaths, julia: juliaPaths, elixir: elixirPaths, ocaml: ocamlPaths, } const TREES = Object.fromEntries(Object.entries(PATHS).map(([port, data]) => [port, new Set(data.paths)])) -const FILE_RE = /^[\w./@-]+\.(py|ts|tsx|js|rs|go|java|cs|cpp|hpp|h|swift|jl|ex|exs|ps1|psm1|psd1|md|toml|json|ya?ml|sh)$/ +const FILE_RE = /^[\w./@-]+\.(py|ts|tsx|js|rs|go|java|cs|cpp|hpp|h|swift|jl|ex|exs|ps1|psm1|psd1|ml|mli|opam|md|toml|json|ya?ml|sh)$/ type ProseDecision = MentionDecision & { file?: boolean } diff --git a/site/test/api-destination-evidence.test.ts b/site/test/api-destination-evidence.test.ts index d121ba134..737ae7a9a 100644 --- a/site/test/api-destination-evidence.test.ts +++ b/site/test/api-destination-evidence.test.ts @@ -289,6 +289,40 @@ describe('what the verifier reads from a page', () => { expect(apiHostOf('https://github.com/libtmux/libtmux')).toBeUndefined() expect(API_HOSTS.has('docs.oracle.com')).toBe(true) }) + + it('checks OCaml value anchors against their declaration and owning module', () => { + const url = 'https://ocaml.org/manual/5.5/api/Seq.html#VALfilter' + const html = 'OCaml library : Seq

    Module Seq

    val filter : (\'a -> bool) -> \'a t -> \'a t
    ' + expect(addressOf(url)).toMatchObject({ path: ['Seq', 'filter'], exact: true, fragment: 'member' }) + const identity = pageIdentity(url, readPage(html)) + expect(identity).toMatchObject({ kind: 'member', path: ['Seq', 'filter'] }) + expect(judge(sourceIdentity({ port: 'ocaml', name: 'Seq.filter', source: 'builtin' }), identity)).toBeUndefined() + expect(judge(sourceIdentity({ port: 'ocaml', name: 'List.filter', source: 'builtin' }), identity)).toMatchObject({ failure: 'owner' }) + for (const forged of [html.replace('val', 'type'), html.replace('> filter', '> invented')]) { + expect(pageIdentity(url, readPage(forged))).toMatchObject({ kind: 'other' }) + } + for (const name of ['List', 'Unix']) { + const module = pageIdentity(`https://ocaml.org/manual/5.5/api/${name}.html`, readPage(`OCaml library : ${name}

    Module ${name}

    `)) + expect(judge(sourceIdentity({ port: 'ocaml', name, source: 'builtin' }), module), name).toBeUndefined() + } + }) + + it('matches complete OCaml identifiers including apostrophes in value and type declarations', () => { + const actual = [] + const expected = [] + for (const [prefix, keyword, base, kind] of [['VAL', 'val', 'filter', 'member'], ['TYPE', 'type', 't', 'type']]) { + for (const name of [base, `${base}'`, `${base}''`, `${base}'item`]) { + for (const declared of [name, `${name}'`, `${name}''`, `${name}_other`, `${name}2`]) { + const url = `https://ocaml.org/manual/5.5/api/Seq.html#${prefix}${name}` + const html = `OCaml library : Seq

    Module Seq

    ${keyword} ${keyword === 'type' ? "'a " : ''}${declared}${keyword === 'type' ? ' = unit' : ' : unit'}
    ` + const identity = pageIdentity(url, readPage(html)) + actual.push([prefix, name, declared, identity.kind, identity.kind === 'other' ? [] : identity.path]) + expected.push([prefix, name, declared, name === declared ? kind : 'other', name === declared ? ['Seq', name] : []]) + } + } + } + expect(actual).toEqual(expected) + }) }) describe('what a name says it is', () => { diff --git a/site/test/prose-markdown.test.ts b/site/test/prose-markdown.test.ts index a2854f787..e1a302a8e 100644 --- a/site/test/prose-markdown.test.ts +++ b/site/test/prose-markdown.test.ts @@ -34,6 +34,19 @@ function exampleBytes(markdown: string): string[] { } describe('prose Markdown links', () => { + it('keeps OCaml local filenames and output labels plain while linking source and Stdlib references', async () => { + const source = 'Save the example as `main.ml`. Save the interface as `main.mli`. Save the package as `example.opam`. Output: `editor:2`, `logs:1`. Read `json/libtmux_json.mli`, `List`, `Unix` and `Seq.filter`.' + const processor = await createMarkdownProcessor({ rehypePlugins: [rehypeApiLinks], syntaxHighlight: false }) + const html = (await processor.render(source, { frontmatter: { port: 'ocaml' } })).code + const markdown = linkProseMarkdown(source, 'ocaml') + const sourcePath = JSON.parse(readFileSync(new URL('../src/data/api/ocaml.paths.json', import.meta.url), 'utf8')) + const expected = [`https://github.com/${sourcePath.repo}/blob/${sourcePath.revision}/json/libtmux_json.mli`, + 'https://ocaml.org/manual/5.5/api/List.html', 'https://ocaml.org/manual/5.5/api/Unix.html', 'https://ocaml.org/manual/5.5/api/Seq.html#VALfilter'] + expect(urls(markdown)).toEqual(expected) + for (const href of expected) expect(html).toContain(`href="${href}"`) + for (const literal of ['main.ml', 'main.mli', 'example.opam', 'editor:2', 'logs:1']) expect(html).toContain(`${literal}`) + }) + it('links native commands through prose HTML and Markdown without claiming prose aliases', async () => { const source = 'Call tmux resize-pane. Use `$ tmux -L local run -b true` and `display-message`. Keep tmux has many panes.\n\n[Keep `run-shell`](https://example.com/authored).\n\nrun-shell\n\n`tmux run-shell true && tmux display-message hello`\n\n```sh\ntmux run-shell true\n```' const processor = await createMarkdownProcessor({ rehypePlugins: [rehypeApiLinks], syntaxHighlight: false }) From 52a10df28239ea3f143888ec994848ae2d06e767 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 20:52:09 -0600 Subject: [PATCH 11/26] docs(feat[ocaml]) Add the retained-operation recovery guide why: Readers need a complete executed recovery example tied to the same native source revision as the API reference and task guides. what: - Stage the recovery guide beside control and streaming documentation - Refresh public interfaces, source paths, examples and usage metadata - Bind OCaml source artifacts to a111168bceee2085f0cee5efe784d8f446011ba1 --- site/src/data/api/ocaml.json | 2 +- site/src/data/api/ocaml.paths.json | 2 +- site/src/data/example-sources.json | 20 ++++++++++---------- site/src/data/port-guides/ocaml.json | 22 +++++++++++++--------- site/src/data/tmux-usage/ocaml.json | 2 +- site/src/lib/port-documentation.ts | 2 +- 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/site/src/data/api/ocaml.json b/site/src/data/api/ocaml.json index 366cfdd47..079a48e54 100644 --- a/site/src/data/api/ocaml.json +++ b/site/src/data/api/ocaml.json @@ -1 +1 @@ -{"port":"ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","repo":"libtmux/libtmux-ocaml","sources":[{"product":"core","package":"libtmux","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"core","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"workspace","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"core","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"workspace","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"core","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},{"product":"workspace","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"}],"extractor":"OCaml 5.5.2 compiler-libs .cmti + odoc-parser 3.2.2","nativeProvenance":{"files":[{"path":"lib/libtmux.mli","sha256":"eb15691c82da743bb49170e408ca50500b38d21aeb248bb41a171e1e0352bc8e"},{"path":"_build/install/default/lib/libtmux/libtmux.cmti","sha256":"2e9a977a5a36625b0d0e8499051a36d13deab0f4a59bd699f2ab430975fed851"},{"path":"workspace/libtmux_workspace.mli","sha256":"10c5cadc58269906f16550a7bb703a8e05bee163d9b1716bf2be994ec8ebbeed"},{"path":"_build/install/default/lib/libtmux-workspace/libtmux_workspace.cmti","sha256":"dac59166f00e4c248fb2fe84787faef28f4e838a8db7b2b17768f9f0cffcfaf2"},{"path":"json/libtmux_json.mli","sha256":"ae672cc3b970fbd3fe9f68bb8703bb961e8d5968d9920b2626cddbffeb85c94b"},{"path":"_build/install/default/lib/libtmux-json/libtmux_json.cmti","sha256":"1574d45efd30dffc97a5775dc90f55a6aa935593dad025b98e9027325f06c78d"},{"path":"unix/libtmux_unix.mli","sha256":"638e260745952dc3db2ec4cd4cd28733326fdb74d65668b46fe29398526a9421"},{"path":"_build/install/default/lib/libtmux-unix/libtmux_unix.cmti","sha256":"cf23cb48ff8f22a9d7ce5c606f9cf8117db1d9cbc9286f87987c279b156a0e36"},{"path":"eio/libtmux_eio.mli","sha256":"f4b35be04f35f5e6fe99c139f1f8bbaacf4ed82e1faa55ad0f73bdd9803d4386"},{"path":"_build/install/default/lib/libtmux-eio/libtmux_eio.cmti","sha256":"62e866a1e8c8c9789a8261ac7420c078c73d069d31e900f6f40dc82b262a56d9"}],"exporter":{"revision":"ade2f9787024a5426710cec06f864648c217263c","baseRevision":"ade2f9787024a5426710cec06f864648c217263c","files":[{"path":"tools/api_export.ml","sha256":"403353de9340f32586cb522a827be03a9693142eeec01c891175c4e76b069a5d"},{"path":"tools/api_doc.ml","sha256":"94d9b4dff3f86d570a31161019e06cea250926200b8cc4562f7d14f9f3cd0d59"},{"path":"tools/export_api.py","sha256":"5188348adc7e3ea577889e144de30da6204ec14ec6fc1577f86a732bc7625973"},{"path":"tools/api_modules.json","sha256":"233ef409440fa5015f522a11933e74f059a301aecbce5ab5126f14e8a35614cf"},{"path":"tools/dune","sha256":"777e122d729870f9f8dc6fc13485ce0eea29f0e741b9bb22cb0245d433ff9442"}],"compiler":"5.5.2","schema":"libtmux.ocaml-api/1","publicManifest":"tools/api_modules.json"}},"symbols":[{"id":"Libtmux","publicId":"Libtmux","qualifiedName":"Libtmux","name":"Libtmux","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Native captured values, typed queries and explicit command descriptions.\n\n A {!Snapshot.t} owns immutable observations. Entity accessors and query\n evaluation perform no I/O, preserve captured order and remain usable after\n client closure. Use [Libtmux_unix.Client] or [Libtmux_eio.Client] to acquire\n or mutate state.\n\n {1 Typical flow}\n\n Capture explicitly, traverse {!Session.window_links} and {!Window.panes},\n filter with [Seq.filter] or {!Query.matching}, establish cardinality with\n {!Query.exactly_one}, then submit a command with a bound target.\n\n The core depends only on the standard library. Its abstract observations are\n safe to share; live clients and subscriptions belong to their backend.\n\n See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md}graph\n guide} for window links and the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} for native predicates and typed expressions. "],"declarations":[{"kind":"module","text":"","source":{"file":"lib/libtmux.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"doc":{"summary":"Native captured values, typed queries and explicit command descriptions.","body":"A {!Snapshot.t} owns immutable observations. Entity accessors and query evaluation perform no I/O, preserve captured order and remain usable after client closure. Use `Libtmux_unix.Client` or `Libtmux_eio.Client` to acquire or mutate state.\n\n## Typical flow\n\nCapture explicitly, traverse {!Session.window_links} and {!Window.panes}, filter with `Seq.filter` or {!Query.matching}, establish cardinality with {!Query.exactly_one}, then submit a command with a bound target.\n\nThe core depends only on the standard library. Its abstract observations are safe to share; live clients and subscriptions belong to their backend.\n\nSee the [graph guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md) for window links and the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) for native predicates and typed expressions."},"slug":"libtmux"},{"id":"Libtmux.Captured_text","publicId":"Libtmux.Captured_text","qualifiedName":"Libtmux.Captured_text","name":"Captured_text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":690,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Captured_text : sig\n type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. *)\nend","source":{"file":"lib/libtmux.mli","line":690,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-captured_text"},{"id":"Libtmux.Captured_text.t","publicId":"Libtmux.Captured_text.t","qualifiedName":"Libtmux.Captured_text.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":691,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. "],"declarations":[{"kind":"struct","text":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":691,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Captured_text","doc":{"summary":"Ordinary rendered rows captured over an interval. This value has no implied relationship to a subscription cursor."},"signatures":[{"raw":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-captured_text-t"},{"id":"Libtmux.Captured_text.t.bytes","publicId":"Libtmux.Captured_text.t.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":692,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string;","source":{"file":"lib/libtmux.mli","line":692,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Captured_text.t","type":"string","qualifiedName":"Libtmux.Captured_text.bytes","slug":"libtmux-captured_text-t-bytes"},{"id":"Libtmux.Captured_text.t.finished_at_ns","publicId":"Libtmux.Captured_text.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":696,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":696,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.finished_at_ns","slug":"libtmux-captured_text-t-finished_at_ns"},{"id":"Libtmux.Captured_text.t.pane","publicId":"Libtmux.Captured_text.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":694,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":694,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Captured_text.t","type":"Pane.Id.t","qualifiedName":"Libtmux.Captured_text.pane","slug":"libtmux-captured_text-t-pane"},{"id":"Libtmux.Captured_text.t.source","publicId":"Libtmux.Captured_text.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":693,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":693,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Captured_text.t","type":"Source.t","qualifiedName":"Libtmux.Captured_text.source","slug":"libtmux-captured_text-t-source"},{"id":"Libtmux.Captured_text.t.started_at_ns","publicId":"Libtmux.Captured_text.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":695,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":695,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.started_at_ns","slug":"libtmux-captured_text-t-started_at_ns"},{"id":"Libtmux.Cardinality","publicId":"Libtmux.Cardinality","qualifiedName":"Libtmux.Cardinality","name":"Cardinality","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":663,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cardinality : sig\n type error = No_match | Multiple_matches of { at_least : int }\n\n val pp_error : Format.formatter -> error -> unit\nend","source":{"file":"lib/libtmux.mli","line":663,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-cardinality"},{"id":"Libtmux.Cardinality.error","publicId":"Libtmux.Cardinality.error","qualifiedName":"Libtmux.Cardinality.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error = No_match | Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"type error = No_match | Multiple_matches of { at_least : int; }","params":[]}],"slug":"libtmux-cardinality-error"},{"id":"Libtmux.Cardinality.error.Multiple_matches","publicId":"Libtmux.Cardinality.error.Multiple_matches","name":"Multiple_matches","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Cardinality.error","variant":"struct","qualifiedName":"Libtmux.Cardinality.Multiple_matches","slug":"libtmux-cardinality-error-multiple_matches"},{"id":"Libtmux.Cardinality.error.Multiple_matches.at_least","publicId":"Libtmux.Cardinality.error.Multiple_matches.at_least","name":"at_least","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"at_least : int","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Cardinality.error.Multiple_matches","type":"int","qualifiedName":"Libtmux.Cardinality.at_least","slug":"libtmux-cardinality-error-multiple_matches-at_least"},{"id":"Libtmux.Cardinality.error.No_match","publicId":"Libtmux.Cardinality.error.No_match","name":"No_match","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"No_match","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Cardinality.error","variant":"unit","qualifiedName":"Libtmux.Cardinality.No_match","slug":"libtmux-cardinality-error-no_match"},{"id":"Libtmux.Cardinality.pp_error","publicId":"Libtmux.Cardinality.pp_error","qualifiedName":"Libtmux.Cardinality.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"lib/libtmux.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux-cardinality-pp_error"},{"id":"Libtmux.Client_name","publicId":"Libtmux.Client_name","qualifiedName":"Libtmux.Client_name","name":"Client_name","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Client_name : sig\n type t\n (** A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. *)\n\n val source : t -> Source.t\n val to_string : t -> string\nend","source":{"file":"lib/libtmux.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-client_name"},{"id":"Libtmux.Client_name.source","publicId":"Libtmux.Client_name.source","qualifiedName":"Libtmux.Client_name.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_name-source"},{"id":"Libtmux.Client_name.t","publicId":"Libtmux.Client_name.t","qualifiedName":"Libtmux.Client_name.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_name","doc":{"summary":"A name in one connection generation, with current-name semantics. It does not identify a stable client incarnation; tmux may reuse client names."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_name-t"},{"id":"Libtmux.Client_name.to_string","publicId":"Libtmux.Client_name.to_string","qualifiedName":"Libtmux.Client_name.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_name-to_string"},{"id":"Libtmux.Client_observation","publicId":"Libtmux.Client_observation","qualifiedName":"Libtmux.Client_observation","name":"Client_observation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":343,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"and Client_observation : sig\n type t\n\n module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end\n\n val name : t -> string\n val pid : t -> int\n val width : t -> int\n\n val height : t -> int option\n (** No height is reported until the client has a started terminal. *)\n\n val control_mode : t -> bool\n val source : t -> Source.t\n\n val current_name : t -> Client_name.t\n (** Address whichever client has this name when a command executes. *)\n\n val session : t -> Session.t option\n (** [None] means the captured client has no attached session. *)\n\n val same_observation : t -> t -> bool\n (** Client names may be reused. No cross-snapshot entity equality is offered.\n *)\nend","source":{"file":"lib/libtmux.mli","line":343,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-client_observation"},{"id":"Libtmux.Client_observation.Fields","publicId":"Libtmux.Client_observation.Fields","qualifiedName":"Libtmux.Client_observation.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":346,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-fields"},{"id":"Libtmux.Client_observation.Fields.control_mode","publicId":"Libtmux.Client_observation.Fields.control_mode","qualifiedName":"Libtmux.Client_observation.Fields.control_mode","name":"control_mode","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":350,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val control_mode : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":350,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val control_mode : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-client_observation-fields-control_mode"},{"id":"Libtmux.Client_observation.Fields.name","publicId":"Libtmux.Client_observation.Fields.name","qualifiedName":"Libtmux.Client_observation.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":347,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":347,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-client_observation-fields-name"},{"id":"Libtmux.Client_observation.Fields.pid","publicId":"Libtmux.Client_observation.Fields.pid","qualifiedName":"Libtmux.Client_observation.Fields.pid","name":"pid","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":348,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pid : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":348,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val pid : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-pid"},{"id":"Libtmux.Client_observation.Fields.width","publicId":"Libtmux.Client_observation.Fields.width","qualifiedName":"Libtmux.Client_observation.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":349,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":349,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-width"},{"id":"Libtmux.Client_observation.Relations","publicId":"Libtmux.Client_observation.Relations","qualifiedName":"Libtmux.Client_observation.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":353,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end","source":{"file":"lib/libtmux.mli","line":353,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-relations"},{"id":"Libtmux.Client_observation.Relations.session","publicId":"Libtmux.Client_observation.Relations.session","qualifiedName":"Libtmux.Client_observation.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.Optional.t","source":{"file":"lib/libtmux.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.Optional.t","params":[],"returns":"(t, Session.t) Relation.Optional.t"}],"slug":"libtmux-client_observation-relations-session"},{"id":"Libtmux.Client_observation.control_mode","publicId":"Libtmux.Client_observation.control_mode","qualifiedName":"Libtmux.Client_observation.control_mode","name":"control_mode","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":364,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val control_mode : t -> bool","source":{"file":"lib/libtmux.mli","line":364,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val control_mode : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-control_mode"},{"id":"Libtmux.Client_observation.current_name","publicId":"Libtmux.Client_observation.current_name","qualifiedName":"Libtmux.Client_observation.current_name","name":"current_name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":367,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Address whichever client has this name when a command executes. "],"declarations":[{"kind":"function","text":"val current_name : t -> Client_name.t","source":{"file":"lib/libtmux.mli","line":367,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Address whichever client has this name when a command executes."},"signatures":[{"raw":"val current_name : t -> Client_name.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_name.t"}],"slug":"libtmux-client_observation-current_name"},{"id":"Libtmux.Client_observation.height","publicId":"Libtmux.Client_observation.height","qualifiedName":"Libtmux.Client_observation.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" No height is reported until the client has a started terminal. "],"declarations":[{"kind":"function","text":"val height : t -> int option","source":{"file":"lib/libtmux.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"No height is reported until the client has a started terminal."},"signatures":[{"raw":"val height : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-client_observation-height"},{"id":"Libtmux.Client_observation.name","publicId":"Libtmux.Client_observation.name","qualifiedName":"Libtmux.Client_observation.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":357,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":357,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_observation-name"},{"id":"Libtmux.Client_observation.pid","publicId":"Libtmux.Client_observation.pid","qualifiedName":"Libtmux.Client_observation.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pid : t -> int","source":{"file":"lib/libtmux.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-pid"},{"id":"Libtmux.Client_observation.same_observation","publicId":"Libtmux.Client_observation.same_observation","qualifiedName":"Libtmux.Client_observation.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":373,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Client names may be reused. No cross-snapshot entity equality is offered.\n "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":373,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Client names may be reused. No cross-snapshot entity equality is offered."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-same_observation"},{"id":"Libtmux.Client_observation.session","publicId":"Libtmux.Client_observation.session","qualifiedName":"Libtmux.Client_observation.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [None] means the captured client has no attached session. "],"declarations":[{"kind":"function","text":"val session : t -> Session.t option","source":{"file":"lib/libtmux.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"`None` means the captured client has no attached session."},"signatures":[{"raw":"val session : t -> Session.t option","params":[{"name":"arg1","type":"t"}],"returns":"Session.t option"}],"slug":"libtmux-client_observation-session"},{"id":"Libtmux.Client_observation.source","publicId":"Libtmux.Client_observation.source","qualifiedName":"Libtmux.Client_observation.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_observation-source"},{"id":"Libtmux.Client_observation.t","publicId":"Libtmux.Client_observation.t","qualifiedName":"Libtmux.Client_observation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_observation-t"},{"id":"Libtmux.Client_observation.width","publicId":"Libtmux.Client_observation.width","qualifiedName":"Libtmux.Client_observation.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":359,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":359,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-width"},{"id":"Libtmux.Command","publicId":"Libtmux.Command","qualifiedName":"Libtmux.Command","name":"Command","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":861,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Typed descriptions of explicit acquisition and mutation operations.\n Construction performs no I/O; a backend validates and admits the command. "],"declarations":[{"kind":"module","text":"module Command : sig\n type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }\n\n type 'a t\n (** An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. *)\n\n type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view\n\n val view : 'a t -> 'a view\n (** Read-only inspection for transport adapters. *)\nend","source":{"file":"lib/libtmux.mli","line":861,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Typed descriptions of explicit acquisition and mutation operations. Construction performs no I/O; a backend validates and admits the command."},"slug":"libtmux-command"},{"id":"Libtmux.Command.mutation","publicId":"Libtmux.Command.mutation","qualifiedName":"Libtmux.Command.mutation","name":"mutation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":862,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":862,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type mutation =\n Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of { session : Session.target; index : int;\n allow_kill : bool;\n }\n | Link_window of { window : Window.target; session : Session.target;\n index : int;\n }\n | Move_window_at of { from_session : Session.target; from_index : int;\n session : Session.target; index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of { pane : Pane.target; width : int option;\n height : int option;\n }\n | Resize_window of { window : Window.target; width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of { pane : Pane.target; beside : Pane.target;\n direction : Geometry.direction; size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Backward | `Forward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of { pane : Pane.target; spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of { scope : Environment.scope; name : string;\n value : string; hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of { scope : Options.scope; name : string; index : int option;\n value : Options.scalar; append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of { scope : Options.scope; name : string; index : int option;\n commands : Hook.command list; append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of { client : Client_name.t; session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of { client : Client_name.t; width : int;\n height : int;\n }","params":[]}],"slug":"libtmux-command-mutation"},{"id":"Libtmux.Command.mutation.Clear_history","publicId":"Libtmux.Command.mutation.Clear_history","name":"Clear_history","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":911,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_history of Pane.target","source":{"file":"lib/libtmux.mli","line":911,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_history","slug":"libtmux-command-mutation-clear_history"},{"id":"Libtmux.Command.mutation.Clear_option_array","publicId":"Libtmux.Command.mutation.Clear_option_array","name":"Clear_option_array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":928,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_option_array of Options.scope * string","source":{"file":"lib/libtmux.mli","line":928,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_option_array","slug":"libtmux-command-mutation-clear_option_array"},{"id":"Libtmux.Command.mutation.Cycle_layout","publicId":"Libtmux.Command.mutation.Cycle_layout","name":"Cycle_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":896,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cycle_layout of Window.target * [ `Next | `Previous ]","source":{"file":"lib/libtmux.mli","line":896,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Cycle_layout","slug":"libtmux-command-mutation-cycle_layout"},{"id":"Libtmux.Command.mutation.Kill_pane","publicId":"Libtmux.Command.mutation.Kill_pane","name":"Kill_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":865,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":865,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_pane","slug":"libtmux-command-mutation-kill_pane"},{"id":"Libtmux.Command.mutation.Kill_session","publicId":"Libtmux.Command.mutation.Kill_session","name":"Kill_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":863,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_session of Session.target","source":{"file":"lib/libtmux.mli","line":863,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_session","slug":"libtmux-command-mutation-kill_session"},{"id":"Libtmux.Command.mutation.Kill_window","publicId":"Libtmux.Command.mutation.Kill_window","name":"Kill_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":864,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_window of Window.target","source":{"file":"lib/libtmux.mli","line":864,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_window","slug":"libtmux-command-mutation-kill_window"},{"id":"Libtmux.Command.mutation.Link_window","publicId":"Libtmux.Command.mutation.Link_window","name":"Link_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":872,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":872,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Link_window","slug":"libtmux-command-mutation-link_window"},{"id":"Libtmux.Command.mutation.Link_window.index","publicId":"Libtmux.Command.mutation.Link_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":875,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":875,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-link_window-index"},{"id":"Libtmux.Command.mutation.Link_window.session","publicId":"Libtmux.Command.mutation.Link_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-link_window-session"},{"id":"Libtmux.Command.mutation.Link_window.window","publicId":"Libtmux.Command.mutation.Link_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":873,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":873,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-link_window-window"},{"id":"Libtmux.Command.mutation.Move_pane","publicId":"Libtmux.Command.mutation.Move_pane","name":"Move_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":897,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }","source":{"file":"lib/libtmux.mli","line":897,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_pane","slug":"libtmux-command-mutation-move_pane"},{"id":"Libtmux.Command.mutation.Move_pane.beside","publicId":"Libtmux.Command.mutation.Move_pane.beside","name":"beside","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":899,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"beside : Pane.target;","source":{"file":"lib/libtmux.mli","line":899,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.beside","slug":"libtmux-command-mutation-move_pane-beside"},{"id":"Libtmux.Command.mutation.Move_pane.direction","publicId":"Libtmux.Command.mutation.Move_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":900,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":900,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-mutation-move_pane-direction"},{"id":"Libtmux.Command.mutation.Move_pane.pane","publicId":"Libtmux.Command.mutation.Move_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":898,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":898,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-move_pane-pane"},{"id":"Libtmux.Command.mutation.Move_pane.size","publicId":"Libtmux.Command.mutation.Move_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":901,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":901,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-mutation-move_pane-size"},{"id":"Libtmux.Command.mutation.Move_window_at","publicId":"Libtmux.Command.mutation.Move_window_at","name":"Move_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":877,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":877,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_window_at","slug":"libtmux-command-mutation-move_window_at"},{"id":"Libtmux.Command.mutation.Move_window_at.from_index","publicId":"Libtmux.Command.mutation.Move_window_at.from_index","name":"from_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":879,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_index : int;","source":{"file":"lib/libtmux.mli","line":879,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.from_index","slug":"libtmux-command-mutation-move_window_at-from_index"},{"id":"Libtmux.Command.mutation.Move_window_at.from_session","publicId":"Libtmux.Command.mutation.Move_window_at.from_session","name":"from_session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":878,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_session : Session.target;","source":{"file":"lib/libtmux.mli","line":878,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.from_session","slug":"libtmux-command-mutation-move_window_at-from_session"},{"id":"Libtmux.Command.mutation.Move_window_at.index","publicId":"Libtmux.Command.mutation.Move_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":881,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":881,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-move_window_at-index"},{"id":"Libtmux.Command.mutation.Move_window_at.session","publicId":"Libtmux.Command.mutation.Move_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":880,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":880,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-move_window_at-session"},{"id":"Libtmux.Command.mutation.Refresh_client_at","publicId":"Libtmux.Command.mutation.Refresh_client_at","name":"Refresh_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":944,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Refresh_client_at of Client_name.t * bool","source":{"file":"lib/libtmux.mli","line":944,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Refresh_client_at","slug":"libtmux-command-mutation-refresh_client_at"},{"id":"Libtmux.Command.mutation.Remove_environment","publicId":"Libtmux.Command.mutation.Remove_environment","name":"Remove_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":919,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":919,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_environment","slug":"libtmux-command-mutation-remove_environment"},{"id":"Libtmux.Command.mutation.Remove_hook","publicId":"Libtmux.Command.mutation.Remove_hook","name":"Remove_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":936,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_hook of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":936,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_hook","slug":"libtmux-command-mutation-remove_hook"},{"id":"Libtmux.Command.mutation.Request_detach_client_at","publicId":"Libtmux.Command.mutation.Request_detach_client_at","name":"Request_detach_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":943,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Request_detach_client_at of Client_name.t","source":{"file":"lib/libtmux.mli","line":943,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Request_detach_client_at","slug":"libtmux-command-mutation-request_detach_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at","publicId":"Libtmux.Command.mutation.Resize_control_client_at","name":"Resize_control_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":945,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":945,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_control_client_at","slug":"libtmux-command-mutation-resize_control_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.client","publicId":"Libtmux.Command.mutation.Resize_control_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":946,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":946,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-resize_control_client_at-client"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.height","publicId":"Libtmux.Command.mutation.Resize_control_client_at.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":948,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":948,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_control_client_at-height"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.width","publicId":"Libtmux.Command.mutation.Resize_control_client_at.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":947,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":947,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_control_client_at-width"},{"id":"Libtmux.Command.mutation.Resize_pane","publicId":"Libtmux.Command.mutation.Resize_pane","name":"Resize_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":885,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":885,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_pane","slug":"libtmux-command-mutation-resize_pane"},{"id":"Libtmux.Command.mutation.Resize_pane.height","publicId":"Libtmux.Command.mutation.Resize_pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":888,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":888,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_pane-height"},{"id":"Libtmux.Command.mutation.Resize_pane.pane","publicId":"Libtmux.Command.mutation.Resize_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":886,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":886,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-resize_pane-pane"},{"id":"Libtmux.Command.mutation.Resize_pane.width","publicId":"Libtmux.Command.mutation.Resize_pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":887,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":887,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_pane-width"},{"id":"Libtmux.Command.mutation.Resize_window","publicId":"Libtmux.Command.mutation.Resize_window","name":"Resize_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":890,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":890,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_window","slug":"libtmux-command-mutation-resize_window"},{"id":"Libtmux.Command.mutation.Resize_window.height","publicId":"Libtmux.Command.mutation.Resize_window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":893,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":893,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_window-height"},{"id":"Libtmux.Command.mutation.Resize_window.width","publicId":"Libtmux.Command.mutation.Resize_window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":892,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":892,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_window-width"},{"id":"Libtmux.Command.mutation.Resize_window.window","publicId":"Libtmux.Command.mutation.Resize_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":891,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":891,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-resize_window-window"},{"id":"Libtmux.Command.mutation.Respawn_pane","publicId":"Libtmux.Command.mutation.Respawn_pane","name":"Respawn_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":906,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }","source":{"file":"lib/libtmux.mli","line":906,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Respawn_pane","slug":"libtmux-command-mutation-respawn_pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.kill_running","publicId":"Libtmux.Command.mutation.Respawn_pane.kill_running","name":"kill_running","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":909,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kill_running : bool;","source":{"file":"lib/libtmux.mli","line":909,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"bool","qualifiedName":"Libtmux.Command.kill_running","slug":"libtmux-command-mutation-respawn_pane-kill_running"},{"id":"Libtmux.Command.mutation.Respawn_pane.pane","publicId":"Libtmux.Command.mutation.Respawn_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":907,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":907,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-respawn_pane-pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.spawn","publicId":"Libtmux.Command.mutation.Respawn_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":908,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":908,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-mutation-respawn_pane-spawn"},{"id":"Libtmux.Command.mutation.Rotate_panes","publicId":"Libtmux.Command.mutation.Rotate_panes","name":"Rotate_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":904,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rotate_panes of Window.target * [ `Forward | `Backward ]","source":{"file":"lib/libtmux.mli","line":904,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Rotate_panes","slug":"libtmux-command-mutation-rotate_panes"},{"id":"Libtmux.Command.mutation.Run_hook","publicId":"Libtmux.Command.mutation.Run_hook","name":"Run_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":937,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Run_hook of Options.scope * string","source":{"file":"lib/libtmux.mli","line":937,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Run_hook","slug":"libtmux-command-mutation-run_hook"},{"id":"Libtmux.Command.mutation.Select_layout","publicId":"Libtmux.Command.mutation.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":895,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of Window.target * Layout.t","source":{"file":"lib/libtmux.mli","line":895,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_layout","slug":"libtmux-command-mutation-select_layout"},{"id":"Libtmux.Command.mutation.Select_pane","publicId":"Libtmux.Command.mutation.Select_pane","name":"Select_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":883,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":883,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_pane","slug":"libtmux-command-mutation-select_pane"},{"id":"Libtmux.Command.mutation.Select_window_at","publicId":"Libtmux.Command.mutation.Select_window_at","name":"Select_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":866,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_window_at of Session.target * int","source":{"file":"lib/libtmux.mli","line":866,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_window_at","slug":"libtmux-command-mutation-select_window_at"},{"id":"Libtmux.Command.mutation.Set_environment","publicId":"Libtmux.Command.mutation.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":912,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }","source":{"file":"lib/libtmux.mli","line":912,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_environment","slug":"libtmux-command-mutation-set_environment"},{"id":"Libtmux.Command.mutation.Set_environment.hidden","publicId":"Libtmux.Command.mutation.Set_environment.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":916,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":916,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"bool","qualifiedName":"Libtmux.Command.hidden","slug":"libtmux-command-mutation-set_environment-hidden"},{"id":"Libtmux.Command.mutation.Set_environment.name","publicId":"Libtmux.Command.mutation.Set_environment.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":914,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":914,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_environment-name"},{"id":"Libtmux.Command.mutation.Set_environment.scope","publicId":"Libtmux.Command.mutation.Set_environment.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":913,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Environment.scope;","source":{"file":"lib/libtmux.mli","line":913,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"Environment.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_environment-scope"},{"id":"Libtmux.Command.mutation.Set_environment.value","publicId":"Libtmux.Command.mutation.Set_environment.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":915,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : string;","source":{"file":"lib/libtmux.mli","line":915,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_environment-value"},{"id":"Libtmux.Command.mutation.Set_hook","publicId":"Libtmux.Command.mutation.Set_hook","name":"Set_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":929,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":929,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_hook","slug":"libtmux-command-mutation-set_hook"},{"id":"Libtmux.Command.mutation.Set_hook.append","publicId":"Libtmux.Command.mutation.Set_hook.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":934,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":934,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_hook-append"},{"id":"Libtmux.Command.mutation.Set_hook.commands","publicId":"Libtmux.Command.mutation.Set_hook.commands","name":"commands","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":933,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"commands : Hook.command list;","source":{"file":"lib/libtmux.mli","line":933,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Hook.command list","qualifiedName":"Libtmux.Command.commands","slug":"libtmux-command-mutation-set_hook-commands"},{"id":"Libtmux.Command.mutation.Set_hook.index","publicId":"Libtmux.Command.mutation.Set_hook.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":932,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":932,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_hook-index"},{"id":"Libtmux.Command.mutation.Set_hook.name","publicId":"Libtmux.Command.mutation.Set_hook.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":931,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":931,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_hook-name"},{"id":"Libtmux.Command.mutation.Set_hook.scope","publicId":"Libtmux.Command.mutation.Set_hook.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":930,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":930,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_hook-scope"},{"id":"Libtmux.Command.mutation.Set_option","publicId":"Libtmux.Command.mutation.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":920,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":920,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_option","slug":"libtmux-command-mutation-set_option"},{"id":"Libtmux.Command.mutation.Set_option.append","publicId":"Libtmux.Command.mutation.Set_option.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":925,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":925,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_option-append"},{"id":"Libtmux.Command.mutation.Set_option.index","publicId":"Libtmux.Command.mutation.Set_option.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":923,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":923,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_option-index"},{"id":"Libtmux.Command.mutation.Set_option.name","publicId":"Libtmux.Command.mutation.Set_option.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":922,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":922,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_option-name"},{"id":"Libtmux.Command.mutation.Set_option.scope","publicId":"Libtmux.Command.mutation.Set_option.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":921,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":921,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_option-scope"},{"id":"Libtmux.Command.mutation.Set_option.value","publicId":"Libtmux.Command.mutation.Set_option.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":924,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Options.scalar;","source":{"file":"lib/libtmux.mli","line":924,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scalar","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_option-value"},{"id":"Libtmux.Command.mutation.Set_pane_title","publicId":"Libtmux.Command.mutation.Set_pane_title","name":"Set_pane_title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":884,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_pane_title of Pane.target * string","source":{"file":"lib/libtmux.mli","line":884,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Set_pane_title","slug":"libtmux-command-mutation-set_pane_title"},{"id":"Libtmux.Command.mutation.Swap_panes","publicId":"Libtmux.Command.mutation.Swap_panes","name":"Swap_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":903,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Swap_panes of Pane.target * Pane.target","source":{"file":"lib/libtmux.mli","line":903,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Swap_panes","slug":"libtmux-command-mutation-swap_panes"},{"id":"Libtmux.Command.mutation.Switch_client_at","publicId":"Libtmux.Command.mutation.Switch_client_at","name":"Switch_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":938,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }","source":{"file":"lib/libtmux.mli","line":938,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Switch_client_at","slug":"libtmux-command-mutation-switch_client_at"},{"id":"Libtmux.Command.mutation.Switch_client_at.client","publicId":"Libtmux.Command.mutation.Switch_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":939,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":939,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-switch_client_at-client"},{"id":"Libtmux.Command.mutation.Switch_client_at.session","publicId":"Libtmux.Command.mutation.Switch_client_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":940,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":940,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-switch_client_at-session"},{"id":"Libtmux.Command.mutation.Switch_client_at.update_environment","publicId":"Libtmux.Command.mutation.Switch_client_at.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":941,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"update_environment : bool;","source":{"file":"lib/libtmux.mli","line":941,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"bool","qualifiedName":"Libtmux.Command.update_environment","slug":"libtmux-command-mutation-switch_client_at-update_environment"},{"id":"Libtmux.Command.mutation.Unlink_window_at","publicId":"Libtmux.Command.mutation.Unlink_window_at","name":"Unlink_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":867,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }","source":{"file":"lib/libtmux.mli","line":867,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Unlink_window_at","slug":"libtmux-command-mutation-unlink_window_at"},{"id":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","publicId":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","name":"allow_kill","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":870,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"allow_kill : bool;","source":{"file":"lib/libtmux.mli","line":870,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"bool","qualifiedName":"Libtmux.Command.allow_kill","slug":"libtmux-command-mutation-unlink_window_at-allow_kill"},{"id":"Libtmux.Command.mutation.Unlink_window_at.index","publicId":"Libtmux.Command.mutation.Unlink_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":869,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":869,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-unlink_window_at-index"},{"id":"Libtmux.Command.mutation.Unlink_window_at.session","publicId":"Libtmux.Command.mutation.Unlink_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":868,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":868,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-unlink_window_at-session"},{"id":"Libtmux.Command.mutation.Unset_environment","publicId":"Libtmux.Command.mutation.Unset_environment","name":"Unset_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":918,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":918,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_environment","slug":"libtmux-command-mutation-unset_environment"},{"id":"Libtmux.Command.mutation.Unset_option","publicId":"Libtmux.Command.mutation.Unset_option","name":"Unset_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":927,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_option of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":927,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_option","slug":"libtmux-command-mutation-unset_option"},{"id":"Libtmux.Command.mutation.Zoom_pane","publicId":"Libtmux.Command.mutation.Zoom_pane","name":"Zoom_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":905,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Zoom_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":905,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Zoom_pane","slug":"libtmux-command-mutation-zoom_pane"},{"id":"Libtmux.Command.t","publicId":"Libtmux.Command.t","qualifiedName":"Libtmux.Command.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":951,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. "],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":951,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command","doc":{"summary":"An immutable description, validated by a backend before admission. Constructing or inspecting it performs no I/O."},"signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-command-t"},{"id":"Libtmux.Command.view","publicId":"Libtmux.Command.view","qualifiedName":"Libtmux.Command.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1006,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read-only inspection for transport adapters. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":1006,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command","doc":{"summary":"Read-only inspection for transport adapters."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-command-view"},{"id":"Libtmux.Command.view:type","publicId":"Libtmux.Command.view:type","qualifiedName":"Libtmux.Command.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":955,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":955,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type _ view =\n Capture : Snapshot.t view\n | Capture_text : { pane : Pane.t; start : int; end_ : int;\n scratch_dir : string;\n } -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : { name : string; window_name : string option;\n width : int; height : int; spawn : Spawn.t;\n } -> Created.t view\n | Create_window : { session : Session.target; index : int option;\n name : string option; spawn : Spawn.t;\n } -> Created.t view\n | Split_pane : { pane : Pane.target; direction : Geometry.direction;\n size : Geometry.size option; spawn : Spawn.t;\n } -> Created.t view\n | Break_pane : { pane : Pane.target; session : Session.target; index : int;\n name : string option;\n } -> Created.t view","params":[]}],"slug":"libtmux-command-view-type"},{"id":"Libtmux.Command.view:type.Break_pane","publicId":"Libtmux.Command.view:type.Break_pane","name":"Break_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":998,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":998,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Break_pane","slug":"libtmux-command-view-type-break_pane"},{"id":"Libtmux.Command.view:type.Break_pane.index","publicId":"Libtmux.Command.view:type.Break_pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1001,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":1001,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-break_pane-index"},{"id":"Libtmux.Command.view:type.Break_pane.name","publicId":"Libtmux.Command.view:type.Break_pane.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1002,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1002,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-break_pane-name"},{"id":"Libtmux.Command.view:type.Break_pane.pane","publicId":"Libtmux.Command.view:type.Break_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":999,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":999,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-break_pane-pane"},{"id":"Libtmux.Command.view:type.Break_pane.session","publicId":"Libtmux.Command.view:type.Break_pane.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1000,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1000,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-break_pane-session"},{"id":"Libtmux.Command.view:type.Capture","publicId":"Libtmux.Command.view:type.Capture","name":"Capture","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":956,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture : Snapshot.t view","source":{"file":"lib/libtmux.mli","line":956,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"unit","qualifiedName":"Libtmux.Command.Capture","slug":"libtmux-command-view-type-capture"},{"id":"Libtmux.Command.view:type.Capture_environment","publicId":"Libtmux.Command.view:type.Capture_environment","name":"Capture_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":970,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_environment : Environment.scope * bool -> Environment.t view","source":{"file":"lib/libtmux.mli","line":970,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_environment","slug":"libtmux-command-view-type-capture_environment"},{"id":"Libtmux.Command.view:type.Capture_hooks","publicId":"Libtmux.Command.view:type.Capture_hooks","name":"Capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":973,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_hooks : Options.scope -> Options.t view","source":{"file":"lib/libtmux.mli","line":973,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_hooks","slug":"libtmux-command-view-type-capture_hooks"},{"id":"Libtmux.Command.view:type.Capture_options","publicId":"Libtmux.Command.view:type.Capture_options","name":"Capture_options","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":971,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_options : Options.scope * bool -> Options.t view","source":{"file":"lib/libtmux.mli","line":971,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_options","slug":"libtmux-command-view-type-capture_options"},{"id":"Libtmux.Command.view:type.Capture_text","publicId":"Libtmux.Command.view:type.Capture_text","name":"Capture_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":957,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view","source":{"file":"lib/libtmux.mli","line":957,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Capture_text","slug":"libtmux-command-view-type-capture_text"},{"id":"Libtmux.Command.view:type.Capture_text.end_","publicId":"Libtmux.Command.view:type.Capture_text.end_","name":"end_","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":960,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"end_ : int;","source":{"file":"lib/libtmux.mli","line":960,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.end_","slug":"libtmux-command-view-type-capture_text-end_"},{"id":"Libtmux.Command.view:type.Capture_text.pane","publicId":"Libtmux.Command.view:type.Capture_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":958,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.t;","source":{"file":"lib/libtmux.mli","line":958,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"Pane.t","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-capture_text-pane"},{"id":"Libtmux.Command.view:type.Capture_text.scratch_dir","publicId":"Libtmux.Command.view:type.Capture_text.scratch_dir","name":"scratch_dir","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":961,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scratch_dir : string;","source":{"file":"lib/libtmux.mli","line":961,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"string","qualifiedName":"Libtmux.Command.scratch_dir","slug":"libtmux-command-view-type-capture_text-scratch_dir"},{"id":"Libtmux.Command.view:type.Capture_text.start","publicId":"Libtmux.Command.view:type.Capture_text.start","name":"start","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":959,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"start : int;","source":{"file":"lib/libtmux.mli","line":959,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.start","slug":"libtmux-command-view-type-capture_text-start"},{"id":"Libtmux.Command.view:type.Create_session","publicId":"Libtmux.Command.view:type.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":976,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":976,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_session","slug":"libtmux-command-view-type-create_session"},{"id":"Libtmux.Command.view:type.Create_session.height","publicId":"Libtmux.Command.view:type.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":980,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":980,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-view-type-create_session-height"},{"id":"Libtmux.Command.view:type.Create_session.name","publicId":"Libtmux.Command.view:type.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":977,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":977,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_session-name"},{"id":"Libtmux.Command.view:type.Create_session.spawn","publicId":"Libtmux.Command.view:type.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":981,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":981,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_session-spawn"},{"id":"Libtmux.Command.view:type.Create_session.width","publicId":"Libtmux.Command.view:type.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":979,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":979,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-view-type-create_session-width"},{"id":"Libtmux.Command.view:type.Create_session.window_name","publicId":"Libtmux.Command.view:type.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":978,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string option;","source":{"file":"lib/libtmux.mli","line":978,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string option","qualifiedName":"Libtmux.Command.window_name","slug":"libtmux-command-view-type-create_session-window_name"},{"id":"Libtmux.Command.view:type.Create_window","publicId":"Libtmux.Command.view:type.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":984,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":984,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_window","slug":"libtmux-command-view-type-create_window"},{"id":"Libtmux.Command.view:type.Create_window.index","publicId":"Libtmux.Command.view:type.Create_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":986,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":986,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-create_window-index"},{"id":"Libtmux.Command.view:type.Create_window.name","publicId":"Libtmux.Command.view:type.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":987,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":987,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_window-name"},{"id":"Libtmux.Command.view:type.Create_window.session","publicId":"Libtmux.Command.view:type.Create_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":985,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":985,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-create_window-session"},{"id":"Libtmux.Command.view:type.Create_window.spawn","publicId":"Libtmux.Command.view:type.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":988,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":988,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_window-spawn"},{"id":"Libtmux.Command.view:type.Mutate","publicId":"Libtmux.Command.view:type.Mutate","name":"Mutate","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":975,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mutate : mutation -> unit view","source":{"file":"lib/libtmux.mli","line":975,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Mutate","slug":"libtmux-command-view-type-mutate"},{"id":"Libtmux.Command.view:type.Read_hook","publicId":"Libtmux.Command.view:type.Read_hook","name":"Read_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":974,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_hook : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":974,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_hook","slug":"libtmux-command-view-type-read_hook"},{"id":"Libtmux.Command.view:type.Read_option","publicId":"Libtmux.Command.view:type.Read_option","name":"Read_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":972,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_option : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":972,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_option","slug":"libtmux-command-view-type-read_option"},{"id":"Libtmux.Command.view:type.Rename_session","publicId":"Libtmux.Command.view:type.Rename_session","name":"Rename_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":965,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_session : Session.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":965,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_session","slug":"libtmux-command-view-type-rename_session"},{"id":"Libtmux.Command.view:type.Rename_window","publicId":"Libtmux.Command.view:type.Rename_window","name":"Rename_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":964,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_window : Window.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":964,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_window","slug":"libtmux-command-view-type-rename_window"},{"id":"Libtmux.Command.view:type.Send_keys","publicId":"Libtmux.Command.view:type.Send_keys","name":"Send_keys","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":967,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_keys : Pane.target * Key.t list -> unit view","source":{"file":"lib/libtmux.mli","line":967,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_keys","slug":"libtmux-command-view-type-send_keys"},{"id":"Libtmux.Command.view:type.Send_text","publicId":"Libtmux.Command.view:type.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":966,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text : Pane.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":966,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_text","slug":"libtmux-command-view-type-send_text"},{"id":"Libtmux.Command.view:type.Signal","publicId":"Libtmux.Command.view:type.Signal","name":"Signal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":969,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Signal : string -> unit view","source":{"file":"lib/libtmux.mli","line":969,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Signal","slug":"libtmux-command-view-type-signal"},{"id":"Libtmux.Command.view:type.Split_pane","publicId":"Libtmux.Command.view:type.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":991,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":991,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Split_pane","slug":"libtmux-command-view-type-split_pane"},{"id":"Libtmux.Command.view:type.Split_pane.direction","publicId":"Libtmux.Command.view:type.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":993,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":993,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-view-type-split_pane-direction"},{"id":"Libtmux.Command.view:type.Split_pane.pane","publicId":"Libtmux.Command.view:type.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":992,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":992,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-split_pane-pane"},{"id":"Libtmux.Command.view:type.Split_pane.size","publicId":"Libtmux.Command.view:type.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":994,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":994,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-view-type-split_pane-size"},{"id":"Libtmux.Command.view:type.Split_pane.spawn","publicId":"Libtmux.Command.view:type.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":995,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":995,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-split_pane-spawn"},{"id":"Libtmux.Command.view:type.Wait_for","publicId":"Libtmux.Command.view:type.Wait_for","name":"Wait_for","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":968,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wait_for : string -> unit view","source":{"file":"lib/libtmux.mli","line":968,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Wait_for","slug":"libtmux-command-view-type-wait_for"},{"id":"Libtmux.Created","publicId":"Libtmux.Created","qualifiedName":"Libtmux.Created","name":"Created","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":757,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" IDs reported by a successful creation reply. Only the requested kind is\n newly created; the other fields can describe existing containers. "],"declarations":[{"kind":"module","text":"module Created : sig\n type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }\n (** IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. *)\nend","source":{"file":"lib/libtmux.mli","line":757,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"IDs reported by a successful creation reply. Only the requested kind is newly created; the other fields can describe existing containers."},"slug":"libtmux-created"},{"id":"Libtmux.Created.t","publicId":"Libtmux.Created.t","qualifiedName":"Libtmux.Created.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":758,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. "],"declarations":[{"kind":"struct","text":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }","source":{"file":"lib/libtmux.mli","line":758,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Created","doc":{"summary":"IDs returned by the creation command, without a second capture. Indexes describe the creation response and may change afterward. Only the resource requested by the command is newly created: splitting a pane does not create the reported session or window."},"signatures":[{"raw":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n}","params":[]}],"slug":"libtmux-created-t"},{"id":"Libtmux.Created.t.pane","publicId":"Libtmux.Created.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":761,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":761,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Created.t","type":"Pane.target","qualifiedName":"Libtmux.Created.pane","slug":"libtmux-created-t-pane"},{"id":"Libtmux.Created.t.pane_index","publicId":"Libtmux.Created.t.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.pane_index","slug":"libtmux-created-t-pane_index"},{"id":"Libtmux.Created.t.session","publicId":"Libtmux.Created.t.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":759,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":759,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Created.t","type":"Session.target","qualifiedName":"Libtmux.Created.session","slug":"libtmux-created-t-session"},{"id":"Libtmux.Created.t.window","publicId":"Libtmux.Created.t.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":760,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":760,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Created.t","type":"Window.target","qualifiedName":"Libtmux.Created.window","slug":"libtmux-created-t-window"},{"id":"Libtmux.Created.t.window_index","publicId":"Libtmux.Created.t.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"lib/libtmux.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.window_index","slug":"libtmux-created-t-window_index"},{"id":"Libtmux.Endpoint","publicId":"Libtmux.Endpoint","qualifiedName":"Libtmux.Endpoint","name":"Endpoint","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" An explicit socket description. Constructing an endpoint neither reads the\n environment nor starts a daemon. {!Source.t} adds the observed daemon and\n connection generation. "],"declarations":[{"kind":"module","text":"module Endpoint : sig\n type t\n (** An explicit socket description, independent of the environment. *)\n\n type kind = Named_socket of string | Socket_path of string\n\n val named_socket : string -> t\n (** [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. *)\n\n val socket_path : string -> t\n (** [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. *)\n\n val kind : t -> kind\n\n val equal : t -> t -> bool\n (** Equality compares descriptions, not server instances or resolved paths. *)\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"An explicit socket description. Constructing an endpoint neither reads the environment nor starts a daemon. {!Source.t} adds the observed daemon and connection generation."},"slug":"libtmux-endpoint"},{"id":"Libtmux.Endpoint.equal","publicId":"Libtmux.Endpoint.equal","qualifiedName":"Libtmux.Endpoint.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":43,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Equality compares descriptions, not server instances or resolved paths. "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":43,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"Equality compares descriptions, not server instances or resolved paths."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-endpoint-equal"},{"id":"Libtmux.Endpoint.kind","publicId":"Libtmux.Endpoint.kind","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":41,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : t -> kind","source":{"file":"lib/libtmux.mli","line":41,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val kind : t -> kind","params":[{"name":"arg1","type":"t"}],"returns":"kind"}],"slug":"libtmux-endpoint-kind"},{"id":"Libtmux.Endpoint.kind:type","publicId":"Libtmux.Endpoint.kind:type","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type kind = Named_socket of string | Socket_path of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"type kind = Named_socket of string | Socket_path of string","params":[]}],"slug":"libtmux-endpoint-kind-type"},{"id":"Libtmux.Endpoint.kind:type.Named_socket","publicId":"Libtmux.Endpoint.kind:type.Named_socket","name":"Named_socket","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Named_socket of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Named_socket","slug":"libtmux-endpoint-kind-type-named_socket"},{"id":"Libtmux.Endpoint.kind:type.Socket_path","publicId":"Libtmux.Endpoint.kind:type.Socket_path","name":"Socket_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Socket_path of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Socket_path","slug":"libtmux-endpoint-kind-type-socket_path"},{"id":"Libtmux.Endpoint.named_socket","publicId":"Libtmux.Endpoint.named_socket","qualifiedName":"Libtmux.Endpoint.named_socket","name":"named_socket","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. "],"declarations":[{"kind":"function","text":"val named_socket : string -> t","source":{"file":"lib/libtmux.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`named_socket name` describes tmux's `-L name` endpoint. Raises `Invalid_argument` if `name` is empty or contains NUL or `/`."},"signatures":[{"raw":"val named_socket : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-named_socket"},{"id":"Libtmux.Endpoint.pp","publicId":"Libtmux.Endpoint.pp","qualifiedName":"Libtmux.Endpoint.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":46,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":46,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-endpoint-pp"},{"id":"Libtmux.Endpoint.socket_path","publicId":"Libtmux.Endpoint.socket_path","qualifiedName":"Libtmux.Endpoint.socket_path","name":"socket_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. "],"declarations":[{"kind":"function","text":"val socket_path : string -> t","source":{"file":"lib/libtmux.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`socket_path path` describes an absolute `-S path` endpoint. It does not check existence or resolve symbolic links. Raises `Invalid_argument` if `path` is relative, empty or contains NUL."},"signatures":[{"raw":"val socket_path : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-socket_path"},{"id":"Libtmux.Endpoint.t","publicId":"Libtmux.Endpoint.t","qualifiedName":"Libtmux.Endpoint.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" An explicit socket description, independent of the environment. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"An explicit socket description, independent of the environment."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-endpoint-t"},{"id":"Libtmux.Environment","publicId":"Libtmux.Environment","qualifiedName":"Libtmux.Environment","name":"Environment","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":771,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Environment : sig\n type scope = Global | Session of Session.target\n type value = Value of string | Removed\n type entry = { name : string; value : value }\n\n type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. *)\n\n val lookup : t -> string -> value option\n (** No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. *)\nend","source":{"file":"lib/libtmux.mli","line":771,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-environment"},{"id":"Libtmux.Environment.entry","publicId":"Libtmux.Environment.entry","qualifiedName":"Libtmux.Environment.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { name : string; value : value }","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type entry = { name : string; value : value; }","params":[]}],"slug":"libtmux-environment-entry"},{"id":"Libtmux.Environment.entry.name","publicId":"Libtmux.Environment.entry.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.entry","type":"string","qualifiedName":"Libtmux.Environment.name","slug":"libtmux-environment-entry-name"},{"id":"Libtmux.Environment.entry.value","publicId":"Libtmux.Environment.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.entry","type":"value","qualifiedName":"Libtmux.Environment.value","slug":"libtmux-environment-entry-value"},{"id":"Libtmux.Environment.lookup","publicId":"Libtmux.Environment.lookup","qualifiedName":"Libtmux.Environment.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":788,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> value option","source":{"file":"lib/libtmux.mli","line":788,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment","doc":{"summary":"No I/O. `None` means absent from the selected table and visibility. `Removed` masks a global value; `Value \"\"` is an explicitly empty value. Names must be ASCII identifiers; values preserve non-NUL bytes."},"signatures":[{"raw":"val lookup : t -> string -> value option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"value option"}],"slug":"libtmux-environment-lookup"},{"id":"Libtmux.Environment.scope","publicId":"Libtmux.Environment.scope","qualifiedName":"Libtmux.Environment.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Global | Session of Session.target","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type scope = Global | Session of Session.target","params":[]}],"slug":"libtmux-environment-scope"},{"id":"Libtmux.Environment.scope.Global","publicId":"Libtmux.Environment.scope.Global","name":"Global","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Global","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.scope","variant":"unit","qualifiedName":"Libtmux.Environment.Global","slug":"libtmux-environment-scope-global"},{"id":"Libtmux.Environment.scope.Session","publicId":"Libtmux.Environment.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.scope","variant":"tuple","qualifiedName":"Libtmux.Environment.Session","slug":"libtmux-environment-scope-session"},{"id":"Libtmux.Environment.t","publicId":"Libtmux.Environment.t","qualifiedName":"Libtmux.Environment.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":776,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":776,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment","doc":{"summary":"One captured environment table, in tmux order. `hidden` selects hidden variables exclusively. Session tables contain local entries, including removal markers; they do not merge the global environment."},"signatures":[{"raw":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-environment-t"},{"id":"Libtmux.Environment.t.entries","publicId":"Libtmux.Environment.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Environment.entries","slug":"libtmux-environment-t-entries"},{"id":"Libtmux.Environment.t.finished_at_ns","publicId":"Libtmux.Environment.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":782,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":782,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.finished_at_ns","slug":"libtmux-environment-t-finished_at_ns"},{"id":"Libtmux.Environment.t.hidden","publicId":"Libtmux.Environment.t.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":779,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":779,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.t","type":"bool","qualifiedName":"Libtmux.Environment.hidden","slug":"libtmux-environment-t-hidden"},{"id":"Libtmux.Environment.t.scope","publicId":"Libtmux.Environment.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":778,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":778,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.t","type":"scope","qualifiedName":"Libtmux.Environment.scope","slug":"libtmux-environment-t-scope"},{"id":"Libtmux.Environment.t.source","publicId":"Libtmux.Environment.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":777,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":777,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.t","type":"Source.t","qualifiedName":"Libtmux.Environment.source","slug":"libtmux-environment-t-source"},{"id":"Libtmux.Environment.t.started_at_ns","publicId":"Libtmux.Environment.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":781,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":781,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.started_at_ns","slug":"libtmux-environment-t-started_at_ns"},{"id":"Libtmux.Environment.value","publicId":"Libtmux.Environment.value","qualifiedName":"Libtmux.Environment.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Value of string | Removed","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type value = Value of string | Removed","params":[]}],"slug":"libtmux-environment-value"},{"id":"Libtmux.Environment.value.Removed","publicId":"Libtmux.Environment.value.Removed","name":"Removed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Removed","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.value","variant":"unit","qualifiedName":"Libtmux.Environment.Removed","slug":"libtmux-environment-value-removed"},{"id":"Libtmux.Environment.value.Value","publicId":"Libtmux.Environment.value.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Value of string","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Environment.value","variant":"tuple","qualifiedName":"Libtmux.Environment.Value","slug":"libtmux-environment-value-value"},{"id":"Libtmux.Error","publicId":"Libtmux.Error","qualifiedName":"Libtmux.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":52,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Expected input, capture, capability and transport failures. Cancellation\n belongs to the chosen backend and is not converted into an ordinary error.\n"],"declarations":[{"kind":"module","text":"module Error : sig\n type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":52,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Expected input, capture, capability and transport failures. Cancellation belongs to the chosen backend and is not converted into an ordinary error."},"slug":"libtmux-error"},{"id":"Libtmux.Error.pp","publicId":"Libtmux.Error.pp","qualifiedName":"Libtmux.Error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-error-pp"},{"id":"Libtmux.Error.t","publicId":"Libtmux.Error.t","qualifiedName":"Libtmux.Error.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":53,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":53,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error","signatures":[{"raw":"type t =\n Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string; }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int; }\n | Stale_target\n | No_such_entity of { kind : string; id : string; }\n | Command_failed of { command : string; message : string; }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","params":[]}],"slug":"libtmux-error-t"},{"id":"Libtmux.Error.t.Busy","publicId":"Libtmux.Error.t.Busy","name":"Busy","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Busy","source":{"file":"lib/libtmux.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Busy","slug":"libtmux-error-t-busy"},{"id":"Libtmux.Error.t.Capacity","publicId":"Libtmux.Error.t.Capacity","name":"Capacity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capacity of { resource : string; limit : int }","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Capacity","slug":"libtmux-error-t-capacity"},{"id":"Libtmux.Error.t.Capacity.limit","publicId":"Libtmux.Error.t.Capacity.limit","name":"limit","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"limit : int","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.Capacity","type":"int","qualifiedName":"Libtmux.Error.limit","slug":"libtmux-error-t-capacity-limit"},{"id":"Libtmux.Error.t.Capacity.resource","publicId":"Libtmux.Error.t.Capacity.resource","name":"resource","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"resource : string;","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.Capacity","type":"string","qualifiedName":"Libtmux.Error.resource","slug":"libtmux-error-t-capacity-resource"},{"id":"Libtmux.Error.t.Capture_raced","publicId":"Libtmux.Error.t.Capture_raced","name":"Capture_raced","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_raced of string","source":{"file":"lib/libtmux.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Capture_raced","slug":"libtmux-error-t-capture_raced"},{"id":"Libtmux.Error.t.Closed","publicId":"Libtmux.Error.t.Closed","name":"Closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Closed","source":{"file":"lib/libtmux.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Closed","slug":"libtmux-error-t-closed"},{"id":"Libtmux.Error.t.Command_failed","publicId":"Libtmux.Error.t.Command_failed","name":"Command_failed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command_failed of { command : string; message : string }","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Command_failed","slug":"libtmux-error-t-command_failed"},{"id":"Libtmux.Error.t.Command_failed.command","publicId":"Libtmux.Error.t.Command_failed.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : string;","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.command","slug":"libtmux-error-t-command_failed-command"},{"id":"Libtmux.Error.t.Command_failed.message","publicId":"Libtmux.Error.t.Command_failed.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-command_failed-message"},{"id":"Libtmux.Error.t.Deadline_exceeded","publicId":"Libtmux.Error.t.Deadline_exceeded","name":"Deadline_exceeded","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Deadline_exceeded","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Deadline_exceeded","slug":"libtmux-error-t-deadline_exceeded"},{"id":"Libtmux.Error.t.Disconnected","publicId":"Libtmux.Error.t.Disconnected","name":"Disconnected","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Disconnected of string","source":{"file":"lib/libtmux.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Disconnected","slug":"libtmux-error-t-disconnected"},{"id":"Libtmux.Error.t.Filesystem","publicId":"Libtmux.Error.t.Filesystem","name":"Filesystem","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Filesystem of { operation : string; message : string }","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Filesystem","slug":"libtmux-error-t-filesystem"},{"id":"Libtmux.Error.t.Filesystem.message","publicId":"Libtmux.Error.t.Filesystem.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-filesystem-message"},{"id":"Libtmux.Error.t.Filesystem.operation","publicId":"Libtmux.Error.t.Filesystem.operation","name":"operation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation : string;","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.operation","slug":"libtmux-error-t-filesystem-operation"},{"id":"Libtmux.Error.t.Invalid_input","publicId":"Libtmux.Error.t.Invalid_input","name":"Invalid_input","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":54,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Invalid_input of string","source":{"file":"lib/libtmux.mli","line":54,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Invalid_input","slug":"libtmux-error-t-invalid_input"},{"id":"Libtmux.Error.t.Malformed_data","publicId":"Libtmux.Error.t.Malformed_data","name":"Malformed_data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Malformed_data of string","source":{"file":"lib/libtmux.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Malformed_data","slug":"libtmux-error-t-malformed_data"},{"id":"Libtmux.Error.t.No_such_entity","publicId":"Libtmux.Error.t.No_such_entity","name":"No_such_entity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| No_such_entity of { kind : string; id : string }","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.No_such_entity","slug":"libtmux-error-t-no_such_entity"},{"id":"Libtmux.Error.t.No_such_entity.id","publicId":"Libtmux.Error.t.No_such_entity.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : string","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.id","slug":"libtmux-error-t-no_such_entity-id"},{"id":"Libtmux.Error.t.No_such_entity.kind","publicId":"Libtmux.Error.t.No_such_entity.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : string;","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.kind","slug":"libtmux-error-t-no_such_entity-kind"},{"id":"Libtmux.Error.t.Not_started","publicId":"Libtmux.Error.t.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"lib/libtmux.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Not_started","slug":"libtmux-error-t-not_started"},{"id":"Libtmux.Error.t.Outcome_unknown","publicId":"Libtmux.Error.t.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Outcome_unknown","slug":"libtmux-error-t-outcome_unknown"},{"id":"Libtmux.Error.t.Stale_target","publicId":"Libtmux.Error.t.Stale_target","name":"Stale_target","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale_target","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Stale_target","slug":"libtmux-error-t-stale_target"},{"id":"Libtmux.Error.t.Unsupported","publicId":"Libtmux.Error.t.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported of string","source":{"file":"lib/libtmux.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported","slug":"libtmux-error-t-unsupported"},{"id":"Libtmux.Error.t.Unsupported_binding","publicId":"Libtmux.Error.t.Unsupported_binding","name":"Unsupported_binding","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_binding of string","source":{"file":"lib/libtmux.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_binding","slug":"libtmux-error-t-unsupported_binding"},{"id":"Libtmux.Error.t.Unsupported_capture_hooks","publicId":"Libtmux.Error.t.Unsupported_capture_hooks","name":"Unsupported_capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_capture_hooks","source":{"file":"lib/libtmux.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Unsupported_capture_hooks","slug":"libtmux-error-t-unsupported_capture_hooks"},{"id":"Libtmux.Error.t.Unsupported_version","publicId":"Libtmux.Error.t.Unsupported_version","name":"Unsupported_version","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_version of string","source":{"file":"lib/libtmux.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_version","slug":"libtmux-error-t-unsupported_version"},{"id":"Libtmux.Error.t.Wrong_domain","publicId":"Libtmux.Error.t.Wrong_domain","name":"Wrong_domain","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_domain","source":{"file":"lib/libtmux.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Wrong_domain","slug":"libtmux-error-t-wrong_domain"},{"id":"Libtmux.Expr","publicId":"Libtmux.Expr","qualifiedName":"Libtmux.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Inspectable predicates whose entity and operand types are checked by the\n compiler. Combine native closures separately with [Seq.filter]. Evaluation\n follows captured relationships without acquisition or hidden caches. "],"declarations":[{"kind":"module","text":"module Expr : sig\n type 'entity t\n\n val all : 'a t list -> 'a t\n (** Boolean conjunction; the empty conjunction is true. *)\n\n val any : 'a t list -> 'a t\n (** Boolean disjunction; the empty disjunction is false. *)\n\n val not_ : 'a t -> 'a t\n\n module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end\n\n module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end\n\n module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end\n\n module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end\n\n val compile : 'a t -> 'a -> bool\n (** Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n *)\n\n val pp : Format.formatter -> 'a t -> unit\n val describe : 'a t -> string\n\n type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison\n\n type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view\n\n val view : 'a t -> 'a view\n (** Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. *)\nend","source":{"file":"lib/libtmux.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Inspectable predicates whose entity and operand types are checked by the compiler. Combine native closures separately with `Seq.filter`. Evaluation follows captured relationships without acquisition or hidden caches."},"slug":"libtmux-expr"},{"id":"Libtmux.Expr.Bool","publicId":"Libtmux.Expr.Bool","qualifiedName":"Libtmux.Expr.Bool","name":"Bool","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":563,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":563,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-bool"},{"id":"Libtmux.Expr.Bool.equal","publicId":"Libtmux.Expr.Bool.equal","qualifiedName":"Libtmux.Expr.Bool.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":564,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, bool) Field.t -> bool -> 'a t","source":{"file":"lib/libtmux.mli","line":564,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val equal : ('a, bool) Field.t -> bool -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"},{"name":"arg2","type":"bool"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-equal"},{"id":"Libtmux.Expr.Bool.is_false","publicId":"Libtmux.Expr.Bool.is_false","qualifiedName":"Libtmux.Expr.Bool.is_false","name":"is_false","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":566,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_false : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":566,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_false : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_false"},{"id":"Libtmux.Expr.Bool.is_true","publicId":"Libtmux.Expr.Bool.is_true","qualifiedName":"Libtmux.Expr.Bool.is_true","name":"is_true","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_true : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_true : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_true"},{"id":"Libtmux.Expr.Int","publicId":"Libtmux.Expr.Int","qualifiedName":"Libtmux.Expr.Int","name":"Int","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":569,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":569,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-int"},{"id":"Libtmux.Expr.Int.equal","publicId":"Libtmux.Expr.Int.equal","qualifiedName":"Libtmux.Expr.Int.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":570,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":570,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val equal : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-equal"},{"id":"Libtmux.Expr.Int.ge","publicId":"Libtmux.Expr.Int.ge","qualifiedName":"Libtmux.Expr.Int.ge","name":"ge","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":574,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ge : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":574,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val ge : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-ge"},{"id":"Libtmux.Expr.Int.gt","publicId":"Libtmux.Expr.Int.gt","qualifiedName":"Libtmux.Expr.Int.gt","name":"gt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":573,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val gt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":573,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val gt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-gt"},{"id":"Libtmux.Expr.Int.is_in","publicId":"Libtmux.Expr.Int.is_in","qualifiedName":"Libtmux.Expr.Int.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_in : ('a, int) Field.t -> int list -> 'a t","source":{"file":"lib/libtmux.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val is_in : ('a, int) Field.t -> int list -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int list"}],"returns":"'a t"}],"slug":"libtmux-expr-int-is_in"},{"id":"Libtmux.Expr.Int.le","publicId":"Libtmux.Expr.Int.le","qualifiedName":"Libtmux.Expr.Int.le","name":"le","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":572,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val le : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":572,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val le : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-le"},{"id":"Libtmux.Expr.Int.lt","publicId":"Libtmux.Expr.Int.lt","qualifiedName":"Libtmux.Expr.Int.lt","name":"lt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":571,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val lt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":571,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val lt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-lt"},{"id":"Libtmux.Expr.Rel","publicId":"Libtmux.Expr.Rel","qualifiedName":"Libtmux.Expr.Rel","name":"Rel","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":589,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":589,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-rel"},{"id":"Libtmux.Expr.Rel.all","publicId":"Libtmux.Expr.Rel.all","qualifiedName":"Libtmux.Expr.Rel.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":591,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":591,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-all"},{"id":"Libtmux.Expr.Rel.any","publicId":"Libtmux.Expr.Rel.any","qualifiedName":"Libtmux.Expr.Rel.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-any"},{"id":"Libtmux.Expr.Rel.exists","publicId":"Libtmux.Expr.Rel.exists","qualifiedName":"Libtmux.Expr.Rel.exists","name":"exists","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":598,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":598,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-exists"},{"id":"Libtmux.Expr.Rel.is","publicId":"Libtmux.Expr.Rel.is","qualifiedName":"Libtmux.Expr.Rel.is","name":"is","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.One.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is"},{"id":"Libtmux.Expr.Rel.is_absent","publicId":"Libtmux.Expr.Rel.is_absent","qualifiedName":"Libtmux.Expr.Rel.is_absent","name":"is_absent","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":599,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","source":{"file":"lib/libtmux.mli","line":599,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is_absent"},{"id":"Libtmux.Expr.Rel.none","publicId":"Libtmux.Expr.Rel.none","qualifiedName":"Libtmux.Expr.Rel.none","name":"none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":593,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. "],"declarations":[{"kind":"function","text":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":593,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Rel","doc":{"summary":"On empty relations, `any` is false; `all` and `none` are true. One child must satisfy the complete nested expression."},"signatures":[{"raw":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-none"},{"id":"Libtmux.Expr.Text","publicId":"Libtmux.Expr.Text","qualifiedName":"Libtmux.Expr.Text","name":"Text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":578,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end","source":{"file":"lib/libtmux.mli","line":578,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-text"},{"id":"Libtmux.Expr.Text.contains","publicId":"Libtmux.Expr.Text.contains","qualifiedName":"Libtmux.Expr.Text.contains","name":"contains","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":582,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val contains : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":582,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val contains : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-contains"},{"id":"Libtmux.Expr.Text.ends_with","publicId":"Libtmux.Expr.Text.ends_with","qualifiedName":"Libtmux.Expr.Text.ends_with","name":"ends_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ends_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val ends_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-ends_with"},{"id":"Libtmux.Expr.Text.equal","publicId":"Libtmux.Expr.Text.equal","qualifiedName":"Libtmux.Expr.Text.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":579,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":579,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val equal : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-equal"},{"id":"Libtmux.Expr.Text.is_in","publicId":"Libtmux.Expr.Text.is_in","qualifiedName":"Libtmux.Expr.Text.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":584,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. "],"declarations":[{"kind":"function","text":"val is_in : ('a, string) Field.t -> string list -> 'a t","source":{"file":"lib/libtmux.mli","line":584,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Text","doc":{"summary":"Comparisons use exact bytes, without case folding or normalization. The empty substring matches every string."},"signatures":[{"raw":"val is_in : ('a, string) Field.t -> string list -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string list"}],"returns":"'a t"}],"slug":"libtmux-expr-text-is_in"},{"id":"Libtmux.Expr.Text.starts_with","publicId":"Libtmux.Expr.Text.starts_with","qualifiedName":"Libtmux.Expr.Text.starts_with","name":"starts_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":580,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val starts_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":580,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val starts_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-starts_with"},{"id":"Libtmux.Expr.all","publicId":"Libtmux.Expr.all","qualifiedName":"Libtmux.Expr.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":555,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Boolean conjunction; the empty conjunction is true. "],"declarations":[{"kind":"function","text":"val all : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":555,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean conjunction; the empty conjunction is true."},"signatures":[{"raw":"val all : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-all"},{"id":"Libtmux.Expr.any","publicId":"Libtmux.Expr.any","qualifiedName":"Libtmux.Expr.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Boolean disjunction; the empty disjunction is false. "],"declarations":[{"kind":"function","text":"val any : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean disjunction; the empty disjunction is false."},"signatures":[{"raw":"val any : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-any"},{"id":"Libtmux.Expr.comparison","publicId":"Libtmux.Expr.comparison","qualifiedName":"Libtmux.Expr.comparison","name":"comparison","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":609,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":609,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type _ comparison =\n Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","params":[]}],"slug":"libtmux-expr-comparison"},{"id":"Libtmux.Expr.comparison.Bool_equal","publicId":"Libtmux.Expr.comparison.Bool_equal","name":"Bool_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":610,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool_equal : bool -> bool comparison","source":{"file":"lib/libtmux.mli","line":610,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Bool_equal","slug":"libtmux-expr-comparison-bool_equal"},{"id":"Libtmux.Expr.comparison.Int_equal","publicId":"Libtmux.Expr.comparison.Int_equal","name":"Int_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":611,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_equal : int -> int comparison","source":{"file":"lib/libtmux.mli","line":611,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_equal","slug":"libtmux-expr-comparison-int_equal"},{"id":"Libtmux.Expr.comparison.Int_ge","publicId":"Libtmux.Expr.comparison.Int_ge","name":"Int_ge","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":615,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_ge : int -> int comparison","source":{"file":"lib/libtmux.mli","line":615,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_ge","slug":"libtmux-expr-comparison-int_ge"},{"id":"Libtmux.Expr.comparison.Int_gt","publicId":"Libtmux.Expr.comparison.Int_gt","name":"Int_gt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":614,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_gt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":614,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_gt","slug":"libtmux-expr-comparison-int_gt"},{"id":"Libtmux.Expr.comparison.Int_in","publicId":"Libtmux.Expr.comparison.Int_in","name":"Int_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":616,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_in : int list -> int comparison","source":{"file":"lib/libtmux.mli","line":616,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_in","slug":"libtmux-expr-comparison-int_in"},{"id":"Libtmux.Expr.comparison.Int_le","publicId":"Libtmux.Expr.comparison.Int_le","name":"Int_le","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":613,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_le : int -> int comparison","source":{"file":"lib/libtmux.mli","line":613,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_le","slug":"libtmux-expr-comparison-int_le"},{"id":"Libtmux.Expr.comparison.Int_lt","publicId":"Libtmux.Expr.comparison.Int_lt","name":"Int_lt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_lt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_lt","slug":"libtmux-expr-comparison-int_lt"},{"id":"Libtmux.Expr.comparison.Text_contains","publicId":"Libtmux.Expr.comparison.Text_contains","name":"Text_contains","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_contains : string -> string comparison","source":{"file":"lib/libtmux.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_contains","slug":"libtmux-expr-comparison-text_contains"},{"id":"Libtmux.Expr.comparison.Text_ends_with","publicId":"Libtmux.Expr.comparison.Text_ends_with","name":"Text_ends_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":619,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_ends_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":619,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_ends_with","slug":"libtmux-expr-comparison-text_ends_with"},{"id":"Libtmux.Expr.comparison.Text_equal","publicId":"Libtmux.Expr.comparison.Text_equal","name":"Text_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":617,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_equal : string -> string comparison","source":{"file":"lib/libtmux.mli","line":617,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_equal","slug":"libtmux-expr-comparison-text_equal"},{"id":"Libtmux.Expr.comparison.Text_in","publicId":"Libtmux.Expr.comparison.Text_in","name":"Text_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_in","slug":"libtmux-expr-comparison-text_in"},{"id":"Libtmux.Expr.comparison.Text_starts_with","publicId":"Libtmux.Expr.comparison.Text_starts_with","name":"Text_starts_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":618,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_starts_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":618,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_starts_with","slug":"libtmux-expr-comparison-text_starts_with"},{"id":"Libtmux.Expr.compile","publicId":"Libtmux.Expr.compile","qualifiedName":"Libtmux.Expr.compile","name":"compile","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n "],"declarations":[{"kind":"function","text":"val compile : 'a t -> 'a -> bool","source":{"file":"lib/libtmux.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","doc":{"summary":"Prepare a reusable predicate. Compilation and evaluation perform no I/O."},"signatures":[{"raw":"val compile : 'a t -> 'a -> bool","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"'a"}],"returns":"bool"}],"slug":"libtmux-expr-compile"},{"id":"Libtmux.Expr.describe","publicId":"Libtmux.Expr.describe","qualifiedName":"Libtmux.Expr.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":607,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : 'a t -> string","source":{"file":"lib/libtmux.mli","line":607,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val describe : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-expr-describe"},{"id":"Libtmux.Expr.not_","publicId":"Libtmux.Expr.not_","qualifiedName":"Libtmux.Expr.not_","name":"not_","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":561,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val not_ : 'a t -> 'a t","source":{"file":"lib/libtmux.mli","line":561,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val not_ : 'a t -> 'a t","params":[{"name":"arg1","type":"'a t"}],"returns":"'a t"}],"slug":"libtmux-expr-not_"},{"id":"Libtmux.Expr.pp","publicId":"Libtmux.Expr.pp","qualifiedName":"Libtmux.Expr.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":606,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> 'a t -> unit","source":{"file":"lib/libtmux.mli","line":606,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val pp : Format.formatter -> 'a t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"'a t"}],"returns":"unit"}],"slug":"libtmux-expr-pp"},{"id":"Libtmux.Expr.t","publicId":"Libtmux.Expr.t","qualifiedName":"Libtmux.Expr.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":553,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'entity t","source":{"file":"lib/libtmux.mli","line":553,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'entity t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-expr-t"},{"id":"Libtmux.Expr.view","publicId":"Libtmux.Expr.view","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","doc":{"summary":"Typed read-only inspection for codecs and planners. A view cannot add custom accessors or closures to an expression."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-expr-view"},{"id":"Libtmux.Expr.view:type","publicId":"Libtmux.Expr.view:type","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":623,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":623,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'a view =\n Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","params":[]}],"slug":"libtmux-expr-view-type"},{"id":"Libtmux.Expr.view:type.Absent","publicId":"Libtmux.Expr.view:type.Absent","name":"Absent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Absent","slug":"libtmux-expr-view-type-absent"},{"id":"Libtmux.Expr.view:type.All","publicId":"Libtmux.Expr.view:type.All","name":"All","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":625,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| All of 'a t list","source":{"file":"lib/libtmux.mli","line":625,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.All","slug":"libtmux-expr-view-type-all"},{"id":"Libtmux.Expr.view:type.Any","publicId":"Libtmux.Expr.view:type.Any","name":"Any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":626,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Any of 'a t list","source":{"file":"lib/libtmux.mli","line":626,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Any","slug":"libtmux-expr-view-type-any"},{"id":"Libtmux.Expr.view:type.Compare","publicId":"Libtmux.Expr.view:type.Compare","name":"Compare","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Compare : ('a, 'v) Field.t * 'v comparison -> 'a view","source":{"file":"lib/libtmux.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Compare","slug":"libtmux-expr-view-type-compare"},{"id":"Libtmux.Expr.view:type.Not","publicId":"Libtmux.Expr.view:type.Not","name":"Not","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":627,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not of 'a t","source":{"file":"lib/libtmux.mli","line":627,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Not","slug":"libtmux-expr-view-type-not"},{"id":"Libtmux.Expr.view:type.Related_all","publicId":"Libtmux.Expr.view:type.Related_all","name":"Related_all","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_all","slug":"libtmux-expr-view-type-related_all"},{"id":"Libtmux.Expr.view:type.Related_any","publicId":"Libtmux.Expr.view:type.Related_any","name":"Related_any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":628,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":628,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_any","slug":"libtmux-expr-view-type-related_any"},{"id":"Libtmux.Expr.view:type.Related_none","publicId":"Libtmux.Expr.view:type.Related_none","name":"Related_none","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":630,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":630,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_none","slug":"libtmux-expr-view-type-related_none"},{"id":"Libtmux.Expr.view:type.Related_one","publicId":"Libtmux.Expr.view:type.Related_one","name":"Related_one","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":631,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":631,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_one","slug":"libtmux-expr-view-type-related_one"},{"id":"Libtmux.Expr.view:type.Related_optional","publicId":"Libtmux.Expr.view:type.Related_optional","name":"Related_optional","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":632,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":632,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_optional","slug":"libtmux-expr-view-type-related_optional"},{"id":"Libtmux.Field","publicId":"Libtmux.Field","qualifiedName":"Libtmux.Field","name":"Field","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Sealed scalar descriptors carrying entity and value types. Descriptors read\n captured data and provide trusted identities for {!Expr} values. Use\n {!Relation} for graph edges. "],"declarations":[{"kind":"module","text":"module Field : sig\n type _ kind = Bool : bool kind | Int : int kind | Text : string kind\n type ('entity, 'value) t\n type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed\n\n val name : ('entity, 'value) t -> string\n val kind : ('entity, 'value) t -> 'value kind\n\n val get : ('entity, 'value) t -> 'entity -> 'value\n (** Canonical descriptors are sealed. Accessing a field reads captured data.\n *)\nend","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Sealed scalar descriptors carrying entity and value types. Descriptors read captured data and provide trusted identities for {!Expr} values. Use {!Relation} for graph edges."},"slug":"libtmux-field"},{"id":"Libtmux.Field.get","publicId":"Libtmux.Field.get","qualifiedName":"Libtmux.Field.get","name":"get","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":142,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Canonical descriptors are sealed. Accessing a field reads captured data.\n "],"declarations":[{"kind":"function","text":"val get : ('entity, 'value) t -> 'entity -> 'value","source":{"file":"lib/libtmux.mli","line":142,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field","doc":{"summary":"Canonical descriptors are sealed. Accessing a field reads captured data."},"signatures":[{"raw":"val get : ('entity, 'value) t -> 'entity -> 'value","params":[{"name":"arg1","type":"('entity, 'value) t"},{"name":"arg2","type":"'entity"}],"returns":"'value"}],"slug":"libtmux-field-get"},{"id":"Libtmux.Field.kind","publicId":"Libtmux.Field.kind","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":140,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : ('entity, 'value) t -> 'value kind","source":{"file":"lib/libtmux.mli","line":140,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val kind : ('entity, 'value) t -> 'value kind","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"'value kind"}],"slug":"libtmux-field-kind"},{"id":"Libtmux.Field.kind:type","publicId":"Libtmux.Field.kind:type","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","params":[]}],"slug":"libtmux-field-kind-type"},{"id":"Libtmux.Field.kind:type.Bool","publicId":"Libtmux.Field.kind:type.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool : bool kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Bool","slug":"libtmux-field-kind-type-bool"},{"id":"Libtmux.Field.kind:type.Int","publicId":"Libtmux.Field.kind:type.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int : int kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Int","slug":"libtmux-field-kind-type-int"},{"id":"Libtmux.Field.kind:type.Text","publicId":"Libtmux.Field.kind:type.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text : string kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Text","slug":"libtmux-field-kind-type-text"},{"id":"Libtmux.Field.name","publicId":"Libtmux.Field.name","qualifiedName":"Libtmux.Field.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":139,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('entity, 'value) t -> string","source":{"file":"lib/libtmux.mli","line":139,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val name : ('entity, 'value) t -> string","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"string"}],"slug":"libtmux-field-name"},{"id":"Libtmux.Field.packed","publicId":"Libtmux.Field.packed","qualifiedName":"Libtmux.Field.packed","name":"packed","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","params":[]}],"slug":"libtmux-field-packed"},{"id":"Libtmux.Field.packed.Pack","publicId":"Libtmux.Field.packed.Pack","name":"Pack","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field.packed","variant":"tuple","qualifiedName":"Libtmux.Field.Pack","slug":"libtmux-field-packed-pack"},{"id":"Libtmux.Field.t","publicId":"Libtmux.Field.t","qualifiedName":"Libtmux.Field.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('entity, 'value) t","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type ('entity, 'value) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-field-t"},{"id":"Libtmux.Formats","publicId":"Libtmux.Formats","qualifiedName":"Libtmux.Formats","name":"Formats","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":473,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Formats : sig\n module Kind : sig\n type t = Text | Timestamp\n end\n\n module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }\n (** Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. *)\n\n type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t\n\n type scalar = Bool of bool | Int of int | Text of string\n\n type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported\n (** [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor option, Error.t) result\n\n val lookup :\n version:string -> observation -> string -> (state, Error.t) result\n (** No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. *)\nend","source":{"file":"lib/libtmux.mli","line":473,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-formats"},{"id":"Libtmux.Formats.Context","publicId":"Libtmux.Formats.Context","qualifiedName":"Libtmux.Formats.Context","name":"Context","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":478,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end","source":{"file":"lib/libtmux.mli","line":478,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-context"},{"id":"Libtmux.Formats.Context.t","publicId":"Libtmux.Formats.Context.t","qualifiedName":"Libtmux.Formats.Context.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":479,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","source":{"file":"lib/libtmux.mli","line":479,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context","signatures":[{"raw":"type t =\n Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","params":[]}],"slug":"libtmux-formats-context-t"},{"id":"Libtmux.Formats.Context.t.Buffer","publicId":"Libtmux.Formats.Context.t.Buffer","name":"Buffer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":487,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Buffer","source":{"file":"lib/libtmux.mli","line":487,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Buffer","slug":"libtmux-formats-context-t-buffer"},{"id":"Libtmux.Formats.Context.t.Client","publicId":"Libtmux.Formats.Context.t.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":486,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client","source":{"file":"lib/libtmux.mli","line":486,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Client","slug":"libtmux-formats-context-t-client"},{"id":"Libtmux.Formats.Context.t.Command","publicId":"Libtmux.Formats.Context.t.Command","name":"Command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":489,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command","source":{"file":"lib/libtmux.mli","line":489,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Command","slug":"libtmux-formats-context-t-command"},{"id":"Libtmux.Formats.Context.t.Connection","publicId":"Libtmux.Formats.Context.t.Connection","name":"Connection","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Connection","source":{"file":"lib/libtmux.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Connection","slug":"libtmux-formats-context-t-connection"},{"id":"Libtmux.Formats.Context.t.Mouse","publicId":"Libtmux.Formats.Context.t.Mouse","name":"Mouse","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":488,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mouse","source":{"file":"lib/libtmux.mli","line":488,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Mouse","slug":"libtmux-formats-context-t-mouse"},{"id":"Libtmux.Formats.Context.t.Pane","publicId":"Libtmux.Formats.Context.t.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane","source":{"file":"lib/libtmux.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Pane","slug":"libtmux-formats-context-t-pane"},{"id":"Libtmux.Formats.Context.t.Server","publicId":"Libtmux.Formats.Context.t.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":480,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":480,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Server","slug":"libtmux-formats-context-t-server"},{"id":"Libtmux.Formats.Context.t.Session","publicId":"Libtmux.Formats.Context.t.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":482,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session","source":{"file":"lib/libtmux.mli","line":482,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Session","slug":"libtmux-formats-context-t-session"},{"id":"Libtmux.Formats.Context.t.Window","publicId":"Libtmux.Formats.Context.t.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":483,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window","source":{"file":"lib/libtmux.mli","line":483,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window","slug":"libtmux-formats-context-t-window"},{"id":"Libtmux.Formats.Context.t.Window_link","publicId":"Libtmux.Formats.Context.t.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link","source":{"file":"lib/libtmux.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window_link","slug":"libtmux-formats-context-t-window_link"},{"id":"Libtmux.Formats.Kind","publicId":"Libtmux.Formats.Kind","qualifiedName":"Libtmux.Formats.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":474,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Timestamp\n end","source":{"file":"lib/libtmux.mli","line":474,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-kind"},{"id":"Libtmux.Formats.Kind.t","publicId":"Libtmux.Formats.Kind.t","qualifiedName":"Libtmux.Formats.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Timestamp","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Kind","signatures":[{"raw":"type t = Text | Timestamp","params":[]}],"slug":"libtmux-formats-kind-t"},{"id":"Libtmux.Formats.Kind.t.Text","publicId":"Libtmux.Formats.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Text","slug":"libtmux-formats-kind-t-text"},{"id":"Libtmux.Formats.Kind.t.Timestamp","publicId":"Libtmux.Formats.Kind.t.Timestamp","name":"Timestamp","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Timestamp","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Timestamp","slug":"libtmux-formats-kind-t-timestamp"},{"id":"Libtmux.Formats.catalog","publicId":"Libtmux.Formats.catalog","qualifiedName":"Libtmux.Formats.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":524,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":524,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-formats-catalog"},{"id":"Libtmux.Formats.describe","publicId":"Libtmux.Formats.describe","qualifiedName":"Libtmux.Formats.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor option, Error.t) result","source":{"file":"lib/libtmux.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val describe :\n version:string -> string -> (descriptor option, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor option, Error.t) result"}],"slug":"libtmux-formats-describe"},{"id":"Libtmux.Formats.descriptor","publicId":"Libtmux.Formats.descriptor","qualifiedName":"Libtmux.Formats.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":492,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":492,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","doc":{"summary":"Metadata generated from pinned tmux format callbacks. `contexts` lists direct context dependencies, not a promise that a value exists. Caller variables from hooks and menus are outside this built-in catalog."},"signatures":[{"raw":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n}","params":[]}],"slug":"libtmux-formats-descriptor"},{"id":"Libtmux.Formats.descriptor.contexts","publicId":"Libtmux.Formats.descriptor.contexts","name":"contexts","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"contexts : Context.t list;","source":{"file":"lib/libtmux.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.descriptor","type":"Context.t list","qualifiedName":"Libtmux.Formats.contexts","slug":"libtmux-formats-descriptor-contexts"},{"id":"Libtmux.Formats.descriptor.kind","publicId":"Libtmux.Formats.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":494,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":494,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Formats.kind","slug":"libtmux-formats-descriptor-kind"},{"id":"Libtmux.Formats.descriptor.name","publicId":"Libtmux.Formats.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":493,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":493,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.descriptor","type":"string","qualifiedName":"Libtmux.Formats.name","slug":"libtmux-formats-descriptor-name"},{"id":"Libtmux.Formats.descriptor.versions","publicId":"Libtmux.Formats.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":496,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":496,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.descriptor","type":"string list","qualifiedName":"Libtmux.Formats.versions","slug":"libtmux-formats-descriptor-versions"},{"id":"Libtmux.Formats.lookup","publicId":"Libtmux.Formats.lookup","qualifiedName":"Libtmux.Formats.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":527,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. "],"declarations":[{"kind":"function","text":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","source":{"file":"lib/libtmux.mli","line":527,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","doc":{"summary":"No I/O. Supply the version recorded by the acquiring client's `version` accessor. Unsupported catalog versions return an error. Native typed accessors remain the primary API; lookup does not acquire extra fields."},"signatures":[{"raw":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"observation"},{"name":"arg2","type":"string"}],"returns":"(state, Error.t) result"}],"slug":"libtmux-formats-lookup"},{"id":"Libtmux.Formats.observation","publicId":"Libtmux.Formats.observation","qualifiedName":"Libtmux.Formats.observation","name":"observation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type observation =\n Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","params":[]}],"slug":"libtmux-formats-observation"},{"id":"Libtmux.Formats.observation.Client","publicId":"Libtmux.Formats.observation.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":508,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":508,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Client","slug":"libtmux-formats-observation-client"},{"id":"Libtmux.Formats.observation.Pane","publicId":"Libtmux.Formats.observation.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":507,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.t","source":{"file":"lib/libtmux.mli","line":507,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Pane","slug":"libtmux-formats-observation-pane"},{"id":"Libtmux.Formats.observation.Session","publicId":"Libtmux.Formats.observation.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":504,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.t","source":{"file":"lib/libtmux.mli","line":504,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Session","slug":"libtmux-formats-observation-session"},{"id":"Libtmux.Formats.observation.Snapshot","publicId":"Libtmux.Formats.observation.Snapshot","name":"Snapshot","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Snapshot of Snapshot.t","source":{"file":"lib/libtmux.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Snapshot","slug":"libtmux-formats-observation-snapshot"},{"id":"Libtmux.Formats.observation.Window","publicId":"Libtmux.Formats.observation.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.t","source":{"file":"lib/libtmux.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window","slug":"libtmux-formats-observation-window"},{"id":"Libtmux.Formats.observation.Window_link","publicId":"Libtmux.Formats.observation.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":506,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link of Window_link.t","source":{"file":"lib/libtmux.mli","line":506,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window_link","slug":"libtmux-formats-observation-window_link"},{"id":"Libtmux.Formats.scalar","publicId":"Libtmux.Formats.scalar","qualifiedName":"Libtmux.Formats.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar = Bool of bool | Int of int | Text of string","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type scalar = Bool of bool | Int of int | Text of string","params":[]}],"slug":"libtmux-formats-scalar"},{"id":"Libtmux.Formats.scalar.Bool","publicId":"Libtmux.Formats.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool of bool","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Bool","slug":"libtmux-formats-scalar-bool"},{"id":"Libtmux.Formats.scalar.Int","publicId":"Libtmux.Formats.scalar.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int of int","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Int","slug":"libtmux-formats-scalar-int"},{"id":"Libtmux.Formats.scalar.Text","publicId":"Libtmux.Formats.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Text","slug":"libtmux-formats-scalar-text"},{"id":"Libtmux.Formats.state","publicId":"Libtmux.Formats.state","qualifiedName":"Libtmux.Formats.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported","source":{"file":"lib/libtmux.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type state = Value of scalar | Missing | Unacquired | Unsupported","params":[]}],"slug":"libtmux-formats-state"},{"id":"Libtmux.Formats.state.Missing","publicId":"Libtmux.Formats.state.Missing","name":"Missing","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":514,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing","source":{"file":"lib/libtmux.mli","line":514,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Missing","slug":"libtmux-formats-state-missing"},{"id":"Libtmux.Formats.state.Unacquired","publicId":"Libtmux.Formats.state.Unacquired","name":"Unacquired","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":515,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unacquired","source":{"file":"lib/libtmux.mli","line":515,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Unacquired","slug":"libtmux-formats-state-unacquired"},{"id":"Libtmux.Formats.state.Unsupported","publicId":"Libtmux.Formats.state.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":516,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. "],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"lib/libtmux.mli","line":516,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.state","doc":{"summary":"`Missing` is an absence explicitly recorded in the observation, such as a client without terminal height. `Unacquired` means no captured value for this observation, including ambiguous session context for a pane. `Unsupported` means the name is outside the selected release's catalog. `Value (Text \"\")` is a captured empty string, never inferred absence."},"variant":"unit","qualifiedName":"Libtmux.Formats.Unsupported","slug":"libtmux-formats-state-unsupported"},{"id":"Libtmux.Formats.state.Value","publicId":"Libtmux.Formats.state.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":513,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Value of scalar","source":{"file":"lib/libtmux.mli","line":513,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Formats.state","variant":"tuple","qualifiedName":"Libtmux.Formats.Value","slug":"libtmux-formats-state-value"},{"id":"Libtmux.Generation","publicId":"Libtmux.Generation","qualifiedName":"Libtmux.Generation","name":"Generation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A random connection-generation identifier. Reconnecting creates a new\n generation even when the socket and server PID are unchanged. "],"declarations":[{"kind":"module","text":"module Generation : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"A random connection-generation identifier. Reconnecting creates a new generation even when the socket and server PID are unchanged."},"slug":"libtmux-generation"},{"id":"Libtmux.Generation.equal","publicId":"Libtmux.Generation.equal","qualifiedName":"Libtmux.Generation.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":87,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":87,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-generation-equal"},{"id":"Libtmux.Generation.of_string","publicId":"Libtmux.Generation.of_string","qualifiedName":"Libtmux.Generation.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Generation","doc":{"summary":"Import a 256-bit connection nonce as 64 lowercase hexadecimal characters. Backends generate a fresh random nonce for each connection."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-generation-of_string"},{"id":"Libtmux.Generation.t","publicId":"Libtmux.Generation.t","qualifiedName":"Libtmux.Generation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-generation-t"},{"id":"Libtmux.Generation.to_string","publicId":"Libtmux.Generation.to_string","qualifiedName":"Libtmux.Generation.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-generation-to_string"},{"id":"Libtmux.Geometry","publicId":"Libtmux.Geometry","qualifiedName":"Libtmux.Geometry","name":"Geometry","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":740,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Geometry : sig\n type direction = Left | Right | Above | Below\n type size = Cells of int | Percent of int\nend","source":{"file":"lib/libtmux.mli","line":740,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-geometry"},{"id":"Libtmux.Geometry.direction","publicId":"Libtmux.Geometry.direction","qualifiedName":"Libtmux.Geometry.direction","name":"direction","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type direction = Left | Right | Above | Below","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type direction = Left | Right | Above | Below","params":[]}],"slug":"libtmux-geometry-direction"},{"id":"Libtmux.Geometry.direction.Above","publicId":"Libtmux.Geometry.direction.Above","name":"Above","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Above","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Above","slug":"libtmux-geometry-direction-above"},{"id":"Libtmux.Geometry.direction.Below","publicId":"Libtmux.Geometry.direction.Below","name":"Below","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Below","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Below","slug":"libtmux-geometry-direction-below"},{"id":"Libtmux.Geometry.direction.Left","publicId":"Libtmux.Geometry.direction.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Left","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Left","slug":"libtmux-geometry-direction-left"},{"id":"Libtmux.Geometry.direction.Right","publicId":"Libtmux.Geometry.direction.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Right","slug":"libtmux-geometry-direction-right"},{"id":"Libtmux.Geometry.size","publicId":"Libtmux.Geometry.size","qualifiedName":"Libtmux.Geometry.size","name":"size","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type size = Cells of int | Percent of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type size = Cells of int | Percent of int","params":[]}],"slug":"libtmux-geometry-size"},{"id":"Libtmux.Geometry.size.Cells","publicId":"Libtmux.Geometry.size.Cells","name":"Cells","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Cells of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Cells","slug":"libtmux-geometry-size-cells"},{"id":"Libtmux.Geometry.size.Percent","publicId":"Libtmux.Geometry.size.Percent","name":"Percent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Percent of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Percent","slug":"libtmux-geometry-size-percent"},{"id":"Libtmux.Hook","publicId":"Libtmux.Hook","qualifiedName":"Libtmux.Hook","name":"Hook","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Hook : sig\n type command = { name : string; arguments : string list }\n (** A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. *)\nend","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-hook"},{"id":"Libtmux.Hook.command","publicId":"Libtmux.Hook.command","qualifiedName":"Libtmux.Hook.command","name":"command","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. "],"declarations":[{"kind":"struct","text":"type command = { name : string; arguments : string list }","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Hook","doc":{"summary":"A tmux command and its distinct arguments. Setting a hook encodes these as command data; it does not concatenate arguments into shell code. Argument-specific tmux behavior, including format expansion, still applies when the hook runs."},"signatures":[{"raw":"type command = { name : string; arguments : string list; }","params":[]}],"slug":"libtmux-hook-command"},{"id":"Libtmux.Hook.command.arguments","publicId":"Libtmux.Hook.command.arguments","name":"arguments","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"arguments : string list","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Hook.command","type":"string list","qualifiedName":"Libtmux.Hook.arguments","slug":"libtmux-hook-command-arguments"},{"id":"Libtmux.Hook.command.name","publicId":"Libtmux.Hook.command.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Hook.command","type":"string","qualifiedName":"Libtmux.Hook.name","slug":"libtmux-hook-command-name"},{"id":"Libtmux.ID","publicId":"Libtmux.ID","qualifiedName":"Libtmux.ID","name":"ID","kind":"interface","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"interface","text":"module type ID = sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Accept a canonical prefixed decimal tmux ID in the uint32 range. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\n val compare : t -> t -> int\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-id"},{"id":"Libtmux.ID.compare","publicId":"Libtmux.ID.compare","qualifiedName":"Libtmux.ID.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-id-compare"},{"id":"Libtmux.ID.equal","publicId":"Libtmux.ID.equal","qualifiedName":"Libtmux.ID.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-id-equal"},{"id":"Libtmux.ID.of_string","publicId":"Libtmux.ID.of_string","qualifiedName":"Libtmux.ID.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.ID","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-id-of_string"},{"id":"Libtmux.ID.pp","publicId":"Libtmux.ID.pp","qualifiedName":"Libtmux.ID.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-id-pp"},{"id":"Libtmux.ID.t","publicId":"Libtmux.ID.t","qualifiedName":"Libtmux.ID.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.ID","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-id-t"},{"id":"Libtmux.ID.to_string","publicId":"Libtmux.ID.to_string","qualifiedName":"Libtmux.ID.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-id-to_string"},{"id":"Libtmux.Key","publicId":"Libtmux.Key","qualifiedName":"Libtmux.Key","name":"Key","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":702,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Key : sig\n type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char\nend","source":{"file":"lib/libtmux.mli","line":702,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-key"},{"id":"Libtmux.Key.t","publicId":"Libtmux.Key.t","qualifiedName":"Libtmux.Key.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":703,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","source":{"file":"lib/libtmux.mli","line":703,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key","signatures":[{"raw":"type t =\n Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","params":[]}],"slug":"libtmux-key-t"},{"id":"Libtmux.Key.t.Backspace","publicId":"Libtmux.Key.t.Backspace","name":"Backspace","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":707,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Backspace","source":{"file":"lib/libtmux.mli","line":707,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Backspace","slug":"libtmux-key-t-backspace"},{"id":"Libtmux.Key.t.Control","publicId":"Libtmux.Key.t.Control","name":"Control","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Control of char","source":{"file":"lib/libtmux.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"tuple","qualifiedName":"Libtmux.Key.Control","slug":"libtmux-key-t-control"},{"id":"Libtmux.Key.t.Down","publicId":"Libtmux.Key.t.Down","name":"Down","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":709,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Down","source":{"file":"lib/libtmux.mli","line":709,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Down","slug":"libtmux-key-t-down"},{"id":"Libtmux.Key.t.Enter","publicId":"Libtmux.Key.t.Enter","name":"Enter","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":704,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Enter","source":{"file":"lib/libtmux.mli","line":704,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Enter","slug":"libtmux-key-t-enter"},{"id":"Libtmux.Key.t.Escape","publicId":"Libtmux.Key.t.Escape","name":"Escape","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":706,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Escape","source":{"file":"lib/libtmux.mli","line":706,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Escape","slug":"libtmux-key-t-escape"},{"id":"Libtmux.Key.t.Left","publicId":"Libtmux.Key.t.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":710,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Left","source":{"file":"lib/libtmux.mli","line":710,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Left","slug":"libtmux-key-t-left"},{"id":"Libtmux.Key.t.Right","publicId":"Libtmux.Key.t.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":711,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":711,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Right","slug":"libtmux-key-t-right"},{"id":"Libtmux.Key.t.Tab","publicId":"Libtmux.Key.t.Tab","name":"Tab","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":705,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tab","source":{"file":"lib/libtmux.mli","line":705,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Tab","slug":"libtmux-key-t-tab"},{"id":"Libtmux.Key.t.Up","publicId":"Libtmux.Key.t.Up","name":"Up","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":708,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Up","source":{"file":"lib/libtmux.mli","line":708,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Up","slug":"libtmux-key-t-up"},{"id":"Libtmux.Layout","publicId":"Libtmux.Layout","qualifiedName":"Libtmux.Layout","name":"Layout","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":745,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Layout : sig\n type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string\nend","source":{"file":"lib/libtmux.mli","line":745,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","slug":"libtmux-layout"},{"id":"Libtmux.Layout.t","publicId":"Libtmux.Layout.t","qualifiedName":"Libtmux.Layout.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":746,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","source":{"file":"lib/libtmux.mli","line":746,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout","signatures":[{"raw":"type t =\n Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","params":[]}],"slug":"libtmux-layout-t"},{"id":"Libtmux.Layout.t.Custom","publicId":"Libtmux.Layout.t.Custom","name":"Custom","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":752,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Custom of string","source":{"file":"lib/libtmux.mli","line":752,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout.t","variant":"tuple","qualifiedName":"Libtmux.Layout.Custom","slug":"libtmux-layout-t-custom"},{"id":"Libtmux.Layout.t.Even_horizontal","publicId":"Libtmux.Layout.t.Even_horizontal","name":"Even_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":747,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_horizontal","source":{"file":"lib/libtmux.mli","line":747,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_horizontal","slug":"libtmux-layout-t-even_horizontal"},{"id":"Libtmux.Layout.t.Even_vertical","publicId":"Libtmux.Layout.t.Even_vertical","name":"Even_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":748,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_vertical","source":{"file":"lib/libtmux.mli","line":748,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_vertical","slug":"libtmux-layout-t-even_vertical"},{"id":"Libtmux.Layout.t.Main_horizontal","publicId":"Libtmux.Layout.t.Main_horizontal","name":"Main_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":749,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_horizontal","source":{"file":"lib/libtmux.mli","line":749,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_horizontal","slug":"libtmux-layout-t-main_horizontal"},{"id":"Libtmux.Layout.t.Main_vertical","publicId":"Libtmux.Layout.t.Main_vertical","name":"Main_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":750,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_vertical","source":{"file":"lib/libtmux.mli","line":750,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_vertical","slug":"libtmux-layout-t-main_vertical"},{"id":"Libtmux.Layout.t.Tiled","publicId":"Libtmux.Layout.t.Tiled","name":"Tiled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":751,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tiled","source":{"file":"lib/libtmux.mli","line":751,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Tiled","slug":"libtmux-layout-t-tiled"},{"id":"Libtmux.Model","publicId":"Libtmux.Model","qualifiedName":"Libtmux.Model","name":"Model","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":536,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Built-in model witnesses and canonical field lookup for typed codecs.\n Untrusted field names must resolve against the selected model. "],"declarations":[{"kind":"module","text":"module Model : sig\n type 'a t\n\n val session : Session.t t\n val window : Window.t t\n val window_link : Window_link.t t\n val pane : Pane.t t\n val client : Client_observation.t t\n val name : 'a t -> string\n val fields : 'a t -> 'a Field.packed list\n val find_field : 'a t -> string -> 'a Field.packed option\nend","source":{"file":"lib/libtmux.mli","line":536,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Built-in model witnesses and canonical field lookup for typed codecs. Untrusted field names must resolve against the selected model."},"slug":"libtmux-model"},{"id":"Libtmux.Model.client","publicId":"Libtmux.Model.client","qualifiedName":"Libtmux.Model.client","name":"client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":543,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val client : Client_observation.t t","source":{"file":"lib/libtmux.mli","line":543,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val client : Client_observation.t t","params":[],"returns":"Client_observation.t t"}],"slug":"libtmux-model-client"},{"id":"Libtmux.Model.fields","publicId":"Libtmux.Model.fields","qualifiedName":"Libtmux.Model.fields","name":"fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":545,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val fields : 'a t -> 'a Field.packed list","source":{"file":"lib/libtmux.mli","line":545,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val fields : 'a t -> 'a Field.packed list","params":[{"name":"arg1","type":"'a t"}],"returns":"'a Field.packed list"}],"slug":"libtmux-model-fields"},{"id":"Libtmux.Model.find_field","publicId":"Libtmux.Model.find_field","qualifiedName":"Libtmux.Model.find_field","name":"find_field","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_field : 'a t -> string -> 'a Field.packed option","source":{"file":"lib/libtmux.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val find_field : 'a t -> string -> 'a Field.packed option","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"string"}],"returns":"'a Field.packed option"}],"slug":"libtmux-model-find_field"},{"id":"Libtmux.Model.name","publicId":"Libtmux.Model.name","qualifiedName":"Libtmux.Model.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":544,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : 'a t -> string","source":{"file":"lib/libtmux.mli","line":544,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val name : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-model-name"},{"id":"Libtmux.Model.pane","publicId":"Libtmux.Model.pane","qualifiedName":"Libtmux.Model.pane","name":"pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pane : Pane.t t","source":{"file":"lib/libtmux.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val pane : Pane.t t","params":[],"returns":"Pane.t t"}],"slug":"libtmux-model-pane"},{"id":"Libtmux.Model.session","publicId":"Libtmux.Model.session","qualifiedName":"Libtmux.Model.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":539,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : Session.t t","source":{"file":"lib/libtmux.mli","line":539,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val session : Session.t t","params":[],"returns":"Session.t t"}],"slug":"libtmux-model-session"},{"id":"Libtmux.Model.t","publicId":"Libtmux.Model.t","qualifiedName":"Libtmux.Model.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-model-t"},{"id":"Libtmux.Model.window","publicId":"Libtmux.Model.window","qualifiedName":"Libtmux.Model.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":540,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : Window.t t","source":{"file":"lib/libtmux.mli","line":540,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window : Window.t t","params":[],"returns":"Window.t t"}],"slug":"libtmux-model-window"},{"id":"Libtmux.Model.window_link","publicId":"Libtmux.Model.window_link","qualifiedName":"Libtmux.Model.window_link","name":"window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":541,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_link : Window_link.t t","source":{"file":"lib/libtmux.mli","line":541,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window_link : Window_link.t t","params":[],"returns":"Window_link.t t"}],"slug":"libtmux-model-window_link"},{"id":"Libtmux.Operations","publicId":"Libtmux.Operations","qualifiedName":"Libtmux.Operations","name":"Operations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1051,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Construct typed tmux operations for a backend client. Observations are\n immutable, mutations use explicit targets, and no command retries a mutation\n against another connection generation. Construction performs no I/O; the\n descriptions below state what execution does. "],"declarations":[{"kind":"module","text":"module Operations : sig\n val capture : unit -> Snapshot.t Command.t\n (** Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. *)\n\n val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t\n (** Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. *)\n\n val rename_window : Window.target -> name:string -> unit Command.t\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session : Session.target -> name:string -> unit Command.t\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at : Client_name.t -> unit Command.t\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text : Pane.target -> text:string -> unit Command.t\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys : Pane.target -> Key.t list -> unit Command.t\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : string -> unit Command.t\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : string -> unit Command.t\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment : Environment.scope -> string -> unit Command.t\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment : Environment.scope -> string -> unit Command.t\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array : Options.scope -> string -> unit Command.t\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks : Options.scope -> Options.t Command.t\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. *)\n\n val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook : Options.scope -> string -> unit Command.t\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session : Session.target -> unit Command.t\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : Window.target -> unit Command.t\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : Pane.target -> unit Command.t\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at : Session.target -> index:int -> unit Command.t\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : Pane.target -> unit Command.t\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title : Pane.target -> title:string -> unit Command.t\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout : Window.target -> Layout.t -> unit Command.t\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes : Pane.target -> Pane.target -> unit Command.t\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : Pane.target -> unit Command.t\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : Pane.target -> unit Command.t\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\nend","source":{"file":"lib/libtmux.mli","line":1051,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Construct typed tmux operations for a backend client. Observations are immutable, mutations use explicit targets, and no command retries a mutation against another connection generation. Construction performs no I/O; the descriptions below state what execution does."},"slug":"libtmux-operations"},{"id":"Libtmux.Operations.break_pane","publicId":"Libtmux.Operations.break_pane","qualifiedName":"Libtmux.Operations.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1235,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n Pane.target -> session:Session.target -> index:int -> Created.t Command.t","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-break_pane"},{"id":"Libtmux.Operations.capture","publicId":"Libtmux.Operations.capture","qualifiedName":"Libtmux.Operations.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1052,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. "],"declarations":[{"kind":"function","text":"val capture : unit -> Snapshot.t Command.t","source":{"file":"lib/libtmux.mli","line":1052,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture and validate the complete session/window-link/pane graph. The result records an acquisition interval, not an atomic server instant."},"signatures":[{"raw":"val capture : unit -> Snapshot.t Command.t","params":[{"name":"arg1","type":"unit"}],"returns":"Snapshot.t Command.t"}],"slug":"libtmux-operations-capture"},{"id":"Libtmux.Operations.capture_environment","publicId":"Libtmux.Operations.capture_environment","qualifiedName":"Libtmux.Operations.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1110,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","source":{"file":"lib/libtmux.mli","line":1110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"}],"returns":"Environment.t Command.t"}],"slug":"libtmux-operations-capture_environment"},{"id":"Libtmux.Operations.capture_hooks","publicId":"Libtmux.Operations.capture_hooks","qualifiedName":"Libtmux.Operations.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1168,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks : Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks : Options.scope -> Options.t Command.t","params":[{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_hooks"},{"id":"Libtmux.Operations.capture_options","publicId":"Libtmux.Operations.capture_options","qualifiedName":"Libtmux.Operations.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1130,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_options"},{"id":"Libtmux.Operations.capture_text","publicId":"Libtmux.Operations.capture_text","qualifiedName":"Libtmux.Operations.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1056,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t","source":{"file":"lib/libtmux.mli","line":1056,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture inclusive visible rows through an operation-owned temporary file. Require `0 <= start <= end_ < Pane.height pane`; scrollback is excluded. Retained bytes survive client close. The scratch directory must share the daemon filesystem."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n Pane.t -> start:int -> end_:int -> Captured_text.t Command.t","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"Captured_text.t Command.t"}],"slug":"libtmux-operations-capture_text"},{"id":"Libtmux.Operations.clear_history","publicId":"Libtmux.Operations.clear_history","qualifiedName":"Libtmux.Operations.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1333,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_history"},{"id":"Libtmux.Operations.clear_option_array","publicId":"Libtmux.Operations.clear_option_array","qualifiedName":"Libtmux.Operations.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1165,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_option_array"},{"id":"Libtmux.Operations.create_session","publicId":"Libtmux.Operations.create_session","qualifiedName":"Libtmux.Operations.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1207,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int -> ?spawn:Spawn.t -> name:string -> unit -> Created.t Command.t","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_session"},{"id":"Libtmux.Operations.create_window","publicId":"Libtmux.Operations.create_window","qualifiedName":"Libtmux.Operations.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1217,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string -> ?spawn:Spawn.t -> Session.target -> Created.t Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_window"},{"id":"Libtmux.Operations.cycle_layout","publicId":"Libtmux.Operations.cycle_layout","qualifiedName":"Libtmux.Operations.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1303,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1303,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Next | `Previous ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-cycle_layout"},{"id":"Libtmux.Operations.kill_pane","publicId":"Libtmux.Operations.kill_pane","qualifiedName":"Libtmux.Operations.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1253,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_pane"},{"id":"Libtmux.Operations.kill_session","publicId":"Libtmux.Operations.kill_session","qualifiedName":"Libtmux.Operations.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1245,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session : Session.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session : Session.target -> unit Command.t","params":[{"name":"arg1","type":"Session.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_session"},{"id":"Libtmux.Operations.kill_window","publicId":"Libtmux.Operations.kill_window","qualifiedName":"Libtmux.Operations.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1249,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window : Window.target -> unit Command.t","params":[{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_window"},{"id":"Libtmux.Operations.link_window","publicId":"Libtmux.Operations.link_window","qualifiedName":"Libtmux.Operations.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1266,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-link_window"},{"id":"Libtmux.Operations.move_pane","publicId":"Libtmux.Operations.move_pane","qualifiedName":"Libtmux.Operations.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1306,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target -> direction:Geometry.direction -> unit Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"beside","type":"Pane.target","keywordOnly":true},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_pane"},{"id":"Libtmux.Operations.move_window_at","publicId":"Libtmux.Operations.move_window_at","qualifiedName":"Libtmux.Operations.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1271,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1271,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n Session.target ->\n from_index:int -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_window_at"},{"id":"Libtmux.Operations.read_hook","publicId":"Libtmux.Operations.read_hook","qualifiedName":"Libtmux.Operations.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1172,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_hook"},{"id":"Libtmux.Operations.read_option","publicId":"Libtmux.Operations.read_option","qualifiedName":"Libtmux.Operations.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1138,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1138,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_option"},{"id":"Libtmux.Operations.refresh_client_at","publicId":"Libtmux.Operations.refresh_client_at","qualifiedName":"Libtmux.Operations.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1089,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1089,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-refresh_client_at"},{"id":"Libtmux.Operations.remove_environment","publicId":"Libtmux.Operations.remove_environment","qualifiedName":"Libtmux.Operations.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1127,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_environment"},{"id":"Libtmux.Operations.remove_hook","publicId":"Libtmux.Operations.remove_hook","qualifiedName":"Libtmux.Operations.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1195,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_hook"},{"id":"Libtmux.Operations.rename_session","publicId":"Libtmux.Operations.rename_session","qualifiedName":"Libtmux.Operations.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1071,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session : Session.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1071,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session : Session.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_session"},{"id":"Libtmux.Operations.rename_window","publicId":"Libtmux.Operations.rename_window","qualifiedName":"Libtmux.Operations.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1067,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window : Window.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1067,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window : Window.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_window"},{"id":"Libtmux.Operations.request_detach_client_at","publicId":"Libtmux.Operations.request_detach_client_at","qualifiedName":"Libtmux.Operations.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1084,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at : Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1084,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at : Client_name.t -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-request_detach_client_at"},{"id":"Libtmux.Operations.resize_control_client_at","publicId":"Libtmux.Operations.resize_control_client_at","qualifiedName":"Libtmux.Operations.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1092,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1092,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_control_client_at"},{"id":"Libtmux.Operations.resize_pane","publicId":"Libtmux.Operations.resize_pane","qualifiedName":"Libtmux.Operations.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1288,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_pane"},{"id":"Libtmux.Operations.resize_window","publicId":"Libtmux.Operations.resize_window","qualifiedName":"Libtmux.Operations.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1293,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_window"},{"id":"Libtmux.Operations.respawn_pane","publicId":"Libtmux.Operations.respawn_pane","qualifiedName":"Libtmux.Operations.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1327,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Spawn.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-respawn_pane"},{"id":"Libtmux.Operations.rotate_panes","publicId":"Libtmux.Operations.rotate_panes","qualifiedName":"Libtmux.Operations.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1320,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n Window.target -> [ `Backward | `Forward ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Backward | `Forward ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rotate_panes"},{"id":"Libtmux.Operations.run_hook","publicId":"Libtmux.Operations.run_hook","qualifiedName":"Libtmux.Operations.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1199,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-run_hook"},{"id":"Libtmux.Operations.select_layout","publicId":"Libtmux.Operations.select_layout","qualifiedName":"Libtmux.Operations.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1299,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout : Window.target -> Layout.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout : Window.target -> Layout.t -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"Layout.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_layout"},{"id":"Libtmux.Operations.select_pane","publicId":"Libtmux.Operations.select_pane","qualifiedName":"Libtmux.Operations.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1280,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1280,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_pane"},{"id":"Libtmux.Operations.select_window_at","publicId":"Libtmux.Operations.select_window_at","qualifiedName":"Libtmux.Operations.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1257,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at : Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at : Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_window_at"},{"id":"Libtmux.Operations.send_keys","publicId":"Libtmux.Operations.send_keys","qualifiedName":"Libtmux.Operations.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1099,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys : Pane.target -> Key.t list -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1099,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys : Pane.target -> Key.t list -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Key.t list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_keys"},{"id":"Libtmux.Operations.send_text","publicId":"Libtmux.Operations.send_text","qualifiedName":"Libtmux.Operations.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1096,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text : Pane.target -> text:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1096,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text : Pane.target -> text:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_text"},{"id":"Libtmux.Operations.set_environment","publicId":"Libtmux.Operations.set_environment","qualifiedName":"Libtmux.Operations.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1117,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n Environment.scope -> name:string -> string -> unit Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_environment"},{"id":"Libtmux.Operations.set_hook","publicId":"Libtmux.Operations.set_hook","qualifiedName":"Libtmux.Operations.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1180,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1180,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Hook.command list -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Hook.command list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_hook"},{"id":"Libtmux.Operations.set_option","publicId":"Libtmux.Operations.set_option","qualifiedName":"Libtmux.Operations.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1148,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Options.scalar -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Options.scalar"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_option"},{"id":"Libtmux.Operations.set_pane_title","publicId":"Libtmux.Operations.set_pane_title","qualifiedName":"Libtmux.Operations.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1284,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title : Pane.target -> title:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1284,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title : Pane.target -> title:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_pane_title"},{"id":"Libtmux.Operations.signal","publicId":"Libtmux.Operations.signal","qualifiedName":"Libtmux.Operations.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1106,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-signal"},{"id":"Libtmux.Operations.split_pane","publicId":"Libtmux.Operations.split_pane","qualifiedName":"Libtmux.Operations.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1225,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target -> direction:Geometry.direction -> Created.t Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-split_pane"},{"id":"Libtmux.Operations.swap_panes","publicId":"Libtmux.Operations.swap_panes","qualifiedName":"Libtmux.Operations.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1316,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-swap_panes"},{"id":"Libtmux.Operations.switch_client_at","publicId":"Libtmux.Operations.switch_client_at","qualifiedName":"Libtmux.Operations.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1075,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1075,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t -> session:Session.target -> unit Command.t","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"},{"name":"session","type":"Session.target","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-switch_client_at"},{"id":"Libtmux.Operations.unlink_window_at","publicId":"Libtmux.Operations.unlink_window_at","qualifiedName":"Libtmux.Operations.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1261,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unlink_window_at"},{"id":"Libtmux.Operations.unset_environment","publicId":"Libtmux.Operations.unset_environment","qualifiedName":"Libtmux.Operations.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1123,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_environment"},{"id":"Libtmux.Operations.unset_option","publicId":"Libtmux.Operations.unset_option","qualifiedName":"Libtmux.Operations.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1161,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1161,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_option"},{"id":"Libtmux.Operations.wait_for","publicId":"Libtmux.Operations.wait_for","qualifiedName":"Libtmux.Operations.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1103,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-wait_for"},{"id":"Libtmux.Operations.zoom_pane","publicId":"Libtmux.Operations.zoom_pane","qualifiedName":"Libtmux.Operations.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1324,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Operations","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-zoom_pane"},{"id":"Libtmux.Options","publicId":"Libtmux.Options","qualifiedName":"Libtmux.Options","name":"Options","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Version-aware option descriptors and captured scoped values. Sparse array\n indexes and inherited entries retain their tmux meaning. "],"declarations":[{"kind":"module","text":"module Options : sig\n module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }\n (** Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. *)\n\n type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target\n\n type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string\n\n type value = Scalar of scalar | Array of (int * scalar) Iarray.t\n type entry = { descriptor : descriptor; value : value; inherited : bool }\n\n type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor, Error.t) result\n\n val lookup : t -> string -> entry option\n (** [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. *)\nend","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Version-aware option descriptors and captured scoped values. Sparse array indexes and inherited entries retain their tmux meaning."},"slug":"libtmux-options"},{"id":"Libtmux.Options.Kind","publicId":"Libtmux.Options.Kind","qualifiedName":"Libtmux.Options.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":797,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end","source":{"file":"lib/libtmux.mli","line":797,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","slug":"libtmux-options-kind"},{"id":"Libtmux.Options.Kind.t","publicId":"Libtmux.Options.Kind.t","qualifiedName":"Libtmux.Options.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind","signatures":[{"raw":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","params":[]}],"slug":"libtmux-options-kind-t"},{"id":"Libtmux.Options.Kind.t.Choice","publicId":"Libtmux.Options.Kind.t.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Choice","slug":"libtmux-options-kind-t-choice"},{"id":"Libtmux.Options.Kind.t.Colour","publicId":"Libtmux.Options.Kind.t.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Colour","slug":"libtmux-options-kind-t-colour"},{"id":"Libtmux.Options.Kind.t.Commands","publicId":"Libtmux.Options.Kind.t.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Commands","slug":"libtmux-options-kind-t-commands"},{"id":"Libtmux.Options.Kind.t.Flag","publicId":"Libtmux.Options.Kind.t.Flag","name":"Flag","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Flag","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Flag","slug":"libtmux-options-kind-t-flag"},{"id":"Libtmux.Options.Kind.t.Key","publicId":"Libtmux.Options.Kind.t.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Key","slug":"libtmux-options-kind-t-key"},{"id":"Libtmux.Options.Kind.t.Number","publicId":"Libtmux.Options.Kind.t.Number","name":"Number","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Number","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Number","slug":"libtmux-options-kind-t-number"},{"id":"Libtmux.Options.Kind.t.Text","publicId":"Libtmux.Options.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Text","slug":"libtmux-options-kind-t-text"},{"id":"Libtmux.Options.catalog","publicId":"Libtmux.Options.catalog","qualifiedName":"Libtmux.Options.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":843,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":843,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-options-catalog"},{"id":"Libtmux.Options.describe","publicId":"Libtmux.Options.describe","qualifiedName":"Libtmux.Options.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":844,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor, Error.t) result","source":{"file":"lib/libtmux.mli","line":844,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val describe : version:string -> string -> (descriptor, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor, Error.t) result"}],"slug":"libtmux-options-describe"},{"id":"Libtmux.Options.descriptor","publicId":"Libtmux.Options.descriptor","qualifiedName":"Libtmux.Options.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":801,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":801,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","doc":{"summary":"Generated upstream descriptors. `versions` lists qualified releases; user options have no built-in release history."},"signatures":[{"raw":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Pane | `Server | `Session | `Window ] list;\n versions : string list;\n}","params":[]}],"slug":"libtmux-options-descriptor"},{"id":"Libtmux.Options.descriptor.array","publicId":"Libtmux.Options.descriptor.array","name":"array","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":804,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"array : bool;","source":{"file":"lib/libtmux.mli","line":804,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.array","slug":"libtmux-options-descriptor-array"},{"id":"Libtmux.Options.descriptor.hook","publicId":"Libtmux.Options.descriptor.hook","name":"hook","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":805,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hook : bool;","source":{"file":"lib/libtmux.mli","line":805,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.hook","slug":"libtmux-options-descriptor-hook"},{"id":"Libtmux.Options.descriptor.kind","publicId":"Libtmux.Options.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":803,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":803,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Options.kind","slug":"libtmux-options-descriptor-kind"},{"id":"Libtmux.Options.descriptor.name","publicId":"Libtmux.Options.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":802,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":802,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.descriptor","type":"string","qualifiedName":"Libtmux.Options.name","slug":"libtmux-options-descriptor-name"},{"id":"Libtmux.Options.descriptor.scopes","publicId":"Libtmux.Options.descriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":806,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scopes : [ `Server | `Session | `Window | `Pane ] list;","source":{"file":"lib/libtmux.mli","line":806,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.descriptor","type":"[ `Pane | `Server | `Session | `Window ] list","qualifiedName":"Libtmux.Options.scopes","slug":"libtmux-options-descriptor-scopes"},{"id":"Libtmux.Options.descriptor.versions","publicId":"Libtmux.Options.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":807,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":807,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.descriptor","type":"string list","qualifiedName":"Libtmux.Options.versions","slug":"libtmux-options-descriptor-versions"},{"id":"Libtmux.Options.entry","publicId":"Libtmux.Options.entry","qualifiedName":"Libtmux.Options.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { descriptor : descriptor; value : value; inherited : bool }","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type entry = { descriptor : descriptor; value : value; inherited : bool; }","params":[]}],"slug":"libtmux-options-entry"},{"id":"Libtmux.Options.entry.descriptor","publicId":"Libtmux.Options.entry.descriptor","name":"descriptor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"descriptor : descriptor;","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.entry","type":"descriptor","qualifiedName":"Libtmux.Options.descriptor","slug":"libtmux-options-entry-descriptor"},{"id":"Libtmux.Options.entry.inherited","publicId":"Libtmux.Options.entry.inherited","name":"inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inherited : bool","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.entry","type":"bool","qualifiedName":"Libtmux.Options.inherited","slug":"libtmux-options-entry-inherited"},{"id":"Libtmux.Options.entry.value","publicId":"Libtmux.Options.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value;","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.entry","type":"value","qualifiedName":"Libtmux.Options.value","slug":"libtmux-options-entry-value"},{"id":"Libtmux.Options.lookup","publicId":"Libtmux.Options.lookup","qualifiedName":"Libtmux.Options.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":846,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> entry option","source":{"file":"lib/libtmux.mli","line":846,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","doc":{"summary":"`None` means absent from this capture's selected scope and inheritance policy. Use `describe` to distinguish an unsupported built-in name."},"signatures":[{"raw":"val lookup : t -> string -> entry option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"entry option"}],"slug":"libtmux-options-lookup"},{"id":"Libtmux.Options.scalar","publicId":"Libtmux.Options.scalar","qualifiedName":"Libtmux.Options.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scalar =\n Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","params":[]}],"slug":"libtmux-options-scalar"},{"id":"Libtmux.Options.scalar.Bool","publicId":"Libtmux.Options.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":823,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool of bool","source":{"file":"lib/libtmux.mli","line":823,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Bool","slug":"libtmux-options-scalar-bool"},{"id":"Libtmux.Options.scalar.Choice","publicId":"Libtmux.Options.scalar.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":824,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice of string","source":{"file":"lib/libtmux.mli","line":824,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Choice","slug":"libtmux-options-scalar-choice"},{"id":"Libtmux.Options.scalar.Colour","publicId":"Libtmux.Options.scalar.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":826,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour of string","source":{"file":"lib/libtmux.mli","line":826,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Colour","slug":"libtmux-options-scalar-colour"},{"id":"Libtmux.Options.scalar.Commands","publicId":"Libtmux.Options.scalar.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":827,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands of string","source":{"file":"lib/libtmux.mli","line":827,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Commands","slug":"libtmux-options-scalar-commands"},{"id":"Libtmux.Options.scalar.Integer","publicId":"Libtmux.Options.scalar.Integer","name":"Integer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":822,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Integer of int64","source":{"file":"lib/libtmux.mli","line":822,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Integer","slug":"libtmux-options-scalar-integer"},{"id":"Libtmux.Options.scalar.Key","publicId":"Libtmux.Options.scalar.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":825,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key of string","source":{"file":"lib/libtmux.mli","line":825,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Key","slug":"libtmux-options-scalar-key"},{"id":"Libtmux.Options.scalar.Text","publicId":"Libtmux.Options.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":821,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":821,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Text","slug":"libtmux-options-scalar-text"},{"id":"Libtmux.Options.scope","publicId":"Libtmux.Options.scope","qualifiedName":"Libtmux.Options.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":812,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":812,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scope =\n Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","params":[]}],"slug":"libtmux-options-scope"},{"id":"Libtmux.Options.scope.Global_sessions","publicId":"Libtmux.Options.scope.Global_sessions","name":"Global_sessions","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":814,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_sessions","source":{"file":"lib/libtmux.mli","line":814,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_sessions","slug":"libtmux-options-scope-global_sessions"},{"id":"Libtmux.Options.scope.Global_windows","publicId":"Libtmux.Options.scope.Global_windows","name":"Global_windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":815,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_windows","source":{"file":"lib/libtmux.mli","line":815,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_windows","slug":"libtmux-options-scope-global_windows"},{"id":"Libtmux.Options.scope.Pane","publicId":"Libtmux.Options.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":818,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":818,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Pane","slug":"libtmux-options-scope-pane"},{"id":"Libtmux.Options.scope.Server","publicId":"Libtmux.Options.scope.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":813,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":813,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Server","slug":"libtmux-options-scope-server"},{"id":"Libtmux.Options.scope.Session","publicId":"Libtmux.Options.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":816,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":816,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Session","slug":"libtmux-options-scope-session"},{"id":"Libtmux.Options.scope.Window","publicId":"Libtmux.Options.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":817,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.target","source":{"file":"lib/libtmux.mli","line":817,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Window","slug":"libtmux-options-scope-window"},{"id":"Libtmux.Options.t","publicId":"Libtmux.Options.t","qualifiedName":"Libtmux.Options.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":832,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":832,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","doc":{"summary":"Captured options in tmux order, with original array indexes. An empty array differs from an absent local entry. No accessor performs I/O."},"signatures":[{"raw":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-options-t"},{"id":"Libtmux.Options.t.entries","publicId":"Libtmux.Options.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":836,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":836,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Options.entries","slug":"libtmux-options-t-entries"},{"id":"Libtmux.Options.t.finished_at_ns","publicId":"Libtmux.Options.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":838,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":838,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.finished_at_ns","slug":"libtmux-options-t-finished_at_ns"},{"id":"Libtmux.Options.t.include_inherited","publicId":"Libtmux.Options.t.include_inherited","name":"include_inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":835,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"include_inherited : bool;","source":{"file":"lib/libtmux.mli","line":835,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.t","type":"bool","qualifiedName":"Libtmux.Options.include_inherited","slug":"libtmux-options-t-include_inherited"},{"id":"Libtmux.Options.t.scope","publicId":"Libtmux.Options.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":834,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":834,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.t","type":"scope","qualifiedName":"Libtmux.Options.scope","slug":"libtmux-options-t-scope"},{"id":"Libtmux.Options.t.source","publicId":"Libtmux.Options.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":833,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":833,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.t","type":"Source.t","qualifiedName":"Libtmux.Options.source","slug":"libtmux-options-t-source"},{"id":"Libtmux.Options.t.started_at_ns","publicId":"Libtmux.Options.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":837,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":837,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.started_at_ns","slug":"libtmux-options-t-started_at_ns"},{"id":"Libtmux.Options.value","publicId":"Libtmux.Options.value","qualifiedName":"Libtmux.Options.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","params":[]}],"slug":"libtmux-options-value"},{"id":"Libtmux.Options.value.Array","publicId":"Libtmux.Options.value.Array","name":"Array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Array","slug":"libtmux-options-value-array"},{"id":"Libtmux.Options.value.Scalar","publicId":"Libtmux.Options.value.Scalar","name":"Scalar","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Scalar of scalar","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Scalar","slug":"libtmux-options-value-scalar"},{"id":"Libtmux.Output","publicId":"Libtmux.Output","qualifiedName":"Libtmux.Output","name":"Output","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1012,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Future observed pane bytes, local cursors and explicit continuity loss.\n Output cursors are unrelated to snapshot times or server-side history. "],"declarations":[{"kind":"module","text":"module Output : sig\n type cursor = { generation : Generation.t; offset : int64 }\n (** [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. *)\n\n type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t\n\n type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason\n (** Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. *)\n\n val reason_pp : Format.formatter -> reason -> unit\n\n type wait_error =\n | Ended of reason\n | Failure of Error.t\n (** A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. *)\nend","source":{"file":"lib/libtmux.mli","line":1012,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Future observed pane bytes, local cursors and explicit continuity loss. Output cursors are unrelated to snapshot times or server-side history."},"slug":"libtmux-output"},{"id":"Libtmux.Output.cursor","publicId":"Libtmux.Output.cursor","qualifiedName":"Libtmux.Output.cursor","name":"cursor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. "],"declarations":[{"kind":"struct","text":"type cursor = { generation : Generation.t; offset : int64 }","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output","doc":{"summary":"`offset` is the number of observed bytes through the end of a Data event. Cursors from different subscription generations are unrelated. No cursor identifies a snapshot instant or a server-side historical position."},"signatures":[{"raw":"type cursor = { generation : Generation.t; offset : int64; }","params":[]}],"slug":"libtmux-output-cursor"},{"id":"Libtmux.Output.cursor.generation","publicId":"Libtmux.Output.cursor.generation","name":"generation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"generation : Generation.t;","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.cursor","type":"Generation.t","qualifiedName":"Libtmux.Output.generation","slug":"libtmux-output-cursor-generation"},{"id":"Libtmux.Output.cursor.offset","publicId":"Libtmux.Output.cursor.offset","name":"offset","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"offset : int64","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.cursor","type":"int64","qualifiedName":"Libtmux.Output.offset","slug":"libtmux-output-cursor-offset"},{"id":"Libtmux.Output.event","publicId":"Libtmux.Output.event","qualifiedName":"Libtmux.Output.event","name":"event","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1026,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason","source":{"file":"lib/libtmux.mli","line":1026,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type event =\n Data of { cursor : cursor; bytes : string; }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason;\n }\n | End of reason","params":[]}],"slug":"libtmux-output-event"},{"id":"Libtmux.Output.event.Data","publicId":"Libtmux.Output.event.Data","name":"Data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Data of { cursor : cursor; bytes : string }","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Data","slug":"libtmux-output-event-data"},{"id":"Libtmux.Output.event.Data.bytes","publicId":"Libtmux.Output.event.Data.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event.Data","type":"string","qualifiedName":"Libtmux.Output.bytes","slug":"libtmux-output-event-data-bytes"},{"id":"Libtmux.Output.event.Data.cursor","publicId":"Libtmux.Output.event.Data.cursor","name":"cursor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cursor : cursor;","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event.Data","type":"cursor","qualifiedName":"Libtmux.Output.cursor","slug":"libtmux-output-event-data-cursor"},{"id":"Libtmux.Output.event.End","publicId":"Libtmux.Output.event.End","name":"End","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1029,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. "],"declarations":[{"kind":"constant","text":"| End of reason","source":{"file":"lib/libtmux.mli","line":1029,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event","doc":{"summary":"Immutable event values. `Gap.after` is the last cursor delivered to the caller. Unknown loss is `None`. A gap ends continuity and is followed by End; recover with a fresh capture and a new subscription. Data preserves bytes, including NUL and invalid UTF-8. It is future observed output, not rendered text or historical reconstruction."},"variant":"tuple","qualifiedName":"Libtmux.Output.End","slug":"libtmux-output-event-end"},{"id":"Libtmux.Output.event.Gap","publicId":"Libtmux.Output.event.Gap","name":"Gap","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Gap of { after : cursor option; lost_bytes : int option; reason : reason }","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Gap","slug":"libtmux-output-event-gap"},{"id":"Libtmux.Output.event.Gap.after","publicId":"Libtmux.Output.event.Gap.after","name":"after","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"after : cursor option;","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event.Gap","type":"cursor option","qualifiedName":"Libtmux.Output.after","slug":"libtmux-output-event-gap-after"},{"id":"Libtmux.Output.event.Gap.lost_bytes","publicId":"Libtmux.Output.event.Gap.lost_bytes","name":"lost_bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"lost_bytes : int option;","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event.Gap","type":"int option","qualifiedName":"Libtmux.Output.lost_bytes","slug":"libtmux-output-event-gap-lost_bytes"},{"id":"Libtmux.Output.event.Gap.reason","publicId":"Libtmux.Output.event.Gap.reason","name":"reason","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"reason : reason","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.event.Gap","type":"reason","qualifiedName":"Libtmux.Output.reason","slug":"libtmux-output-event-gap-reason"},{"id":"Libtmux.Output.reason","publicId":"Libtmux.Output.reason","qualifiedName":"Libtmux.Output.reason","name":"reason","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1018,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1018,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type reason =\n Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","params":[]}],"slug":"libtmux-output-reason"},{"id":"Libtmux.Output.reason.Cancelled","publicId":"Libtmux.Output.reason.Cancelled","name":"Cancelled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1022,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancelled","source":{"file":"lib/libtmux.mli","line":1022,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Cancelled","slug":"libtmux-output-reason-cancelled"},{"id":"Libtmux.Output.reason.Client_closed","publicId":"Libtmux.Output.reason.Client_closed","name":"Client_closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1023,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client_closed","source":{"file":"lib/libtmux.mli","line":1023,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Client_closed","slug":"libtmux-output-reason-client_closed"},{"id":"Libtmux.Output.reason.Membership_changed","publicId":"Libtmux.Output.reason.Membership_changed","name":"Membership_changed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1020,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Membership_changed","source":{"file":"lib/libtmux.mli","line":1020,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Membership_changed","slug":"libtmux-output-reason-membership_changed"},{"id":"Libtmux.Output.reason.Overflow","publicId":"Libtmux.Output.reason.Overflow","name":"Overflow","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1019,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Overflow","source":{"file":"lib/libtmux.mli","line":1019,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Overflow","slug":"libtmux-output-reason-overflow"},{"id":"Libtmux.Output.reason.Server_paused","publicId":"Libtmux.Output.reason.Server_paused","name":"Server_paused","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1021,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server_paused","source":{"file":"lib/libtmux.mli","line":1021,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Server_paused","slug":"libtmux-output-reason-server_paused"},{"id":"Libtmux.Output.reason.Transport_error","publicId":"Libtmux.Output.reason.Transport_error","name":"Transport_error","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1024,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1024,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.reason","variant":"tuple","qualifiedName":"Libtmux.Output.Transport_error","slug":"libtmux-output-reason-transport_error"},{"id":"Libtmux.Output.reason_pp","publicId":"Libtmux.Output.reason_pp","qualifiedName":"Libtmux.Output.reason_pp","name":"reason_pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1037,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val reason_pp : Format.formatter -> reason -> unit","source":{"file":"lib/libtmux.mli","line":1037,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output","signatures":[{"raw":"val reason_pp : Format.formatter -> reason -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"reason"}],"returns":"unit"}],"slug":"libtmux-output-reason_pp"},{"id":"Libtmux.Output.wait_error","publicId":"Libtmux.Output.wait_error","qualifiedName":"Libtmux.Output.wait_error","name":"wait_error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1039,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type wait_error =\n | Ended of reason\n | Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1039,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type wait_error = Ended of reason | Failure of Error.t","params":[]}],"slug":"libtmux-output-wait_error"},{"id":"Libtmux.Output.wait_error.Ended","publicId":"Libtmux.Output.wait_error.Ended","name":"Ended","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1040,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Ended of reason","source":{"file":"lib/libtmux.mli","line":1040,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.wait_error","variant":"tuple","qualifiedName":"Libtmux.Output.Ended","slug":"libtmux-output-wait_error-ended"},{"id":"Libtmux.Output.wait_error.Failure","publicId":"Libtmux.Output.wait_error.Failure","name":"Failure","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1041,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. "],"declarations":[{"kind":"constant","text":"| Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1041,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Output.wait_error","doc":{"summary":"A future-byte wait either loses its subscription's continuity or fails an operation. Neither result establishes that the text was absent earlier."},"variant":"tuple","qualifiedName":"Libtmux.Output.Failure","slug":"libtmux-output-wait_error-failure"},{"id":"Libtmux.Pane","publicId":"Libtmux.Pane","qualifiedName":"Libtmux.Pane","name":"Pane","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":288,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A captured pane with local geometry, process metadata and a window\n relationship. Use {!Pane.val-target} for explicit actions; reading the\n observation never refreshes it. "],"declarations":[{"kind":"module","text":"and Pane : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end\n\n module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val index : t -> int\n val active : t -> bool\n val dead : t -> bool\n val title : t -> string\n val current_command : t -> string\n val current_path : t -> string\n\n val pid : t -> int option\n (** The captured process ID, absent when tmux reports no process. *)\n\n val width : t -> int\n val height : t -> int\n val left : t -> int\n val top : t -> int\n val window : t -> Window.t\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"A captured pane with local geometry, process metadata and a window relationship. Use {!Pane.val-target} for explicit actions; reading the observation never refreshes it."},"slug":"libtmux-pane"},{"id":"Libtmux.Pane.Fields","publicId":"Libtmux.Pane.Fields","qualifiedName":"Libtmux.Pane.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":291,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":291,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-fields"},{"id":"Libtmux.Pane.Fields.active","publicId":"Libtmux.Pane.Fields.active","qualifiedName":"Libtmux.Pane.Fields.active","name":"active","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val active : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val active : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-active"},{"id":"Libtmux.Pane.Fields.current_command","publicId":"Libtmux.Pane.Fields.current_command","qualifiedName":"Libtmux.Pane.Fields.current_command","name":"current_command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":297,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_command : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":297,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_command : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_command"},{"id":"Libtmux.Pane.Fields.current_path","publicId":"Libtmux.Pane.Fields.current_path","qualifiedName":"Libtmux.Pane.Fields.current_path","name":"current_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":298,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_path : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":298,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_path : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_path"},{"id":"Libtmux.Pane.Fields.dead","publicId":"Libtmux.Pane.Fields.dead","qualifiedName":"Libtmux.Pane.Fields.dead","name":"dead","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":295,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val dead : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":295,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val dead : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-dead"},{"id":"Libtmux.Pane.Fields.height","publicId":"Libtmux.Pane.Fields.height","qualifiedName":"Libtmux.Pane.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-height"},{"id":"Libtmux.Pane.Fields.id","publicId":"Libtmux.Pane.Fields.id","qualifiedName":"Libtmux.Pane.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":292,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":292,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-id"},{"id":"Libtmux.Pane.Fields.index","publicId":"Libtmux.Pane.Fields.index","qualifiedName":"Libtmux.Pane.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":293,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-index"},{"id":"Libtmux.Pane.Fields.left","publicId":"Libtmux.Pane.Fields.left","qualifiedName":"Libtmux.Pane.Fields.left","name":"left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":301,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val left : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":301,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val left : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-left"},{"id":"Libtmux.Pane.Fields.title","publicId":"Libtmux.Pane.Fields.title","qualifiedName":"Libtmux.Pane.Fields.title","name":"title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":296,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val title : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":296,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val title : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-title"},{"id":"Libtmux.Pane.Fields.top","publicId":"Libtmux.Pane.Fields.top","qualifiedName":"Libtmux.Pane.Fields.top","name":"top","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":302,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val top : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val top : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-top"},{"id":"Libtmux.Pane.Fields.width","publicId":"Libtmux.Pane.Fields.width","qualifiedName":"Libtmux.Pane.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":299,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-width"},{"id":"Libtmux.Pane.Id","publicId":"Libtmux.Pane.Id","qualifiedName":"Libtmux.Pane.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-id-16to"},{"id":"Libtmux.Pane.Id.compare","publicId":"Libtmux.Pane.Id.compare","qualifiedName":"Libtmux.Pane.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-id-compare"},{"id":"Libtmux.Pane.Id.equal","publicId":"Libtmux.Pane.Id.equal","qualifiedName":"Libtmux.Pane.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-id-equal"},{"id":"Libtmux.Pane.Id.of_string","publicId":"Libtmux.Pane.Id.of_string","qualifiedName":"Libtmux.Pane.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-pane-id-of_string"},{"id":"Libtmux.Pane.Id.pp","publicId":"Libtmux.Pane.Id.pp","qualifiedName":"Libtmux.Pane.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-pane-id-pp"},{"id":"Libtmux.Pane.Id.t","publicId":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux.Pane.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-id-t"},{"id":"Libtmux.Pane.Id.to_string","publicId":"Libtmux.Pane.Id.to_string","qualifiedName":"Libtmux.Pane.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-id-to_string"},{"id":"Libtmux.Pane.Relations","publicId":"Libtmux.Pane.Relations","qualifiedName":"Libtmux.Pane.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-relations"},{"id":"Libtmux.Pane.Relations.window","publicId":"Libtmux.Pane.Relations.window","qualifiedName":"Libtmux.Pane.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-pane-relations-window"},{"id":"Libtmux.Pane.Target","publicId":"Libtmux.Pane.Target","qualifiedName":"Libtmux.Pane.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":311,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":311,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-target-nx8w"},{"id":"Libtmux.Pane.Target.id","publicId":"Libtmux.Pane.Target.id","qualifiedName":"Libtmux.Pane.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":316,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-target-id"},{"id":"Libtmux.Pane.Target.of_id","publicId":"Libtmux.Pane.Target.of_id","qualifiedName":"Libtmux.Pane.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":314,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":314,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-pane-target-of_id"},{"id":"Libtmux.Pane.Target.source","publicId":"Libtmux.Pane.Target.source","qualifiedName":"Libtmux.Pane.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":315,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-target-source"},{"id":"Libtmux.Pane.Target.t","publicId":"Libtmux.Pane.Target.t","qualifiedName":"Libtmux.Pane.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":312,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":312,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-target-t"},{"id":"Libtmux.Pane.active","publicId":"Libtmux.Pane.active","qualifiedName":"Libtmux.Pane.active","name":"active","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":323,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val active : t -> bool","source":{"file":"lib/libtmux.mli","line":323,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val active : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-active"},{"id":"Libtmux.Pane.current_command","publicId":"Libtmux.Pane.current_command","qualifiedName":"Libtmux.Pane.current_command","name":"current_command","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":326,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_command : t -> string","source":{"file":"lib/libtmux.mli","line":326,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_command : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_command"},{"id":"Libtmux.Pane.current_path","publicId":"Libtmux.Pane.current_path","qualifiedName":"Libtmux.Pane.current_path","name":"current_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_path : t -> string","source":{"file":"lib/libtmux.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_path : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_path"},{"id":"Libtmux.Pane.dead","publicId":"Libtmux.Pane.dead","qualifiedName":"Libtmux.Pane.dead","name":"dead","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":324,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dead : t -> bool","source":{"file":"lib/libtmux.mli","line":324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val dead : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-dead"},{"id":"Libtmux.Pane.height","publicId":"Libtmux.Pane.height","qualifiedName":"Libtmux.Pane.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":333,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-height"},{"id":"Libtmux.Pane.id","publicId":"Libtmux.Pane.id","qualifiedName":"Libtmux.Pane.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":321,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":321,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-id-19ve"},{"id":"Libtmux.Pane.index","publicId":"Libtmux.Pane.index","qualifiedName":"Libtmux.Pane.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":322,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":322,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-index"},{"id":"Libtmux.Pane.left","publicId":"Libtmux.Pane.left","qualifiedName":"Libtmux.Pane.left","name":"left","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":334,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val left : t -> int","source":{"file":"lib/libtmux.mli","line":334,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val left : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-left"},{"id":"Libtmux.Pane.pid","publicId":"Libtmux.Pane.pid","qualifiedName":"Libtmux.Pane.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":329,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" The captured process ID, absent when tmux reports no process. "],"declarations":[{"kind":"function","text":"val pid : t -> int option","source":{"file":"lib/libtmux.mli","line":329,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","doc":{"summary":"The captured process ID, absent when tmux reports no process."},"signatures":[{"raw":"val pid : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-pane-pid"},{"id":"Libtmux.Pane.same_entity","publicId":"Libtmux.Pane.same_entity","qualifiedName":"Libtmux.Pane.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":339,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":339,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_entity"},{"id":"Libtmux.Pane.same_observation","publicId":"Libtmux.Pane.same_observation","qualifiedName":"Libtmux.Pane.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_observation"},{"id":"Libtmux.Pane.source","publicId":"Libtmux.Pane.source","qualifiedName":"Libtmux.Pane.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-source"},{"id":"Libtmux.Pane.t","publicId":"Libtmux.Pane.t","qualifiedName":"Libtmux.Pane.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":289,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":289,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-t"},{"id":"Libtmux.Pane.target","publicId":"Libtmux.Pane.target","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":338,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":338,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-pane-target-t3h1"},{"id":"Libtmux.Pane.target:type","publicId":"Libtmux.Pane.target:type","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-pane-target-type"},{"id":"Libtmux.Pane.title","publicId":"Libtmux.Pane.title","qualifiedName":"Libtmux.Pane.title","name":"title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":325,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val title : t -> string","source":{"file":"lib/libtmux.mli","line":325,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val title : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-title"},{"id":"Libtmux.Pane.top","publicId":"Libtmux.Pane.top","qualifiedName":"Libtmux.Pane.top","name":"top","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":335,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val top : t -> int","source":{"file":"lib/libtmux.mli","line":335,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val top : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-top"},{"id":"Libtmux.Pane.width","publicId":"Libtmux.Pane.width","qualifiedName":"Libtmux.Pane.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-width"},{"id":"Libtmux.Pane.window","publicId":"Libtmux.Pane.window","qualifiedName":"Libtmux.Pane.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":336,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":336,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-pane-window"},{"id":"Libtmux.Plan","publicId":"Libtmux.Plan","qualifiedName":"Libtmux.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":644,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Explicit source-filter planning for a new acquisition. A plan separates\n supported tmux predicates from residual local evaluation; it never changes\n the I/O-free contract of {!Query.matching}. Backend capture operations\n acquire a complete graph and do not consume these plans. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type pushdown = Auto | Never | Require_exact\n type t\n\n val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result\n (** Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. *)\n\n val source_filter : t -> string option\n val residual : t -> Pane.t Expr.t\n val required_fields : t -> string list\n val required_relations : t -> string list\n val explanation : t -> string\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":644,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Explicit source-filter planning for a new acquisition. A plan separates supported tmux predicates from residual local evaluation; it never changes the I/O-free contract of {!Query.matching}. Backend capture operations acquire a complete graph and do not consume these plans."},"slug":"libtmux-plan"},{"id":"Libtmux.Plan.explanation","publicId":"Libtmux.Plan.explanation","qualifiedName":"Libtmux.Plan.explanation","name":"explanation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":659,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val explanation : t -> string","source":{"file":"lib/libtmux.mli","line":659,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val explanation : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-plan-explanation"},{"id":"Libtmux.Plan.panes","publicId":"Libtmux.Plan.panes","qualifiedName":"Libtmux.Plan.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":648,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. "],"declarations":[{"kind":"function","text":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":648,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","doc":{"summary":"Plan without I/O. Exact lowering covers pane active/dead flags and complete Boolean combinations. Unsupported children prevent lowering the whole expression, including under OR and NOT. Relationships always stay local. `Require_exact` rejects an unsupported expression before acquisition."},"signatures":[{"raw":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","params":[{"name":"pushdown","type":"pushdown","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t Expr.t"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-plan-panes"},{"id":"Libtmux.Plan.pp","publicId":"Libtmux.Plan.pp","qualifiedName":"Libtmux.Plan.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":660,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":660,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-plan-pp"},{"id":"Libtmux.Plan.pushdown","publicId":"Libtmux.Plan.pushdown","qualifiedName":"Libtmux.Plan.pushdown","name":"pushdown","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type pushdown = Auto | Never | Require_exact","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type pushdown = Auto | Never | Require_exact","params":[]}],"slug":"libtmux-plan-pushdown"},{"id":"Libtmux.Plan.pushdown.Auto","publicId":"Libtmux.Plan.pushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Auto","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Auto","slug":"libtmux-plan-pushdown-auto"},{"id":"Libtmux.Plan.pushdown.Never","publicId":"Libtmux.Plan.pushdown.Never","name":"Never","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Never","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Never","slug":"libtmux-plan-pushdown-never"},{"id":"Libtmux.Plan.pushdown.Require_exact","publicId":"Libtmux.Plan.pushdown.Require_exact","name":"Require_exact","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_exact","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Require_exact","slug":"libtmux-plan-pushdown-require_exact"},{"id":"Libtmux.Plan.required_fields","publicId":"Libtmux.Plan.required_fields","qualifiedName":"Libtmux.Plan.required_fields","name":"required_fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":657,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_fields : t -> string list","source":{"file":"lib/libtmux.mli","line":657,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_fields : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_fields"},{"id":"Libtmux.Plan.required_relations","publicId":"Libtmux.Plan.required_relations","qualifiedName":"Libtmux.Plan.required_relations","name":"required_relations","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":658,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_relations : t -> string list","source":{"file":"lib/libtmux.mli","line":658,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_relations : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_relations"},{"id":"Libtmux.Plan.residual","publicId":"Libtmux.Plan.residual","qualifiedName":"Libtmux.Plan.residual","name":"residual","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":656,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val residual : t -> Pane.t Expr.t","source":{"file":"lib/libtmux.mli","line":656,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val residual : t -> Pane.t Expr.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Expr.t"}],"slug":"libtmux-plan-residual"},{"id":"Libtmux.Plan.source_filter","publicId":"Libtmux.Plan.source_filter","qualifiedName":"Libtmux.Plan.source_filter","name":"source_filter","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":655,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source_filter : t -> string option","source":{"file":"lib/libtmux.mli","line":655,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val source_filter : t -> string option","params":[{"name":"arg1","type":"t"}],"returns":"string option"}],"slug":"libtmux-plan-source_filter"},{"id":"Libtmux.Plan.t","publicId":"Libtmux.Plan.t","qualifiedName":"Libtmux.Plan.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":646,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":646,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-plan-t"},{"id":"Libtmux.Query","publicId":"Libtmux.Query","qualifiedName":"Libtmux.Query","name":"Query","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":672,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Sequence adapters and bounded cardinality checks over captured values.\n Matching preserves order and duplicates. Expected absence and ambiguity\n remain ordinary result values. "],"declarations":[{"kind":"module","text":"module Query : sig\n val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t\n (** [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. *)\n\n val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result\n (** Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. *)\n\n val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result\n (** As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n *)\nend","source":{"file":"lib/libtmux.mli","line":672,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Sequence adapters and bounded cardinality checks over captured values. Matching preserves order and duplicates. Expected absence and ambiguity remain ordinary result values."},"slug":"libtmux-query"},{"id":"Libtmux.Query.exactly_one","publicId":"Libtmux.Query.exactly_one","qualifiedName":"Libtmux.Query.exactly_one","name":"exactly_one","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":679,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. "],"declarations":[{"kind":"function","text":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":679,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Query","doc":{"summary":"Return the unique value. Stop when a second value is found; proving uniqueness requires exhausting the remaining sequence. The input's effects and exceptions propagate. This does not execute a mutation."},"signatures":[{"raw":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a, Cardinality.error) result"}],"slug":"libtmux-query-exactly_one"},{"id":"Libtmux.Query.matching","publicId":"Libtmux.Query.matching","qualifiedName":"Libtmux.Query.matching","name":"matching","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":673,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. "],"declarations":[{"kind":"function","text":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","source":{"file":"lib/libtmux.mli","line":673,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Query","doc":{"summary":"`matching expression` compiles once when the adapter is constructed. Filtering preserves order and duplicates. Snapshot-derived sequences replay captured values; arbitrary input sequences retain their effects, exceptions and replay semantics. No tmux acquisition occurs."},"signatures":[{"raw":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","params":[{"name":"arg1","type":"'a Expr.t"},{"name":"arg2","type":"'a Seq.t"}],"returns":"'a Seq.t"}],"slug":"libtmux-query-matching"},{"id":"Libtmux.Query.one_or_none","publicId":"Libtmux.Query.one_or_none","qualifiedName":"Libtmux.Query.one_or_none","name":"one_or_none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":684,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n "],"declarations":[{"kind":"function","text":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":684,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Query","doc":{"summary":"As {!exactly_one}, with `Ok None` for an empty sequence. Order and duplicate entries count toward cardinality; values are not deduplicated."},"signatures":[{"raw":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a option, Cardinality.error) result"}],"slug":"libtmux-query-one_or_none"},{"id":"Libtmux.Relation","publicId":"Libtmux.Relation","qualifiedName":"Libtmux.Relation","name":"Relation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Typed edges in a captured graph. Many, one and optional relations are\n distinct; an unacquired relationship is never represented as an empty one.\n"],"declarations":[{"kind":"module","text":"module Relation : sig\n module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\nend","source":{"file":"lib/libtmux.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Typed edges in a captured graph. Many, one and optional relations are distinct; an unacquired relationship is never represented as an empty one."},"slug":"libtmux-relation"},{"id":"Libtmux.Relation.Many","publicId":"Libtmux.Relation.Many","qualifiedName":"Libtmux.Relation.Many","name":"Many","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-many"},{"id":"Libtmux.Relation.Many.name","publicId":"Libtmux.Relation.Many.name","qualifiedName":"Libtmux.Relation.Many.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-many-name"},{"id":"Libtmux.Relation.Many.t","publicId":"Libtmux.Relation.Many.t","qualifiedName":"Libtmux.Relation.Many.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-many-t"},{"id":"Libtmux.Relation.One","publicId":"Libtmux.Relation.One","qualifiedName":"Libtmux.Relation.One","name":"One","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":157,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":157,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-one"},{"id":"Libtmux.Relation.One.name","publicId":"Libtmux.Relation.One.name","qualifiedName":"Libtmux.Relation.One.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":160,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-one-name"},{"id":"Libtmux.Relation.One.t","publicId":"Libtmux.Relation.One.t","qualifiedName":"Libtmux.Relation.One.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":158,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":158,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-one-t"},{"id":"Libtmux.Relation.Optional","publicId":"Libtmux.Relation.Optional","qualifiedName":"Libtmux.Relation.Optional","name":"Optional","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-optional"},{"id":"Libtmux.Relation.Optional.name","publicId":"Libtmux.Relation.Optional.name","qualifiedName":"Libtmux.Relation.Optional.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-optional-name"},{"id":"Libtmux.Relation.Optional.t","publicId":"Libtmux.Relation.Optional.t","qualifiedName":"Libtmux.Relation.Optional.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-optional-t"},{"id":"Libtmux.Session","publicId":"Libtmux.Session","qualifiedName":"Libtmux.Session","name":"Session","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A captured session and its ordered window-link contexts. A session can\n contain repeated links to the same global window. "],"declarations":[{"kind":"module","text":"module rec Session : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end\n\n module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val attached : t -> int\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\n\n val window_links : t -> Window_link.t Iarray.t\n (** All captured links, in capture order, including repeated windows. *)\n\n val windows : t -> Window.t Iarray.t\n (** Distinct windows in first-link order. All accesses are local. *)\nend","source":{"file":"lib/libtmux.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"A captured session and its ordered window-link contexts. A session can contain repeated links to the same global window."},"slug":"libtmux-session"},{"id":"Libtmux.Session.Fields","publicId":"Libtmux.Session.Fields","qualifiedName":"Libtmux.Session.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":175,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":175,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","slug":"libtmux-session-fields"},{"id":"Libtmux.Session.Fields.attached","publicId":"Libtmux.Session.Fields.attached","qualifiedName":"Libtmux.Session.Fields.attached","name":"attached","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val attached : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val attached : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-session-fields-attached"},{"id":"Libtmux.Session.Fields.id","publicId":"Libtmux.Session.Fields.id","qualifiedName":"Libtmux.Session.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":176,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":176,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-id"},{"id":"Libtmux.Session.Fields.name","publicId":"Libtmux.Session.Fields.name","qualifiedName":"Libtmux.Session.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-name"},{"id":"Libtmux.Session.Id","publicId":"Libtmux.Session.Id","qualifiedName":"Libtmux.Session.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","slug":"libtmux-session-id-12k2"},{"id":"Libtmux.Session.Id.compare","publicId":"Libtmux.Session.Id.compare","qualifiedName":"Libtmux.Session.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-session-id-compare"},{"id":"Libtmux.Session.Id.equal","publicId":"Libtmux.Session.Id.equal","qualifiedName":"Libtmux.Session.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-id-equal"},{"id":"Libtmux.Session.Id.of_string","publicId":"Libtmux.Session.Id.of_string","qualifiedName":"Libtmux.Session.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-session-id-of_string"},{"id":"Libtmux.Session.Id.pp","publicId":"Libtmux.Session.Id.pp","qualifiedName":"Libtmux.Session.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-session-id-pp"},{"id":"Libtmux.Session.Id.t","publicId":"Libtmux.Session.Id.t","qualifiedName":"Libtmux.Session.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-id-t"},{"id":"Libtmux.Session.Id.to_string","publicId":"Libtmux.Session.Id.to_string","qualifiedName":"Libtmux.Session.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-id-to_string"},{"id":"Libtmux.Session.Relations","publicId":"Libtmux.Session.Relations","qualifiedName":"Libtmux.Session.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","slug":"libtmux-session-relations"},{"id":"Libtmux.Session.Relations.window_links","publicId":"Libtmux.Session.Relations.window_links","qualifiedName":"Libtmux.Session.Relations.window_links","name":"window_links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val window_links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-session-relations-window_links"},{"id":"Libtmux.Session.Relations.windows","publicId":"Libtmux.Session.Relations.windows","qualifiedName":"Libtmux.Session.Relations.windows","name":"windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val windows : (t, Window.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val windows : (t, Window.t) Relation.Many.t","params":[],"returns":"(t, Window.t) Relation.Many.t"}],"slug":"libtmux-session-relations-windows"},{"id":"Libtmux.Session.Target","publicId":"Libtmux.Session.Target","qualifiedName":"Libtmux.Session.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","slug":"libtmux-session-target-5p2d"},{"id":"Libtmux.Session.Target.id","publicId":"Libtmux.Session.Target.id","qualifiedName":"Libtmux.Session.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":195,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-target-id"},{"id":"Libtmux.Session.Target.of_id","publicId":"Libtmux.Session.Target.of_id","qualifiedName":"Libtmux.Session.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Describe a target in an existing connection generation. No I/O. "],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Target","doc":{"summary":"Describe a target in an existing connection generation. No I/O."},"signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-session-target-of_id"},{"id":"Libtmux.Session.Target.source","publicId":"Libtmux.Session.Target.source","qualifiedName":"Libtmux.Session.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":194,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-target-source"},{"id":"Libtmux.Session.Target.t","publicId":"Libtmux.Session.Target.t","qualifiedName":"Libtmux.Session.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-target-t"},{"id":"Libtmux.Session.attached","publicId":"Libtmux.Session.attached","qualifiedName":"Libtmux.Session.attached","name":"attached","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val attached : t -> int","source":{"file":"lib/libtmux.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val attached : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-session-attached"},{"id":"Libtmux.Session.id","publicId":"Libtmux.Session.id","qualifiedName":"Libtmux.Session.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-id-12gy"},{"id":"Libtmux.Session.name","publicId":"Libtmux.Session.name","qualifiedName":"Libtmux.Session.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-name"},{"id":"Libtmux.Session.same_entity","publicId":"Libtmux.Session.same_entity","qualifiedName":"Libtmux.Session.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_entity"},{"id":"Libtmux.Session.same_observation","publicId":"Libtmux.Session.same_observation","qualifiedName":"Libtmux.Session.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_observation"},{"id":"Libtmux.Session.source","publicId":"Libtmux.Session.source","qualifiedName":"Libtmux.Session.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-source"},{"id":"Libtmux.Session.t","publicId":"Libtmux.Session.t","qualifiedName":"Libtmux.Session.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-t"},{"id":"Libtmux.Session.target","publicId":"Libtmux.Session.target","qualifiedName":"Libtmux.Session.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-session-target-iu8j"},{"id":"Libtmux.Session.target:type","publicId":"Libtmux.Session.target:type","qualifiedName":"Libtmux.Session.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-session-target-type"},{"id":"Libtmux.Session.window_links","publicId":"Libtmux.Session.window_links","qualifiedName":"Libtmux.Session.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" All captured links, in capture order, including repeated windows. "],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","doc":{"summary":"All captured links, in capture order, including repeated windows.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-session-window_links"},{"id":"Libtmux.Session.windows","publicId":"Libtmux.Session.windows","qualifiedName":"Libtmux.Session.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Distinct windows in first-link order. All accesses are local. "],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Session","doc":{"summary":"Distinct windows in first-link order. All accesses are local."},"signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-session-windows"},{"id":"Libtmux.Snapshot","publicId":"Libtmux.Snapshot","qualifiedName":"Libtmux.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A complete immutable graph captured over an acquisition interval.\n Collections are replayable immutable arrays. Capturing several tmux commands\n does not establish an atomic transaction. "],"declarations":[{"kind":"module","text":"module Snapshot : sig\n type t\n\n module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end\n\n module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end\n\n val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result\n (** Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. *)\n\n val id : t -> Id.t\n val source : t -> Source.t\n val started_at_ns : t -> int64\n val finished_at_ns : t -> int64\n val sessions : t -> Session.t Iarray.t\n val windows : t -> Window.t Iarray.t\n val window_links : t -> Window_link.t Iarray.t\n val panes : t -> Pane.t Iarray.t\n\n val clients : t -> Client_observation.t Iarray.t\n (** Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. *)\n\n val find_session : t -> Session.Id.t -> Session.t option\n val find_window : t -> Window.Id.t -> Window.t option\n val find_pane : t -> Pane.Id.t -> Pane.t option\nend","source":{"file":"lib/libtmux.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"A complete immutable graph captured over an acquisition interval. Collections are replayable immutable arrays. Capturing several tmux commands does not establish an atomic transaction."},"slug":"libtmux-snapshot"},{"id":"Libtmux.Snapshot.Id","publicId":"Libtmux.Snapshot.Id","qualifiedName":"Libtmux.Snapshot.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":384,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end","source":{"file":"lib/libtmux.mli","line":384,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-id-1y9h"},{"id":"Libtmux.Snapshot.Id.equal","publicId":"Libtmux.Snapshot.Id.equal","qualifiedName":"Libtmux.Snapshot.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":389,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":389,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-snapshot-id-equal"},{"id":"Libtmux.Snapshot.Id.of_string","publicId":"Libtmux.Snapshot.Id.of_string","qualifiedName":"Libtmux.Snapshot.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-id-of_string"},{"id":"Libtmux.Snapshot.Id.t","publicId":"Libtmux.Snapshot.Id.t","qualifiedName":"Libtmux.Snapshot.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":385,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":385,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-id-t"},{"id":"Libtmux.Snapshot.Id.to_string","publicId":"Libtmux.Snapshot.Id.to_string","qualifiedName":"Libtmux.Snapshot.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":388,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":388,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-snapshot-id-to_string"},{"id":"Libtmux.Snapshot.Input","publicId":"Libtmux.Snapshot.Input","qualifiedName":"Libtmux.Snapshot.Input","name":"Input","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":392,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end","source":{"file":"lib/libtmux.mli","line":392,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-input"},{"id":"Libtmux.Snapshot.Input.client","publicId":"Libtmux.Snapshot.Input.client","qualifiedName":"Libtmux.Snapshot.Input.client","name":"client","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }","source":{"file":"lib/libtmux.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n}","params":[]}],"slug":"libtmux-snapshot-input-client"},{"id":"Libtmux.Snapshot.Input.client.control_mode","publicId":"Libtmux.Snapshot.Input.client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":432,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"control_mode : bool;","source":{"file":"lib/libtmux.mli","line":432,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.client","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.control_mode","slug":"libtmux-snapshot-input-client-control_mode"},{"id":"Libtmux.Snapshot.Input.client.height","publicId":"Libtmux.Snapshot.Input.client.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":431,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":431,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-client-height"},{"id":"Libtmux.Snapshot.Input.client.name","publicId":"Libtmux.Snapshot.Input.client.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.client","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-client-name"},{"id":"Libtmux.Snapshot.Input.client.pid","publicId":"Libtmux.Snapshot.Input.client.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":429,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int;","source":{"file":"lib/libtmux.mli","line":429,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-client-pid"},{"id":"Libtmux.Snapshot.Input.client.session_id","publicId":"Libtmux.Snapshot.Input.client.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":428,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t option;","source":{"file":"lib/libtmux.mli","line":428,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.client","type":"Session.Id.t option","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-client-session_id"},{"id":"Libtmux.Snapshot.Input.client.width","publicId":"Libtmux.Snapshot.Input.client.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":430,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":430,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-client-width"},{"id":"Libtmux.Snapshot.Input.pane","publicId":"Libtmux.Snapshot.Input.pane","qualifiedName":"Libtmux.Snapshot.Input.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }","source":{"file":"lib/libtmux.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n}","params":[]}],"slug":"libtmux-snapshot-input-pane"},{"id":"Libtmux.Snapshot.Input.pane.active","publicId":"Libtmux.Snapshot.Input.pane.active","name":"active","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"active : bool;","source":{"file":"lib/libtmux.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.active","slug":"libtmux-snapshot-input-pane-active"},{"id":"Libtmux.Snapshot.Input.pane.current_command","publicId":"Libtmux.Snapshot.Input.pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_command : string;","source":{"file":"lib/libtmux.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_command","slug":"libtmux-snapshot-input-pane-current_command"},{"id":"Libtmux.Snapshot.Input.pane.current_path","publicId":"Libtmux.Snapshot.Input.pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":418,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_path : string;","source":{"file":"lib/libtmux.mli","line":418,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_path","slug":"libtmux-snapshot-input-pane-current_path"},{"id":"Libtmux.Snapshot.Input.pane.dead","publicId":"Libtmux.Snapshot.Input.pane.dead","name":"dead","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"dead : bool;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.dead","slug":"libtmux-snapshot-input-pane-dead"},{"id":"Libtmux.Snapshot.Input.pane.height","publicId":"Libtmux.Snapshot.Input.pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":421,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":421,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-pane-height"},{"id":"Libtmux.Snapshot.Input.pane.id","publicId":"Libtmux.Snapshot.Input.pane.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Pane.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-pane-id"},{"id":"Libtmux.Snapshot.Input.pane.index","publicId":"Libtmux.Snapshot.Input.pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":413,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":413,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-pane-index"},{"id":"Libtmux.Snapshot.Input.pane.left","publicId":"Libtmux.Snapshot.Input.pane.left","name":"left","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"left : int;","source":{"file":"lib/libtmux.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.left","slug":"libtmux-snapshot-input-pane-left"},{"id":"Libtmux.Snapshot.Input.pane.pid","publicId":"Libtmux.Snapshot.Input.pane.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":419,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int option;","source":{"file":"lib/libtmux.mli","line":419,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-pane-pid"},{"id":"Libtmux.Snapshot.Input.pane.title","publicId":"Libtmux.Snapshot.Input.pane.title","name":"title","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":416,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"title : string;","source":{"file":"lib/libtmux.mli","line":416,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.title","slug":"libtmux-snapshot-input-pane-title"},{"id":"Libtmux.Snapshot.Input.pane.top","publicId":"Libtmux.Snapshot.Input.pane.top","name":"top","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"top : int;","source":{"file":"lib/libtmux.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.top","slug":"libtmux-snapshot-input-pane-top"},{"id":"Libtmux.Snapshot.Input.pane.width","publicId":"Libtmux.Snapshot.Input.pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":420,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":420,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-pane-width"},{"id":"Libtmux.Snapshot.Input.pane.window_id","publicId":"Libtmux.Snapshot.Input.pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":412,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":412,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-pane-window_id"},{"id":"Libtmux.Snapshot.Input.session","publicId":"Libtmux.Snapshot.Input.session","qualifiedName":"Libtmux.Snapshot.Input.session","name":"session","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type session = { id : Session.Id.t; name : string; attached : int }","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type session = { id : Session.Id.t; name : string; attached : int; }","params":[]}],"slug":"libtmux-snapshot-input-session"},{"id":"Libtmux.Snapshot.Input.session.attached","publicId":"Libtmux.Snapshot.Input.session.attached","name":"attached","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"attached : int","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.session","type":"int","qualifiedName":"Libtmux.Snapshot.Input.attached","slug":"libtmux-snapshot-input-session-attached"},{"id":"Libtmux.Snapshot.Input.session.id","publicId":"Libtmux.Snapshot.Input.session.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.session","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-session-id"},{"id":"Libtmux.Snapshot.Input.session.name","publicId":"Libtmux.Snapshot.Input.session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.session","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-session-name"},{"id":"Libtmux.Snapshot.Input.window","publicId":"Libtmux.Snapshot.Input.window","qualifiedName":"Libtmux.Snapshot.Input.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":395,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }","source":{"file":"lib/libtmux.mli","line":395,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n}","params":[]}],"slug":"libtmux-snapshot-input-window"},{"id":"Libtmux.Snapshot.Input.window.height","publicId":"Libtmux.Snapshot.Input.window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":399,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":399,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-window-height"},{"id":"Libtmux.Snapshot.Input.window.id","publicId":"Libtmux.Snapshot.Input.window.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":396,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":396,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-window-id"},{"id":"Libtmux.Snapshot.Input.window.layout","publicId":"Libtmux.Snapshot.Input.window.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":400,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : string;","source":{"file":"lib/libtmux.mli","line":400,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.layout","slug":"libtmux-snapshot-input-window-layout"},{"id":"Libtmux.Snapshot.Input.window.name","publicId":"Libtmux.Snapshot.Input.window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-window-name"},{"id":"Libtmux.Snapshot.Input.window.width","publicId":"Libtmux.Snapshot.Input.window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":398,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":398,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-window-width"},{"id":"Libtmux.Snapshot.Input.window_link","publicId":"Libtmux.Snapshot.Input.window_link","qualifiedName":"Libtmux.Snapshot.Input.window_link","name":"window_link","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }","source":{"file":"lib/libtmux.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n}","params":[]}],"slug":"libtmux-snapshot-input-window_link"},{"id":"Libtmux.Snapshot.Input.window_link.index","publicId":"Libtmux.Snapshot.Input.window_link.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-window_link-index"},{"id":"Libtmux.Snapshot.Input.window_link.is_current","publicId":"Libtmux.Snapshot.Input.window_link.is_current","name":"is_current","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":407,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"is_current : bool;","source":{"file":"lib/libtmux.mli","line":407,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.is_current","slug":"libtmux-snapshot-input-window_link-is_current"},{"id":"Libtmux.Snapshot.Input.window_link.session_id","publicId":"Libtmux.Snapshot.Input.window_link.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":404,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":404,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-window_link-session_id"},{"id":"Libtmux.Snapshot.Input.window_link.window_id","publicId":"Libtmux.Snapshot.Input.window_link.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":405,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":405,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-window_link-window_id"},{"id":"Libtmux.Snapshot.clients","publicId":"Libtmux.Snapshot.clients","qualifiedName":"Libtmux.Snapshot.clients","name":"clients","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":464,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. "],"declarations":[{"kind":"function","text":"val clients : t -> Client_observation.t Iarray.t","source":{"file":"lib/libtmux.mli","line":464,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Collections and their contents are immutable. They retain capture order, are replayable and remain readable after the acquiring client closes."},"signatures":[{"raw":"val clients : t -> Client_observation.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_observation.t Iarray.t"}],"slug":"libtmux-snapshot-clients"},{"id":"Libtmux.Snapshot.create","publicId":"Libtmux.Snapshot.create","qualifiedName":"Libtmux.Snapshot.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":436,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. "],"declarations":[{"kind":"function","text":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":436,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Validate and materialize a complete captured graph without I/O. Equal duplicate global rows collapse in first-occurrence order; conflicting rows and dangling references return {!Error.Capture_raced}. Links at different indexes remain distinct, including within one session. At most 10,000 input rows are admitted. Each session needs one current link and each window one active pane. Capture spans an interval, not an atomic instant. Input strings are bytes; no Unicode normalization is performed."},"signatures":[{"raw":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list -> clients:Input.client list -> (t, Error.t) result","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"id","type":"Id.t","keywordOnly":true},{"name":"started_at_ns","type":"int64","keywordOnly":true},{"name":"finished_at_ns","type":"int64","keywordOnly":true},{"name":"sessions","type":"Input.session list","keywordOnly":true},{"name":"windows","type":"Input.window list","keywordOnly":true},{"name":"window_links","type":"Input.window_link list","keywordOnly":true},{"name":"panes","type":"Input.pane list","keywordOnly":true},{"name":"clients","type":"Input.client list","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-create"},{"id":"Libtmux.Snapshot.find_pane","publicId":"Libtmux.Snapshot.find_pane","qualifiedName":"Libtmux.Snapshot.find_pane","name":"find_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":470,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_pane : t -> Pane.Id.t -> Pane.t option","source":{"file":"lib/libtmux.mli","line":470,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_pane : t -> Pane.Id.t -> Pane.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Pane.Id.t"}],"returns":"Pane.t option"}],"slug":"libtmux-snapshot-find_pane"},{"id":"Libtmux.Snapshot.find_session","publicId":"Libtmux.Snapshot.find_session","qualifiedName":"Libtmux.Snapshot.find_session","name":"find_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":468,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_session : t -> Session.Id.t -> Session.t option","source":{"file":"lib/libtmux.mli","line":468,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_session : t -> Session.Id.t -> Session.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Session.Id.t"}],"returns":"Session.t option"}],"slug":"libtmux-snapshot-find_session"},{"id":"Libtmux.Snapshot.find_window","publicId":"Libtmux.Snapshot.find_window","qualifiedName":"Libtmux.Snapshot.find_window","name":"find_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":469,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_window : t -> Window.Id.t -> Window.t option","source":{"file":"lib/libtmux.mli","line":469,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_window : t -> Window.Id.t -> Window.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Window.Id.t"}],"returns":"Window.t option"}],"slug":"libtmux-snapshot-find_window"},{"id":"Libtmux.Snapshot.finished_at_ns","publicId":"Libtmux.Snapshot.finished_at_ns","qualifiedName":"Libtmux.Snapshot.finished_at_ns","name":"finished_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val finished_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val finished_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-finished_at_ns"},{"id":"Libtmux.Snapshot.id","publicId":"Libtmux.Snapshot.id","qualifiedName":"Libtmux.Snapshot.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":455,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":455,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-snapshot-id-1y6d"},{"id":"Libtmux.Snapshot.panes","publicId":"Libtmux.Snapshot.panes","qualifiedName":"Libtmux.Snapshot.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":462,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":462,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"slug":"libtmux-snapshot-panes"},{"id":"Libtmux.Snapshot.sessions","publicId":"Libtmux.Snapshot.sessions","qualifiedName":"Libtmux.Snapshot.sessions","name":"sessions","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":459,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val sessions : t -> Session.t Iarray.t","source":{"file":"lib/libtmux.mli","line":459,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val sessions : t -> Session.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-snapshot-sessions"},{"id":"Libtmux.Snapshot.source","publicId":"Libtmux.Snapshot.source","qualifiedName":"Libtmux.Snapshot.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":456,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":456,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-snapshot-source"},{"id":"Libtmux.Snapshot.started_at_ns","publicId":"Libtmux.Snapshot.started_at_ns","qualifiedName":"Libtmux.Snapshot.started_at_ns","name":"started_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":457,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val started_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":457,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val started_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-started_at_ns"},{"id":"Libtmux.Snapshot.t","publicId":"Libtmux.Snapshot.t","qualifiedName":"Libtmux.Snapshot.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":382,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":382,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-t"},{"id":"Libtmux.Snapshot.window_links","publicId":"Libtmux.Snapshot.window_links","qualifiedName":"Libtmux.Snapshot.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":461,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":461,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-snapshot-window_links"},{"id":"Libtmux.Snapshot.windows","publicId":"Libtmux.Snapshot.windows","qualifiedName":"Libtmux.Snapshot.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":460,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":460,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-snapshot-windows"},{"id":"Libtmux.Source","publicId":"Libtmux.Source","qualifiedName":"Libtmux.Source","name":"Source","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":92,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Endpoint and observed daemon identity for one connection generation.\n Constructing metadata alone does not establish a live binding. "],"declarations":[{"kind":"module","text":"module Source : sig\n type t\n\n val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result\n (** Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. *)\n\n val endpoint : t -> Endpoint.t\n val generation : t -> Generation.t\n val server_pid : t -> int\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":92,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"Endpoint and observed daemon identity for one connection generation. Constructing metadata alone does not establish a live binding."},"slug":"libtmux-source"},{"id":"Libtmux.Source.create","publicId":"Libtmux.Source.create","qualifiedName":"Libtmux.Source.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. "],"declarations":[{"kind":"function","text":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Source","doc":{"summary":"Pure metadata import for capture adapters. This neither establishes a connection nor verifies process identity. The backend must bind the generation to a live daemon before it admits operations."},"signatures":[{"raw":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t -> server_pid:int -> (t, Error.t) result","params":[{"name":"endpoint","type":"Endpoint.t","keywordOnly":true},{"name":"generation","type":"Generation.t","keywordOnly":true},{"name":"server_pid","type":"int","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-source-create"},{"id":"Libtmux.Source.endpoint","publicId":"Libtmux.Source.endpoint","qualifiedName":"Libtmux.Source.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Endpoint.t","source":{"file":"lib/libtmux.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val endpoint : t -> Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Endpoint.t"}],"slug":"libtmux-source-endpoint"},{"id":"Libtmux.Source.equal","publicId":"Libtmux.Source.equal","qualifiedName":"Libtmux.Source.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":107,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":107,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-source-equal"},{"id":"Libtmux.Source.generation","publicId":"Libtmux.Source.generation","qualifiedName":"Libtmux.Source.generation","name":"generation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":105,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val generation : t -> Generation.t","source":{"file":"lib/libtmux.mli","line":105,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val generation : t -> Generation.t","params":[{"name":"arg1","type":"t"}],"returns":"Generation.t"}],"slug":"libtmux-source-generation"},{"id":"Libtmux.Source.server_pid","publicId":"Libtmux.Source.server_pid","qualifiedName":"Libtmux.Source.server_pid","name":"server_pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val server_pid : t -> int","source":{"file":"lib/libtmux.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val server_pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-source-server_pid"},{"id":"Libtmux.Source.t","publicId":"Libtmux.Source.t","qualifiedName":"Libtmux.Source.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Source","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-source-t"},{"id":"Libtmux.Spawn","publicId":"Libtmux.Spawn","qualifiedName":"Libtmux.Spawn","name":"Spawn","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":717,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A process description with explicit argv or shell semantics, working\n directory and environment. Describing a process performs no I/O. "],"declarations":[{"kind":"module","text":"module Spawn : sig\n type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string\n\n type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }\n\n val make : ?cwd:string -> ?environment:(string * string) list -> command -> t\n (** Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. *)\n\n val default : t\nend","source":{"file":"lib/libtmux.mli","line":717,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"A process description with explicit argv or shell semantics, working directory and environment. Describing a process performs no I/O."},"slug":"libtmux-spawn"},{"id":"Libtmux.Spawn.command","publicId":"Libtmux.Spawn.command","qualifiedName":"Libtmux.Spawn.command","name":"command","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":718,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string","source":{"file":"lib/libtmux.mli","line":718,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type command =\n Default\n | Exec of { program : string; args : string list; }\n | Shell of string","params":[]}],"slug":"libtmux-spawn-command"},{"id":"Libtmux.Spawn.command.Default","publicId":"Libtmux.Spawn.command.Default","name":"Default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":719,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Default","source":{"file":"lib/libtmux.mli","line":719,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.command","variant":"unit","qualifiedName":"Libtmux.Spawn.Default","slug":"libtmux-spawn-command-default"},{"id":"Libtmux.Spawn.command.Exec","publicId":"Libtmux.Spawn.command.Exec","name":"Exec","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Exec of { program : string; args : string list }","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.command","variant":"struct","qualifiedName":"Libtmux.Spawn.Exec","slug":"libtmux-spawn-command-exec"},{"id":"Libtmux.Spawn.command.Exec.args","publicId":"Libtmux.Spawn.command.Exec.args","name":"args","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"args : string list","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string list","qualifiedName":"Libtmux.Spawn.args","slug":"libtmux-spawn-command-exec-args"},{"id":"Libtmux.Spawn.command.Exec.program","publicId":"Libtmux.Spawn.command.Exec.program","name":"program","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"program : string;","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string","qualifiedName":"Libtmux.Spawn.program","slug":"libtmux-spawn-command-exec-program"},{"id":"Libtmux.Spawn.command.Shell","publicId":"Libtmux.Spawn.command.Shell","name":"Shell","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Shell of string","source":{"file":"lib/libtmux.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.command","variant":"tuple","qualifiedName":"Libtmux.Spawn.Shell","slug":"libtmux-spawn-command-shell"},{"id":"Libtmux.Spawn.default","publicId":"Libtmux.Spawn.default","qualifiedName":"Libtmux.Spawn.default","name":"default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":737,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val default : t","source":{"file":"lib/libtmux.mli","line":737,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"val default : t","params":[],"returns":"t"}],"slug":"libtmux-spawn-default"},{"id":"Libtmux.Spawn.make","publicId":"Libtmux.Spawn.make","qualifiedName":"Libtmux.Spawn.make","name":"make","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. "],"declarations":[{"kind":"function","text":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","source":{"file":"lib/libtmux.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn","doc":{"summary":"Describe a program without I/O. `Exec` preserves argv; `Shell` explicitly requests the daemon's configured shell. `cwd` must be absolute. Validation occurs at admission. With no arguments, `Exec` uses a fixed `/bin/sh` trampoline because tmux treats a single argument as shell code. `Default` follows tmux defaults on creation and reuses the previous command on respawn."},"signatures":[{"raw":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"arg1","type":"command"}],"returns":"t"}],"slug":"libtmux-spawn-make"},{"id":"Libtmux.Spawn.t","publicId":"Libtmux.Spawn.t","qualifiedName":"Libtmux.Spawn.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":723,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }","source":{"file":"lib/libtmux.mli","line":723,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n}","params":[]}],"slug":"libtmux-spawn-t"},{"id":"Libtmux.Spawn.t.command","publicId":"Libtmux.Spawn.t.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : command;","source":{"file":"lib/libtmux.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.t","type":"command","qualifiedName":"Libtmux.Spawn.command","slug":"libtmux-spawn-t-command"},{"id":"Libtmux.Spawn.t.cwd","publicId":"Libtmux.Spawn.t.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":725,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"lib/libtmux.mli","line":725,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.t","type":"string option","qualifiedName":"Libtmux.Spawn.cwd","slug":"libtmux-spawn-t-cwd"},{"id":"Libtmux.Spawn.t.environment","publicId":"Libtmux.Spawn.t.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":726,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"lib/libtmux.mli","line":726,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Spawn.t","type":"(string * string) list","qualifiedName":"Libtmux.Spawn.environment","slug":"libtmux-spawn-t-environment"},{"id":"Libtmux.Window","publicId":"Libtmux.Window","qualifiedName":"Libtmux.Window","name":"Window","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A global window shared by its session links. Window index and current state\n belong to a link, while panes and geometry belong to the window. "],"declarations":[{"kind":"module","text":"and Window : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end\n\n module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val width : t -> int\n val height : t -> int\n val layout : t -> string\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\n val panes : t -> Pane.t Iarray.t\n val links : t -> Window_link.t Iarray.t\nend","source":{"file":"lib/libtmux.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"A global window shared by its session links. Window index and current state belong to a link, while panes and geometry belong to the window."},"slug":"libtmux-window"},{"id":"Libtmux.Window.Fields","publicId":"Libtmux.Window.Fields","qualifiedName":"Libtmux.Window.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end","source":{"file":"lib/libtmux.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","slug":"libtmux-window-fields"},{"id":"Libtmux.Window.Fields.height","publicId":"Libtmux.Window.Fields.height","qualifiedName":"Libtmux.Window.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-height"},{"id":"Libtmux.Window.Fields.id","publicId":"Libtmux.Window.Fields.id","qualifiedName":"Libtmux.Window.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-id"},{"id":"Libtmux.Window.Fields.layout","publicId":"Libtmux.Window.Fields.layout","qualifiedName":"Libtmux.Window.Fields.layout","name":"layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":225,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val layout : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val layout : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-layout"},{"id":"Libtmux.Window.Fields.name","publicId":"Libtmux.Window.Fields.name","qualifiedName":"Libtmux.Window.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-name"},{"id":"Libtmux.Window.Fields.width","publicId":"Libtmux.Window.Fields.width","qualifiedName":"Libtmux.Window.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-width"},{"id":"Libtmux.Window.Id","publicId":"Libtmux.Window.Id","qualifiedName":"Libtmux.Window.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","slug":"libtmux-window-id-1sgu"},{"id":"Libtmux.Window.Id.compare","publicId":"Libtmux.Window.Id.compare","qualifiedName":"Libtmux.Window.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-window-id-compare"},{"id":"Libtmux.Window.Id.equal","publicId":"Libtmux.Window.Id.equal","qualifiedName":"Libtmux.Window.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-id-equal"},{"id":"Libtmux.Window.Id.of_string","publicId":"Libtmux.Window.Id.of_string","qualifiedName":"Libtmux.Window.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-window-id-of_string"},{"id":"Libtmux.Window.Id.pp","publicId":"Libtmux.Window.Id.pp","qualifiedName":"Libtmux.Window.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-window-id-pp"},{"id":"Libtmux.Window.Id.t","publicId":"Libtmux.Window.Id.t","qualifiedName":"Libtmux.Window.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-id-t"},{"id":"Libtmux.Window.Id.to_string","publicId":"Libtmux.Window.Id.to_string","qualifiedName":"Libtmux.Window.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-id-to_string"},{"id":"Libtmux.Window.Relations","publicId":"Libtmux.Window.Relations","qualifiedName":"Libtmux.Window.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":228,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":228,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","slug":"libtmux-window-relations"},{"id":"Libtmux.Window.Relations.links","publicId":"Libtmux.Window.Relations.links","qualifiedName":"Libtmux.Window.Relations.links","name":"links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-window-relations-links"},{"id":"Libtmux.Window.Relations.panes","publicId":"Libtmux.Window.Relations.panes","qualifiedName":"Libtmux.Window.Relations.panes","name":"panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val panes : (t, Pane.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val panes : (t, Pane.t) Relation.Many.t","params":[],"returns":"(t, Pane.t) Relation.Many.t"}],"slug":"libtmux-window-relations-panes"},{"id":"Libtmux.Window.Target","publicId":"Libtmux.Window.Target","qualifiedName":"Libtmux.Window.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","slug":"libtmux-window-target-6ecc"},{"id":"Libtmux.Window.Target.id","publicId":"Libtmux.Window.Target.id","qualifiedName":"Libtmux.Window.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":240,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":240,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-target-id"},{"id":"Libtmux.Window.Target.of_id","publicId":"Libtmux.Window.Target.of_id","qualifiedName":"Libtmux.Window.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-window-target-of_id"},{"id":"Libtmux.Window.Target.source","publicId":"Libtmux.Window.Target.source","qualifiedName":"Libtmux.Window.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":239,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-target-source"},{"id":"Libtmux.Window.Target.t","publicId":"Libtmux.Window.Target.t","qualifiedName":"Libtmux.Window.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-target-t"},{"id":"Libtmux.Window.height","publicId":"Libtmux.Window.height","qualifiedName":"Libtmux.Window.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-height"},{"id":"Libtmux.Window.id","publicId":"Libtmux.Window.id","qualifiedName":"Libtmux.Window.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-id-1sjw"},{"id":"Libtmux.Window.layout","publicId":"Libtmux.Window.layout","qualifiedName":"Libtmux.Window.layout","name":"layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val layout : t -> string","source":{"file":"lib/libtmux.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val layout : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-layout"},{"id":"Libtmux.Window.links","publicId":"Libtmux.Window.links","qualifiedName":"Libtmux.Window.links","name":"links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":255,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":255,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-window-links"},{"id":"Libtmux.Window.name","publicId":"Libtmux.Window.name","qualifiedName":"Libtmux.Window.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-name"},{"id":"Libtmux.Window.panes","publicId":"Libtmux.Window.panes","qualifiedName":"Libtmux.Window.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":254,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":254,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-window-panes"},{"id":"Libtmux.Window.same_entity","publicId":"Libtmux.Window.same_entity","qualifiedName":"Libtmux.Window.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_entity"},{"id":"Libtmux.Window.same_observation","publicId":"Libtmux.Window.same_observation","qualifiedName":"Libtmux.Window.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_observation"},{"id":"Libtmux.Window.source","publicId":"Libtmux.Window.source","qualifiedName":"Libtmux.Window.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":250,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":250,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-source"},{"id":"Libtmux.Window.t","publicId":"Libtmux.Window.t","qualifiedName":"Libtmux.Window.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-t"},{"id":"Libtmux.Window.target","publicId":"Libtmux.Window.target","qualifiedName":"Libtmux.Window.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-window-target-1sbf"},{"id":"Libtmux.Window.target:type","publicId":"Libtmux.Window.target:type","qualifiedName":"Libtmux.Window.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":243,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":243,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-window-target-type"},{"id":"Libtmux.Window.width","publicId":"Libtmux.Window.width","qualifiedName":"Libtmux.Window.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":247,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":247,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-width"},{"id":"Libtmux.Window_link","publicId":"Libtmux.Window_link","qualifiedName":"Libtmux.Window_link","name":"Window_link","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" One captured session/index/window context. It is not a stable link\n incarnation across unlinking, movement or reindexing. "],"declarations":[{"kind":"module","text":"and Window_link : sig\n type t\n\n module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end\n\n val index : t -> int\n val is_current : t -> bool\n val session : t -> Session.t\n val window : t -> Window.t\n\n val same_context : t -> t -> bool\n (** Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. *)\n\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux","doc":{"summary":"One captured session/index/window context. It is not a stable link incarnation across unlinking, movement or reindexing."},"slug":"libtmux-window_link"},{"id":"Libtmux.Window_link.Fields","publicId":"Libtmux.Window_link.Fields","qualifiedName":"Libtmux.Window_link.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-fields"},{"id":"Libtmux.Window_link.Fields.index","publicId":"Libtmux.Window_link.Fields.index","qualifiedName":"Libtmux.Window_link.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window_link-fields-index"},{"id":"Libtmux.Window_link.Fields.is_current","publicId":"Libtmux.Window_link.Fields.is_current","qualifiedName":"Libtmux.Window_link.Fields.is_current","name":"is_current","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":265,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val is_current : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":265,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val is_current : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-window_link-fields-is_current"},{"id":"Libtmux.Window_link.Relations","publicId":"Libtmux.Window_link.Relations","qualifiedName":"Libtmux.Window_link.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":268,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":268,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-relations"},{"id":"Libtmux.Window_link.Relations.session","publicId":"Libtmux.Window_link.Relations.session","qualifiedName":"Libtmux.Window_link.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.One.t","params":[],"returns":"(t, Session.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-session"},{"id":"Libtmux.Window_link.Relations.window","publicId":"Libtmux.Window_link.Relations.window","qualifiedName":"Libtmux.Window_link.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":270,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":270,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-window"},{"id":"Libtmux.Window_link.index","publicId":"Libtmux.Window_link.index","qualifiedName":"Libtmux.Window_link.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window_link-index"},{"id":"Libtmux.Window_link.is_current","publicId":"Libtmux.Window_link.is_current","qualifiedName":"Libtmux.Window_link.is_current","name":"is_current","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_current : t -> bool","source":{"file":"lib/libtmux.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val is_current : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-is_current"},{"id":"Libtmux.Window_link.same_context","publicId":"Libtmux.Window_link.same_context","qualifiedName":"Libtmux.Window_link.same_context","name":"same_context","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":278,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. "],"declarations":[{"kind":"function","text":"val same_context : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":278,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","doc":{"summary":"Compare source, session, index and window. An equal context does not certify a stable link incarnation across reindexing or unlink/relink."},"signatures":[{"raw":"val same_context : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_context"},{"id":"Libtmux.Window_link.same_observation","publicId":"Libtmux.Window_link.same_observation","qualifiedName":"Libtmux.Window_link.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_observation"},{"id":"Libtmux.Window_link.session","publicId":"Libtmux.Window_link.session","qualifiedName":"Libtmux.Window_link.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":275,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> Session.t","source":{"file":"lib/libtmux.mli","line":275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val session : t -> Session.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t"}],"slug":"libtmux-window_link-session"},{"id":"Libtmux.Window_link.t","publicId":"Libtmux.Window_link.t","qualifiedName":"Libtmux.Window_link.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window_link-t"},{"id":"Libtmux.Window_link.window","publicId":"Libtmux.Window_link.window","qualifiedName":"Libtmux.Window_link.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":276,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":276,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-window_link-window"},{"id":"Libtmux_eio","publicId":"Libtmux_eio","qualifiedName":"Libtmux_eio","name":"Libtmux_eio","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Concurrent Linux tmux clients using the application's Eio scheduler.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md}streaming\n guide} demonstrates application-owned switches, cancellation and continuity\n gaps. "],"declarations":[{"kind":"module","text":"","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"doc":{"summary":"Concurrent Linux tmux clients using the application's Eio scheduler.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [streaming guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md) demonstrates application-owned switches, cancellation and continuity gaps."},"slug":"libtmux_eio"},{"id":"Libtmux_eio.Client","publicId":"Libtmux_eio.Client","qualifiedName":"Libtmux_eio.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. *)\n\n val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. No history/barrier guarantee. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve bounded capacity without I/O. *)\n\n val await : 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. *)\n\n val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result\n (** Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. *)\n\n val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. *)\n\n val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Retire the generation and close owned control clients and descriptors.\n tmux's [exit-unattached] and [exit-empty] policies can end the daemon\n after its clients or sessions disappear. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_eio-client"},{"id":"Libtmux_eio.Client.await","publicId":"Libtmux_eio.Client.await","qualifiedName":"Libtmux_eio.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. "],"declarations":[{"kind":"function","text":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Cancellation propagates as Eio cancellation. Store the handle outside the cancelled fiber: the client drains written work independently, and the eventual result remains inspectable."},"signatures":[{"raw":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-await"},{"id":"Libtmux_eio.Client.break_pane","publicId":"Libtmux_eio.Client.break_pane","qualifiedName":"Libtmux_eio.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-break_pane"},{"id":"Libtmux_eio.Client.capture","publicId":"Libtmux_eio.Client.capture","qualifiedName":"Libtmux_eio.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. "],"declarations":[{"kind":"function","text":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a complete immutable graph over an interval. Conflicting or disappearing entities fail capture; they do not become empty relations. The returned values remain readable after client closure."},"signatures":[{"raw":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture"},{"id":"Libtmux_eio.Client.capture_environment","publicId":"Libtmux_eio.Client.capture_environment","qualifiedName":"Libtmux_eio.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_environment"},{"id":"Libtmux_eio.Client.capture_hooks","publicId":"Libtmux_eio.Client.capture_hooks","qualifiedName":"Libtmux_eio.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_hooks"},{"id":"Libtmux_eio.Client.capture_options","publicId":"Libtmux_eio.Client.capture_options","qualifiedName":"Libtmux_eio.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":283,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_options"},{"id":"Libtmux_eio.Client.capture_text","publicId":"Libtmux_eio.Client.capture_text","qualifiedName":"Libtmux_eio.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Inclusive ordinary screen rows, using a bounded private file transfer. Qualified local scratch storage must be shared with the daemon."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_text"},{"id":"Libtmux_eio.Client.clear_history","publicId":"Libtmux_eio.Client.clear_history","qualifiedName":"Libtmux_eio.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_history"},{"id":"Libtmux_eio.Client.clear_option_array","publicId":"Libtmux_eio.Client.clear_option_array","qualifiedName":"Libtmux_eio.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_option_array"},{"id":"Libtmux_eio.Client.close","publicId":"Libtmux_eio.Client.close","qualifiedName":"Libtmux_eio.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Retire the generation and close owned control clients and descriptors.\n tmux's [exit-unattached] and [exit-empty] policies can end the daemon\n after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Retire the generation and close owned control clients and descriptors. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-close"},{"id":"Libtmux_eio.Client.connect","publicId":"Libtmux_eio.Client.connect","qualifiedName":"Libtmux_eio.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n "],"declarations":[{"kind":"function","text":"val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Attach to an existing local Linux daemon in the same PID namespace and shared filesystem. Requires pidfd support. Default exchange timeout: one second. All client calls belong to the connecting OCaml domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-connect"},{"id":"Libtmux_eio.Client.create_session","publicId":"Libtmux_eio.Client.create_session","qualifiedName":"Libtmux_eio.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":380,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":380,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_session"},{"id":"Libtmux_eio.Client.create_window","publicId":"Libtmux_eio.Client.create_window","qualifiedName":"Libtmux_eio.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":391,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":391,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_window"},{"id":"Libtmux_eio.Client.cycle_layout","publicId":"Libtmux_eio.Client.cycle_layout","qualifiedName":"Libtmux_eio.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-cycle_layout"},{"id":"Libtmux_eio.Client.kill_pane","publicId":"Libtmux_eio.Client.kill_pane","qualifiedName":"Libtmux_eio.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":431,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":431,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_pane"},{"id":"Libtmux_eio.Client.kill_session","publicId":"Libtmux_eio.Client.kill_session","qualifiedName":"Libtmux_eio.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_session"},{"id":"Libtmux_eio.Client.kill_window","publicId":"Libtmux_eio.Client.kill_window","qualifiedName":"Libtmux_eio.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_window"},{"id":"Libtmux_eio.Client.link_window","publicId":"Libtmux_eio.Client.link_window","qualifiedName":"Libtmux_eio.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-link_window"},{"id":"Libtmux_eio.Client.move_pane","publicId":"Libtmux_eio.Client.move_pane","qualifiedName":"Libtmux_eio.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_pane"},{"id":"Libtmux_eio.Client.move_window_at","publicId":"Libtmux_eio.Client.move_window_at","qualifiedName":"Libtmux_eio.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_window_at"},{"id":"Libtmux_eio.Client.read_hook","publicId":"Libtmux_eio.Client.read_hook","qualifiedName":"Libtmux_eio.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_hook"},{"id":"Libtmux_eio.Client.read_option","publicId":"Libtmux_eio.Client.read_option","qualifiedName":"Libtmux_eio.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_option"},{"id":"Libtmux_eio.Client.refresh_client_at","publicId":"Libtmux_eio.Client.refresh_client_at","qualifiedName":"Libtmux_eio.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-refresh_client_at"},{"id":"Libtmux_eio.Client.remove_environment","publicId":"Libtmux_eio.Client.remove_environment","qualifiedName":"Libtmux_eio.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_environment"},{"id":"Libtmux_eio.Client.remove_hook","publicId":"Libtmux_eio.Client.remove_hook","qualifiedName":"Libtmux_eio.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":362,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":362,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_hook"},{"id":"Libtmux_eio.Client.rename_session","publicId":"Libtmux_eio.Client.rename_session","qualifiedName":"Libtmux_eio.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_session"},{"id":"Libtmux_eio.Client.rename_window","publicId":"Libtmux_eio.Client.rename_window","qualifiedName":"Libtmux_eio.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":193,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":193,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_window"},{"id":"Libtmux_eio.Client.request_detach_client_at","publicId":"Libtmux_eio.Client.request_detach_client_at","qualifiedName":"Libtmux_eio.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-request_detach_client_at"},{"id":"Libtmux_eio.Client.resize_control_client_at","publicId":"Libtmux_eio.Client.resize_control_client_at","qualifiedName":"Libtmux_eio.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_control_client_at"},{"id":"Libtmux_eio.Client.resize_pane","publicId":"Libtmux_eio.Client.resize_pane","qualifiedName":"Libtmux_eio.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":477,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":477,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_pane"},{"id":"Libtmux_eio.Client.resize_window","publicId":"Libtmux_eio.Client.resize_window","qualifiedName":"Libtmux_eio.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":487,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":487,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_window"},{"id":"Libtmux_eio.Client.respawn_pane","publicId":"Libtmux_eio.Client.respawn_pane","qualifiedName":"Libtmux_eio.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-respawn_pane"},{"id":"Libtmux_eio.Client.rotate_panes","publicId":"Libtmux_eio.Client.rotate_panes","qualifiedName":"Libtmux_eio.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rotate_panes"},{"id":"Libtmux_eio.Client.run","publicId":"Libtmux_eio.Client.run","qualifiedName":"Libtmux_eio.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. "],"declarations":[{"kind":"function","text":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Submit and await an explicit command. Retain a separate submitted handle when the outcome must remain inspectable after caller cancellation."},"signatures":[{"raw":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run"},{"id":"Libtmux_eio.Client.run_hook","publicId":"Libtmux_eio.Client.run_hook","qualifiedName":"Libtmux_eio.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":371,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":371,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run_hook"},{"id":"Libtmux_eio.Client.select_layout","publicId":"Libtmux_eio.Client.select_layout","qualifiedName":"Libtmux_eio.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout :\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_layout"},{"id":"Libtmux_eio.Client.select_pane","publicId":"Libtmux_eio.Client.select_pane","qualifiedName":"Libtmux_eio.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":468,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":468,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_pane"},{"id":"Libtmux_eio.Client.select_window_at","publicId":"Libtmux_eio.Client.select_window_at","qualifiedName":"Libtmux_eio.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":435,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":435,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_window_at"},{"id":"Libtmux_eio.Client.send_keys","publicId":"Libtmux_eio.Client.send_keys","qualifiedName":"Libtmux_eio.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys :\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_keys"},{"id":"Libtmux_eio.Client.send_text","publicId":"Libtmux_eio.Client.send_text","qualifiedName":"Libtmux_eio.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_text"},{"id":"Libtmux_eio.Client.set_environment","publicId":"Libtmux_eio.Client.set_environment","qualifiedName":"Libtmux_eio.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_environment"},{"id":"Libtmux_eio.Client.set_hook","publicId":"Libtmux_eio.Client.set_hook","qualifiedName":"Libtmux_eio.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":346,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_hook"},{"id":"Libtmux_eio.Client.set_option","publicId":"Libtmux_eio.Client.set_option","qualifiedName":"Libtmux_eio.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_option"},{"id":"Libtmux_eio.Client.set_pane_title","publicId":"Libtmux_eio.Client.set_pane_title","qualifiedName":"Libtmux_eio.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_pane_title"},{"id":"Libtmux_eio.Client.signal","publicId":"Libtmux_eio.Client.signal","qualifiedName":"Libtmux_eio.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-signal"},{"id":"Libtmux_eio.Client.source","publicId":"Libtmux_eio.Client.source","qualifiedName":"Libtmux_eio.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_eio-client-source"},{"id":"Libtmux_eio.Client.split_pane","publicId":"Libtmux_eio.Client.split_pane","qualifiedName":"Libtmux_eio.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":400,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":400,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-split_pane"},{"id":"Libtmux_eio.Client.submit","publicId":"Libtmux_eio.Client.submit","qualifiedName":"Libtmux_eio.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate and reserve bounded capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate and reserve bounded capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-submit"},{"id":"Libtmux_eio.Client.subscribe","publicId":"Libtmux_eio.Client.subscribe","qualifiedName":"Libtmux_eio.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire verified coverage through one shared lane per session; choose the least observed session ID unless supplied. A client-owned reader delivers future bytes without application callbacks. Default queue bounds are 1 MiB/1024 events; max 16 subscribers and eight total client lanes, sharing the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap then End. Data starts after admission's marker, with no snapshot/history barrier, automatic reconnect or silent cursor reuse.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-subscribe"},{"id":"Libtmux_eio.Client.swap_panes","publicId":"Libtmux_eio.Client.swap_panes","qualifiedName":"Libtmux_eio.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-swap_panes"},{"id":"Libtmux_eio.Client.switch_client_at","publicId":"Libtmux_eio.Client.switch_client_at","qualifiedName":"Libtmux_eio.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-switch_client_at"},{"id":"Libtmux_eio.Client.t","publicId":"Libtmux_eio.Client.t","qualifiedName":"Libtmux_eio.Client.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-client-t"},{"id":"Libtmux_eio.Client.unlink_window_at","publicId":"Libtmux_eio.Client.unlink_window_at","qualifiedName":"Libtmux_eio.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unlink_window_at"},{"id":"Libtmux_eio.Client.unset_environment","publicId":"Libtmux_eio.Client.unset_environment","qualifiedName":"Libtmux_eio.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_environment"},{"id":"Libtmux_eio.Client.unset_option","publicId":"Libtmux_eio.Client.unset_option","qualifiedName":"Libtmux_eio.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_option"},{"id":"Libtmux_eio.Client.version","publicId":"Libtmux_eio.Client.version","qualifiedName":"Libtmux_eio.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":132,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"eio/libtmux_eio.mli","line":132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_eio-client-version"},{"id":"Libtmux_eio.Client.wait_for","publicId":"Libtmux_eio.Client.wait_for","qualifiedName":"Libtmux_eio.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for"},{"id":"Libtmux_eio.Client.wait_for_text","publicId":"Libtmux_eio.Client.wait_for_text","qualifiedName":"Libtmux_eio.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. No history/barrier guarantee. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Subscribe and capture the screen immediately, then recapture on output. Membership/overflow gaps establish fresh coverage in the same binding. Maximum pattern: 64 KiB. Return captured rendered text containing it; transient text may be missed. Deadlines are checked between bounded acquisitions, whose I/O retains the client exchange timeout. Cancellation propagates and releases the subscription. No history/barrier guarantee."},"signatures":[{"raw":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for_text"},{"id":"Libtmux_eio.Client.zoom_pane","publicId":"Libtmux_eio.Client.zoom_pane","qualifiedName":"Libtmux_eio.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":539,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":539,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-zoom_pane"},{"id":"Libtmux_eio.Operation","publicId":"Libtmux_eio.Operation","qualifiedName":"Libtmux_eio.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":45,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** Read without I/O, including after client closure. Owning domain only. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove unsent work. A written request remains owned and drained by the\n client. *)\n\n val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result\n (** Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":45,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_eio-operation"},{"id":"Libtmux_eio.Operation.await_stage","publicId":"Libtmux_eio.Operation.await_stage","qualifiedName":"Libtmux_eio.Operation.await_stage","name":"await_stage","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n "],"declarations":[{"kind":"function","text":"val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Wait for the named stage or a terminal state. Acknowledgement does not establish completion. Cancelling this observer leaves the operation alone."},"signatures":[{"raw":"val await_stage :\n 'a t -> [ `Acknowledged | `Written ] -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"[ `Acknowledged | `Written ]"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-await_stage"},{"id":"Libtmux_eio.Operation.cancel","publicId":"Libtmux_eio.Operation.cancel","qualifiedName":"Libtmux_eio.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove unsent work. A written request remains owned and drained by the\n client. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Remove unsent work. A written request remains owned and drained by the client."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-cancel"},{"id":"Libtmux_eio.Operation.cleanup_receipt","publicId":"Libtmux_eio.Operation.cleanup_receipt","qualifiedName":"Libtmux_eio.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":48,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"eio/libtmux_eio.mli","line":48,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n}","params":[]}],"slug":"libtmux_eio-operation-cleanup_receipt"},{"id":"Libtmux_eio.Operation.cleanup_receipt.cause","publicId":"Libtmux_eio.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"eio/libtmux_eio.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_eio.Operation.cause","slug":"libtmux_eio-operation-cleanup_receipt-cause"},{"id":"Libtmux_eio.Operation.cleanup_receipt.created","publicId":"Libtmux_eio.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"eio/libtmux_eio.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_eio.Operation.created","slug":"libtmux_eio-operation-cleanup_receipt-created"},{"id":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"eio/libtmux_eio.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_eio.Operation.owned_buffers","slug":"libtmux_eio-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_eio.Operation.id","publicId":"Libtmux_eio.Operation.id","qualifiedName":"Libtmux_eio.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"eio/libtmux_eio.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_eio-operation-id"},{"id":"Libtmux_eio.Operation.inspect","publicId":"Libtmux_eio.Operation.inspect","qualifiedName":"Libtmux_eio.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read without I/O, including after client closure. Owning domain only. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Read without I/O, including after client closure. Owning domain only."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-inspect"},{"id":"Libtmux_eio.Operation.state","publicId":"Libtmux_eio.Operation.state","qualifiedName":"Libtmux_eio.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a state =\n Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","params":[]}],"slug":"libtmux_eio-operation-state"},{"id":"Libtmux_eio.Operation.state.Acknowledged","publicId":"Libtmux_eio.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Acknowledged","slug":"libtmux_eio-operation-state-acknowledged"},{"id":"Libtmux_eio.Operation.state.Finished","publicId":"Libtmux_eio.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Finished","slug":"libtmux_eio-operation-state-finished"},{"id":"Libtmux_eio.Operation.state.Not_started","publicId":"Libtmux_eio.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Not_started","slug":"libtmux_eio-operation-state-not_started"},{"id":"Libtmux_eio.Operation.state.Outcome_unknown","publicId":"Libtmux_eio.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Outcome_unknown","slug":"libtmux_eio-operation-state-outcome_unknown"},{"id":"Libtmux_eio.Operation.state.Queued","publicId":"Libtmux_eio.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"eio/libtmux_eio.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Queued","slug":"libtmux_eio-operation-state-queued"},{"id":"Libtmux_eio.Operation.state.Written","publicId":"Libtmux_eio.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Written","slug":"libtmux_eio-operation-state-written"},{"id":"Libtmux_eio.Operation.t","publicId":"Libtmux_eio.Operation.t","qualifiedName":"Libtmux_eio.Operation.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":46,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"eio/libtmux_eio.mli","line":46,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-operation-t"},{"id":"Libtmux_eio.Rendered","publicId":"Libtmux_eio.Rendered","qualifiedName":"Libtmux_eio.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio","exportedFrom":"Libtmux.Captured_text","slug":"libtmux_eio-rendered"},{"id":"Libtmux_eio.Subscription","publicId":"Libtmux_eio.Subscription","qualifiedName":"Libtmux_eio.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O, on the owning domain. *)\n\n val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Discard pending data and retain End Cancelled. Borrowed clients and the\n daemon remain alive. *)\n\n val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_eio-subscription"},{"id":"Libtmux_eio.Subscription.close","publicId":"Libtmux_eio.Subscription.close","qualifiedName":"Libtmux_eio.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Discard pending data and retain End Cancelled. Borrowed clients and the\n daemon remain alive. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Discard pending data and retain End Cancelled. Borrowed clients and the daemon remain alive."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-close"},{"id":"Libtmux_eio.Subscription.next","publicId":"Libtmux_eio.Subscription.next","qualifiedName":"Libtmux_eio.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":88,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. "],"declarations":[{"kind":"function","text":"val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":88,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Await one event, defaulting to a one-second deadline. `None` follows a consumed End. A deadline keeps the subscription active. Eio cancellation closes it, releases its lane when unused, and propagates."},"signatures":[{"raw":"val next :\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-next"},{"id":"Libtmux_eio.Subscription.poll","publicId":"Libtmux_eio.Subscription.poll","qualifiedName":"Libtmux_eio.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":85,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove a queued event without I/O, on the owning domain. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":85,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Remove a queued event without I/O, on the owning domain."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-poll"},{"id":"Libtmux_eio.Subscription.t","publicId":"Libtmux_eio.Subscription.t","qualifiedName":"Libtmux_eio.Subscription.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-subscription-t"},{"id":"Libtmux_eio.Subscription.wait_for_bytes","publicId":"Libtmux_eio.Subscription.wait_for_bytes","qualifiedName":"Libtmux_eio.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Consume future observed bytes through a match, with a maximum 64 KiB nonempty pattern. Match across Data boundaries and return its end cursor. Gaps end matching. This searches neither rendered text nor history. A deadline leaves the subscription active; cancellation closes it.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_eio-subscription-wait_for_bytes"},{"id":"Libtmux_eio.Terminal","publicId":"Libtmux_eio.Terminal","qualifiedName":"Libtmux_eio.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_eio-terminal"},{"id":"Libtmux_eio.Terminal.attach_current","publicId":"Libtmux_eio.Terminal.attach_current","qualifiedName":"Libtmux_eio.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Terminal","doc":{"summary":"Run an interactive terminal client until exit, using the application's process manager and standard streams unless explicit flows are supplied. `stdin` must be backed by a terminal descriptor; a pipe-backed flow is rejected by tmux. Select the exact ID on the daemon currently listening at `endpoint`, without a captured target, binding, retry or daemon startup.","body":"Environment updates and read-only mode default to false. Clear inherited `TMUX` and `TMUX_PANE`. Cancellation propagates after terminating and reaping this client; it does not stop the daemon. Success proves terminal client exit. Diagnostics go to `stderr`; borrowed flows stay open."},"signatures":[{"raw":"val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:[> Eio.Flow.source_ty ] Eio.Flow.source ->\n ?stdout:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n ?stderr:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"[> Eio.Flow.source_ty ] Eio.Flow.source","optional":true,"keywordOnly":true},{"name":"stdout","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"stderr","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-terminal-attach_current"},{"id":"Libtmux_eio.Workspace","publicId":"Libtmux_eio.Workspace","qualifiedName":"Libtmux_eio.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":567,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Apply workspace plans through Eio while retaining journals across caller\n cancellation. Handles belong to the creating domain; the application owns\n the scheduler and switch. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. *)\n\n val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. *)\n\n val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Read a journal copy without I/O, including any late retained outcome. *)\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":567,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio","doc":{"summary":"Apply workspace plans through Eio while retaining journals across caller cancellation. Handles belong to the creating domain; the application owns the scheduler and switch."},"slug":"libtmux_eio-workspace"},{"id":"Libtmux_eio.Workspace.await","publicId":"Libtmux_eio.Workspace.await","qualifiedName":"Libtmux_eio.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. "],"declarations":[{"kind":"function","text":"val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Apply once. Expected failures return a retained journal. Eio cancellation propagates after progress is recorded and at most 500 ms of protected compensation. Admitted commands can still complete under client ownership; inspect the receipt before attempting manual recovery."},"signatures":[{"raw":"val await :\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-await"},{"id":"Libtmux_eio.Workspace.client","publicId":"Libtmux_eio.Workspace.client","qualifiedName":"Libtmux_eio.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_eio-workspace-client"},{"id":"Libtmux_eio.Workspace.close","publicId":"Libtmux_eio.Workspace.close","qualifiedName":"Libtmux_eio.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Closing is idempotent; completed journals remain readable."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-close"},{"id":"Libtmux_eio.Workspace.inspect","publicId":"Libtmux_eio.Workspace.inspect","qualifiedName":"Libtmux_eio.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read a journal copy without I/O, including any late retained outcome. "],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Read a journal copy without I/O, including any late retained outcome."},"signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-inspect"},{"id":"Libtmux_eio.Workspace.submit","publicId":"Libtmux_eio.Workspace.submit","qualifiedName":"Libtmux_eio.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":570,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":570,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a generation-bound handle without I/O. The supplied client is borrowed; closing the handle leaves it open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit"},{"id":"Libtmux_eio.Workspace.submit_bootstrap","publicId":"Libtmux_eio.Workspace.submit_bootstrap","qualifiedName":"Libtmux_eio.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a missing-endpoint execution without I/O. Await starts control new-session and binds that same connection. The handle owns its new client within `sw`; it never owns the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit_bootstrap"},{"id":"Libtmux_eio.Workspace.t","publicId":"Libtmux_eio.Workspace.t","qualifiedName":"Libtmux_eio.Workspace.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_eio.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-workspace-t"},{"id":"Libtmux_json","publicId":"Libtmux_json","qualifiedName":"Libtmux_json","name":"Libtmux_json","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Pure, bounded query and workspace JSON interchange.\n\n {!Expr} validates portable queries and {!Workspace} decodes configurations\n and encodes plans and receipts. Both return {!Decode_error.t} on invalid\n data. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} and\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for complete programs. "],"declarations":[{"kind":"module","text":"","source":{"file":"json/libtmux_json.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"doc":{"summary":"Pure, bounded query and workspace JSON interchange.","body":"{!Expr} validates portable queries and {!Workspace} decodes configurations and encodes plans and receipts. Both return {!Decode_error.t} on invalid data. See the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) and [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for complete programs."},"slug":"libtmux_json"},{"id":"Libtmux_json.Decode_error","publicId":"Libtmux_json.Decode_error","qualifiedName":"Libtmux_json.Decode_error","name":"Decode_error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Decode_error : sig\n type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported\n\n type t = { pointer : string; category : category; message : string }\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"json/libtmux_json.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json","slug":"libtmux_json-decode_error"},{"id":"Libtmux_json.Decode_error.category","publicId":"Libtmux_json.Decode_error.category","qualifiedName":"Libtmux_json.Decode_error.category","name":"category","kind":"enum","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":12,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","source":{"file":"json/libtmux_json.mli","line":12,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type category =\n Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","params":[]}],"slug":"libtmux_json-decode_error-category"},{"id":"Libtmux_json.Decode_error.category.Limit","publicId":"Libtmux_json.Decode_error.category.Limit","name":"Limit","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Limit","source":{"file":"json/libtmux_json.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Limit","slug":"libtmux_json-decode_error-category-limit"},{"id":"Libtmux_json.Decode_error.category.Out_of_range","publicId":"Libtmux_json.Decode_error.category.Out_of_range","name":"Out_of_range","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Out_of_range","source":{"file":"json/libtmux_json.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Out_of_range","slug":"libtmux_json-decode_error-category-out_of_range"},{"id":"Libtmux_json.Decode_error.category.Syntax","publicId":"Libtmux_json.Decode_error.category.Syntax","name":"Syntax","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Syntax","source":{"file":"json/libtmux_json.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Syntax","slug":"libtmux_json-decode_error-category-syntax"},{"id":"Libtmux_json.Decode_error.category.Unknown","publicId":"Libtmux_json.Decode_error.category.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"json/libtmux_json.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unknown","slug":"libtmux_json-decode_error-category-unknown"},{"id":"Libtmux_json.Decode_error.category.Unsupported","publicId":"Libtmux_json.Decode_error.category.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"json/libtmux_json.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unsupported","slug":"libtmux_json-decode_error-category-unsupported"},{"id":"Libtmux_json.Decode_error.category.Wrong_type","publicId":"Libtmux_json.Decode_error.category.Wrong_type","name":"Wrong_type","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_type","source":{"file":"json/libtmux_json.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Wrong_type","slug":"libtmux_json-decode_error-category-wrong_type"},{"id":"Libtmux_json.Decode_error.pp","publicId":"Libtmux_json.Decode_error.pp","qualifiedName":"Libtmux_json.Decode_error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"json/libtmux_json.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux_json-decode_error-pp"},{"id":"Libtmux_json.Decode_error.t","publicId":"Libtmux_json.Decode_error.t","qualifiedName":"Libtmux_json.Decode_error.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = { pointer : string; category : category; message : string }","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type t = { pointer : string; category : category; message : string; }","params":[]}],"slug":"libtmux_json-decode_error-t"},{"id":"Libtmux_json.Decode_error.t.category","publicId":"Libtmux_json.Decode_error.t.category","name":"category","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"category : category;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.t","type":"category","qualifiedName":"Libtmux_json.Decode_error.category","slug":"libtmux_json-decode_error-t-category"},{"id":"Libtmux_json.Decode_error.t.message","publicId":"Libtmux_json.Decode_error.t.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.message","slug":"libtmux_json-decode_error-t-message"},{"id":"Libtmux_json.Decode_error.t.pointer","publicId":"Libtmux_json.Decode_error.t.pointer","name":"pointer","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pointer : string;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.pointer","slug":"libtmux_json-decode_error-t-pointer"},{"id":"Libtmux_json.Error","publicId":"Libtmux_json.Error","qualifiedName":"Libtmux_json.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Structured native failures for JSON consumers. "],"declarations":[{"kind":"module","text":"module Error : sig\n val encode : Libtmux.Error.t -> Yojson.Safe.t\n (** Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json","doc":{"summary":"Structured native failures for JSON consumers."},"slug":"libtmux_json-error"},{"id":"Libtmux_json.Error.encode","publicId":"Libtmux_json.Error.encode","qualifiedName":"Libtmux_json.Error.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. "],"declarations":[{"kind":"function","text":"val encode : Libtmux.Error.t -> Yojson.Safe.t","source":{"file":"json/libtmux_json.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Error","doc":{"summary":"Return a stable `code`, bounded `message`, `message_truncated` flag and relevant operation, resource or target metadata. Messages and text attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex representation described by {!Workspace.encode_receipt}. No I/O."},"signatures":[{"raw":"val encode : Libtmux.Error.t -> Yojson.Safe.t","params":[{"name":"arg1","type":"Libtmux.Error.t"}],"returns":"Yojson.Safe.t"}],"slug":"libtmux_json-error-encode"},{"id":"Libtmux_json.Expr","publicId":"Libtmux_json.Expr","qualifiedName":"Libtmux_json.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Expr : sig\n val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result\n (** Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. *)\n\n val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result\n (** Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. *)\n\n val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result\n\n val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result\n (** Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json","slug":"libtmux_json-expr"},{"id":"Libtmux_json.Expr.decode","publicId":"Libtmux_json.Expr.decode","qualifiedName":"Libtmux_json.Expr.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. "],"declarations":[{"kind":"function","text":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Validate the supplied tree, including duplicate properties, before typed construction. Only the shared scalar pane registry and Boolean composition are accepted. Java regex, relationships and native extension fields return `Unsupported`. Numbers must fit signed 32-bit integers."},"signatures":[{"raw":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"Yojson.Safe.t"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-decode"},{"id":"Libtmux_json.Expr.encode","publicId":"Libtmux_json.Expr.encode","qualifiedName":"Libtmux_json.Expr.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Expr","signatures":[{"raw":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-encode"},{"id":"Libtmux_json.Expr.of_string","publicId":"Libtmux_json.Expr.of_string","qualifiedName":"Libtmux_json.Expr.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. "],"declarations":[{"kind":"function","text":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at most 256 values. Errors include a JSON pointer, never the whole input."},"signatures":[{"raw":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"string"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-of_string"},{"id":"Libtmux_json.Expr.to_string","publicId":"Libtmux_json.Expr.to_string","qualifiedName":"Libtmux_json.Expr.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. "],"declarations":[{"kind":"function","text":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Apply the same bounds and subset when encoding. Text with invalid UTF-8 has no representation in this schema. These functions perform no I/O."},"signatures":[{"raw":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(string, Decode_error.t) result"}],"slug":"libtmux_json-expr-to_string"},{"id":"Libtmux_json.Workspace","publicId":"Libtmux_json.Workspace","qualifiedName":"Libtmux_json.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Validate workspace documents and describe plans and retained execution.\n Preview output never supplies executable targets. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n\n val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n (** Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. *)\n\n val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. *)\n\n val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. *)\nend","source":{"file":"json/libtmux_json.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json","doc":{"summary":"Validate workspace documents and describe plans and retained execution. Preview output never supplies executable targets."},"slug":"libtmux_json-workspace"},{"id":"Libtmux_json.Workspace.decode","publicId":"Libtmux_json.Workspace.decode","qualifiedName":"Libtmux_json.Workspace.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Workspace","signatures":[{"raw":"val decode :\n directory:string ->\n Yojson.Safe.t -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"Yojson.Safe.t"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-decode"},{"id":"Libtmux_json.Workspace.encode_plan","publicId":"Libtmux_json.Workspace.encode_plan","qualifiedName":"Libtmux_json.Workspace.encode_plan","name":"encode_plan","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. "],"declarations":[{"kind":"function","text":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-plan/1` without I/O. The advisory preview contains command argv, cwd and environment names, excluding environment values, option values and startup text. It is not an execution script."},"signatures":[{"raw":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_plan"},{"id":"Libtmux_json.Workspace.encode_receipt","publicId":"Libtmux_json.Workspace.encode_receipt","qualifiedName":"Libtmux_json.Workspace.encode_receipt","name":"encode_receipt","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. "],"declarations":[{"kind":"function","text":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-receipt/1` with ordered steps, outcome index lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic messages are limited to 4096 bytes with an explicit truncation flag; command payloads are omitted.","body":"Both output schemas have a 4 MiB bound. Invalid UTF-8 values use `{\"encoding\":\"hex\",\"bytes\":\"...\"}` instead of losing bytes. Imported IDs and hints never establish a connection binding."},"signatures":[{"raw":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Execution.receipt"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_receipt"},{"id":"Libtmux_json.Workspace.of_string","publicId":"Libtmux_json.Workspace.of_string","qualifiedName":"Libtmux_json.Workspace.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":42,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. "],"declarations":[{"kind":"function","text":"val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":42,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Decode `libtmux.workspace/1` with the query codec's 64 KiB, UTF-8 and 32-level JSON bounds. Reject duplicate and unknown properties, invalid argv/shell combinations and configuration errors. `directory` is the absolute document directory; these functions perform no filesystem I/O."},"signatures":[{"raw":"val of_string :\n directory:string ->\n string -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-of_string"},{"id":"Libtmux_unix","publicId":"Libtmux_unix","qualifiedName":"Libtmux_unix","name":"Libtmux_unix","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Blocking Linux tmux clients with explicit scoped cancellation.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md}control\n guide} explains binding, completion and recovery. "],"declarations":[{"kind":"module","text":"","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"doc":{"summary":"Blocking Linux tmux clients with explicit scoped cancellation.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [control guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md) explains binding, completion and recovery."},"slug":"libtmux_unix"},{"id":"Libtmux_unix.Cancellation","publicId":"Libtmux_unix.Cancellation","qualifiedName":"Libtmux_unix.Cancellation","name":"Cancellation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cancellation : sig\n type t\n\n exception Cancelled\n\n val with_ : (t -> 'a) -> 'a\n (** Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. *)\n\n val cancel : t -> unit\n (** Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","slug":"libtmux_unix-cancellation"},{"id":"Libtmux_unix.Cancellation.Cancelled","publicId":"Libtmux_unix.Cancellation.Cancelled","qualifiedName":"Libtmux_unix.Cancellation.Cancelled","name":"Cancelled","kind":"exception","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"exception","text":"exception Cancelled","source":{"file":"unix/libtmux_unix.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type exn += Cancelled","params":[]}],"slug":"libtmux_unix-cancellation-cancelled"},{"id":"Libtmux_unix.Cancellation.cancel","publicId":"Libtmux_unix.Cancellation.cancel","qualifiedName":"Libtmux_unix.Cancellation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. "],"declarations":[{"kind":"function","text":"val cancel : t -> unit","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Wake waiters. Safe from another domain or systhread, but not from a signal handler. Repeated calls and calls after scope exit have no effect."},"signatures":[{"raw":"val cancel : t -> unit","params":[{"name":"arg1","type":"t"}],"returns":"unit"}],"slug":"libtmux_unix-cancellation-cancel"},{"id":"Libtmux_unix.Cancellation.t","publicId":"Libtmux_unix.Cancellation.t","qualifiedName":"Libtmux_unix.Cancellation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-cancellation-t"},{"id":"Libtmux_unix.Cancellation.with_","publicId":"Libtmux_unix.Cancellation.with_","qualifiedName":"Libtmux_unix.Cancellation.with_","name":"with_","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. "],"declarations":[{"kind":"function","text":"val with_ : (t -> 'a) -> 'a","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Own a cancellation token for the callback's lifetime. Leaving the scope cancels outstanding waiters and releases its descriptors after they finish. An escaped token is cancelled and cannot be reused."},"signatures":[{"raw":"val with_ : (t -> 'a) -> 'a","params":[{"name":"arg1","type":"t -> 'a"}],"returns":"'a"}],"slug":"libtmux_unix-cancellation-with_"},{"id":"Libtmux_unix.Client","publicId":"Libtmux_unix.Client","qualifiedName":"Libtmux_unix.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. *)\n\n val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. No capture/stream barrier exists.\n *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve queue capacity without I/O. *)\n\n val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O must also finish. No background\n scheduler or worker is started. *)\n\n val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result\n (** Submit and await. Use the two calls separately to retain an operation\n handle. *)\n\n val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. *)\n\n val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Close owned control clients and descriptors. Idempotent on the owning\n domain. tmux's [exit-unattached] and [exit-empty] policies can end the\n daemon after its clients or sessions disappear. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_unix-client"},{"id":"Libtmux_unix.Client.await","publicId":"Libtmux_unix.Client.await","qualifiedName":"Libtmux_unix.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O must also finish. No background\n scheduler or worker is started. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Pump admitted work until this operation is finished. Only one blocking caller may own the client at a time. Cancellation removes queued work or drains admitted work before raising `Cancellation.Cancelled`. The handle retains its outcome. Draining has at most one exchange timeout from detection; local scratch filesystem I/O must also finish. No background scheduler or worker is started."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-await"},{"id":"Libtmux_unix.Client.break_pane","publicId":"Libtmux_unix.Client.break_pane","qualifiedName":"Libtmux_unix.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-break_pane"},{"id":"Libtmux_unix.Client.capture","publicId":"Libtmux_unix.Client.capture","qualifiedName":"Libtmux_unix.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. "],"declarations":[{"kind":"function","text":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a complete graph over a recorded interval, with a fixed number of listing commands. Races fail validation. Access to returned values performs no I/O, including after closing the client.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture"},{"id":"Libtmux_unix.Client.capture_environment","publicId":"Libtmux_unix.Client.capture_environment","qualifiedName":"Libtmux_unix.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":308,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":308,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_environment"},{"id":"Libtmux_unix.Client.capture_hooks","publicId":"Libtmux_unix.Client.capture_hooks","qualifiedName":"Libtmux_unix.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":405,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":405,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_hooks"},{"id":"Libtmux_unix.Client.capture_options","publicId":"Libtmux_unix.Client.capture_options","qualifiedName":"Libtmux_unix.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":348,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":348,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_options"},{"id":"Libtmux_unix.Client.capture_text","publicId":"Libtmux_unix.Client.capture_text","qualifiedName":"Libtmux_unix.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture ordinary rendered screen rows, inclusively, via an owned paste buffer and private file. Reject applicable capture/save hooks. The scratch directory defaults to `/tmp` and must be local storage shared with the daemon. Pending and alternate-screen byte modes are unsupported. This observes an interval and establishes no stream continuity barrier."},"signatures":[{"raw":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_text"},{"id":"Libtmux_unix.Client.clear_history","publicId":"Libtmux_unix.Client.clear_history","qualifiedName":"Libtmux_unix.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":677,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":677,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_history"},{"id":"Libtmux_unix.Client.clear_option_array","publicId":"Libtmux_unix.Client.clear_option_array","qualifiedName":"Libtmux_unix.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_option_array"},{"id":"Libtmux_unix.Client.close","publicId":"Libtmux_unix.Client.close","qualifiedName":"Libtmux_unix.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":687,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Close owned control clients and descriptors. Idempotent on the owning\n domain. tmux's [exit-unattached] and [exit-empty] policies can end the\n daemon after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":687,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Close owned control clients and descriptors. Idempotent on the owning domain. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-close"},{"id":"Libtmux_unix.Client.connect","publicId":"Libtmux_unix.Client.connect","qualifiedName":"Libtmux_unix.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":132,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. "],"declarations":[{"kind":"function","text":"val connect :\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Attach to an existing local daemon with at least one session. The caller and daemon must share the PID namespace and filesystem. A local socket pathname alone does not establish these preconditions. `timeout` is the maximum seconds per control exchange, defaulting to one second. Requires Linux pidfd support. The client belongs to the current domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?binary:string ->\n ?timeout:float -> Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-connect"},{"id":"Libtmux_unix.Client.create_session","publicId":"Libtmux_unix.Client.create_session","qualifiedName":"Libtmux_unix.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":463,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":463,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_session"},{"id":"Libtmux_unix.Client.create_window","publicId":"Libtmux_unix.Client.create_window","qualifiedName":"Libtmux_unix.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_create_window.ml","intro":"Create a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"created: logs\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_window"},{"id":"Libtmux_unix.Client.cycle_layout","publicId":"Libtmux_unix.Client.cycle_layout","qualifiedName":"Libtmux_unix.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-cycle_layout"},{"id":"Libtmux_unix.Client.kill_pane","publicId":"Libtmux_unix.Client.kill_pane","qualifiedName":"Libtmux_unix.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_pane"},{"id":"Libtmux_unix.Client.kill_session","publicId":"Libtmux_unix.Client.kill_session","qualifiedName":"Libtmux_unix.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":509,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":509,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_session"},{"id":"Libtmux_unix.Client.kill_window","publicId":"Libtmux_unix.Client.kill_window","qualifiedName":"Libtmux_unix.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":517,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":517,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_window"},{"id":"Libtmux_unix.Client.link_window","publicId":"Libtmux_unix.Client.link_window","qualifiedName":"Libtmux_unix.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-link_window"},{"id":"Libtmux_unix.Client.move_pane","publicId":"Libtmux_unix.Client.move_pane","qualifiedName":"Libtmux_unix.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_pane"},{"id":"Libtmux_unix.Client.move_window_at","publicId":"Libtmux_unix.Client.move_window_at","qualifiedName":"Libtmux_unix.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_move_window.ml","intro":"Move a window between sessions. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"moved: build at 7\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_window_at"},{"id":"Libtmux_unix.Client.read_hook","publicId":"Libtmux_unix.Client.read_hook","qualifiedName":"Libtmux_unix.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":413,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":413,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_hook"},{"id":"Libtmux_unix.Client.read_option","publicId":"Libtmux_unix.Client.read_option","qualifiedName":"Libtmux_unix.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":360,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":360,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_option"},{"id":"Libtmux_unix.Client.refresh_client_at","publicId":"Libtmux_unix.Client.refresh_client_at","qualifiedName":"Libtmux_unix.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":265,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":265,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-refresh_client_at"},{"id":"Libtmux_unix.Client.remove_environment","publicId":"Libtmux_unix.Client.remove_environment","qualifiedName":"Libtmux_unix.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_environment"},{"id":"Libtmux_unix.Client.remove_hook","publicId":"Libtmux_unix.Client.remove_hook","qualifiedName":"Libtmux_unix.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_hook"},{"id":"Libtmux_unix.Client.rename_session","publicId":"Libtmux_unix.Client.rename_session","qualifiedName":"Libtmux_unix.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_session"},{"id":"Libtmux_unix.Client.rename_window","publicId":"Libtmux_unix.Client.rename_window","qualifiedName":"Libtmux_unix.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_rename_window.ml","intro":"Rename a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"renamed: editor-main\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val rename_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_window"},{"id":"Libtmux_unix.Client.request_detach_client_at","publicId":"Libtmux_unix.Client.request_detach_client_at","qualifiedName":"Libtmux_unix.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":256,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":256,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-request_detach_client_at"},{"id":"Libtmux_unix.Client.resize_control_client_at","publicId":"Libtmux_unix.Client.resize_control_client_at","qualifiedName":"Libtmux_unix.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_control_client_at"},{"id":"Libtmux_unix.Client.resize_pane","publicId":"Libtmux_unix.Client.resize_pane","qualifiedName":"Libtmux_unix.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_pane"},{"id":"Libtmux_unix.Client.resize_window","publicId":"Libtmux_unix.Client.resize_window","qualifiedName":"Libtmux_unix.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_window"},{"id":"Libtmux_unix.Client.respawn_pane","publicId":"Libtmux_unix.Client.respawn_pane","qualifiedName":"Libtmux_unix.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-respawn_pane"},{"id":"Libtmux_unix.Client.rotate_panes","publicId":"Libtmux_unix.Client.rotate_panes","qualifiedName":"Libtmux_unix.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":650,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":650,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rotate_panes"},{"id":"Libtmux_unix.Client.run","publicId":"Libtmux_unix.Client.run","qualifiedName":"Libtmux_unix.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Submit and await. Use the two calls separately to retain an operation\n handle. "],"declarations":[{"kind":"function","text":"val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Submit and await. Use the two calls separately to retain an operation handle."},"signatures":[{"raw":"val run :\n ?cancel:Cancellation.t ->\n t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run"},{"id":"Libtmux_unix.Client.run_hook","publicId":"Libtmux_unix.Client.run_hook","qualifiedName":"Libtmux_unix.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run_hook"},{"id":"Libtmux_unix.Client.select_layout","publicId":"Libtmux_unix.Client.select_layout","qualifiedName":"Libtmux_unix.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_layout.ml","intro":"Apply a layout. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"layout: 3 horizontal panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_layout"},{"id":"Libtmux_unix.Client.select_pane","publicId":"Libtmux_unix.Client.select_pane","qualifiedName":"Libtmux_unix.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":573,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":573,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_pane"},{"id":"Libtmux_unix.Client.select_window_at","publicId":"Libtmux_unix.Client.select_window_at","qualifiedName":"Libtmux_unix.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":533,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":533,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_window_at"},{"id":"Libtmux_unix.Client.send_keys","publicId":"Libtmux_unix.Client.send_keys","qualifiedName":"Libtmux_unix.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":290,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":290,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_keys"},{"id":"Libtmux_unix.Client.send_text","publicId":"Libtmux_unix.Client.send_text","qualifiedName":"Libtmux_unix.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/ade2f9787024a5426710cec06f864648c217263c/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_text :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_text"},{"id":"Libtmux_unix.Client.set_environment","publicId":"Libtmux_unix.Client.set_environment","qualifiedName":"Libtmux_unix.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_environment"},{"id":"Libtmux_unix.Client.set_hook","publicId":"Libtmux_unix.Client.set_hook","qualifiedName":"Libtmux_unix.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_hook"},{"id":"Libtmux_unix.Client.set_option","publicId":"Libtmux_unix.Client.set_option","qualifiedName":"Libtmux_unix.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_option"},{"id":"Libtmux_unix.Client.set_pane_title","publicId":"Libtmux_unix.Client.set_pane_title","qualifiedName":"Libtmux_unix.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_pane_title"},{"id":"Libtmux_unix.Client.signal","publicId":"Libtmux_unix.Client.signal","qualifiedName":"Libtmux_unix.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":303,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":303,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-signal"},{"id":"Libtmux_unix.Client.source","publicId":"Libtmux_unix.Client.source","qualifiedName":"Libtmux_unix.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"unix/libtmux_unix.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_unix-client-source"},{"id":"Libtmux_unix.Client.split_pane","publicId":"Libtmux_unix.Client.split_pane","qualifiedName":"Libtmux_unix.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-split_pane"},{"id":"Libtmux_unix.Client.submit","publicId":"Libtmux_unix.Client.submit","qualifiedName":"Libtmux_unix.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Validate and reserve queue capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate and reserve queue capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-submit"},{"id":"Libtmux_unix.Client.subscribe","publicId":"Libtmux_unix.Client.subscribe","qualifiedName":"Libtmux_unix.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire verified coverage of the pane's observed session/window. Choose the least session ID unless explicitly supplied. Reuse one lane per session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16 subscribers and eight client lanes including commands. Reserve payload against the shared 32 MiB budget before admission.","body":"Data starts after admission's marker. Layout/membership changes end continuity conservatively. Overflow emits Gap then End, without blocking another subscriber. Blocking delivery advances during Subscription.next. There is no snapshot/history barrier or automatic recovery."},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-subscribe"},{"id":"Libtmux_unix.Client.swap_panes","publicId":"Libtmux_unix.Client.swap_panes","qualifiedName":"Libtmux_unix.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-swap_panes"},{"id":"Libtmux_unix.Client.switch_client_at","publicId":"Libtmux_unix.Client.switch_client_at","qualifiedName":"Libtmux_unix.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-switch_client_at"},{"id":"Libtmux_unix.Client.t","publicId":"Libtmux_unix.Client.t","qualifiedName":"Libtmux_unix.Client.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-client-t"},{"id":"Libtmux_unix.Client.unlink_window_at","publicId":"Libtmux_unix.Client.unlink_window_at","qualifiedName":"Libtmux_unix.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unlink_window_at"},{"id":"Libtmux_unix.Client.unset_environment","publicId":"Libtmux_unix.Client.unset_environment","qualifiedName":"Libtmux_unix.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":331,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":331,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_environment"},{"id":"Libtmux_unix.Client.unset_option","publicId":"Libtmux_unix.Client.unset_option","qualifiedName":"Libtmux_unix.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_option"},{"id":"Libtmux_unix.Client.version","publicId":"Libtmux_unix.Client.version","qualifiedName":"Libtmux_unix.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"unix/libtmux_unix.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_unix-client-version"},{"id":"Libtmux_unix.Client.wait_for","publicId":"Libtmux_unix.Client.wait_for","qualifiedName":"Libtmux_unix.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":299,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for"},{"id":"Libtmux_unix.Client.wait_for_text","publicId":"Libtmux_unix.Client.wait_for_text","qualifiedName":"Libtmux_unix.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. No capture/stream barrier exists.\n "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Subscribe, capture the ordinary screen immediately, and recapture after output. Membership/overflow gaps trigger explicit fresh capture and new coverage in the same binding. Maximum pattern: 64 KiB. Success returns a capture that contains the text. Transient text between captures may be missed. Check the deadline between bounded acquisitions; in-flight I/O retains the client's exchange timeout. No capture/stream barrier exists."},"signatures":[{"raw":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for_text"},{"id":"Libtmux_unix.Client.zoom_pane","publicId":"Libtmux_unix.Client.zoom_pane","qualifiedName":"Libtmux_unix.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":659,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":659,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-zoom_pane"},{"id":"Libtmux_unix.Operation","publicId":"Libtmux_unix.Operation","qualifiedName":"Libtmux_unix.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** No I/O. Results remain inspectable after client closure, on the owning\n domain. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_unix-operation"},{"id":"Libtmux_unix.Operation.cancel","publicId":"Libtmux_unix.Operation.cancel","qualifiedName":"Libtmux_unix.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"Remove queued work before it is written. Admitted commands retain their owner and are drained by {!Client.await}; cancellation does not undo effects. Returns `Busy` while another blocking caller owns the client; use a {!Cancellation.t} token to interrupt that caller."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-cancel"},{"id":"Libtmux_unix.Operation.cleanup_receipt","publicId":"Libtmux_unix.Operation.cleanup_receipt","qualifiedName":"Libtmux_unix.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n}","params":[]}],"slug":"libtmux_unix-operation-cleanup_receipt"},{"id":"Libtmux_unix.Operation.cleanup_receipt.cause","publicId":"Libtmux_unix.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"unix/libtmux_unix.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_unix.Operation.cause","slug":"libtmux_unix-operation-cleanup_receipt-cause"},{"id":"Libtmux_unix.Operation.cleanup_receipt.created","publicId":"Libtmux_unix.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"unix/libtmux_unix.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_unix.Operation.created","slug":"libtmux_unix-operation-cleanup_receipt-created"},{"id":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_unix.Operation.owned_buffers","slug":"libtmux_unix-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_unix.Operation.id","publicId":"Libtmux_unix.Operation.id","qualifiedName":"Libtmux_unix.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"unix/libtmux_unix.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_unix-operation-id"},{"id":"Libtmux_unix.Operation.inspect","publicId":"Libtmux_unix.Operation.inspect","qualifiedName":"Libtmux_unix.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" No I/O. Results remain inspectable after client closure, on the owning\n domain. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"No I/O. Results remain inspectable after client closure, on the owning domain."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-inspect"},{"id":"Libtmux_unix.Operation.state","publicId":"Libtmux_unix.Operation.state","qualifiedName":"Libtmux_unix.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a state =\n Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","params":[]}],"slug":"libtmux_unix-operation-state"},{"id":"Libtmux_unix.Operation.state.Acknowledged","publicId":"Libtmux_unix.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"unix/libtmux_unix.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Acknowledged","slug":"libtmux_unix-operation-state-acknowledged"},{"id":"Libtmux_unix.Operation.state.Finished","publicId":"Libtmux_unix.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":77,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":77,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Finished","slug":"libtmux_unix-operation-state-finished"},{"id":"Libtmux_unix.Operation.state.Not_started","publicId":"Libtmux_unix.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"unix/libtmux_unix.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Not_started","slug":"libtmux_unix-operation-state-not_started"},{"id":"Libtmux_unix.Operation.state.Outcome_unknown","publicId":"Libtmux_unix.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":78,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":78,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Outcome_unknown","slug":"libtmux_unix-operation-state-outcome_unknown"},{"id":"Libtmux_unix.Operation.state.Queued","publicId":"Libtmux_unix.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Queued","slug":"libtmux_unix-operation-state-queued"},{"id":"Libtmux_unix.Operation.state.Written","publicId":"Libtmux_unix.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"unix/libtmux_unix.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Written","slug":"libtmux_unix-operation-state-written"},{"id":"Libtmux_unix.Operation.t","publicId":"Libtmux_unix.Operation.t","qualifiedName":"Libtmux_unix.Operation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"unix/libtmux_unix.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-operation-t"},{"id":"Libtmux_unix.Rendered","publicId":"Libtmux_unix.Rendered","qualifiedName":"Libtmux_unix.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Blocking native Linux transport. No Eio scheduler is started. "],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"unix/libtmux_unix.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","doc":{"summary":"Blocking native Linux transport. No Eio scheduler is started."},"exportedFrom":"Libtmux.Captured_text","slug":"libtmux_unix-rendered"},{"id":"Libtmux_unix.Subscription","publicId":"Libtmux_unix.Subscription","qualifiedName":"Libtmux_unix.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. *)\n\n val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Discard pending data and retain End Cancelled. Release an unused lane.\n Does not stop the daemon. *)\n\n val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_unix-subscription"},{"id":"Libtmux_unix.Subscription.close","publicId":"Libtmux_unix.Subscription.close","qualifiedName":"Libtmux_unix.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Discard pending data and retain End Cancelled. Release an unused lane.\n Does not stop the daemon. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Discard pending data and retain End Cancelled. Release an unused lane. Does not stop the daemon."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-close"},{"id":"Libtmux_unix.Subscription.next","publicId":"Libtmux_unix.Subscription.next","qualifiedName":"Libtmux_unix.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. "],"declarations":[{"kind":"function","text":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Pump all subscription lanes until one event is available. Default deadline is one second. `None` follows a consumed End. A deadline keeps the subscription active; cancellation closes it and raises Cancelled."},"signatures":[{"raw":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-next"},{"id":"Libtmux_unix.Subscription.poll","publicId":"Libtmux_unix.Subscription.poll","qualifiedName":"Libtmux_unix.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Remove a queued event without I/O. Owning domain only, including after client closure. `None` means no queued event, not proof of continuity."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-poll"},{"id":"Libtmux_unix.Subscription.t","publicId":"Libtmux_unix.Subscription.t","qualifiedName":"Libtmux_unix.Subscription.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-subscription-t"},{"id":"Libtmux_unix.Subscription.wait_for_bytes","publicId":"Libtmux_unix.Subscription.wait_for_bytes","qualifiedName":"Libtmux_unix.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Consume future bytes until the nonempty pattern matches, including across Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's end within its consumed event. Gaps stop matching; no rendered or earlier output is searched. Timeout leaves the subscription active."},"signatures":[{"raw":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_unix-subscription-wait_for_bytes"},{"id":"Libtmux_unix.Terminal","publicId":"Libtmux_unix.Terminal","qualifiedName":"Libtmux_unix.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises [Cancellation.Cancelled]. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_unix-terminal"},{"id":"Libtmux_unix.Terminal.attach_current","publicId":"Libtmux_unix.Terminal.attach_current","qualifiedName":"Libtmux_unix.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises [Cancellation.Cancelled]. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Terminal","doc":{"summary":"Run an interactive terminal client until it exits. Select the exact session ID on the daemon currently listening at `endpoint`; this is explicitly unbound and accepts no captured target. No retry or daemon startup occurs. A successful result proves client exit, not continued attachment. Diagnostics go to `stderr`.","body":"Descriptors default to the application's standard streams and remain caller-owned. `stdin` must be a terminal. Environment updates and read-only mode are disabled by default; inherited `TMUX` and `TMUX_PANE` are removed. Cancellation terminates and reaps this terminal client, leaves the daemon running, then raises `Cancellation.Cancelled`."},"signatures":[{"raw":"val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stdout","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stderr","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-terminal-attach_current"},{"id":"Libtmux_unix.Workspace","publicId":"Libtmux_unix.Workspace","qualifiedName":"Libtmux_unix.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":696,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Apply validated plans with blocking I/O and scoped cancellation tokens.\n Execution handles retain journals and borrow existing clients; bootstrap\n handles own their newly bound clients without owning the daemon. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. *)\n\n val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. *)\n\n val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":696,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix","doc":{"summary":"Apply validated plans with blocking I/O and scoped cancellation tokens. Execution handles retain journals and borrow existing clients; bootstrap handles own their newly bound clients without owning the daemon."},"slug":"libtmux_unix-workspace"},{"id":"Libtmux_unix.Workspace.await","publicId":"Libtmux_unix.Workspace.await","qualifiedName":"Libtmux_unix.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":713,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":713,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Expected apply failures are retained receipts. Cancellation propagates after recording progress and at most 500 ms of protected compensation."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-await"},{"id":"Libtmux_unix.Workspace.client","publicId":"Libtmux_unix.Workspace.client","qualifiedName":"Libtmux_unix.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"unix/libtmux_unix.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_unix-workspace-client"},{"id":"Libtmux_unix.Workspace.close","publicId":"Libtmux_unix.Workspace.close","qualifiedName":"Libtmux_unix.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Completed journals remain readable after close."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-close"},{"id":"Libtmux_unix.Workspace.inspect","publicId":"Libtmux_unix.Workspace.inspect","qualifiedName":"Libtmux_unix.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-inspect"},{"id":"Libtmux_unix.Workspace.submit","publicId":"Libtmux_unix.Workspace.submit","qualifiedName":"Libtmux_unix.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":699,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":699,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a generation-bound execution handle without I/O. The caller owns the supplied client; closing this handle leaves that client open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit"},{"id":"Libtmux_unix.Workspace.submit_bootstrap","publicId":"Libtmux_unix.Workspace.submit_bootstrap","qualifiedName":"Libtmux_unix.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":704,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":704,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a handle for a missing-endpoint plan. Awaiting it starts control new-session and binds the same connection. The handle owns its new client; it never acquires ownership of the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit_bootstrap"},{"id":"Libtmux_unix.Workspace.t","publicId":"Libtmux_unix.Workspace.t","qualifiedName":"Libtmux_unix.Workspace.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-workspace-t"},{"id":"Libtmux_workspace","publicId":"Libtmux_workspace","qualifiedName":"Libtmux_workspace","name":"Libtmux_workspace","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" {!Config} validates workspace descriptions and {!Plan} previews their\n actions without I/O. {!Execution} delegates effects to an explicit executor\n and retains a recovery journal. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for JSON loading, preview, apply and receipt inspection. "],"declarations":[{"kind":"module","text":"","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"doc":{"summary":"{!Config} validates workspace descriptions and {!Plan} previews their actions without I/O. {!Execution} delegates effects to an explicit executor and retains a recovery journal. See the [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for JSON loading, preview, apply and receipt inspection."},"slug":"libtmux_workspace"},{"id":"Libtmux_workspace.Config","publicId":"Libtmux_workspace.Config","qualifiedName":"Libtmux_workspace.Config","name":"Config","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Validate native workspace values without contacting tmux or reading the\n filesystem. Relative directories resolve against the document directory;\n only declared variables participate in expansion. "],"declarations":[{"kind":"module","text":"module Config : sig\n type error = { path : string; message : string }\n\n val pp_error : Format.formatter -> error -> unit\n\n type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }\n\n type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n\n type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }\n\n type t\n\n val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane\n\n val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window\n (** Builders are unchecked descriptions; {!make} validates the whole document.\n *)\n\n val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result\n (** Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. *)\n\n val session : t -> string\n val windows : t -> window Iarray.t\n val environment : t -> (string * string) list\n val options : t -> setting list\n val dimensions : t -> int * int\nend","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace","doc":{"summary":"Validate native workspace values without contacting tmux or reading the filesystem. Relative directories resolve against the document directory; only declared variables participate in expansion."},"slug":"libtmux_workspace-config"},{"id":"Libtmux_workspace.Config.dimensions","publicId":"Libtmux_workspace.Config.dimensions","qualifiedName":"Libtmux_workspace.Config.dimensions","name":"dimensions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dimensions : t -> int * int","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val dimensions : t -> int * int","params":[{"name":"arg1","type":"t"}],"returns":"int * int"}],"slug":"libtmux_workspace-config-dimensions"},{"id":"Libtmux_workspace.Config.environment","publicId":"Libtmux_workspace.Config.environment","qualifiedName":"Libtmux_workspace.Config.environment","name":"environment","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val environment : t -> (string * string) list","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val environment : t -> (string * string) list","params":[{"name":"arg1","type":"t"}],"returns":"(string * string) list"}],"slug":"libtmux_workspace-config-environment"},{"id":"Libtmux_workspace.Config.error","publicId":"Libtmux_workspace.Config.error","qualifiedName":"Libtmux_workspace.Config.error","name":"error","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type error = { path : string; message : string }","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type error = { path : string; message : string; }","params":[]}],"slug":"libtmux_workspace-config-error"},{"id":"Libtmux_workspace.Config.error.message","publicId":"Libtmux_workspace.Config.error.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.message","slug":"libtmux_workspace-config-error-message"},{"id":"Libtmux_workspace.Config.error.path","publicId":"Libtmux_workspace.Config.error.path","name":"path","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"path : string;","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.path","slug":"libtmux_workspace-config-error-path"},{"id":"Libtmux_workspace.Config.make","publicId":"Libtmux_workspace.Config.make","qualifiedName":"Libtmux_workspace.Config.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. "],"declarations":[{"kind":"function","text":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Resolve relative working directories against the absolute document directory. Explicit variables expand `${NAME}` in directories only; they never read the process environment. Cycles and unknown names fail. Command arguments, shell code, startup text and environment values remain literal.","body":"At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names and settings must be unique in their scope. No filesystem is consulted."},"signatures":[{"raw":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string -> session:string -> window list -> (t, error) result","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"variables","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"directory","type":"string","keywordOnly":true},{"name":"session","type":"string","keywordOnly":true},{"name":"arg1","type":"window list"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-config-make"},{"id":"Libtmux_workspace.Config.options","publicId":"Libtmux_workspace.Config.options","qualifiedName":"Libtmux_workspace.Config.options","name":"options","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val options : t -> setting list","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val options : t -> setting list","params":[{"name":"arg1","type":"t"}],"returns":"setting list"}],"slug":"libtmux_workspace-config-options"},{"id":"Libtmux_workspace.Config.pane","publicId":"Libtmux_workspace.Config.pane","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size -> unit -> pane","params":[{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"startup","type":"string list","optional":true,"keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"pane"}],"slug":"libtmux_workspace-config-pane"},{"id":"Libtmux_workspace.Config.pane:type","publicId":"Libtmux_workspace.Config.pane:type","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n}","params":[]}],"slug":"libtmux_workspace-config-pane-type"},{"id":"Libtmux_workspace.Config.pane:type.direction","publicId":"Libtmux_workspace.Config.pane:type.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Config.direction","slug":"libtmux_workspace-config-pane-type-direction"},{"id":"Libtmux_workspace.Config.pane:type.options","publicId":"Libtmux_workspace.Config.pane:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-pane-type-options"},{"id":"Libtmux_workspace.Config.pane:type.size","publicId":"Libtmux_workspace.Config.pane:type.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Config.size","slug":"libtmux_workspace-config-pane-type-size"},{"id":"Libtmux_workspace.Config.pane:type.spawn","publicId":"Libtmux_workspace.Config.pane:type.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Config.spawn","slug":"libtmux_workspace-config-pane-type-spawn"},{"id":"Libtmux_workspace.Config.pane:type.startup","publicId":"Libtmux_workspace.Config.pane:type.startup","name":"startup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"startup : string list;","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"string list","qualifiedName":"Libtmux_workspace.Config.startup","slug":"libtmux_workspace-config-pane-type-startup"},{"id":"Libtmux_workspace.Config.pp_error","publicId":"Libtmux_workspace.Config.pp_error","qualifiedName":"Libtmux_workspace.Config.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-config-pp_error"},{"id":"Libtmux_workspace.Config.session","publicId":"Libtmux_workspace.Config.session","qualifiedName":"Libtmux_workspace.Config.session","name":"session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> string","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val session : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_workspace-config-session"},{"id":"Libtmux_workspace.Config.setting","publicId":"Libtmux_workspace.Config.setting","qualifiedName":"Libtmux_workspace.Config.setting","name":"setting","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n}","params":[]}],"slug":"libtmux_workspace-config-setting"},{"id":"Libtmux_workspace.Config.setting.index","publicId":"Libtmux_workspace.Config.setting.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.setting","type":"int option","qualifiedName":"Libtmux_workspace.Config.index","slug":"libtmux_workspace-config-setting-index"},{"id":"Libtmux_workspace.Config.setting.name","publicId":"Libtmux_workspace.Config.setting.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.setting","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-setting-name"},{"id":"Libtmux_workspace.Config.setting.value","publicId":"Libtmux_workspace.Config.setting.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Libtmux.Options.scalar;","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.setting","type":"Libtmux.Options.scalar","qualifiedName":"Libtmux_workspace.Config.value","slug":"libtmux_workspace-config-setting-value"},{"id":"Libtmux_workspace.Config.t","publicId":"Libtmux_workspace.Config.t","qualifiedName":"Libtmux_workspace.Config.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-config-t"},{"id":"Libtmux_workspace.Config.window","publicId":"Libtmux_workspace.Config.window","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Builders are unchecked descriptions; {!make} validates the whole document.\n "],"declarations":[{"kind":"function","text":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Builders are unchecked descriptions; {!make} validates the whole document."},"signatures":[{"raw":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t -> name:string -> pane list -> window","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"layout","type":"Libtmux.Layout.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"pane list"}],"returns":"window"}],"slug":"libtmux_workspace-config-window"},{"id":"Libtmux_workspace.Config.window:type","publicId":"Libtmux_workspace.Config.window:type","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n}","params":[]}],"slug":"libtmux_workspace-config-window-type"},{"id":"Libtmux_workspace.Config.window:type.cwd","publicId":"Libtmux_workspace.Config.window:type.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string option","qualifiedName":"Libtmux_workspace.Config.cwd","slug":"libtmux_workspace-config-window-type-cwd"},{"id":"Libtmux_workspace.Config.window:type.environment","publicId":"Libtmux_workspace.Config.window:type.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.window:type","type":"(string * string) list","qualifiedName":"Libtmux_workspace.Config.environment","slug":"libtmux_workspace-config-window-type-environment"},{"id":"Libtmux_workspace.Config.window:type.layout","publicId":"Libtmux_workspace.Config.window:type.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : Libtmux.Layout.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.window:type","type":"Libtmux.Layout.t option","qualifiedName":"Libtmux_workspace.Config.layout","slug":"libtmux_workspace-config-window-type-layout"},{"id":"Libtmux_workspace.Config.window:type.name","publicId":"Libtmux_workspace.Config.window:type.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-window-type-name"},{"id":"Libtmux_workspace.Config.window:type.options","publicId":"Libtmux_workspace.Config.window:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.window:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-window-type-options"},{"id":"Libtmux_workspace.Config.window:type.panes","publicId":"Libtmux_workspace.Config.window:type.panes","name":"panes","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"panes : pane list;","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config.window:type","type":"pane list","qualifiedName":"Libtmux_workspace.Config.panes","slug":"libtmux_workspace-config-window-type-panes"},{"id":"Libtmux_workspace.Config.windows","publicId":"Libtmux_workspace.Config.windows","qualifiedName":"Libtmux_workspace.Config.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> window Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val windows : t -> window Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"window Iarray.t"}],"slug":"libtmux_workspace-config-windows"},{"id":"Libtmux_workspace.Execution","publicId":"Libtmux_workspace.Execution","qualifiedName":"Libtmux_workspace.Execution","name":"Execution","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":162,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Apply a plan once and retain an immutable journal of effects, uncertainty\n and cleanup. Ordinary applications use their backend's Workspace module;\n executors below integrate another transport. "],"declarations":[{"kind":"module","text":"module Execution : sig\n type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }\n (** A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. *)\n\n type certainty = Not_started | Applied | Unknown\n\n type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }\n (** Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. *)\n\n type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t\n\n type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }\n\n type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t\n\n type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }\n\n type t\n\n val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. *)\n\n val inspect : t -> receipt\n (** Return an immutable copy of the retained journal without I/O. *)\n\n val await : ?compensate_on_failure:bool -> t -> receipt\n (** Execute once, rechecking generation and captured preconditions first.\n Expected failures return a partial journal. Exceptions, including native\n cancellation, propagate after recording progress and bounded compensation.\n Subsequent calls only return the retained receipt; mutations never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":162,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace","doc":{"summary":"Apply a plan once and retain an immutable journal of effects, uncertainty and cleanup. Ordinary applications use their backend's Workspace module; executors below integrate another transport."},"slug":"libtmux_workspace-execution"},{"id":"Libtmux_workspace.Execution.await","publicId":"Libtmux_workspace.Execution.await","qualifiedName":"Libtmux_workspace.Execution.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Execute once, rechecking generation and captured preconditions first.\n Expected failures return a partial journal. Exceptions, including native\n cancellation, propagate after recording progress and bounded compensation.\n Subsequent calls only return the retained receipt; mutations never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. "],"declarations":[{"kind":"function","text":"val await : ?compensate_on_failure:bool -> t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Execute once, rechecking generation and captured preconditions first. Expected failures return a partial journal. Exceptions, including native cancellation, propagate after recording progress and bounded compensation. Subsequent calls only return the retained receipt; mutations never retry.","body":"Compensation kills only panes reported by completed creation commands, in reverse creation order. tmux removes windows and sessions that become empty. Containers with foreign panes or window links remain; adding a borrowed pane never makes it eligible for cleanup. Cleanup failures have separate outcomes."},"signatures":[{"raw":"val await : ?compensate_on_failure:bool -> t -> receipt","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-await"},{"id":"Libtmux_workspace.Execution.certainty","publicId":"Libtmux_workspace.Execution.certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","name":"certainty","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type certainty = Not_started | Applied | Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type certainty = Not_started | Applied | Unknown","params":[]}],"slug":"libtmux_workspace-execution-certainty"},{"id":"Libtmux_workspace.Execution.certainty.Applied","publicId":"Libtmux_workspace.Execution.certainty.Applied","name":"Applied","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applied","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applied","slug":"libtmux_workspace-execution-certainty-applied"},{"id":"Libtmux_workspace.Execution.certainty.Not_started","publicId":"Libtmux_workspace.Execution.certainty.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Not_started","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Not_started","slug":"libtmux_workspace-execution-certainty-not_started"},{"id":"Libtmux_workspace.Execution.certainty.Unknown","publicId":"Libtmux_workspace.Execution.certainty.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Unknown","slug":"libtmux_workspace-execution-certainty-unknown"},{"id":"Libtmux_workspace.Execution.cleanup","publicId":"Libtmux_workspace.Execution.cleanup","qualifiedName":"Libtmux_workspace.Execution.cleanup","name":"cleanup","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n}","params":[]}],"slug":"libtmux_workspace-execution-cleanup"},{"id":"Libtmux_workspace.Execution.cleanup.outcome","publicId":"Libtmux_workspace.Execution.cleanup.outcome","name":"outcome","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":214,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"outcome : (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":214,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"(unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.outcome","slug":"libtmux_workspace-execution-cleanup-outcome"},{"id":"Libtmux_workspace.Execution.cleanup.pane","publicId":"Libtmux_workspace.Execution.cleanup.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.target;","source":{"file":"workspace/libtmux_workspace.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"Libtmux.Pane.target","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-cleanup-pane"},{"id":"Libtmux_workspace.Execution.create","publicId":"Libtmux_workspace.Execution.create","qualifiedName":"Libtmux_workspace.Execution.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":237,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. "],"declarations":[{"kind":"function","text":"val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"workspace/libtmux_workspace.mli","line":237,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Allocate a retained handle without I/O. IDs have 1..64 ASCII letters, digits, underscores or hyphens."},"signatures":[{"raw":"val create :\n operation_id:string ->\n executor:executor -> Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"operation_id","type":"string","keywordOnly":true},{"name":"executor","type":"executor","keywordOnly":true},{"name":"arg1","type":"Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_workspace-execution-create"},{"id":"Libtmux_workspace.Execution.executor","publicId":"Libtmux_workspace.Execution.executor","qualifiedName":"Libtmux_workspace.Execution.executor","name":"executor","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. "],"declarations":[{"kind":"struct","text":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Backend integration: `inspect` returns a callback tied to the latest operation, reading only its retained state even after later submissions. `protect` bounds compensation and shields it from caller cancellation, reporting expected failures as `Error`. Ordinary callers use their backend's Workspace API."},"signatures":[{"raw":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n}","params":[]}],"slug":"libtmux_workspace-execution-executor"},{"id":"Libtmux_workspace.Execution.executor.bootstrap","publicId":"Libtmux_workspace.Execution.executor.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.executor","type":"Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.bootstrap","slug":"libtmux_workspace-execution-executor-bootstrap"},{"id":"Libtmux_workspace.Execution.executor.capture","publicId":"Libtmux_workspace.Execution.executor.capture","name":"capture","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":184,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":184,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.capture","slug":"libtmux_workspace-execution-executor-capture"},{"id":"Libtmux_workspace.Execution.executor.inspect","publicId":"Libtmux_workspace.Execution.executor.inspect","name":"inspect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inspect : unit -> unit -> observation;","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> unit -> observation","qualifiedName":"Libtmux_workspace.Execution.inspect","slug":"libtmux_workspace-execution-executor-inspect"},{"id":"Libtmux_workspace.Execution.executor.protect","publicId":"Libtmux_workspace.Execution.executor.protect","name":"protect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.executor","type":"(unit -> unit) -> (unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.protect","slug":"libtmux_workspace-execution-executor-protect"},{"id":"Libtmux_workspace.Execution.executor.run","publicId":"Libtmux_workspace.Execution.executor.run","name":"run","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.executor","type":"'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.run","slug":"libtmux_workspace-execution-executor-run"},{"id":"Libtmux_workspace.Execution.executor.source","publicId":"Libtmux_workspace.Execution.executor.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : unit -> Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-executor-source"},{"id":"Libtmux_workspace.Execution.hint","publicId":"Libtmux_workspace.Execution.hint","qualifiedName":"Libtmux_workspace.Execution.hint","name":"hint","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. "],"declarations":[{"kind":"struct","text":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"A creation row received before daemon binding finished. Hints are not operational targets and are never eligible for automatic compensation."},"signatures":[{"raw":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n}","params":[]}],"slug":"libtmux_workspace-execution-hint"},{"id":"Libtmux_workspace.Execution.hint.pane","publicId":"Libtmux_workspace.Execution.hint.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-hint-pane"},{"id":"Libtmux_workspace.Execution.hint.pane_index","publicId":"Libtmux_workspace.Execution.hint.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.pane_index","slug":"libtmux_workspace-execution-hint-pane_index"},{"id":"Libtmux_workspace.Execution.hint.server_pid","publicId":"Libtmux_workspace.Execution.hint.server_pid","name":"server_pid","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"server_pid : int;","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.server_pid","slug":"libtmux_workspace-execution-hint-server_pid"},{"id":"Libtmux_workspace.Execution.hint.session","publicId":"Libtmux_workspace.Execution.hint.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Libtmux.Session.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Session.Id.t","qualifiedName":"Libtmux_workspace.Execution.session","slug":"libtmux_workspace-execution-hint-session"},{"id":"Libtmux_workspace.Execution.hint.window","publicId":"Libtmux_workspace.Execution.hint.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Libtmux.Window.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Window.Id.t","qualifiedName":"Libtmux_workspace.Execution.window","slug":"libtmux_workspace-execution-hint-window"},{"id":"Libtmux_workspace.Execution.hint.window_index","publicId":"Libtmux_workspace.Execution.hint.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.window_index","slug":"libtmux_workspace-execution-hint-window_index"},{"id":"Libtmux_workspace.Execution.inspect","publicId":"Libtmux_workspace.Execution.inspect","qualifiedName":"Libtmux_workspace.Execution.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Return an immutable copy of the retained journal without I/O. "],"declarations":[{"kind":"function","text":"val inspect : t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Return an immutable copy of the retained journal without I/O."},"signatures":[{"raw":"val inspect : t -> receipt","params":[{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-inspect"},{"id":"Libtmux_workspace.Execution.observation","publicId":"Libtmux_workspace.Execution.observation","qualifiedName":"Libtmux_workspace.Execution.observation","name":"observation","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":176,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":176,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n}","params":[]}],"slug":"libtmux_workspace-execution-observation"},{"id":"Libtmux_workspace.Execution.observation.certainty","publicId":"Libtmux_workspace.Execution.observation.certainty","name":"certainty","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"certainty : certainty;","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.observation","type":"certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","slug":"libtmux_workspace-execution-observation-certainty"},{"id":"Libtmux_workspace.Execution.observation.created","publicId":"Libtmux_workspace.Execution.observation.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.observation","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-observation-created"},{"id":"Libtmux_workspace.Execution.observation.unbound","publicId":"Libtmux_workspace.Execution.observation.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.observation","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-observation-unbound"},{"id":"Libtmux_workspace.Execution.receipt","publicId":"Libtmux_workspace.Execution.receipt","qualifiedName":"Libtmux_workspace.Execution.receipt","name":"receipt","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n}","params":[]}],"slug":"libtmux_workspace-execution-receipt"},{"id":"Libtmux_workspace.Execution.receipt.cleanup","publicId":"Libtmux_workspace.Execution.receipt.cleanup","name":"cleanup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup : cleanup Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"cleanup Iarray.t","qualifiedName":"Libtmux_workspace.Execution.cleanup","slug":"libtmux_workspace-execution-receipt-cleanup"},{"id":"Libtmux_workspace.Execution.receipt.cleanup_error","publicId":"Libtmux_workspace.Execution.receipt.cleanup_error","name":"cleanup_error","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup_error : Libtmux.Error.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_workspace.Execution.cleanup_error","slug":"libtmux_workspace-execution-receipt-cleanup_error"},{"id":"Libtmux_workspace.Execution.receipt.operation_id","publicId":"Libtmux_workspace.Execution.receipt.operation_id","name":"operation_id","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation_id : string;","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"string","qualifiedName":"Libtmux_workspace.Execution.operation_id","slug":"libtmux_workspace-execution-receipt-operation_id"},{"id":"Libtmux_workspace.Execution.receipt.source","publicId":"Libtmux_workspace.Execution.receipt.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":228,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":228,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-receipt-source"},{"id":"Libtmux_workspace.Execution.receipt.status","publicId":"Libtmux_workspace.Execution.receipt.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : status;","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-receipt-status"},{"id":"Libtmux_workspace.Execution.receipt.steps","publicId":"Libtmux_workspace.Execution.receipt.steps","name":"steps","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"steps : step Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"step Iarray.t","qualifiedName":"Libtmux_workspace.Execution.steps","slug":"libtmux_workspace-execution-receipt-steps"},{"id":"Libtmux_workspace.Execution.status","publicId":"Libtmux_workspace.Execution.status","qualifiedName":"Libtmux_workspace.Execution.status","name":"status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type status =\n Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","params":[]}],"slug":"libtmux_workspace-execution-status"},{"id":"Libtmux_workspace.Execution.status.Applying","publicId":"Libtmux_workspace.Execution.status.Applying","name":"Applying","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applying","source":{"file":"workspace/libtmux_workspace.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applying","slug":"libtmux_workspace-execution-status-applying"},{"id":"Libtmux_workspace.Execution.status.Interrupted","publicId":"Libtmux_workspace.Execution.status.Interrupted","name":"Interrupted","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Interrupted","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Interrupted","slug":"libtmux_workspace-execution-status-interrupted"},{"id":"Libtmux_workspace.Execution.status.Partial","publicId":"Libtmux_workspace.Execution.status.Partial","name":"Partial","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Partial","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Partial","slug":"libtmux_workspace-execution-status-partial"},{"id":"Libtmux_workspace.Execution.status.Queued","publicId":"Libtmux_workspace.Execution.status.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"workspace/libtmux_workspace.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Queued","slug":"libtmux_workspace-execution-status-queued"},{"id":"Libtmux_workspace.Execution.status.Rejected","publicId":"Libtmux_workspace.Execution.status.Rejected","name":"Rejected","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rejected of Plan.error","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Rejected","slug":"libtmux_workspace-execution-status-rejected"},{"id":"Libtmux_workspace.Execution.status.Succeeded","publicId":"Libtmux_workspace.Execution.status.Succeeded","name":"Succeeded","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Succeeded","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Succeeded","slug":"libtmux_workspace-execution-status-succeeded"},{"id":"Libtmux_workspace.Execution.status.Unavailable","publicId":"Libtmux_workspace.Execution.status.Unavailable","name":"Unavailable","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Unavailable","slug":"libtmux_workspace-execution-status-unavailable"},{"id":"Libtmux_workspace.Execution.step","publicId":"Libtmux_workspace.Execution.step","qualifiedName":"Libtmux_workspace.Execution.step","name":"step","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n}","params":[]}],"slug":"libtmux_workspace-execution-step"},{"id":"Libtmux_workspace.Execution.step.action","publicId":"Libtmux_workspace.Execution.step.action","name":"action","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"action : Plan.action;","source":{"file":"workspace/libtmux_workspace.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step","type":"Plan.action","qualifiedName":"Libtmux_workspace.Execution.action","slug":"libtmux_workspace-execution-step-action"},{"id":"Libtmux_workspace.Execution.step.created","publicId":"Libtmux_workspace.Execution.step.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-step-created"},{"id":"Libtmux_workspace.Execution.step.index","publicId":"Libtmux_workspace.Execution.step.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step","type":"int","qualifiedName":"Libtmux_workspace.Execution.index","slug":"libtmux_workspace-execution-step-index"},{"id":"Libtmux_workspace.Execution.step.status","publicId":"Libtmux_workspace.Execution.step.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : step_status;","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step","type":"step_status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-step-status"},{"id":"Libtmux_workspace.Execution.step.unbound","publicId":"Libtmux_workspace.Execution.step.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-step-unbound"},{"id":"Libtmux_workspace.Execution.step_status","publicId":"Libtmux_workspace.Execution.step_status","qualifiedName":"Libtmux_workspace.Execution.step_status","name":"step_status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":196,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":196,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step_status =\n Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","params":[]}],"slug":"libtmux_workspace-execution-step_status"},{"id":"Libtmux_workspace.Execution.step_status.Completed","publicId":"Libtmux_workspace.Execution.step_status.Completed","name":"Completed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Completed","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Completed","slug":"libtmux_workspace-execution-step_status-completed"},{"id":"Libtmux_workspace.Execution.step_status.Failed","publicId":"Libtmux_workspace.Execution.step_status.Failed","name":"Failed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Failed of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Failed","slug":"libtmux_workspace-execution-step_status-failed"},{"id":"Libtmux_workspace.Execution.step_status.Pending","publicId":"Libtmux_workspace.Execution.step_status.Pending","name":"Pending","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":197,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pending","source":{"file":"workspace/libtmux_workspace.mli","line":197,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Pending","slug":"libtmux_workspace-execution-step_status-pending"},{"id":"Libtmux_workspace.Execution.step_status.Running","publicId":"Libtmux_workspace.Execution.step_status.Running","name":"Running","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Running","source":{"file":"workspace/libtmux_workspace.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Running","slug":"libtmux_workspace-execution-step_status-running"},{"id":"Libtmux_workspace.Execution.step_status.Skipped","publicId":"Libtmux_workspace.Execution.step_status.Skipped","name":"Skipped","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Skipped","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Skipped","slug":"libtmux_workspace-execution-step_status-skipped"},{"id":"Libtmux_workspace.Execution.step_status.Uncertain","publicId":"Libtmux_workspace.Execution.step_status.Uncertain","name":"Uncertain","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Uncertain","slug":"libtmux_workspace-execution-step_status-uncertain"},{"id":"Libtmux_workspace.Execution.t","publicId":"Libtmux_workspace.Execution.t","qualifiedName":"Libtmux_workspace.Execution.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-execution-t"},{"id":"Libtmux_workspace.Plan","publicId":"Libtmux_workspace.Plan","qualifiedName":"Libtmux_workspace.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[" Preview ordered workspace actions against one observed daemon generation. A\n plan retains collision policy and bound targets; it is not a portable\n command script. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type server_policy = Create_if_missing | Require_existing_server\n type window_collision = Reject\n\n type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }\n\n type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale\n\n val pp_error : Format.formatter -> error -> unit\n\n type scope = Session | Window of int | Pane of { window : int; pane : int }\n\n type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t\n\n type t\n\n val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result\n (** [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. *)\n\n val endpoint : t -> Libtmux.Endpoint.t\n val source : t -> Libtmux.Source.t option\n val existing_session : t -> Libtmux.Session.target option\n val actions : t -> action Iarray.t\n val config : t -> Config.t\n\n val check_source : t -> Libtmux.Source.t option -> (unit, error) result\n (** Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace","doc":{"summary":"Preview ordered workspace actions against one observed daemon generation. A plan retains collision policy and bound targets; it is not a portable command script."},"slug":"libtmux_workspace-plan"},{"id":"Libtmux_workspace.Plan.action","publicId":"Libtmux_workspace.Plan.action","qualifiedName":"Libtmux_workspace.Plan.action","name":"action","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type action =\n Create_session of { bootstrap : bool; name : string;\n window_name : string; spawn : Libtmux.Spawn.t; width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t;\n }\n | Split_pane of { window : int; pane : int; spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string; }\n | Send_enter of { window : int; pane : int; }\n | Select_layout of int * Libtmux.Layout.t","params":[]}],"slug":"libtmux_workspace-plan-action"},{"id":"Libtmux_workspace.Plan.action.Create_session","publicId":"Libtmux_workspace.Plan.action.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_session","slug":"libtmux_workspace-plan-action-create_session"},{"id":"Libtmux_workspace.Plan.action.Create_session.bootstrap","publicId":"Libtmux_workspace.Plan.action.Create_session.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : bool;","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"bool","qualifiedName":"Libtmux_workspace.Plan.bootstrap","slug":"libtmux_workspace-plan-action-create_session-bootstrap"},{"id":"Libtmux_workspace.Plan.action.Create_session.height","publicId":"Libtmux_workspace.Plan.action.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.height","slug":"libtmux_workspace-plan-action-create_session-height"},{"id":"Libtmux_workspace.Plan.action.Create_session.name","publicId":"Libtmux_workspace.Plan.action.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_session-name"},{"id":"Libtmux_workspace.Plan.action.Create_session.spawn","publicId":"Libtmux_workspace.Plan.action.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_session-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_session.width","publicId":"Libtmux_workspace.Plan.action.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.width","slug":"libtmux_workspace-plan-action-create_session-width"},{"id":"Libtmux_workspace.Plan.action.Create_session.window_name","publicId":"Libtmux_workspace.Plan.action.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.window_name","slug":"libtmux_workspace-plan-action-create_session-window_name"},{"id":"Libtmux_workspace.Plan.action.Create_window","publicId":"Libtmux_workspace.Plan.action.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_window","slug":"libtmux_workspace-plan-action-create_window"},{"id":"Libtmux_workspace.Plan.action.Create_window.name","publicId":"Libtmux_workspace.Plan.action.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_window-name"},{"id":"Libtmux_workspace.Plan.action.Create_window.spawn","publicId":"Libtmux_workspace.Plan.action.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_window-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_window.window","publicId":"Libtmux_workspace.Plan.action.Create_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-create_window-window"},{"id":"Libtmux_workspace.Plan.action.Select_layout","publicId":"Libtmux_workspace.Plan.action.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Select_layout","slug":"libtmux_workspace-plan-action-select_layout"},{"id":"Libtmux_workspace.Plan.action.Send_enter","publicId":"Libtmux_workspace.Plan.action.Send_enter","name":"Send_enter","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_enter of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_enter","slug":"libtmux_workspace-plan-action-send_enter"},{"id":"Libtmux_workspace.Plan.action.Send_enter.pane","publicId":"Libtmux_workspace.Plan.action.Send_enter.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_enter-pane"},{"id":"Libtmux_workspace.Plan.action.Send_enter.window","publicId":"Libtmux_workspace.Plan.action.Send_enter.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_enter-window"},{"id":"Libtmux_workspace.Plan.action.Send_text","publicId":"Libtmux_workspace.Plan.action.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text of { window : int; pane : int; text : string }","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_text","slug":"libtmux_workspace-plan-action-send_text"},{"id":"Libtmux_workspace.Plan.action.Send_text.pane","publicId":"Libtmux_workspace.Plan.action.Send_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_text-pane"},{"id":"Libtmux_workspace.Plan.action.Send_text.text","publicId":"Libtmux_workspace.Plan.action.Send_text.text","name":"text","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"text : string","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"string","qualifiedName":"Libtmux_workspace.Plan.text","slug":"libtmux_workspace-plan-action-send_text-text"},{"id":"Libtmux_workspace.Plan.action.Send_text.window","publicId":"Libtmux_workspace.Plan.action.Send_text.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_text-window"},{"id":"Libtmux_workspace.Plan.action.Set_environment","publicId":"Libtmux_workspace.Plan.action.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of string * string","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_environment","slug":"libtmux_workspace-plan-action-set_environment"},{"id":"Libtmux_workspace.Plan.action.Set_option","publicId":"Libtmux_workspace.Plan.action.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of scope * Config.setting","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_option","slug":"libtmux_workspace-plan-action-set_option"},{"id":"Libtmux_workspace.Plan.action.Split_pane","publicId":"Libtmux_workspace.Plan.action.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Split_pane","slug":"libtmux_workspace-plan-action-split_pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.direction","publicId":"Libtmux_workspace.Plan.action.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Plan.direction","slug":"libtmux_workspace-plan-action-split_pane-direction"},{"id":"Libtmux_workspace.Plan.action.Split_pane.pane","publicId":"Libtmux_workspace.Plan.action.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-split_pane-pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.size","publicId":"Libtmux_workspace.Plan.action.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Plan.size","slug":"libtmux_workspace-plan-action-split_pane-size"},{"id":"Libtmux_workspace.Plan.action.Split_pane.spawn","publicId":"Libtmux_workspace.Plan.action.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-split_pane-spawn"},{"id":"Libtmux_workspace.Plan.action.Split_pane.window","publicId":"Libtmux_workspace.Plan.action.Split_pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-split_pane-window"},{"id":"Libtmux_workspace.Plan.actions","publicId":"Libtmux_workspace.Plan.actions","qualifiedName":"Libtmux_workspace.Plan.actions","name":"actions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val actions : t -> action Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val actions : t -> action Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"action Iarray.t"}],"slug":"libtmux_workspace-plan-actions"},{"id":"Libtmux_workspace.Plan.check_source","publicId":"Libtmux_workspace.Plan.check_source","qualifiedName":"Libtmux_workspace.Plan.check_source","name":"check_source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. "],"declarations":[{"kind":"function","text":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"Operational plans are ephemeral and bound to one connection generation. A printed or serialized preview cannot supply operational targets."},"signatures":[{"raw":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Source.t option"}],"returns":"(unit, error) result"}],"slug":"libtmux_workspace-plan-check_source"},{"id":"Libtmux_workspace.Plan.collision_policy","publicId":"Libtmux_workspace.Plan.collision_policy","qualifiedName":"Libtmux_workspace.Plan.collision_policy","name":"collision_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type collision_policy =\n Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision; }","params":[]}],"slug":"libtmux_workspace-plan-collision_policy"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","name":"Append_new_windows","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Append_new_windows","slug":"libtmux_workspace-plan-collision_policy-append_new_windows"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","name":"window_collision","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_collision : window_collision","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","type":"window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","slug":"libtmux_workspace-plan-collision_policy-append_new_windows-window_collision"},{"id":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","publicId":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","name":"Fail_if_session_exists","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Fail_if_session_exists","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Fail_if_session_exists","slug":"libtmux_workspace-plan-collision_policy-fail_if_session_exists"},{"id":"Libtmux_workspace.Plan.config","publicId":"Libtmux_workspace.Plan.config","qualifiedName":"Libtmux_workspace.Plan.config","name":"config","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val config : t -> Config.t","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val config : t -> Config.t","params":[{"name":"arg1","type":"t"}],"returns":"Config.t"}],"slug":"libtmux_workspace-plan-config"},{"id":"Libtmux_workspace.Plan.endpoint","publicId":"Libtmux_workspace.Plan.endpoint","qualifiedName":"Libtmux_workspace.Plan.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Libtmux.Endpoint.t","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val endpoint : t -> Libtmux.Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Endpoint.t"}],"slug":"libtmux_workspace-plan-endpoint"},{"id":"Libtmux_workspace.Plan.error","publicId":"Libtmux_workspace.Plan.error","qualifiedName":"Libtmux_workspace.Plan.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type error =\n Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","params":[]}],"slug":"libtmux_workspace-plan-error"},{"id":"Libtmux_workspace.Plan.error.Append_session_options","publicId":"Libtmux_workspace.Plan.error.Append_session_options","name":"Append_session_options","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_session_options","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Append_session_options","slug":"libtmux_workspace-plan-error-append_session_options"},{"id":"Libtmux_workspace.Plan.error.Missing_endpoint","publicId":"Libtmux_workspace.Plan.error.Missing_endpoint","name":"Missing_endpoint","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing_endpoint","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Missing_endpoint","slug":"libtmux_workspace-plan-error-missing_endpoint"},{"id":"Libtmux_workspace.Plan.error.Session_conflict","publicId":"Libtmux_workspace.Plan.error.Session_conflict","name":"Session_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Session_conflict","slug":"libtmux_workspace-plan-error-session_conflict"},{"id":"Libtmux_workspace.Plan.error.Stale","publicId":"Libtmux_workspace.Plan.error.Stale","name":"Stale","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Stale","slug":"libtmux_workspace-plan-error-stale"},{"id":"Libtmux_workspace.Plan.error.Too_many_steps","publicId":"Libtmux_workspace.Plan.error.Too_many_steps","name":"Too_many_steps","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Too_many_steps","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Too_many_steps","slug":"libtmux_workspace-plan-error-too_many_steps"},{"id":"Libtmux_workspace.Plan.error.Unsupported_setting","publicId":"Libtmux_workspace.Plan.error.Unsupported_setting","name":"Unsupported_setting","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_setting of Config.error","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Unsupported_setting","slug":"libtmux_workspace-plan-error-unsupported_setting"},{"id":"Libtmux_workspace.Plan.error.Window_conflict","publicId":"Libtmux_workspace.Plan.error.Window_conflict","name":"Window_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window_conflict","slug":"libtmux_workspace-plan-error-window_conflict"},{"id":"Libtmux_workspace.Plan.existing_session","publicId":"Libtmux_workspace.Plan.existing_session","qualifiedName":"Libtmux_workspace.Plan.existing_session","name":"existing_session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val existing_session : t -> Libtmux.Session.target option","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val existing_session : t -> Libtmux.Session.target option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Session.target option"}],"slug":"libtmux_workspace-plan-existing_session"},{"id":"Libtmux_workspace.Plan.make","publicId":"Libtmux_workspace.Plan.make","qualifiedName":"Libtmux_workspace.Plan.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[" [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. "],"declarations":[{"kind":"function","text":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"`None` means an explicitly observed missing endpoint. It is not an empty successful snapshot. A plan does not start a server. Append rejects any existing requested window name and never changes session options. `version` selects the generated option catalog."},"signatures":[{"raw":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option -> Config.t -> (t, error) result","params":[{"name":"server_policy","type":"server_policy","optional":true,"keywordOnly":true},{"name":"collision_policy","type":"collision_policy","optional":true,"keywordOnly":true},{"name":"endpoint","type":"Libtmux.Endpoint.t","keywordOnly":true},{"name":"version","type":"string","keywordOnly":true},{"name":"observed","type":"Libtmux.Snapshot.t option","keywordOnly":true},{"name":"arg1","type":"Config.t"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-plan-make"},{"id":"Libtmux_workspace.Plan.pp_error","publicId":"Libtmux_workspace.Plan.pp_error","qualifiedName":"Libtmux_workspace.Plan.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-plan-pp_error"},{"id":"Libtmux_workspace.Plan.scope","publicId":"Libtmux_workspace.Plan.scope","qualifiedName":"Libtmux_workspace.Plan.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Session | Window of int | Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type scope = Session | Window of int | Pane of { window : int; pane : int; }","params":[]}],"slug":"libtmux_workspace-plan-scope"},{"id":"Libtmux_workspace.Plan.scope.Pane","publicId":"Libtmux_workspace.Plan.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Pane","slug":"libtmux_workspace-plan-scope-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.pane","publicId":"Libtmux_workspace.Plan.scope.Pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-scope-pane-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.window","publicId":"Libtmux_workspace.Plan.scope.Pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-scope-pane-window"},{"id":"Libtmux_workspace.Plan.scope.Session","publicId":"Libtmux_workspace.Plan.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Session","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Session","slug":"libtmux_workspace-plan-scope-session"},{"id":"Libtmux_workspace.Plan.scope.Window","publicId":"Libtmux_workspace.Plan.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window","slug":"libtmux_workspace-plan-scope-window"},{"id":"Libtmux_workspace.Plan.server_policy","publicId":"Libtmux_workspace.Plan.server_policy","qualifiedName":"Libtmux_workspace.Plan.server_policy","name":"server_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type server_policy = Create_if_missing | Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type server_policy = Create_if_missing | Require_existing_server","params":[]}],"slug":"libtmux_workspace-plan-server_policy"},{"id":"Libtmux_workspace.Plan.server_policy.Create_if_missing","publicId":"Libtmux_workspace.Plan.server_policy.Create_if_missing","name":"Create_if_missing","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Create_if_missing","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Create_if_missing","slug":"libtmux_workspace-plan-server_policy-create_if_missing"},{"id":"Libtmux_workspace.Plan.server_policy.Require_existing_server","publicId":"Libtmux_workspace.Plan.server_policy.Require_existing_server","name":"Require_existing_server","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Require_existing_server","slug":"libtmux_workspace-plan-server_policy-require_existing_server"},{"id":"Libtmux_workspace.Plan.source","publicId":"Libtmux_workspace.Plan.source","qualifiedName":"Libtmux_workspace.Plan.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t option","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val source : t -> Libtmux.Source.t option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t option"}],"slug":"libtmux_workspace-plan-source"},{"id":"Libtmux_workspace.Plan.t","publicId":"Libtmux_workspace.Plan.t","qualifiedName":"Libtmux_workspace.Plan.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-plan-t"},{"id":"Libtmux_workspace.Plan.window_collision","publicId":"Libtmux_workspace.Plan.window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","name":"window_collision","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type window_collision = Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type window_collision = Reject","params":[]}],"slug":"libtmux_workspace-plan-window_collision"},{"id":"Libtmux_workspace.Plan.window_collision.Reject","publicId":"Libtmux_workspace.Plan.window_collision.Reject","name":"Reject","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","extractedRevision":"ade2f9787024a5426710cec06f864648c217263c"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c"}}],"parent":"Libtmux_workspace.Plan.window_collision","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Reject","slug":"libtmux_workspace-plan-window_collision-reject"}]} +{"port":"ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","repo":"libtmux/libtmux-ocaml","sources":[{"product":"core","package":"libtmux","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"core","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"workspace","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"core","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"workspace","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"core","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"workspace","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"}],"extractor":"OCaml 5.5.2 compiler-libs .cmti + odoc-parser 3.2.2","nativeProvenance":{"files":[{"path":"lib/libtmux.mli","sha256":"eb15691c82da743bb49170e408ca50500b38d21aeb248bb41a171e1e0352bc8e"},{"path":"_build/install/default/lib/libtmux/libtmux.cmti","sha256":"2e9a977a5a36625b0d0e8499051a36d13deab0f4a59bd699f2ab430975fed851"},{"path":"workspace/libtmux_workspace.mli","sha256":"10c5cadc58269906f16550a7bb703a8e05bee163d9b1716bf2be994ec8ebbeed"},{"path":"_build/install/default/lib/libtmux-workspace/libtmux_workspace.cmti","sha256":"dac59166f00e4c248fb2fe84787faef28f4e838a8db7b2b17768f9f0cffcfaf2"},{"path":"json/libtmux_json.mli","sha256":"ae672cc3b970fbd3fe9f68bb8703bb961e8d5968d9920b2626cddbffeb85c94b"},{"path":"_build/install/default/lib/libtmux-json/libtmux_json.cmti","sha256":"1574d45efd30dffc97a5775dc90f55a6aa935593dad025b98e9027325f06c78d"},{"path":"unix/libtmux_unix.mli","sha256":"638e260745952dc3db2ec4cd4cd28733326fdb74d65668b46fe29398526a9421"},{"path":"_build/install/default/lib/libtmux-unix/libtmux_unix.cmti","sha256":"cf23cb48ff8f22a9d7ce5c606f9cf8117db1d9cbc9286f87987c279b156a0e36"},{"path":"eio/libtmux_eio.mli","sha256":"f4b35be04f35f5e6fe99c139f1f8bbaacf4ed82e1faa55ad0f73bdd9803d4386"},{"path":"_build/install/default/lib/libtmux-eio/libtmux_eio.cmti","sha256":"62e866a1e8c8c9789a8261ac7420c078c73d069d31e900f6f40dc82b262a56d9"}],"exporter":{"revision":"a111168bceee2085f0cee5efe784d8f446011ba1","baseRevision":"a111168bceee2085f0cee5efe784d8f446011ba1","files":[{"path":"tools/api_export.ml","sha256":"403353de9340f32586cb522a827be03a9693142eeec01c891175c4e76b069a5d"},{"path":"tools/api_doc.ml","sha256":"94d9b4dff3f86d570a31161019e06cea250926200b8cc4562f7d14f9f3cd0d59"},{"path":"tools/export_api.py","sha256":"5188348adc7e3ea577889e144de30da6204ec14ec6fc1577f86a732bc7625973"},{"path":"tools/api_modules.json","sha256":"233ef409440fa5015f522a11933e74f059a301aecbce5ab5126f14e8a35614cf"},{"path":"tools/dune","sha256":"777e122d729870f9f8dc6fc13485ce0eea29f0e741b9bb22cb0245d433ff9442"}],"compiler":"5.5.2","schema":"libtmux.ocaml-api/1","publicManifest":"tools/api_modules.json"}},"symbols":[{"id":"Libtmux","publicId":"Libtmux","qualifiedName":"Libtmux","name":"Libtmux","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Native captured values, typed queries and explicit command descriptions.\n\n A {!Snapshot.t} owns immutable observations. Entity accessors and query\n evaluation perform no I/O, preserve captured order and remain usable after\n client closure. Use [Libtmux_unix.Client] or [Libtmux_eio.Client] to acquire\n or mutate state.\n\n {1 Typical flow}\n\n Capture explicitly, traverse {!Session.window_links} and {!Window.panes},\n filter with [Seq.filter] or {!Query.matching}, establish cardinality with\n {!Query.exactly_one}, then submit a command with a bound target.\n\n The core depends only on the standard library. Its abstract observations are\n safe to share; live clients and subscriptions belong to their backend.\n\n See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md}graph\n guide} for window links and the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} for native predicates and typed expressions. "],"declarations":[{"kind":"module","text":"","source":{"file":"lib/libtmux.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"doc":{"summary":"Native captured values, typed queries and explicit command descriptions.","body":"A {!Snapshot.t} owns immutable observations. Entity accessors and query evaluation perform no I/O, preserve captured order and remain usable after client closure. Use `Libtmux_unix.Client` or `Libtmux_eio.Client` to acquire or mutate state.\n\n## Typical flow\n\nCapture explicitly, traverse {!Session.window_links} and {!Window.panes}, filter with `Seq.filter` or {!Query.matching}, establish cardinality with {!Query.exactly_one}, then submit a command with a bound target.\n\nThe core depends only on the standard library. Its abstract observations are safe to share; live clients and subscriptions belong to their backend.\n\nSee the [graph guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md) for window links and the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) for native predicates and typed expressions."},"slug":"libtmux"},{"id":"Libtmux.Captured_text","publicId":"Libtmux.Captured_text","qualifiedName":"Libtmux.Captured_text","name":"Captured_text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":690,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Captured_text : sig\n type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. *)\nend","source":{"file":"lib/libtmux.mli","line":690,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-captured_text"},{"id":"Libtmux.Captured_text.t","publicId":"Libtmux.Captured_text.t","qualifiedName":"Libtmux.Captured_text.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":691,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. "],"declarations":[{"kind":"struct","text":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":691,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Captured_text","doc":{"summary":"Ordinary rendered rows captured over an interval. This value has no implied relationship to a subscription cursor."},"signatures":[{"raw":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-captured_text-t"},{"id":"Libtmux.Captured_text.t.bytes","publicId":"Libtmux.Captured_text.t.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":692,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string;","source":{"file":"lib/libtmux.mli","line":692,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Captured_text.t","type":"string","qualifiedName":"Libtmux.Captured_text.bytes","slug":"libtmux-captured_text-t-bytes"},{"id":"Libtmux.Captured_text.t.finished_at_ns","publicId":"Libtmux.Captured_text.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":696,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":696,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.finished_at_ns","slug":"libtmux-captured_text-t-finished_at_ns"},{"id":"Libtmux.Captured_text.t.pane","publicId":"Libtmux.Captured_text.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":694,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":694,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Captured_text.t","type":"Pane.Id.t","qualifiedName":"Libtmux.Captured_text.pane","slug":"libtmux-captured_text-t-pane"},{"id":"Libtmux.Captured_text.t.source","publicId":"Libtmux.Captured_text.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":693,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":693,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Captured_text.t","type":"Source.t","qualifiedName":"Libtmux.Captured_text.source","slug":"libtmux-captured_text-t-source"},{"id":"Libtmux.Captured_text.t.started_at_ns","publicId":"Libtmux.Captured_text.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":695,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":695,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.started_at_ns","slug":"libtmux-captured_text-t-started_at_ns"},{"id":"Libtmux.Cardinality","publicId":"Libtmux.Cardinality","qualifiedName":"Libtmux.Cardinality","name":"Cardinality","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":663,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cardinality : sig\n type error = No_match | Multiple_matches of { at_least : int }\n\n val pp_error : Format.formatter -> error -> unit\nend","source":{"file":"lib/libtmux.mli","line":663,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-cardinality"},{"id":"Libtmux.Cardinality.error","publicId":"Libtmux.Cardinality.error","qualifiedName":"Libtmux.Cardinality.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error = No_match | Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"type error = No_match | Multiple_matches of { at_least : int; }","params":[]}],"slug":"libtmux-cardinality-error"},{"id":"Libtmux.Cardinality.error.Multiple_matches","publicId":"Libtmux.Cardinality.error.Multiple_matches","name":"Multiple_matches","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Cardinality.error","variant":"struct","qualifiedName":"Libtmux.Cardinality.Multiple_matches","slug":"libtmux-cardinality-error-multiple_matches"},{"id":"Libtmux.Cardinality.error.Multiple_matches.at_least","publicId":"Libtmux.Cardinality.error.Multiple_matches.at_least","name":"at_least","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"at_least : int","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Cardinality.error.Multiple_matches","type":"int","qualifiedName":"Libtmux.Cardinality.at_least","slug":"libtmux-cardinality-error-multiple_matches-at_least"},{"id":"Libtmux.Cardinality.error.No_match","publicId":"Libtmux.Cardinality.error.No_match","name":"No_match","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"No_match","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Cardinality.error","variant":"unit","qualifiedName":"Libtmux.Cardinality.No_match","slug":"libtmux-cardinality-error-no_match"},{"id":"Libtmux.Cardinality.pp_error","publicId":"Libtmux.Cardinality.pp_error","qualifiedName":"Libtmux.Cardinality.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"lib/libtmux.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux-cardinality-pp_error"},{"id":"Libtmux.Client_name","publicId":"Libtmux.Client_name","qualifiedName":"Libtmux.Client_name","name":"Client_name","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Client_name : sig\n type t\n (** A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. *)\n\n val source : t -> Source.t\n val to_string : t -> string\nend","source":{"file":"lib/libtmux.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-client_name"},{"id":"Libtmux.Client_name.source","publicId":"Libtmux.Client_name.source","qualifiedName":"Libtmux.Client_name.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_name-source"},{"id":"Libtmux.Client_name.t","publicId":"Libtmux.Client_name.t","qualifiedName":"Libtmux.Client_name.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_name","doc":{"summary":"A name in one connection generation, with current-name semantics. It does not identify a stable client incarnation; tmux may reuse client names."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_name-t"},{"id":"Libtmux.Client_name.to_string","publicId":"Libtmux.Client_name.to_string","qualifiedName":"Libtmux.Client_name.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_name-to_string"},{"id":"Libtmux.Client_observation","publicId":"Libtmux.Client_observation","qualifiedName":"Libtmux.Client_observation","name":"Client_observation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":343,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"and Client_observation : sig\n type t\n\n module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end\n\n val name : t -> string\n val pid : t -> int\n val width : t -> int\n\n val height : t -> int option\n (** No height is reported until the client has a started terminal. *)\n\n val control_mode : t -> bool\n val source : t -> Source.t\n\n val current_name : t -> Client_name.t\n (** Address whichever client has this name when a command executes. *)\n\n val session : t -> Session.t option\n (** [None] means the captured client has no attached session. *)\n\n val same_observation : t -> t -> bool\n (** Client names may be reused. No cross-snapshot entity equality is offered.\n *)\nend","source":{"file":"lib/libtmux.mli","line":343,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-client_observation"},{"id":"Libtmux.Client_observation.Fields","publicId":"Libtmux.Client_observation.Fields","qualifiedName":"Libtmux.Client_observation.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":346,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-fields"},{"id":"Libtmux.Client_observation.Fields.control_mode","publicId":"Libtmux.Client_observation.Fields.control_mode","qualifiedName":"Libtmux.Client_observation.Fields.control_mode","name":"control_mode","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":350,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val control_mode : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":350,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val control_mode : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-client_observation-fields-control_mode"},{"id":"Libtmux.Client_observation.Fields.name","publicId":"Libtmux.Client_observation.Fields.name","qualifiedName":"Libtmux.Client_observation.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":347,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":347,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-client_observation-fields-name"},{"id":"Libtmux.Client_observation.Fields.pid","publicId":"Libtmux.Client_observation.Fields.pid","qualifiedName":"Libtmux.Client_observation.Fields.pid","name":"pid","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":348,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pid : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":348,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val pid : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-pid"},{"id":"Libtmux.Client_observation.Fields.width","publicId":"Libtmux.Client_observation.Fields.width","qualifiedName":"Libtmux.Client_observation.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":349,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":349,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-width"},{"id":"Libtmux.Client_observation.Relations","publicId":"Libtmux.Client_observation.Relations","qualifiedName":"Libtmux.Client_observation.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":353,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end","source":{"file":"lib/libtmux.mli","line":353,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-relations"},{"id":"Libtmux.Client_observation.Relations.session","publicId":"Libtmux.Client_observation.Relations.session","qualifiedName":"Libtmux.Client_observation.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.Optional.t","source":{"file":"lib/libtmux.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.Optional.t","params":[],"returns":"(t, Session.t) Relation.Optional.t"}],"slug":"libtmux-client_observation-relations-session"},{"id":"Libtmux.Client_observation.control_mode","publicId":"Libtmux.Client_observation.control_mode","qualifiedName":"Libtmux.Client_observation.control_mode","name":"control_mode","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":364,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val control_mode : t -> bool","source":{"file":"lib/libtmux.mli","line":364,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val control_mode : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-control_mode"},{"id":"Libtmux.Client_observation.current_name","publicId":"Libtmux.Client_observation.current_name","qualifiedName":"Libtmux.Client_observation.current_name","name":"current_name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":367,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Address whichever client has this name when a command executes. "],"declarations":[{"kind":"function","text":"val current_name : t -> Client_name.t","source":{"file":"lib/libtmux.mli","line":367,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Address whichever client has this name when a command executes."},"signatures":[{"raw":"val current_name : t -> Client_name.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_name.t"}],"slug":"libtmux-client_observation-current_name"},{"id":"Libtmux.Client_observation.height","publicId":"Libtmux.Client_observation.height","qualifiedName":"Libtmux.Client_observation.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" No height is reported until the client has a started terminal. "],"declarations":[{"kind":"function","text":"val height : t -> int option","source":{"file":"lib/libtmux.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"No height is reported until the client has a started terminal."},"signatures":[{"raw":"val height : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-client_observation-height"},{"id":"Libtmux.Client_observation.name","publicId":"Libtmux.Client_observation.name","qualifiedName":"Libtmux.Client_observation.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":357,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":357,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_observation-name"},{"id":"Libtmux.Client_observation.pid","publicId":"Libtmux.Client_observation.pid","qualifiedName":"Libtmux.Client_observation.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pid : t -> int","source":{"file":"lib/libtmux.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-pid"},{"id":"Libtmux.Client_observation.same_observation","publicId":"Libtmux.Client_observation.same_observation","qualifiedName":"Libtmux.Client_observation.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":373,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Client names may be reused. No cross-snapshot entity equality is offered.\n "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":373,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Client names may be reused. No cross-snapshot entity equality is offered."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-same_observation"},{"id":"Libtmux.Client_observation.session","publicId":"Libtmux.Client_observation.session","qualifiedName":"Libtmux.Client_observation.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [None] means the captured client has no attached session. "],"declarations":[{"kind":"function","text":"val session : t -> Session.t option","source":{"file":"lib/libtmux.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"`None` means the captured client has no attached session."},"signatures":[{"raw":"val session : t -> Session.t option","params":[{"name":"arg1","type":"t"}],"returns":"Session.t option"}],"slug":"libtmux-client_observation-session"},{"id":"Libtmux.Client_observation.source","publicId":"Libtmux.Client_observation.source","qualifiedName":"Libtmux.Client_observation.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_observation-source"},{"id":"Libtmux.Client_observation.t","publicId":"Libtmux.Client_observation.t","qualifiedName":"Libtmux.Client_observation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_observation-t"},{"id":"Libtmux.Client_observation.width","publicId":"Libtmux.Client_observation.width","qualifiedName":"Libtmux.Client_observation.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":359,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":359,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-width"},{"id":"Libtmux.Command","publicId":"Libtmux.Command","qualifiedName":"Libtmux.Command","name":"Command","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":861,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Typed descriptions of explicit acquisition and mutation operations.\n Construction performs no I/O; a backend validates and admits the command. "],"declarations":[{"kind":"module","text":"module Command : sig\n type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }\n\n type 'a t\n (** An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. *)\n\n type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view\n\n val view : 'a t -> 'a view\n (** Read-only inspection for transport adapters. *)\nend","source":{"file":"lib/libtmux.mli","line":861,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Typed descriptions of explicit acquisition and mutation operations. Construction performs no I/O; a backend validates and admits the command."},"slug":"libtmux-command"},{"id":"Libtmux.Command.mutation","publicId":"Libtmux.Command.mutation","qualifiedName":"Libtmux.Command.mutation","name":"mutation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":862,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":862,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type mutation =\n Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of { session : Session.target; index : int;\n allow_kill : bool;\n }\n | Link_window of { window : Window.target; session : Session.target;\n index : int;\n }\n | Move_window_at of { from_session : Session.target; from_index : int;\n session : Session.target; index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of { pane : Pane.target; width : int option;\n height : int option;\n }\n | Resize_window of { window : Window.target; width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of { pane : Pane.target; beside : Pane.target;\n direction : Geometry.direction; size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Backward | `Forward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of { pane : Pane.target; spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of { scope : Environment.scope; name : string;\n value : string; hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of { scope : Options.scope; name : string; index : int option;\n value : Options.scalar; append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of { scope : Options.scope; name : string; index : int option;\n commands : Hook.command list; append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of { client : Client_name.t; session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of { client : Client_name.t; width : int;\n height : int;\n }","params":[]}],"slug":"libtmux-command-mutation"},{"id":"Libtmux.Command.mutation.Clear_history","publicId":"Libtmux.Command.mutation.Clear_history","name":"Clear_history","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":911,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_history of Pane.target","source":{"file":"lib/libtmux.mli","line":911,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_history","slug":"libtmux-command-mutation-clear_history"},{"id":"Libtmux.Command.mutation.Clear_option_array","publicId":"Libtmux.Command.mutation.Clear_option_array","name":"Clear_option_array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":928,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_option_array of Options.scope * string","source":{"file":"lib/libtmux.mli","line":928,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_option_array","slug":"libtmux-command-mutation-clear_option_array"},{"id":"Libtmux.Command.mutation.Cycle_layout","publicId":"Libtmux.Command.mutation.Cycle_layout","name":"Cycle_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":896,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cycle_layout of Window.target * [ `Next | `Previous ]","source":{"file":"lib/libtmux.mli","line":896,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Cycle_layout","slug":"libtmux-command-mutation-cycle_layout"},{"id":"Libtmux.Command.mutation.Kill_pane","publicId":"Libtmux.Command.mutation.Kill_pane","name":"Kill_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":865,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":865,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_pane","slug":"libtmux-command-mutation-kill_pane"},{"id":"Libtmux.Command.mutation.Kill_session","publicId":"Libtmux.Command.mutation.Kill_session","name":"Kill_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":863,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_session of Session.target","source":{"file":"lib/libtmux.mli","line":863,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_session","slug":"libtmux-command-mutation-kill_session"},{"id":"Libtmux.Command.mutation.Kill_window","publicId":"Libtmux.Command.mutation.Kill_window","name":"Kill_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":864,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_window of Window.target","source":{"file":"lib/libtmux.mli","line":864,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_window","slug":"libtmux-command-mutation-kill_window"},{"id":"Libtmux.Command.mutation.Link_window","publicId":"Libtmux.Command.mutation.Link_window","name":"Link_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":872,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":872,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Link_window","slug":"libtmux-command-mutation-link_window"},{"id":"Libtmux.Command.mutation.Link_window.index","publicId":"Libtmux.Command.mutation.Link_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":875,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":875,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-link_window-index"},{"id":"Libtmux.Command.mutation.Link_window.session","publicId":"Libtmux.Command.mutation.Link_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-link_window-session"},{"id":"Libtmux.Command.mutation.Link_window.window","publicId":"Libtmux.Command.mutation.Link_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":873,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":873,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-link_window-window"},{"id":"Libtmux.Command.mutation.Move_pane","publicId":"Libtmux.Command.mutation.Move_pane","name":"Move_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":897,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }","source":{"file":"lib/libtmux.mli","line":897,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_pane","slug":"libtmux-command-mutation-move_pane"},{"id":"Libtmux.Command.mutation.Move_pane.beside","publicId":"Libtmux.Command.mutation.Move_pane.beside","name":"beside","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":899,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"beside : Pane.target;","source":{"file":"lib/libtmux.mli","line":899,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.beside","slug":"libtmux-command-mutation-move_pane-beside"},{"id":"Libtmux.Command.mutation.Move_pane.direction","publicId":"Libtmux.Command.mutation.Move_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":900,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":900,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-mutation-move_pane-direction"},{"id":"Libtmux.Command.mutation.Move_pane.pane","publicId":"Libtmux.Command.mutation.Move_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":898,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":898,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-move_pane-pane"},{"id":"Libtmux.Command.mutation.Move_pane.size","publicId":"Libtmux.Command.mutation.Move_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":901,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":901,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-mutation-move_pane-size"},{"id":"Libtmux.Command.mutation.Move_window_at","publicId":"Libtmux.Command.mutation.Move_window_at","name":"Move_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":877,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":877,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_window_at","slug":"libtmux-command-mutation-move_window_at"},{"id":"Libtmux.Command.mutation.Move_window_at.from_index","publicId":"Libtmux.Command.mutation.Move_window_at.from_index","name":"from_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":879,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_index : int;","source":{"file":"lib/libtmux.mli","line":879,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.from_index","slug":"libtmux-command-mutation-move_window_at-from_index"},{"id":"Libtmux.Command.mutation.Move_window_at.from_session","publicId":"Libtmux.Command.mutation.Move_window_at.from_session","name":"from_session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":878,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_session : Session.target;","source":{"file":"lib/libtmux.mli","line":878,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.from_session","slug":"libtmux-command-mutation-move_window_at-from_session"},{"id":"Libtmux.Command.mutation.Move_window_at.index","publicId":"Libtmux.Command.mutation.Move_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":881,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":881,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-move_window_at-index"},{"id":"Libtmux.Command.mutation.Move_window_at.session","publicId":"Libtmux.Command.mutation.Move_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":880,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":880,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-move_window_at-session"},{"id":"Libtmux.Command.mutation.Refresh_client_at","publicId":"Libtmux.Command.mutation.Refresh_client_at","name":"Refresh_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":944,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Refresh_client_at of Client_name.t * bool","source":{"file":"lib/libtmux.mli","line":944,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Refresh_client_at","slug":"libtmux-command-mutation-refresh_client_at"},{"id":"Libtmux.Command.mutation.Remove_environment","publicId":"Libtmux.Command.mutation.Remove_environment","name":"Remove_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":919,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":919,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_environment","slug":"libtmux-command-mutation-remove_environment"},{"id":"Libtmux.Command.mutation.Remove_hook","publicId":"Libtmux.Command.mutation.Remove_hook","name":"Remove_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":936,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_hook of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":936,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_hook","slug":"libtmux-command-mutation-remove_hook"},{"id":"Libtmux.Command.mutation.Request_detach_client_at","publicId":"Libtmux.Command.mutation.Request_detach_client_at","name":"Request_detach_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":943,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Request_detach_client_at of Client_name.t","source":{"file":"lib/libtmux.mli","line":943,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Request_detach_client_at","slug":"libtmux-command-mutation-request_detach_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at","publicId":"Libtmux.Command.mutation.Resize_control_client_at","name":"Resize_control_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":945,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":945,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_control_client_at","slug":"libtmux-command-mutation-resize_control_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.client","publicId":"Libtmux.Command.mutation.Resize_control_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":946,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":946,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-resize_control_client_at-client"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.height","publicId":"Libtmux.Command.mutation.Resize_control_client_at.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":948,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":948,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_control_client_at-height"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.width","publicId":"Libtmux.Command.mutation.Resize_control_client_at.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":947,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":947,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_control_client_at-width"},{"id":"Libtmux.Command.mutation.Resize_pane","publicId":"Libtmux.Command.mutation.Resize_pane","name":"Resize_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":885,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":885,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_pane","slug":"libtmux-command-mutation-resize_pane"},{"id":"Libtmux.Command.mutation.Resize_pane.height","publicId":"Libtmux.Command.mutation.Resize_pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":888,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":888,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_pane-height"},{"id":"Libtmux.Command.mutation.Resize_pane.pane","publicId":"Libtmux.Command.mutation.Resize_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":886,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":886,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-resize_pane-pane"},{"id":"Libtmux.Command.mutation.Resize_pane.width","publicId":"Libtmux.Command.mutation.Resize_pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":887,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":887,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_pane-width"},{"id":"Libtmux.Command.mutation.Resize_window","publicId":"Libtmux.Command.mutation.Resize_window","name":"Resize_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":890,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":890,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_window","slug":"libtmux-command-mutation-resize_window"},{"id":"Libtmux.Command.mutation.Resize_window.height","publicId":"Libtmux.Command.mutation.Resize_window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":893,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":893,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_window-height"},{"id":"Libtmux.Command.mutation.Resize_window.width","publicId":"Libtmux.Command.mutation.Resize_window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":892,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":892,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_window-width"},{"id":"Libtmux.Command.mutation.Resize_window.window","publicId":"Libtmux.Command.mutation.Resize_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":891,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":891,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-resize_window-window"},{"id":"Libtmux.Command.mutation.Respawn_pane","publicId":"Libtmux.Command.mutation.Respawn_pane","name":"Respawn_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":906,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }","source":{"file":"lib/libtmux.mli","line":906,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Respawn_pane","slug":"libtmux-command-mutation-respawn_pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.kill_running","publicId":"Libtmux.Command.mutation.Respawn_pane.kill_running","name":"kill_running","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":909,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kill_running : bool;","source":{"file":"lib/libtmux.mli","line":909,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"bool","qualifiedName":"Libtmux.Command.kill_running","slug":"libtmux-command-mutation-respawn_pane-kill_running"},{"id":"Libtmux.Command.mutation.Respawn_pane.pane","publicId":"Libtmux.Command.mutation.Respawn_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":907,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":907,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-respawn_pane-pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.spawn","publicId":"Libtmux.Command.mutation.Respawn_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":908,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":908,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-mutation-respawn_pane-spawn"},{"id":"Libtmux.Command.mutation.Rotate_panes","publicId":"Libtmux.Command.mutation.Rotate_panes","name":"Rotate_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":904,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rotate_panes of Window.target * [ `Forward | `Backward ]","source":{"file":"lib/libtmux.mli","line":904,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Rotate_panes","slug":"libtmux-command-mutation-rotate_panes"},{"id":"Libtmux.Command.mutation.Run_hook","publicId":"Libtmux.Command.mutation.Run_hook","name":"Run_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":937,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Run_hook of Options.scope * string","source":{"file":"lib/libtmux.mli","line":937,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Run_hook","slug":"libtmux-command-mutation-run_hook"},{"id":"Libtmux.Command.mutation.Select_layout","publicId":"Libtmux.Command.mutation.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":895,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of Window.target * Layout.t","source":{"file":"lib/libtmux.mli","line":895,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_layout","slug":"libtmux-command-mutation-select_layout"},{"id":"Libtmux.Command.mutation.Select_pane","publicId":"Libtmux.Command.mutation.Select_pane","name":"Select_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":883,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":883,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_pane","slug":"libtmux-command-mutation-select_pane"},{"id":"Libtmux.Command.mutation.Select_window_at","publicId":"Libtmux.Command.mutation.Select_window_at","name":"Select_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":866,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_window_at of Session.target * int","source":{"file":"lib/libtmux.mli","line":866,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_window_at","slug":"libtmux-command-mutation-select_window_at"},{"id":"Libtmux.Command.mutation.Set_environment","publicId":"Libtmux.Command.mutation.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":912,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }","source":{"file":"lib/libtmux.mli","line":912,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_environment","slug":"libtmux-command-mutation-set_environment"},{"id":"Libtmux.Command.mutation.Set_environment.hidden","publicId":"Libtmux.Command.mutation.Set_environment.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":916,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":916,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"bool","qualifiedName":"Libtmux.Command.hidden","slug":"libtmux-command-mutation-set_environment-hidden"},{"id":"Libtmux.Command.mutation.Set_environment.name","publicId":"Libtmux.Command.mutation.Set_environment.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":914,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":914,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_environment-name"},{"id":"Libtmux.Command.mutation.Set_environment.scope","publicId":"Libtmux.Command.mutation.Set_environment.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":913,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Environment.scope;","source":{"file":"lib/libtmux.mli","line":913,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"Environment.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_environment-scope"},{"id":"Libtmux.Command.mutation.Set_environment.value","publicId":"Libtmux.Command.mutation.Set_environment.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":915,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : string;","source":{"file":"lib/libtmux.mli","line":915,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_environment-value"},{"id":"Libtmux.Command.mutation.Set_hook","publicId":"Libtmux.Command.mutation.Set_hook","name":"Set_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":929,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":929,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_hook","slug":"libtmux-command-mutation-set_hook"},{"id":"Libtmux.Command.mutation.Set_hook.append","publicId":"Libtmux.Command.mutation.Set_hook.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":934,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":934,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_hook-append"},{"id":"Libtmux.Command.mutation.Set_hook.commands","publicId":"Libtmux.Command.mutation.Set_hook.commands","name":"commands","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":933,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"commands : Hook.command list;","source":{"file":"lib/libtmux.mli","line":933,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Hook.command list","qualifiedName":"Libtmux.Command.commands","slug":"libtmux-command-mutation-set_hook-commands"},{"id":"Libtmux.Command.mutation.Set_hook.index","publicId":"Libtmux.Command.mutation.Set_hook.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":932,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":932,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_hook-index"},{"id":"Libtmux.Command.mutation.Set_hook.name","publicId":"Libtmux.Command.mutation.Set_hook.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":931,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":931,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_hook-name"},{"id":"Libtmux.Command.mutation.Set_hook.scope","publicId":"Libtmux.Command.mutation.Set_hook.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":930,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":930,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_hook-scope"},{"id":"Libtmux.Command.mutation.Set_option","publicId":"Libtmux.Command.mutation.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":920,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":920,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_option","slug":"libtmux-command-mutation-set_option"},{"id":"Libtmux.Command.mutation.Set_option.append","publicId":"Libtmux.Command.mutation.Set_option.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":925,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":925,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_option-append"},{"id":"Libtmux.Command.mutation.Set_option.index","publicId":"Libtmux.Command.mutation.Set_option.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":923,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":923,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_option-index"},{"id":"Libtmux.Command.mutation.Set_option.name","publicId":"Libtmux.Command.mutation.Set_option.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":922,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":922,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_option-name"},{"id":"Libtmux.Command.mutation.Set_option.scope","publicId":"Libtmux.Command.mutation.Set_option.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":921,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":921,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_option-scope"},{"id":"Libtmux.Command.mutation.Set_option.value","publicId":"Libtmux.Command.mutation.Set_option.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":924,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Options.scalar;","source":{"file":"lib/libtmux.mli","line":924,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scalar","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_option-value"},{"id":"Libtmux.Command.mutation.Set_pane_title","publicId":"Libtmux.Command.mutation.Set_pane_title","name":"Set_pane_title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":884,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_pane_title of Pane.target * string","source":{"file":"lib/libtmux.mli","line":884,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Set_pane_title","slug":"libtmux-command-mutation-set_pane_title"},{"id":"Libtmux.Command.mutation.Swap_panes","publicId":"Libtmux.Command.mutation.Swap_panes","name":"Swap_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":903,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Swap_panes of Pane.target * Pane.target","source":{"file":"lib/libtmux.mli","line":903,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Swap_panes","slug":"libtmux-command-mutation-swap_panes"},{"id":"Libtmux.Command.mutation.Switch_client_at","publicId":"Libtmux.Command.mutation.Switch_client_at","name":"Switch_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":938,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }","source":{"file":"lib/libtmux.mli","line":938,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Switch_client_at","slug":"libtmux-command-mutation-switch_client_at"},{"id":"Libtmux.Command.mutation.Switch_client_at.client","publicId":"Libtmux.Command.mutation.Switch_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":939,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":939,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-switch_client_at-client"},{"id":"Libtmux.Command.mutation.Switch_client_at.session","publicId":"Libtmux.Command.mutation.Switch_client_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":940,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":940,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-switch_client_at-session"},{"id":"Libtmux.Command.mutation.Switch_client_at.update_environment","publicId":"Libtmux.Command.mutation.Switch_client_at.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":941,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"update_environment : bool;","source":{"file":"lib/libtmux.mli","line":941,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"bool","qualifiedName":"Libtmux.Command.update_environment","slug":"libtmux-command-mutation-switch_client_at-update_environment"},{"id":"Libtmux.Command.mutation.Unlink_window_at","publicId":"Libtmux.Command.mutation.Unlink_window_at","name":"Unlink_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":867,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }","source":{"file":"lib/libtmux.mli","line":867,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Unlink_window_at","slug":"libtmux-command-mutation-unlink_window_at"},{"id":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","publicId":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","name":"allow_kill","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":870,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"allow_kill : bool;","source":{"file":"lib/libtmux.mli","line":870,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"bool","qualifiedName":"Libtmux.Command.allow_kill","slug":"libtmux-command-mutation-unlink_window_at-allow_kill"},{"id":"Libtmux.Command.mutation.Unlink_window_at.index","publicId":"Libtmux.Command.mutation.Unlink_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":869,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":869,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-unlink_window_at-index"},{"id":"Libtmux.Command.mutation.Unlink_window_at.session","publicId":"Libtmux.Command.mutation.Unlink_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":868,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":868,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-unlink_window_at-session"},{"id":"Libtmux.Command.mutation.Unset_environment","publicId":"Libtmux.Command.mutation.Unset_environment","name":"Unset_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":918,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":918,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_environment","slug":"libtmux-command-mutation-unset_environment"},{"id":"Libtmux.Command.mutation.Unset_option","publicId":"Libtmux.Command.mutation.Unset_option","name":"Unset_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":927,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_option of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":927,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_option","slug":"libtmux-command-mutation-unset_option"},{"id":"Libtmux.Command.mutation.Zoom_pane","publicId":"Libtmux.Command.mutation.Zoom_pane","name":"Zoom_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":905,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Zoom_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":905,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Zoom_pane","slug":"libtmux-command-mutation-zoom_pane"},{"id":"Libtmux.Command.t","publicId":"Libtmux.Command.t","qualifiedName":"Libtmux.Command.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":951,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. "],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":951,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command","doc":{"summary":"An immutable description, validated by a backend before admission. Constructing or inspecting it performs no I/O."},"signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-command-t"},{"id":"Libtmux.Command.view","publicId":"Libtmux.Command.view","qualifiedName":"Libtmux.Command.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1006,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read-only inspection for transport adapters. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":1006,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command","doc":{"summary":"Read-only inspection for transport adapters."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-command-view"},{"id":"Libtmux.Command.view:type","publicId":"Libtmux.Command.view:type","qualifiedName":"Libtmux.Command.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":955,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":955,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type _ view =\n Capture : Snapshot.t view\n | Capture_text : { pane : Pane.t; start : int; end_ : int;\n scratch_dir : string;\n } -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : { name : string; window_name : string option;\n width : int; height : int; spawn : Spawn.t;\n } -> Created.t view\n | Create_window : { session : Session.target; index : int option;\n name : string option; spawn : Spawn.t;\n } -> Created.t view\n | Split_pane : { pane : Pane.target; direction : Geometry.direction;\n size : Geometry.size option; spawn : Spawn.t;\n } -> Created.t view\n | Break_pane : { pane : Pane.target; session : Session.target; index : int;\n name : string option;\n } -> Created.t view","params":[]}],"slug":"libtmux-command-view-type"},{"id":"Libtmux.Command.view:type.Break_pane","publicId":"Libtmux.Command.view:type.Break_pane","name":"Break_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":998,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":998,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Break_pane","slug":"libtmux-command-view-type-break_pane"},{"id":"Libtmux.Command.view:type.Break_pane.index","publicId":"Libtmux.Command.view:type.Break_pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1001,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":1001,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-break_pane-index"},{"id":"Libtmux.Command.view:type.Break_pane.name","publicId":"Libtmux.Command.view:type.Break_pane.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1002,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1002,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-break_pane-name"},{"id":"Libtmux.Command.view:type.Break_pane.pane","publicId":"Libtmux.Command.view:type.Break_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":999,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":999,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-break_pane-pane"},{"id":"Libtmux.Command.view:type.Break_pane.session","publicId":"Libtmux.Command.view:type.Break_pane.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1000,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1000,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-break_pane-session"},{"id":"Libtmux.Command.view:type.Capture","publicId":"Libtmux.Command.view:type.Capture","name":"Capture","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":956,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture : Snapshot.t view","source":{"file":"lib/libtmux.mli","line":956,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"unit","qualifiedName":"Libtmux.Command.Capture","slug":"libtmux-command-view-type-capture"},{"id":"Libtmux.Command.view:type.Capture_environment","publicId":"Libtmux.Command.view:type.Capture_environment","name":"Capture_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":970,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_environment : Environment.scope * bool -> Environment.t view","source":{"file":"lib/libtmux.mli","line":970,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_environment","slug":"libtmux-command-view-type-capture_environment"},{"id":"Libtmux.Command.view:type.Capture_hooks","publicId":"Libtmux.Command.view:type.Capture_hooks","name":"Capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":973,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_hooks : Options.scope -> Options.t view","source":{"file":"lib/libtmux.mli","line":973,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_hooks","slug":"libtmux-command-view-type-capture_hooks"},{"id":"Libtmux.Command.view:type.Capture_options","publicId":"Libtmux.Command.view:type.Capture_options","name":"Capture_options","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":971,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_options : Options.scope * bool -> Options.t view","source":{"file":"lib/libtmux.mli","line":971,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_options","slug":"libtmux-command-view-type-capture_options"},{"id":"Libtmux.Command.view:type.Capture_text","publicId":"Libtmux.Command.view:type.Capture_text","name":"Capture_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":957,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view","source":{"file":"lib/libtmux.mli","line":957,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Capture_text","slug":"libtmux-command-view-type-capture_text"},{"id":"Libtmux.Command.view:type.Capture_text.end_","publicId":"Libtmux.Command.view:type.Capture_text.end_","name":"end_","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":960,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"end_ : int;","source":{"file":"lib/libtmux.mli","line":960,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.end_","slug":"libtmux-command-view-type-capture_text-end_"},{"id":"Libtmux.Command.view:type.Capture_text.pane","publicId":"Libtmux.Command.view:type.Capture_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":958,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.t;","source":{"file":"lib/libtmux.mli","line":958,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"Pane.t","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-capture_text-pane"},{"id":"Libtmux.Command.view:type.Capture_text.scratch_dir","publicId":"Libtmux.Command.view:type.Capture_text.scratch_dir","name":"scratch_dir","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":961,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scratch_dir : string;","source":{"file":"lib/libtmux.mli","line":961,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"string","qualifiedName":"Libtmux.Command.scratch_dir","slug":"libtmux-command-view-type-capture_text-scratch_dir"},{"id":"Libtmux.Command.view:type.Capture_text.start","publicId":"Libtmux.Command.view:type.Capture_text.start","name":"start","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":959,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"start : int;","source":{"file":"lib/libtmux.mli","line":959,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.start","slug":"libtmux-command-view-type-capture_text-start"},{"id":"Libtmux.Command.view:type.Create_session","publicId":"Libtmux.Command.view:type.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":976,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":976,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_session","slug":"libtmux-command-view-type-create_session"},{"id":"Libtmux.Command.view:type.Create_session.height","publicId":"Libtmux.Command.view:type.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":980,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":980,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-view-type-create_session-height"},{"id":"Libtmux.Command.view:type.Create_session.name","publicId":"Libtmux.Command.view:type.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":977,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":977,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_session-name"},{"id":"Libtmux.Command.view:type.Create_session.spawn","publicId":"Libtmux.Command.view:type.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":981,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":981,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_session-spawn"},{"id":"Libtmux.Command.view:type.Create_session.width","publicId":"Libtmux.Command.view:type.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":979,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":979,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-view-type-create_session-width"},{"id":"Libtmux.Command.view:type.Create_session.window_name","publicId":"Libtmux.Command.view:type.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":978,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string option;","source":{"file":"lib/libtmux.mli","line":978,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string option","qualifiedName":"Libtmux.Command.window_name","slug":"libtmux-command-view-type-create_session-window_name"},{"id":"Libtmux.Command.view:type.Create_window","publicId":"Libtmux.Command.view:type.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":984,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":984,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_window","slug":"libtmux-command-view-type-create_window"},{"id":"Libtmux.Command.view:type.Create_window.index","publicId":"Libtmux.Command.view:type.Create_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":986,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":986,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-create_window-index"},{"id":"Libtmux.Command.view:type.Create_window.name","publicId":"Libtmux.Command.view:type.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":987,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":987,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_window-name"},{"id":"Libtmux.Command.view:type.Create_window.session","publicId":"Libtmux.Command.view:type.Create_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":985,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":985,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-create_window-session"},{"id":"Libtmux.Command.view:type.Create_window.spawn","publicId":"Libtmux.Command.view:type.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":988,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":988,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_window-spawn"},{"id":"Libtmux.Command.view:type.Mutate","publicId":"Libtmux.Command.view:type.Mutate","name":"Mutate","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":975,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mutate : mutation -> unit view","source":{"file":"lib/libtmux.mli","line":975,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Mutate","slug":"libtmux-command-view-type-mutate"},{"id":"Libtmux.Command.view:type.Read_hook","publicId":"Libtmux.Command.view:type.Read_hook","name":"Read_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":974,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_hook : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":974,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_hook","slug":"libtmux-command-view-type-read_hook"},{"id":"Libtmux.Command.view:type.Read_option","publicId":"Libtmux.Command.view:type.Read_option","name":"Read_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":972,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_option : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":972,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_option","slug":"libtmux-command-view-type-read_option"},{"id":"Libtmux.Command.view:type.Rename_session","publicId":"Libtmux.Command.view:type.Rename_session","name":"Rename_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":965,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_session : Session.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":965,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_session","slug":"libtmux-command-view-type-rename_session"},{"id":"Libtmux.Command.view:type.Rename_window","publicId":"Libtmux.Command.view:type.Rename_window","name":"Rename_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":964,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_window : Window.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":964,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_window","slug":"libtmux-command-view-type-rename_window"},{"id":"Libtmux.Command.view:type.Send_keys","publicId":"Libtmux.Command.view:type.Send_keys","name":"Send_keys","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":967,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_keys : Pane.target * Key.t list -> unit view","source":{"file":"lib/libtmux.mli","line":967,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_keys","slug":"libtmux-command-view-type-send_keys"},{"id":"Libtmux.Command.view:type.Send_text","publicId":"Libtmux.Command.view:type.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":966,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text : Pane.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":966,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_text","slug":"libtmux-command-view-type-send_text"},{"id":"Libtmux.Command.view:type.Signal","publicId":"Libtmux.Command.view:type.Signal","name":"Signal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":969,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Signal : string -> unit view","source":{"file":"lib/libtmux.mli","line":969,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Signal","slug":"libtmux-command-view-type-signal"},{"id":"Libtmux.Command.view:type.Split_pane","publicId":"Libtmux.Command.view:type.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":991,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":991,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Split_pane","slug":"libtmux-command-view-type-split_pane"},{"id":"Libtmux.Command.view:type.Split_pane.direction","publicId":"Libtmux.Command.view:type.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":993,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":993,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-view-type-split_pane-direction"},{"id":"Libtmux.Command.view:type.Split_pane.pane","publicId":"Libtmux.Command.view:type.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":992,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":992,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-split_pane-pane"},{"id":"Libtmux.Command.view:type.Split_pane.size","publicId":"Libtmux.Command.view:type.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":994,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":994,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-view-type-split_pane-size"},{"id":"Libtmux.Command.view:type.Split_pane.spawn","publicId":"Libtmux.Command.view:type.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":995,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":995,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-split_pane-spawn"},{"id":"Libtmux.Command.view:type.Wait_for","publicId":"Libtmux.Command.view:type.Wait_for","name":"Wait_for","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":968,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wait_for : string -> unit view","source":{"file":"lib/libtmux.mli","line":968,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Wait_for","slug":"libtmux-command-view-type-wait_for"},{"id":"Libtmux.Created","publicId":"Libtmux.Created","qualifiedName":"Libtmux.Created","name":"Created","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":757,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" IDs reported by a successful creation reply. Only the requested kind is\n newly created; the other fields can describe existing containers. "],"declarations":[{"kind":"module","text":"module Created : sig\n type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }\n (** IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. *)\nend","source":{"file":"lib/libtmux.mli","line":757,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"IDs reported by a successful creation reply. Only the requested kind is newly created; the other fields can describe existing containers."},"slug":"libtmux-created"},{"id":"Libtmux.Created.t","publicId":"Libtmux.Created.t","qualifiedName":"Libtmux.Created.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":758,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. "],"declarations":[{"kind":"struct","text":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }","source":{"file":"lib/libtmux.mli","line":758,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Created","doc":{"summary":"IDs returned by the creation command, without a second capture. Indexes describe the creation response and may change afterward. Only the resource requested by the command is newly created: splitting a pane does not create the reported session or window."},"signatures":[{"raw":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n}","params":[]}],"slug":"libtmux-created-t"},{"id":"Libtmux.Created.t.pane","publicId":"Libtmux.Created.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":761,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":761,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Created.t","type":"Pane.target","qualifiedName":"Libtmux.Created.pane","slug":"libtmux-created-t-pane"},{"id":"Libtmux.Created.t.pane_index","publicId":"Libtmux.Created.t.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.pane_index","slug":"libtmux-created-t-pane_index"},{"id":"Libtmux.Created.t.session","publicId":"Libtmux.Created.t.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":759,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":759,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Created.t","type":"Session.target","qualifiedName":"Libtmux.Created.session","slug":"libtmux-created-t-session"},{"id":"Libtmux.Created.t.window","publicId":"Libtmux.Created.t.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":760,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":760,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Created.t","type":"Window.target","qualifiedName":"Libtmux.Created.window","slug":"libtmux-created-t-window"},{"id":"Libtmux.Created.t.window_index","publicId":"Libtmux.Created.t.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"lib/libtmux.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.window_index","slug":"libtmux-created-t-window_index"},{"id":"Libtmux.Endpoint","publicId":"Libtmux.Endpoint","qualifiedName":"Libtmux.Endpoint","name":"Endpoint","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" An explicit socket description. Constructing an endpoint neither reads the\n environment nor starts a daemon. {!Source.t} adds the observed daemon and\n connection generation. "],"declarations":[{"kind":"module","text":"module Endpoint : sig\n type t\n (** An explicit socket description, independent of the environment. *)\n\n type kind = Named_socket of string | Socket_path of string\n\n val named_socket : string -> t\n (** [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. *)\n\n val socket_path : string -> t\n (** [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. *)\n\n val kind : t -> kind\n\n val equal : t -> t -> bool\n (** Equality compares descriptions, not server instances or resolved paths. *)\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"An explicit socket description. Constructing an endpoint neither reads the environment nor starts a daemon. {!Source.t} adds the observed daemon and connection generation."},"slug":"libtmux-endpoint"},{"id":"Libtmux.Endpoint.equal","publicId":"Libtmux.Endpoint.equal","qualifiedName":"Libtmux.Endpoint.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":43,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Equality compares descriptions, not server instances or resolved paths. "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":43,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"Equality compares descriptions, not server instances or resolved paths."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-endpoint-equal"},{"id":"Libtmux.Endpoint.kind","publicId":"Libtmux.Endpoint.kind","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":41,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : t -> kind","source":{"file":"lib/libtmux.mli","line":41,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val kind : t -> kind","params":[{"name":"arg1","type":"t"}],"returns":"kind"}],"slug":"libtmux-endpoint-kind"},{"id":"Libtmux.Endpoint.kind:type","publicId":"Libtmux.Endpoint.kind:type","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type kind = Named_socket of string | Socket_path of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"type kind = Named_socket of string | Socket_path of string","params":[]}],"slug":"libtmux-endpoint-kind-type"},{"id":"Libtmux.Endpoint.kind:type.Named_socket","publicId":"Libtmux.Endpoint.kind:type.Named_socket","name":"Named_socket","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Named_socket of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Named_socket","slug":"libtmux-endpoint-kind-type-named_socket"},{"id":"Libtmux.Endpoint.kind:type.Socket_path","publicId":"Libtmux.Endpoint.kind:type.Socket_path","name":"Socket_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Socket_path of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Socket_path","slug":"libtmux-endpoint-kind-type-socket_path"},{"id":"Libtmux.Endpoint.named_socket","publicId":"Libtmux.Endpoint.named_socket","qualifiedName":"Libtmux.Endpoint.named_socket","name":"named_socket","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. "],"declarations":[{"kind":"function","text":"val named_socket : string -> t","source":{"file":"lib/libtmux.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`named_socket name` describes tmux's `-L name` endpoint. Raises `Invalid_argument` if `name` is empty or contains NUL or `/`."},"signatures":[{"raw":"val named_socket : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-named_socket"},{"id":"Libtmux.Endpoint.pp","publicId":"Libtmux.Endpoint.pp","qualifiedName":"Libtmux.Endpoint.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":46,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":46,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-endpoint-pp"},{"id":"Libtmux.Endpoint.socket_path","publicId":"Libtmux.Endpoint.socket_path","qualifiedName":"Libtmux.Endpoint.socket_path","name":"socket_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. "],"declarations":[{"kind":"function","text":"val socket_path : string -> t","source":{"file":"lib/libtmux.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`socket_path path` describes an absolute `-S path` endpoint. It does not check existence or resolve symbolic links. Raises `Invalid_argument` if `path` is relative, empty or contains NUL."},"signatures":[{"raw":"val socket_path : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-socket_path"},{"id":"Libtmux.Endpoint.t","publicId":"Libtmux.Endpoint.t","qualifiedName":"Libtmux.Endpoint.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" An explicit socket description, independent of the environment. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"An explicit socket description, independent of the environment."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-endpoint-t"},{"id":"Libtmux.Environment","publicId":"Libtmux.Environment","qualifiedName":"Libtmux.Environment","name":"Environment","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":771,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Environment : sig\n type scope = Global | Session of Session.target\n type value = Value of string | Removed\n type entry = { name : string; value : value }\n\n type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. *)\n\n val lookup : t -> string -> value option\n (** No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. *)\nend","source":{"file":"lib/libtmux.mli","line":771,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-environment"},{"id":"Libtmux.Environment.entry","publicId":"Libtmux.Environment.entry","qualifiedName":"Libtmux.Environment.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { name : string; value : value }","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type entry = { name : string; value : value; }","params":[]}],"slug":"libtmux-environment-entry"},{"id":"Libtmux.Environment.entry.name","publicId":"Libtmux.Environment.entry.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.entry","type":"string","qualifiedName":"Libtmux.Environment.name","slug":"libtmux-environment-entry-name"},{"id":"Libtmux.Environment.entry.value","publicId":"Libtmux.Environment.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.entry","type":"value","qualifiedName":"Libtmux.Environment.value","slug":"libtmux-environment-entry-value"},{"id":"Libtmux.Environment.lookup","publicId":"Libtmux.Environment.lookup","qualifiedName":"Libtmux.Environment.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":788,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> value option","source":{"file":"lib/libtmux.mli","line":788,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment","doc":{"summary":"No I/O. `None` means absent from the selected table and visibility. `Removed` masks a global value; `Value \"\"` is an explicitly empty value. Names must be ASCII identifiers; values preserve non-NUL bytes."},"signatures":[{"raw":"val lookup : t -> string -> value option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"value option"}],"slug":"libtmux-environment-lookup"},{"id":"Libtmux.Environment.scope","publicId":"Libtmux.Environment.scope","qualifiedName":"Libtmux.Environment.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Global | Session of Session.target","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type scope = Global | Session of Session.target","params":[]}],"slug":"libtmux-environment-scope"},{"id":"Libtmux.Environment.scope.Global","publicId":"Libtmux.Environment.scope.Global","name":"Global","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Global","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.scope","variant":"unit","qualifiedName":"Libtmux.Environment.Global","slug":"libtmux-environment-scope-global"},{"id":"Libtmux.Environment.scope.Session","publicId":"Libtmux.Environment.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.scope","variant":"tuple","qualifiedName":"Libtmux.Environment.Session","slug":"libtmux-environment-scope-session"},{"id":"Libtmux.Environment.t","publicId":"Libtmux.Environment.t","qualifiedName":"Libtmux.Environment.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":776,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":776,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment","doc":{"summary":"One captured environment table, in tmux order. `hidden` selects hidden variables exclusively. Session tables contain local entries, including removal markers; they do not merge the global environment."},"signatures":[{"raw":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-environment-t"},{"id":"Libtmux.Environment.t.entries","publicId":"Libtmux.Environment.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Environment.entries","slug":"libtmux-environment-t-entries"},{"id":"Libtmux.Environment.t.finished_at_ns","publicId":"Libtmux.Environment.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":782,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":782,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.finished_at_ns","slug":"libtmux-environment-t-finished_at_ns"},{"id":"Libtmux.Environment.t.hidden","publicId":"Libtmux.Environment.t.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":779,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":779,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.t","type":"bool","qualifiedName":"Libtmux.Environment.hidden","slug":"libtmux-environment-t-hidden"},{"id":"Libtmux.Environment.t.scope","publicId":"Libtmux.Environment.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":778,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":778,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.t","type":"scope","qualifiedName":"Libtmux.Environment.scope","slug":"libtmux-environment-t-scope"},{"id":"Libtmux.Environment.t.source","publicId":"Libtmux.Environment.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":777,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":777,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.t","type":"Source.t","qualifiedName":"Libtmux.Environment.source","slug":"libtmux-environment-t-source"},{"id":"Libtmux.Environment.t.started_at_ns","publicId":"Libtmux.Environment.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":781,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":781,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.started_at_ns","slug":"libtmux-environment-t-started_at_ns"},{"id":"Libtmux.Environment.value","publicId":"Libtmux.Environment.value","qualifiedName":"Libtmux.Environment.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Value of string | Removed","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type value = Value of string | Removed","params":[]}],"slug":"libtmux-environment-value"},{"id":"Libtmux.Environment.value.Removed","publicId":"Libtmux.Environment.value.Removed","name":"Removed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Removed","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.value","variant":"unit","qualifiedName":"Libtmux.Environment.Removed","slug":"libtmux-environment-value-removed"},{"id":"Libtmux.Environment.value.Value","publicId":"Libtmux.Environment.value.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Value of string","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.value","variant":"tuple","qualifiedName":"Libtmux.Environment.Value","slug":"libtmux-environment-value-value"},{"id":"Libtmux.Error","publicId":"Libtmux.Error","qualifiedName":"Libtmux.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":52,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Expected input, capture, capability and transport failures. Cancellation\n belongs to the chosen backend and is not converted into an ordinary error.\n"],"declarations":[{"kind":"module","text":"module Error : sig\n type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":52,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Expected input, capture, capability and transport failures. Cancellation belongs to the chosen backend and is not converted into an ordinary error."},"slug":"libtmux-error"},{"id":"Libtmux.Error.pp","publicId":"Libtmux.Error.pp","qualifiedName":"Libtmux.Error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-error-pp"},{"id":"Libtmux.Error.t","publicId":"Libtmux.Error.t","qualifiedName":"Libtmux.Error.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":53,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":53,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error","signatures":[{"raw":"type t =\n Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string; }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int; }\n | Stale_target\n | No_such_entity of { kind : string; id : string; }\n | Command_failed of { command : string; message : string; }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","params":[]}],"slug":"libtmux-error-t"},{"id":"Libtmux.Error.t.Busy","publicId":"Libtmux.Error.t.Busy","name":"Busy","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Busy","source":{"file":"lib/libtmux.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Busy","slug":"libtmux-error-t-busy"},{"id":"Libtmux.Error.t.Capacity","publicId":"Libtmux.Error.t.Capacity","name":"Capacity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capacity of { resource : string; limit : int }","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Capacity","slug":"libtmux-error-t-capacity"},{"id":"Libtmux.Error.t.Capacity.limit","publicId":"Libtmux.Error.t.Capacity.limit","name":"limit","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"limit : int","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.Capacity","type":"int","qualifiedName":"Libtmux.Error.limit","slug":"libtmux-error-t-capacity-limit"},{"id":"Libtmux.Error.t.Capacity.resource","publicId":"Libtmux.Error.t.Capacity.resource","name":"resource","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"resource : string;","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.Capacity","type":"string","qualifiedName":"Libtmux.Error.resource","slug":"libtmux-error-t-capacity-resource"},{"id":"Libtmux.Error.t.Capture_raced","publicId":"Libtmux.Error.t.Capture_raced","name":"Capture_raced","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_raced of string","source":{"file":"lib/libtmux.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Capture_raced","slug":"libtmux-error-t-capture_raced"},{"id":"Libtmux.Error.t.Closed","publicId":"Libtmux.Error.t.Closed","name":"Closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Closed","source":{"file":"lib/libtmux.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Closed","slug":"libtmux-error-t-closed"},{"id":"Libtmux.Error.t.Command_failed","publicId":"Libtmux.Error.t.Command_failed","name":"Command_failed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command_failed of { command : string; message : string }","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Command_failed","slug":"libtmux-error-t-command_failed"},{"id":"Libtmux.Error.t.Command_failed.command","publicId":"Libtmux.Error.t.Command_failed.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : string;","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.command","slug":"libtmux-error-t-command_failed-command"},{"id":"Libtmux.Error.t.Command_failed.message","publicId":"Libtmux.Error.t.Command_failed.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-command_failed-message"},{"id":"Libtmux.Error.t.Deadline_exceeded","publicId":"Libtmux.Error.t.Deadline_exceeded","name":"Deadline_exceeded","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Deadline_exceeded","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Deadline_exceeded","slug":"libtmux-error-t-deadline_exceeded"},{"id":"Libtmux.Error.t.Disconnected","publicId":"Libtmux.Error.t.Disconnected","name":"Disconnected","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Disconnected of string","source":{"file":"lib/libtmux.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Disconnected","slug":"libtmux-error-t-disconnected"},{"id":"Libtmux.Error.t.Filesystem","publicId":"Libtmux.Error.t.Filesystem","name":"Filesystem","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Filesystem of { operation : string; message : string }","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Filesystem","slug":"libtmux-error-t-filesystem"},{"id":"Libtmux.Error.t.Filesystem.message","publicId":"Libtmux.Error.t.Filesystem.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-filesystem-message"},{"id":"Libtmux.Error.t.Filesystem.operation","publicId":"Libtmux.Error.t.Filesystem.operation","name":"operation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation : string;","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.operation","slug":"libtmux-error-t-filesystem-operation"},{"id":"Libtmux.Error.t.Invalid_input","publicId":"Libtmux.Error.t.Invalid_input","name":"Invalid_input","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":54,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Invalid_input of string","source":{"file":"lib/libtmux.mli","line":54,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Invalid_input","slug":"libtmux-error-t-invalid_input"},{"id":"Libtmux.Error.t.Malformed_data","publicId":"Libtmux.Error.t.Malformed_data","name":"Malformed_data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Malformed_data of string","source":{"file":"lib/libtmux.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Malformed_data","slug":"libtmux-error-t-malformed_data"},{"id":"Libtmux.Error.t.No_such_entity","publicId":"Libtmux.Error.t.No_such_entity","name":"No_such_entity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| No_such_entity of { kind : string; id : string }","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.No_such_entity","slug":"libtmux-error-t-no_such_entity"},{"id":"Libtmux.Error.t.No_such_entity.id","publicId":"Libtmux.Error.t.No_such_entity.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : string","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.id","slug":"libtmux-error-t-no_such_entity-id"},{"id":"Libtmux.Error.t.No_such_entity.kind","publicId":"Libtmux.Error.t.No_such_entity.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : string;","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.kind","slug":"libtmux-error-t-no_such_entity-kind"},{"id":"Libtmux.Error.t.Not_started","publicId":"Libtmux.Error.t.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"lib/libtmux.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Not_started","slug":"libtmux-error-t-not_started"},{"id":"Libtmux.Error.t.Outcome_unknown","publicId":"Libtmux.Error.t.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Outcome_unknown","slug":"libtmux-error-t-outcome_unknown"},{"id":"Libtmux.Error.t.Stale_target","publicId":"Libtmux.Error.t.Stale_target","name":"Stale_target","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale_target","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Stale_target","slug":"libtmux-error-t-stale_target"},{"id":"Libtmux.Error.t.Unsupported","publicId":"Libtmux.Error.t.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported of string","source":{"file":"lib/libtmux.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported","slug":"libtmux-error-t-unsupported"},{"id":"Libtmux.Error.t.Unsupported_binding","publicId":"Libtmux.Error.t.Unsupported_binding","name":"Unsupported_binding","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_binding of string","source":{"file":"lib/libtmux.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_binding","slug":"libtmux-error-t-unsupported_binding"},{"id":"Libtmux.Error.t.Unsupported_capture_hooks","publicId":"Libtmux.Error.t.Unsupported_capture_hooks","name":"Unsupported_capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_capture_hooks","source":{"file":"lib/libtmux.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Unsupported_capture_hooks","slug":"libtmux-error-t-unsupported_capture_hooks"},{"id":"Libtmux.Error.t.Unsupported_version","publicId":"Libtmux.Error.t.Unsupported_version","name":"Unsupported_version","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_version of string","source":{"file":"lib/libtmux.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_version","slug":"libtmux-error-t-unsupported_version"},{"id":"Libtmux.Error.t.Wrong_domain","publicId":"Libtmux.Error.t.Wrong_domain","name":"Wrong_domain","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_domain","source":{"file":"lib/libtmux.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Wrong_domain","slug":"libtmux-error-t-wrong_domain"},{"id":"Libtmux.Expr","publicId":"Libtmux.Expr","qualifiedName":"Libtmux.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Inspectable predicates whose entity and operand types are checked by the\n compiler. Combine native closures separately with [Seq.filter]. Evaluation\n follows captured relationships without acquisition or hidden caches. "],"declarations":[{"kind":"module","text":"module Expr : sig\n type 'entity t\n\n val all : 'a t list -> 'a t\n (** Boolean conjunction; the empty conjunction is true. *)\n\n val any : 'a t list -> 'a t\n (** Boolean disjunction; the empty disjunction is false. *)\n\n val not_ : 'a t -> 'a t\n\n module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end\n\n module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end\n\n module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end\n\n module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end\n\n val compile : 'a t -> 'a -> bool\n (** Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n *)\n\n val pp : Format.formatter -> 'a t -> unit\n val describe : 'a t -> string\n\n type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison\n\n type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view\n\n val view : 'a t -> 'a view\n (** Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. *)\nend","source":{"file":"lib/libtmux.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Inspectable predicates whose entity and operand types are checked by the compiler. Combine native closures separately with `Seq.filter`. Evaluation follows captured relationships without acquisition or hidden caches."},"slug":"libtmux-expr"},{"id":"Libtmux.Expr.Bool","publicId":"Libtmux.Expr.Bool","qualifiedName":"Libtmux.Expr.Bool","name":"Bool","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":563,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":563,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-bool"},{"id":"Libtmux.Expr.Bool.equal","publicId":"Libtmux.Expr.Bool.equal","qualifiedName":"Libtmux.Expr.Bool.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":564,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, bool) Field.t -> bool -> 'a t","source":{"file":"lib/libtmux.mli","line":564,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val equal : ('a, bool) Field.t -> bool -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"},{"name":"arg2","type":"bool"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-equal"},{"id":"Libtmux.Expr.Bool.is_false","publicId":"Libtmux.Expr.Bool.is_false","qualifiedName":"Libtmux.Expr.Bool.is_false","name":"is_false","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":566,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_false : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":566,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_false : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_false"},{"id":"Libtmux.Expr.Bool.is_true","publicId":"Libtmux.Expr.Bool.is_true","qualifiedName":"Libtmux.Expr.Bool.is_true","name":"is_true","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_true : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_true : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_true"},{"id":"Libtmux.Expr.Int","publicId":"Libtmux.Expr.Int","qualifiedName":"Libtmux.Expr.Int","name":"Int","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":569,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":569,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-int"},{"id":"Libtmux.Expr.Int.equal","publicId":"Libtmux.Expr.Int.equal","qualifiedName":"Libtmux.Expr.Int.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":570,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":570,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val equal : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-equal"},{"id":"Libtmux.Expr.Int.ge","publicId":"Libtmux.Expr.Int.ge","qualifiedName":"Libtmux.Expr.Int.ge","name":"ge","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":574,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ge : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":574,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val ge : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-ge"},{"id":"Libtmux.Expr.Int.gt","publicId":"Libtmux.Expr.Int.gt","qualifiedName":"Libtmux.Expr.Int.gt","name":"gt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":573,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val gt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":573,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val gt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-gt"},{"id":"Libtmux.Expr.Int.is_in","publicId":"Libtmux.Expr.Int.is_in","qualifiedName":"Libtmux.Expr.Int.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_in : ('a, int) Field.t -> int list -> 'a t","source":{"file":"lib/libtmux.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val is_in : ('a, int) Field.t -> int list -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int list"}],"returns":"'a t"}],"slug":"libtmux-expr-int-is_in"},{"id":"Libtmux.Expr.Int.le","publicId":"Libtmux.Expr.Int.le","qualifiedName":"Libtmux.Expr.Int.le","name":"le","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":572,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val le : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":572,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val le : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-le"},{"id":"Libtmux.Expr.Int.lt","publicId":"Libtmux.Expr.Int.lt","qualifiedName":"Libtmux.Expr.Int.lt","name":"lt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":571,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val lt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":571,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val lt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-lt"},{"id":"Libtmux.Expr.Rel","publicId":"Libtmux.Expr.Rel","qualifiedName":"Libtmux.Expr.Rel","name":"Rel","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":589,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":589,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-rel"},{"id":"Libtmux.Expr.Rel.all","publicId":"Libtmux.Expr.Rel.all","qualifiedName":"Libtmux.Expr.Rel.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":591,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":591,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-all"},{"id":"Libtmux.Expr.Rel.any","publicId":"Libtmux.Expr.Rel.any","qualifiedName":"Libtmux.Expr.Rel.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-any"},{"id":"Libtmux.Expr.Rel.exists","publicId":"Libtmux.Expr.Rel.exists","qualifiedName":"Libtmux.Expr.Rel.exists","name":"exists","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":598,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":598,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-exists"},{"id":"Libtmux.Expr.Rel.is","publicId":"Libtmux.Expr.Rel.is","qualifiedName":"Libtmux.Expr.Rel.is","name":"is","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.One.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is"},{"id":"Libtmux.Expr.Rel.is_absent","publicId":"Libtmux.Expr.Rel.is_absent","qualifiedName":"Libtmux.Expr.Rel.is_absent","name":"is_absent","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":599,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","source":{"file":"lib/libtmux.mli","line":599,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is_absent"},{"id":"Libtmux.Expr.Rel.none","publicId":"Libtmux.Expr.Rel.none","qualifiedName":"Libtmux.Expr.Rel.none","name":"none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":593,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. "],"declarations":[{"kind":"function","text":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":593,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Rel","doc":{"summary":"On empty relations, `any` is false; `all` and `none` are true. One child must satisfy the complete nested expression."},"signatures":[{"raw":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-none"},{"id":"Libtmux.Expr.Text","publicId":"Libtmux.Expr.Text","qualifiedName":"Libtmux.Expr.Text","name":"Text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":578,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end","source":{"file":"lib/libtmux.mli","line":578,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-text"},{"id":"Libtmux.Expr.Text.contains","publicId":"Libtmux.Expr.Text.contains","qualifiedName":"Libtmux.Expr.Text.contains","name":"contains","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":582,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val contains : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":582,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val contains : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-contains"},{"id":"Libtmux.Expr.Text.ends_with","publicId":"Libtmux.Expr.Text.ends_with","qualifiedName":"Libtmux.Expr.Text.ends_with","name":"ends_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ends_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val ends_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-ends_with"},{"id":"Libtmux.Expr.Text.equal","publicId":"Libtmux.Expr.Text.equal","qualifiedName":"Libtmux.Expr.Text.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":579,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":579,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val equal : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-equal"},{"id":"Libtmux.Expr.Text.is_in","publicId":"Libtmux.Expr.Text.is_in","qualifiedName":"Libtmux.Expr.Text.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":584,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. "],"declarations":[{"kind":"function","text":"val is_in : ('a, string) Field.t -> string list -> 'a t","source":{"file":"lib/libtmux.mli","line":584,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Text","doc":{"summary":"Comparisons use exact bytes, without case folding or normalization. The empty substring matches every string."},"signatures":[{"raw":"val is_in : ('a, string) Field.t -> string list -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string list"}],"returns":"'a t"}],"slug":"libtmux-expr-text-is_in"},{"id":"Libtmux.Expr.Text.starts_with","publicId":"Libtmux.Expr.Text.starts_with","qualifiedName":"Libtmux.Expr.Text.starts_with","name":"starts_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":580,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val starts_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":580,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val starts_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-starts_with"},{"id":"Libtmux.Expr.all","publicId":"Libtmux.Expr.all","qualifiedName":"Libtmux.Expr.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":555,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Boolean conjunction; the empty conjunction is true. "],"declarations":[{"kind":"function","text":"val all : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":555,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean conjunction; the empty conjunction is true."},"signatures":[{"raw":"val all : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-all"},{"id":"Libtmux.Expr.any","publicId":"Libtmux.Expr.any","qualifiedName":"Libtmux.Expr.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Boolean disjunction; the empty disjunction is false. "],"declarations":[{"kind":"function","text":"val any : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean disjunction; the empty disjunction is false."},"signatures":[{"raw":"val any : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-any"},{"id":"Libtmux.Expr.comparison","publicId":"Libtmux.Expr.comparison","qualifiedName":"Libtmux.Expr.comparison","name":"comparison","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":609,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":609,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type _ comparison =\n Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","params":[]}],"slug":"libtmux-expr-comparison"},{"id":"Libtmux.Expr.comparison.Bool_equal","publicId":"Libtmux.Expr.comparison.Bool_equal","name":"Bool_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":610,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool_equal : bool -> bool comparison","source":{"file":"lib/libtmux.mli","line":610,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Bool_equal","slug":"libtmux-expr-comparison-bool_equal"},{"id":"Libtmux.Expr.comparison.Int_equal","publicId":"Libtmux.Expr.comparison.Int_equal","name":"Int_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":611,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_equal : int -> int comparison","source":{"file":"lib/libtmux.mli","line":611,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_equal","slug":"libtmux-expr-comparison-int_equal"},{"id":"Libtmux.Expr.comparison.Int_ge","publicId":"Libtmux.Expr.comparison.Int_ge","name":"Int_ge","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":615,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_ge : int -> int comparison","source":{"file":"lib/libtmux.mli","line":615,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_ge","slug":"libtmux-expr-comparison-int_ge"},{"id":"Libtmux.Expr.comparison.Int_gt","publicId":"Libtmux.Expr.comparison.Int_gt","name":"Int_gt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":614,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_gt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":614,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_gt","slug":"libtmux-expr-comparison-int_gt"},{"id":"Libtmux.Expr.comparison.Int_in","publicId":"Libtmux.Expr.comparison.Int_in","name":"Int_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":616,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_in : int list -> int comparison","source":{"file":"lib/libtmux.mli","line":616,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_in","slug":"libtmux-expr-comparison-int_in"},{"id":"Libtmux.Expr.comparison.Int_le","publicId":"Libtmux.Expr.comparison.Int_le","name":"Int_le","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":613,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_le : int -> int comparison","source":{"file":"lib/libtmux.mli","line":613,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_le","slug":"libtmux-expr-comparison-int_le"},{"id":"Libtmux.Expr.comparison.Int_lt","publicId":"Libtmux.Expr.comparison.Int_lt","name":"Int_lt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_lt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_lt","slug":"libtmux-expr-comparison-int_lt"},{"id":"Libtmux.Expr.comparison.Text_contains","publicId":"Libtmux.Expr.comparison.Text_contains","name":"Text_contains","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_contains : string -> string comparison","source":{"file":"lib/libtmux.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_contains","slug":"libtmux-expr-comparison-text_contains"},{"id":"Libtmux.Expr.comparison.Text_ends_with","publicId":"Libtmux.Expr.comparison.Text_ends_with","name":"Text_ends_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":619,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_ends_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":619,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_ends_with","slug":"libtmux-expr-comparison-text_ends_with"},{"id":"Libtmux.Expr.comparison.Text_equal","publicId":"Libtmux.Expr.comparison.Text_equal","name":"Text_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":617,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_equal : string -> string comparison","source":{"file":"lib/libtmux.mli","line":617,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_equal","slug":"libtmux-expr-comparison-text_equal"},{"id":"Libtmux.Expr.comparison.Text_in","publicId":"Libtmux.Expr.comparison.Text_in","name":"Text_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_in","slug":"libtmux-expr-comparison-text_in"},{"id":"Libtmux.Expr.comparison.Text_starts_with","publicId":"Libtmux.Expr.comparison.Text_starts_with","name":"Text_starts_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":618,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_starts_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":618,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_starts_with","slug":"libtmux-expr-comparison-text_starts_with"},{"id":"Libtmux.Expr.compile","publicId":"Libtmux.Expr.compile","qualifiedName":"Libtmux.Expr.compile","name":"compile","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n "],"declarations":[{"kind":"function","text":"val compile : 'a t -> 'a -> bool","source":{"file":"lib/libtmux.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","doc":{"summary":"Prepare a reusable predicate. Compilation and evaluation perform no I/O."},"signatures":[{"raw":"val compile : 'a t -> 'a -> bool","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"'a"}],"returns":"bool"}],"slug":"libtmux-expr-compile"},{"id":"Libtmux.Expr.describe","publicId":"Libtmux.Expr.describe","qualifiedName":"Libtmux.Expr.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":607,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : 'a t -> string","source":{"file":"lib/libtmux.mli","line":607,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val describe : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-expr-describe"},{"id":"Libtmux.Expr.not_","publicId":"Libtmux.Expr.not_","qualifiedName":"Libtmux.Expr.not_","name":"not_","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":561,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val not_ : 'a t -> 'a t","source":{"file":"lib/libtmux.mli","line":561,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val not_ : 'a t -> 'a t","params":[{"name":"arg1","type":"'a t"}],"returns":"'a t"}],"slug":"libtmux-expr-not_"},{"id":"Libtmux.Expr.pp","publicId":"Libtmux.Expr.pp","qualifiedName":"Libtmux.Expr.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":606,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> 'a t -> unit","source":{"file":"lib/libtmux.mli","line":606,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val pp : Format.formatter -> 'a t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"'a t"}],"returns":"unit"}],"slug":"libtmux-expr-pp"},{"id":"Libtmux.Expr.t","publicId":"Libtmux.Expr.t","qualifiedName":"Libtmux.Expr.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":553,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'entity t","source":{"file":"lib/libtmux.mli","line":553,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'entity t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-expr-t"},{"id":"Libtmux.Expr.view","publicId":"Libtmux.Expr.view","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","doc":{"summary":"Typed read-only inspection for codecs and planners. A view cannot add custom accessors or closures to an expression."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-expr-view"},{"id":"Libtmux.Expr.view:type","publicId":"Libtmux.Expr.view:type","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":623,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":623,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'a view =\n Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","params":[]}],"slug":"libtmux-expr-view-type"},{"id":"Libtmux.Expr.view:type.Absent","publicId":"Libtmux.Expr.view:type.Absent","name":"Absent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Absent","slug":"libtmux-expr-view-type-absent"},{"id":"Libtmux.Expr.view:type.All","publicId":"Libtmux.Expr.view:type.All","name":"All","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":625,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| All of 'a t list","source":{"file":"lib/libtmux.mli","line":625,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.All","slug":"libtmux-expr-view-type-all"},{"id":"Libtmux.Expr.view:type.Any","publicId":"Libtmux.Expr.view:type.Any","name":"Any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":626,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Any of 'a t list","source":{"file":"lib/libtmux.mli","line":626,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Any","slug":"libtmux-expr-view-type-any"},{"id":"Libtmux.Expr.view:type.Compare","publicId":"Libtmux.Expr.view:type.Compare","name":"Compare","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Compare : ('a, 'v) Field.t * 'v comparison -> 'a view","source":{"file":"lib/libtmux.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Compare","slug":"libtmux-expr-view-type-compare"},{"id":"Libtmux.Expr.view:type.Not","publicId":"Libtmux.Expr.view:type.Not","name":"Not","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":627,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not of 'a t","source":{"file":"lib/libtmux.mli","line":627,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Not","slug":"libtmux-expr-view-type-not"},{"id":"Libtmux.Expr.view:type.Related_all","publicId":"Libtmux.Expr.view:type.Related_all","name":"Related_all","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_all","slug":"libtmux-expr-view-type-related_all"},{"id":"Libtmux.Expr.view:type.Related_any","publicId":"Libtmux.Expr.view:type.Related_any","name":"Related_any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":628,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":628,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_any","slug":"libtmux-expr-view-type-related_any"},{"id":"Libtmux.Expr.view:type.Related_none","publicId":"Libtmux.Expr.view:type.Related_none","name":"Related_none","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":630,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":630,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_none","slug":"libtmux-expr-view-type-related_none"},{"id":"Libtmux.Expr.view:type.Related_one","publicId":"Libtmux.Expr.view:type.Related_one","name":"Related_one","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":631,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":631,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_one","slug":"libtmux-expr-view-type-related_one"},{"id":"Libtmux.Expr.view:type.Related_optional","publicId":"Libtmux.Expr.view:type.Related_optional","name":"Related_optional","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":632,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":632,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_optional","slug":"libtmux-expr-view-type-related_optional"},{"id":"Libtmux.Field","publicId":"Libtmux.Field","qualifiedName":"Libtmux.Field","name":"Field","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Sealed scalar descriptors carrying entity and value types. Descriptors read\n captured data and provide trusted identities for {!Expr} values. Use\n {!Relation} for graph edges. "],"declarations":[{"kind":"module","text":"module Field : sig\n type _ kind = Bool : bool kind | Int : int kind | Text : string kind\n type ('entity, 'value) t\n type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed\n\n val name : ('entity, 'value) t -> string\n val kind : ('entity, 'value) t -> 'value kind\n\n val get : ('entity, 'value) t -> 'entity -> 'value\n (** Canonical descriptors are sealed. Accessing a field reads captured data.\n *)\nend","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Sealed scalar descriptors carrying entity and value types. Descriptors read captured data and provide trusted identities for {!Expr} values. Use {!Relation} for graph edges."},"slug":"libtmux-field"},{"id":"Libtmux.Field.get","publicId":"Libtmux.Field.get","qualifiedName":"Libtmux.Field.get","name":"get","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":142,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Canonical descriptors are sealed. Accessing a field reads captured data.\n "],"declarations":[{"kind":"function","text":"val get : ('entity, 'value) t -> 'entity -> 'value","source":{"file":"lib/libtmux.mli","line":142,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field","doc":{"summary":"Canonical descriptors are sealed. Accessing a field reads captured data."},"signatures":[{"raw":"val get : ('entity, 'value) t -> 'entity -> 'value","params":[{"name":"arg1","type":"('entity, 'value) t"},{"name":"arg2","type":"'entity"}],"returns":"'value"}],"slug":"libtmux-field-get"},{"id":"Libtmux.Field.kind","publicId":"Libtmux.Field.kind","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":140,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : ('entity, 'value) t -> 'value kind","source":{"file":"lib/libtmux.mli","line":140,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val kind : ('entity, 'value) t -> 'value kind","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"'value kind"}],"slug":"libtmux-field-kind"},{"id":"Libtmux.Field.kind:type","publicId":"Libtmux.Field.kind:type","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","params":[]}],"slug":"libtmux-field-kind-type"},{"id":"Libtmux.Field.kind:type.Bool","publicId":"Libtmux.Field.kind:type.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool : bool kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Bool","slug":"libtmux-field-kind-type-bool"},{"id":"Libtmux.Field.kind:type.Int","publicId":"Libtmux.Field.kind:type.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int : int kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Int","slug":"libtmux-field-kind-type-int"},{"id":"Libtmux.Field.kind:type.Text","publicId":"Libtmux.Field.kind:type.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text : string kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Text","slug":"libtmux-field-kind-type-text"},{"id":"Libtmux.Field.name","publicId":"Libtmux.Field.name","qualifiedName":"Libtmux.Field.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":139,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('entity, 'value) t -> string","source":{"file":"lib/libtmux.mli","line":139,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val name : ('entity, 'value) t -> string","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"string"}],"slug":"libtmux-field-name"},{"id":"Libtmux.Field.packed","publicId":"Libtmux.Field.packed","qualifiedName":"Libtmux.Field.packed","name":"packed","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","params":[]}],"slug":"libtmux-field-packed"},{"id":"Libtmux.Field.packed.Pack","publicId":"Libtmux.Field.packed.Pack","name":"Pack","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field.packed","variant":"tuple","qualifiedName":"Libtmux.Field.Pack","slug":"libtmux-field-packed-pack"},{"id":"Libtmux.Field.t","publicId":"Libtmux.Field.t","qualifiedName":"Libtmux.Field.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('entity, 'value) t","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type ('entity, 'value) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-field-t"},{"id":"Libtmux.Formats","publicId":"Libtmux.Formats","qualifiedName":"Libtmux.Formats","name":"Formats","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":473,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Formats : sig\n module Kind : sig\n type t = Text | Timestamp\n end\n\n module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }\n (** Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. *)\n\n type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t\n\n type scalar = Bool of bool | Int of int | Text of string\n\n type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported\n (** [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor option, Error.t) result\n\n val lookup :\n version:string -> observation -> string -> (state, Error.t) result\n (** No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. *)\nend","source":{"file":"lib/libtmux.mli","line":473,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-formats"},{"id":"Libtmux.Formats.Context","publicId":"Libtmux.Formats.Context","qualifiedName":"Libtmux.Formats.Context","name":"Context","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":478,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end","source":{"file":"lib/libtmux.mli","line":478,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-context"},{"id":"Libtmux.Formats.Context.t","publicId":"Libtmux.Formats.Context.t","qualifiedName":"Libtmux.Formats.Context.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":479,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","source":{"file":"lib/libtmux.mli","line":479,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context","signatures":[{"raw":"type t =\n Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","params":[]}],"slug":"libtmux-formats-context-t"},{"id":"Libtmux.Formats.Context.t.Buffer","publicId":"Libtmux.Formats.Context.t.Buffer","name":"Buffer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":487,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Buffer","source":{"file":"lib/libtmux.mli","line":487,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Buffer","slug":"libtmux-formats-context-t-buffer"},{"id":"Libtmux.Formats.Context.t.Client","publicId":"Libtmux.Formats.Context.t.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":486,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client","source":{"file":"lib/libtmux.mli","line":486,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Client","slug":"libtmux-formats-context-t-client"},{"id":"Libtmux.Formats.Context.t.Command","publicId":"Libtmux.Formats.Context.t.Command","name":"Command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":489,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command","source":{"file":"lib/libtmux.mli","line":489,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Command","slug":"libtmux-formats-context-t-command"},{"id":"Libtmux.Formats.Context.t.Connection","publicId":"Libtmux.Formats.Context.t.Connection","name":"Connection","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Connection","source":{"file":"lib/libtmux.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Connection","slug":"libtmux-formats-context-t-connection"},{"id":"Libtmux.Formats.Context.t.Mouse","publicId":"Libtmux.Formats.Context.t.Mouse","name":"Mouse","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":488,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mouse","source":{"file":"lib/libtmux.mli","line":488,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Mouse","slug":"libtmux-formats-context-t-mouse"},{"id":"Libtmux.Formats.Context.t.Pane","publicId":"Libtmux.Formats.Context.t.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane","source":{"file":"lib/libtmux.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Pane","slug":"libtmux-formats-context-t-pane"},{"id":"Libtmux.Formats.Context.t.Server","publicId":"Libtmux.Formats.Context.t.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":480,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":480,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Server","slug":"libtmux-formats-context-t-server"},{"id":"Libtmux.Formats.Context.t.Session","publicId":"Libtmux.Formats.Context.t.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":482,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session","source":{"file":"lib/libtmux.mli","line":482,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Session","slug":"libtmux-formats-context-t-session"},{"id":"Libtmux.Formats.Context.t.Window","publicId":"Libtmux.Formats.Context.t.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":483,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window","source":{"file":"lib/libtmux.mli","line":483,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window","slug":"libtmux-formats-context-t-window"},{"id":"Libtmux.Formats.Context.t.Window_link","publicId":"Libtmux.Formats.Context.t.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link","source":{"file":"lib/libtmux.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window_link","slug":"libtmux-formats-context-t-window_link"},{"id":"Libtmux.Formats.Kind","publicId":"Libtmux.Formats.Kind","qualifiedName":"Libtmux.Formats.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":474,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Timestamp\n end","source":{"file":"lib/libtmux.mli","line":474,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-kind"},{"id":"Libtmux.Formats.Kind.t","publicId":"Libtmux.Formats.Kind.t","qualifiedName":"Libtmux.Formats.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Timestamp","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Kind","signatures":[{"raw":"type t = Text | Timestamp","params":[]}],"slug":"libtmux-formats-kind-t"},{"id":"Libtmux.Formats.Kind.t.Text","publicId":"Libtmux.Formats.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Text","slug":"libtmux-formats-kind-t-text"},{"id":"Libtmux.Formats.Kind.t.Timestamp","publicId":"Libtmux.Formats.Kind.t.Timestamp","name":"Timestamp","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Timestamp","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Timestamp","slug":"libtmux-formats-kind-t-timestamp"},{"id":"Libtmux.Formats.catalog","publicId":"Libtmux.Formats.catalog","qualifiedName":"Libtmux.Formats.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":524,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":524,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-formats-catalog"},{"id":"Libtmux.Formats.describe","publicId":"Libtmux.Formats.describe","qualifiedName":"Libtmux.Formats.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor option, Error.t) result","source":{"file":"lib/libtmux.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val describe :\n version:string -> string -> (descriptor option, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor option, Error.t) result"}],"slug":"libtmux-formats-describe"},{"id":"Libtmux.Formats.descriptor","publicId":"Libtmux.Formats.descriptor","qualifiedName":"Libtmux.Formats.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":492,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":492,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","doc":{"summary":"Metadata generated from pinned tmux format callbacks. `contexts` lists direct context dependencies, not a promise that a value exists. Caller variables from hooks and menus are outside this built-in catalog."},"signatures":[{"raw":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n}","params":[]}],"slug":"libtmux-formats-descriptor"},{"id":"Libtmux.Formats.descriptor.contexts","publicId":"Libtmux.Formats.descriptor.contexts","name":"contexts","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"contexts : Context.t list;","source":{"file":"lib/libtmux.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.descriptor","type":"Context.t list","qualifiedName":"Libtmux.Formats.contexts","slug":"libtmux-formats-descriptor-contexts"},{"id":"Libtmux.Formats.descriptor.kind","publicId":"Libtmux.Formats.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":494,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":494,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Formats.kind","slug":"libtmux-formats-descriptor-kind"},{"id":"Libtmux.Formats.descriptor.name","publicId":"Libtmux.Formats.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":493,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":493,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.descriptor","type":"string","qualifiedName":"Libtmux.Formats.name","slug":"libtmux-formats-descriptor-name"},{"id":"Libtmux.Formats.descriptor.versions","publicId":"Libtmux.Formats.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":496,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":496,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.descriptor","type":"string list","qualifiedName":"Libtmux.Formats.versions","slug":"libtmux-formats-descriptor-versions"},{"id":"Libtmux.Formats.lookup","publicId":"Libtmux.Formats.lookup","qualifiedName":"Libtmux.Formats.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":527,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. "],"declarations":[{"kind":"function","text":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","source":{"file":"lib/libtmux.mli","line":527,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","doc":{"summary":"No I/O. Supply the version recorded by the acquiring client's `version` accessor. Unsupported catalog versions return an error. Native typed accessors remain the primary API; lookup does not acquire extra fields."},"signatures":[{"raw":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"observation"},{"name":"arg2","type":"string"}],"returns":"(state, Error.t) result"}],"slug":"libtmux-formats-lookup"},{"id":"Libtmux.Formats.observation","publicId":"Libtmux.Formats.observation","qualifiedName":"Libtmux.Formats.observation","name":"observation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type observation =\n Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","params":[]}],"slug":"libtmux-formats-observation"},{"id":"Libtmux.Formats.observation.Client","publicId":"Libtmux.Formats.observation.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":508,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":508,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Client","slug":"libtmux-formats-observation-client"},{"id":"Libtmux.Formats.observation.Pane","publicId":"Libtmux.Formats.observation.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":507,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.t","source":{"file":"lib/libtmux.mli","line":507,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Pane","slug":"libtmux-formats-observation-pane"},{"id":"Libtmux.Formats.observation.Session","publicId":"Libtmux.Formats.observation.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":504,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.t","source":{"file":"lib/libtmux.mli","line":504,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Session","slug":"libtmux-formats-observation-session"},{"id":"Libtmux.Formats.observation.Snapshot","publicId":"Libtmux.Formats.observation.Snapshot","name":"Snapshot","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Snapshot of Snapshot.t","source":{"file":"lib/libtmux.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Snapshot","slug":"libtmux-formats-observation-snapshot"},{"id":"Libtmux.Formats.observation.Window","publicId":"Libtmux.Formats.observation.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.t","source":{"file":"lib/libtmux.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window","slug":"libtmux-formats-observation-window"},{"id":"Libtmux.Formats.observation.Window_link","publicId":"Libtmux.Formats.observation.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":506,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link of Window_link.t","source":{"file":"lib/libtmux.mli","line":506,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window_link","slug":"libtmux-formats-observation-window_link"},{"id":"Libtmux.Formats.scalar","publicId":"Libtmux.Formats.scalar","qualifiedName":"Libtmux.Formats.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar = Bool of bool | Int of int | Text of string","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type scalar = Bool of bool | Int of int | Text of string","params":[]}],"slug":"libtmux-formats-scalar"},{"id":"Libtmux.Formats.scalar.Bool","publicId":"Libtmux.Formats.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool of bool","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Bool","slug":"libtmux-formats-scalar-bool"},{"id":"Libtmux.Formats.scalar.Int","publicId":"Libtmux.Formats.scalar.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int of int","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Int","slug":"libtmux-formats-scalar-int"},{"id":"Libtmux.Formats.scalar.Text","publicId":"Libtmux.Formats.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Text","slug":"libtmux-formats-scalar-text"},{"id":"Libtmux.Formats.state","publicId":"Libtmux.Formats.state","qualifiedName":"Libtmux.Formats.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported","source":{"file":"lib/libtmux.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type state = Value of scalar | Missing | Unacquired | Unsupported","params":[]}],"slug":"libtmux-formats-state"},{"id":"Libtmux.Formats.state.Missing","publicId":"Libtmux.Formats.state.Missing","name":"Missing","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":514,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing","source":{"file":"lib/libtmux.mli","line":514,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Missing","slug":"libtmux-formats-state-missing"},{"id":"Libtmux.Formats.state.Unacquired","publicId":"Libtmux.Formats.state.Unacquired","name":"Unacquired","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":515,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unacquired","source":{"file":"lib/libtmux.mli","line":515,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Unacquired","slug":"libtmux-formats-state-unacquired"},{"id":"Libtmux.Formats.state.Unsupported","publicId":"Libtmux.Formats.state.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":516,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. "],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"lib/libtmux.mli","line":516,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.state","doc":{"summary":"`Missing` is an absence explicitly recorded in the observation, such as a client without terminal height. `Unacquired` means no captured value for this observation, including ambiguous session context for a pane. `Unsupported` means the name is outside the selected release's catalog. `Value (Text \"\")` is a captured empty string, never inferred absence."},"variant":"unit","qualifiedName":"Libtmux.Formats.Unsupported","slug":"libtmux-formats-state-unsupported"},{"id":"Libtmux.Formats.state.Value","publicId":"Libtmux.Formats.state.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":513,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Value of scalar","source":{"file":"lib/libtmux.mli","line":513,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.state","variant":"tuple","qualifiedName":"Libtmux.Formats.Value","slug":"libtmux-formats-state-value"},{"id":"Libtmux.Generation","publicId":"Libtmux.Generation","qualifiedName":"Libtmux.Generation","name":"Generation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A random connection-generation identifier. Reconnecting creates a new\n generation even when the socket and server PID are unchanged. "],"declarations":[{"kind":"module","text":"module Generation : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"A random connection-generation identifier. Reconnecting creates a new generation even when the socket and server PID are unchanged."},"slug":"libtmux-generation"},{"id":"Libtmux.Generation.equal","publicId":"Libtmux.Generation.equal","qualifiedName":"Libtmux.Generation.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":87,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":87,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-generation-equal"},{"id":"Libtmux.Generation.of_string","publicId":"Libtmux.Generation.of_string","qualifiedName":"Libtmux.Generation.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Generation","doc":{"summary":"Import a 256-bit connection nonce as 64 lowercase hexadecimal characters. Backends generate a fresh random nonce for each connection."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-generation-of_string"},{"id":"Libtmux.Generation.t","publicId":"Libtmux.Generation.t","qualifiedName":"Libtmux.Generation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-generation-t"},{"id":"Libtmux.Generation.to_string","publicId":"Libtmux.Generation.to_string","qualifiedName":"Libtmux.Generation.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-generation-to_string"},{"id":"Libtmux.Geometry","publicId":"Libtmux.Geometry","qualifiedName":"Libtmux.Geometry","name":"Geometry","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":740,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Geometry : sig\n type direction = Left | Right | Above | Below\n type size = Cells of int | Percent of int\nend","source":{"file":"lib/libtmux.mli","line":740,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-geometry"},{"id":"Libtmux.Geometry.direction","publicId":"Libtmux.Geometry.direction","qualifiedName":"Libtmux.Geometry.direction","name":"direction","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type direction = Left | Right | Above | Below","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type direction = Left | Right | Above | Below","params":[]}],"slug":"libtmux-geometry-direction"},{"id":"Libtmux.Geometry.direction.Above","publicId":"Libtmux.Geometry.direction.Above","name":"Above","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Above","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Above","slug":"libtmux-geometry-direction-above"},{"id":"Libtmux.Geometry.direction.Below","publicId":"Libtmux.Geometry.direction.Below","name":"Below","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Below","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Below","slug":"libtmux-geometry-direction-below"},{"id":"Libtmux.Geometry.direction.Left","publicId":"Libtmux.Geometry.direction.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Left","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Left","slug":"libtmux-geometry-direction-left"},{"id":"Libtmux.Geometry.direction.Right","publicId":"Libtmux.Geometry.direction.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Right","slug":"libtmux-geometry-direction-right"},{"id":"Libtmux.Geometry.size","publicId":"Libtmux.Geometry.size","qualifiedName":"Libtmux.Geometry.size","name":"size","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type size = Cells of int | Percent of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type size = Cells of int | Percent of int","params":[]}],"slug":"libtmux-geometry-size"},{"id":"Libtmux.Geometry.size.Cells","publicId":"Libtmux.Geometry.size.Cells","name":"Cells","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Cells of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Cells","slug":"libtmux-geometry-size-cells"},{"id":"Libtmux.Geometry.size.Percent","publicId":"Libtmux.Geometry.size.Percent","name":"Percent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Percent of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Percent","slug":"libtmux-geometry-size-percent"},{"id":"Libtmux.Hook","publicId":"Libtmux.Hook","qualifiedName":"Libtmux.Hook","name":"Hook","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Hook : sig\n type command = { name : string; arguments : string list }\n (** A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. *)\nend","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-hook"},{"id":"Libtmux.Hook.command","publicId":"Libtmux.Hook.command","qualifiedName":"Libtmux.Hook.command","name":"command","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. "],"declarations":[{"kind":"struct","text":"type command = { name : string; arguments : string list }","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Hook","doc":{"summary":"A tmux command and its distinct arguments. Setting a hook encodes these as command data; it does not concatenate arguments into shell code. Argument-specific tmux behavior, including format expansion, still applies when the hook runs."},"signatures":[{"raw":"type command = { name : string; arguments : string list; }","params":[]}],"slug":"libtmux-hook-command"},{"id":"Libtmux.Hook.command.arguments","publicId":"Libtmux.Hook.command.arguments","name":"arguments","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"arguments : string list","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Hook.command","type":"string list","qualifiedName":"Libtmux.Hook.arguments","slug":"libtmux-hook-command-arguments"},{"id":"Libtmux.Hook.command.name","publicId":"Libtmux.Hook.command.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Hook.command","type":"string","qualifiedName":"Libtmux.Hook.name","slug":"libtmux-hook-command-name"},{"id":"Libtmux.ID","publicId":"Libtmux.ID","qualifiedName":"Libtmux.ID","name":"ID","kind":"interface","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"interface","text":"module type ID = sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Accept a canonical prefixed decimal tmux ID in the uint32 range. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\n val compare : t -> t -> int\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-id"},{"id":"Libtmux.ID.compare","publicId":"Libtmux.ID.compare","qualifiedName":"Libtmux.ID.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-id-compare"},{"id":"Libtmux.ID.equal","publicId":"Libtmux.ID.equal","qualifiedName":"Libtmux.ID.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-id-equal"},{"id":"Libtmux.ID.of_string","publicId":"Libtmux.ID.of_string","qualifiedName":"Libtmux.ID.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.ID","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-id-of_string"},{"id":"Libtmux.ID.pp","publicId":"Libtmux.ID.pp","qualifiedName":"Libtmux.ID.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-id-pp"},{"id":"Libtmux.ID.t","publicId":"Libtmux.ID.t","qualifiedName":"Libtmux.ID.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.ID","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-id-t"},{"id":"Libtmux.ID.to_string","publicId":"Libtmux.ID.to_string","qualifiedName":"Libtmux.ID.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-id-to_string"},{"id":"Libtmux.Key","publicId":"Libtmux.Key","qualifiedName":"Libtmux.Key","name":"Key","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":702,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Key : sig\n type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char\nend","source":{"file":"lib/libtmux.mli","line":702,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-key"},{"id":"Libtmux.Key.t","publicId":"Libtmux.Key.t","qualifiedName":"Libtmux.Key.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":703,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","source":{"file":"lib/libtmux.mli","line":703,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key","signatures":[{"raw":"type t =\n Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","params":[]}],"slug":"libtmux-key-t"},{"id":"Libtmux.Key.t.Backspace","publicId":"Libtmux.Key.t.Backspace","name":"Backspace","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":707,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Backspace","source":{"file":"lib/libtmux.mli","line":707,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Backspace","slug":"libtmux-key-t-backspace"},{"id":"Libtmux.Key.t.Control","publicId":"Libtmux.Key.t.Control","name":"Control","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Control of char","source":{"file":"lib/libtmux.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"tuple","qualifiedName":"Libtmux.Key.Control","slug":"libtmux-key-t-control"},{"id":"Libtmux.Key.t.Down","publicId":"Libtmux.Key.t.Down","name":"Down","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":709,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Down","source":{"file":"lib/libtmux.mli","line":709,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Down","slug":"libtmux-key-t-down"},{"id":"Libtmux.Key.t.Enter","publicId":"Libtmux.Key.t.Enter","name":"Enter","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":704,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Enter","source":{"file":"lib/libtmux.mli","line":704,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Enter","slug":"libtmux-key-t-enter"},{"id":"Libtmux.Key.t.Escape","publicId":"Libtmux.Key.t.Escape","name":"Escape","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":706,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Escape","source":{"file":"lib/libtmux.mli","line":706,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Escape","slug":"libtmux-key-t-escape"},{"id":"Libtmux.Key.t.Left","publicId":"Libtmux.Key.t.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":710,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Left","source":{"file":"lib/libtmux.mli","line":710,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Left","slug":"libtmux-key-t-left"},{"id":"Libtmux.Key.t.Right","publicId":"Libtmux.Key.t.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":711,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":711,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Right","slug":"libtmux-key-t-right"},{"id":"Libtmux.Key.t.Tab","publicId":"Libtmux.Key.t.Tab","name":"Tab","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":705,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tab","source":{"file":"lib/libtmux.mli","line":705,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Tab","slug":"libtmux-key-t-tab"},{"id":"Libtmux.Key.t.Up","publicId":"Libtmux.Key.t.Up","name":"Up","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":708,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Up","source":{"file":"lib/libtmux.mli","line":708,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Up","slug":"libtmux-key-t-up"},{"id":"Libtmux.Layout","publicId":"Libtmux.Layout","qualifiedName":"Libtmux.Layout","name":"Layout","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":745,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Layout : sig\n type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string\nend","source":{"file":"lib/libtmux.mli","line":745,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-layout"},{"id":"Libtmux.Layout.t","publicId":"Libtmux.Layout.t","qualifiedName":"Libtmux.Layout.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":746,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","source":{"file":"lib/libtmux.mli","line":746,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout","signatures":[{"raw":"type t =\n Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","params":[]}],"slug":"libtmux-layout-t"},{"id":"Libtmux.Layout.t.Custom","publicId":"Libtmux.Layout.t.Custom","name":"Custom","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":752,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Custom of string","source":{"file":"lib/libtmux.mli","line":752,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout.t","variant":"tuple","qualifiedName":"Libtmux.Layout.Custom","slug":"libtmux-layout-t-custom"},{"id":"Libtmux.Layout.t.Even_horizontal","publicId":"Libtmux.Layout.t.Even_horizontal","name":"Even_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":747,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_horizontal","source":{"file":"lib/libtmux.mli","line":747,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_horizontal","slug":"libtmux-layout-t-even_horizontal"},{"id":"Libtmux.Layout.t.Even_vertical","publicId":"Libtmux.Layout.t.Even_vertical","name":"Even_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":748,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_vertical","source":{"file":"lib/libtmux.mli","line":748,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_vertical","slug":"libtmux-layout-t-even_vertical"},{"id":"Libtmux.Layout.t.Main_horizontal","publicId":"Libtmux.Layout.t.Main_horizontal","name":"Main_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":749,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_horizontal","source":{"file":"lib/libtmux.mli","line":749,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_horizontal","slug":"libtmux-layout-t-main_horizontal"},{"id":"Libtmux.Layout.t.Main_vertical","publicId":"Libtmux.Layout.t.Main_vertical","name":"Main_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":750,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_vertical","source":{"file":"lib/libtmux.mli","line":750,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_vertical","slug":"libtmux-layout-t-main_vertical"},{"id":"Libtmux.Layout.t.Tiled","publicId":"Libtmux.Layout.t.Tiled","name":"Tiled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":751,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tiled","source":{"file":"lib/libtmux.mli","line":751,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Tiled","slug":"libtmux-layout-t-tiled"},{"id":"Libtmux.Model","publicId":"Libtmux.Model","qualifiedName":"Libtmux.Model","name":"Model","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":536,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Built-in model witnesses and canonical field lookup for typed codecs.\n Untrusted field names must resolve against the selected model. "],"declarations":[{"kind":"module","text":"module Model : sig\n type 'a t\n\n val session : Session.t t\n val window : Window.t t\n val window_link : Window_link.t t\n val pane : Pane.t t\n val client : Client_observation.t t\n val name : 'a t -> string\n val fields : 'a t -> 'a Field.packed list\n val find_field : 'a t -> string -> 'a Field.packed option\nend","source":{"file":"lib/libtmux.mli","line":536,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Built-in model witnesses and canonical field lookup for typed codecs. Untrusted field names must resolve against the selected model."},"slug":"libtmux-model"},{"id":"Libtmux.Model.client","publicId":"Libtmux.Model.client","qualifiedName":"Libtmux.Model.client","name":"client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":543,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val client : Client_observation.t t","source":{"file":"lib/libtmux.mli","line":543,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val client : Client_observation.t t","params":[],"returns":"Client_observation.t t"}],"slug":"libtmux-model-client"},{"id":"Libtmux.Model.fields","publicId":"Libtmux.Model.fields","qualifiedName":"Libtmux.Model.fields","name":"fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":545,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val fields : 'a t -> 'a Field.packed list","source":{"file":"lib/libtmux.mli","line":545,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val fields : 'a t -> 'a Field.packed list","params":[{"name":"arg1","type":"'a t"}],"returns":"'a Field.packed list"}],"slug":"libtmux-model-fields"},{"id":"Libtmux.Model.find_field","publicId":"Libtmux.Model.find_field","qualifiedName":"Libtmux.Model.find_field","name":"find_field","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_field : 'a t -> string -> 'a Field.packed option","source":{"file":"lib/libtmux.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val find_field : 'a t -> string -> 'a Field.packed option","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"string"}],"returns":"'a Field.packed option"}],"slug":"libtmux-model-find_field"},{"id":"Libtmux.Model.name","publicId":"Libtmux.Model.name","qualifiedName":"Libtmux.Model.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":544,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : 'a t -> string","source":{"file":"lib/libtmux.mli","line":544,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val name : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-model-name"},{"id":"Libtmux.Model.pane","publicId":"Libtmux.Model.pane","qualifiedName":"Libtmux.Model.pane","name":"pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pane : Pane.t t","source":{"file":"lib/libtmux.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val pane : Pane.t t","params":[],"returns":"Pane.t t"}],"slug":"libtmux-model-pane"},{"id":"Libtmux.Model.session","publicId":"Libtmux.Model.session","qualifiedName":"Libtmux.Model.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":539,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : Session.t t","source":{"file":"lib/libtmux.mli","line":539,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val session : Session.t t","params":[],"returns":"Session.t t"}],"slug":"libtmux-model-session"},{"id":"Libtmux.Model.t","publicId":"Libtmux.Model.t","qualifiedName":"Libtmux.Model.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-model-t"},{"id":"Libtmux.Model.window","publicId":"Libtmux.Model.window","qualifiedName":"Libtmux.Model.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":540,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : Window.t t","source":{"file":"lib/libtmux.mli","line":540,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window : Window.t t","params":[],"returns":"Window.t t"}],"slug":"libtmux-model-window"},{"id":"Libtmux.Model.window_link","publicId":"Libtmux.Model.window_link","qualifiedName":"Libtmux.Model.window_link","name":"window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":541,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_link : Window_link.t t","source":{"file":"lib/libtmux.mli","line":541,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window_link : Window_link.t t","params":[],"returns":"Window_link.t t"}],"slug":"libtmux-model-window_link"},{"id":"Libtmux.Operations","publicId":"Libtmux.Operations","qualifiedName":"Libtmux.Operations","name":"Operations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1051,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Construct typed tmux operations for a backend client. Observations are\n immutable, mutations use explicit targets, and no command retries a mutation\n against another connection generation. Construction performs no I/O; the\n descriptions below state what execution does. "],"declarations":[{"kind":"module","text":"module Operations : sig\n val capture : unit -> Snapshot.t Command.t\n (** Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. *)\n\n val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t\n (** Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. *)\n\n val rename_window : Window.target -> name:string -> unit Command.t\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session : Session.target -> name:string -> unit Command.t\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at : Client_name.t -> unit Command.t\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text : Pane.target -> text:string -> unit Command.t\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys : Pane.target -> Key.t list -> unit Command.t\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : string -> unit Command.t\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : string -> unit Command.t\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment : Environment.scope -> string -> unit Command.t\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment : Environment.scope -> string -> unit Command.t\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array : Options.scope -> string -> unit Command.t\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks : Options.scope -> Options.t Command.t\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. *)\n\n val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook : Options.scope -> string -> unit Command.t\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session : Session.target -> unit Command.t\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : Window.target -> unit Command.t\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : Pane.target -> unit Command.t\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at : Session.target -> index:int -> unit Command.t\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : Pane.target -> unit Command.t\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title : Pane.target -> title:string -> unit Command.t\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout : Window.target -> Layout.t -> unit Command.t\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes : Pane.target -> Pane.target -> unit Command.t\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : Pane.target -> unit Command.t\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : Pane.target -> unit Command.t\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\nend","source":{"file":"lib/libtmux.mli","line":1051,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Construct typed tmux operations for a backend client. Observations are immutable, mutations use explicit targets, and no command retries a mutation against another connection generation. Construction performs no I/O; the descriptions below state what execution does."},"slug":"libtmux-operations"},{"id":"Libtmux.Operations.break_pane","publicId":"Libtmux.Operations.break_pane","qualifiedName":"Libtmux.Operations.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1235,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n Pane.target -> session:Session.target -> index:int -> Created.t Command.t","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-break_pane"},{"id":"Libtmux.Operations.capture","publicId":"Libtmux.Operations.capture","qualifiedName":"Libtmux.Operations.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1052,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. "],"declarations":[{"kind":"function","text":"val capture : unit -> Snapshot.t Command.t","source":{"file":"lib/libtmux.mli","line":1052,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture and validate the complete session/window-link/pane graph. The result records an acquisition interval, not an atomic server instant."},"signatures":[{"raw":"val capture : unit -> Snapshot.t Command.t","params":[{"name":"arg1","type":"unit"}],"returns":"Snapshot.t Command.t"}],"slug":"libtmux-operations-capture"},{"id":"Libtmux.Operations.capture_environment","publicId":"Libtmux.Operations.capture_environment","qualifiedName":"Libtmux.Operations.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1110,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","source":{"file":"lib/libtmux.mli","line":1110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"}],"returns":"Environment.t Command.t"}],"slug":"libtmux-operations-capture_environment"},{"id":"Libtmux.Operations.capture_hooks","publicId":"Libtmux.Operations.capture_hooks","qualifiedName":"Libtmux.Operations.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1168,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks : Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks : Options.scope -> Options.t Command.t","params":[{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_hooks"},{"id":"Libtmux.Operations.capture_options","publicId":"Libtmux.Operations.capture_options","qualifiedName":"Libtmux.Operations.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1130,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_options"},{"id":"Libtmux.Operations.capture_text","publicId":"Libtmux.Operations.capture_text","qualifiedName":"Libtmux.Operations.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1056,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t","source":{"file":"lib/libtmux.mli","line":1056,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture inclusive visible rows through an operation-owned temporary file. Require `0 <= start <= end_ < Pane.height pane`; scrollback is excluded. Retained bytes survive client close. The scratch directory must share the daemon filesystem."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n Pane.t -> start:int -> end_:int -> Captured_text.t Command.t","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"Captured_text.t Command.t"}],"slug":"libtmux-operations-capture_text"},{"id":"Libtmux.Operations.clear_history","publicId":"Libtmux.Operations.clear_history","qualifiedName":"Libtmux.Operations.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1333,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_history"},{"id":"Libtmux.Operations.clear_option_array","publicId":"Libtmux.Operations.clear_option_array","qualifiedName":"Libtmux.Operations.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1165,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_option_array"},{"id":"Libtmux.Operations.create_session","publicId":"Libtmux.Operations.create_session","qualifiedName":"Libtmux.Operations.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1207,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int -> ?spawn:Spawn.t -> name:string -> unit -> Created.t Command.t","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_session"},{"id":"Libtmux.Operations.create_window","publicId":"Libtmux.Operations.create_window","qualifiedName":"Libtmux.Operations.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1217,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string -> ?spawn:Spawn.t -> Session.target -> Created.t Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_window"},{"id":"Libtmux.Operations.cycle_layout","publicId":"Libtmux.Operations.cycle_layout","qualifiedName":"Libtmux.Operations.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1303,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1303,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Next | `Previous ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-cycle_layout"},{"id":"Libtmux.Operations.kill_pane","publicId":"Libtmux.Operations.kill_pane","qualifiedName":"Libtmux.Operations.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1253,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_pane"},{"id":"Libtmux.Operations.kill_session","publicId":"Libtmux.Operations.kill_session","qualifiedName":"Libtmux.Operations.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1245,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session : Session.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session : Session.target -> unit Command.t","params":[{"name":"arg1","type":"Session.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_session"},{"id":"Libtmux.Operations.kill_window","publicId":"Libtmux.Operations.kill_window","qualifiedName":"Libtmux.Operations.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1249,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window : Window.target -> unit Command.t","params":[{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_window"},{"id":"Libtmux.Operations.link_window","publicId":"Libtmux.Operations.link_window","qualifiedName":"Libtmux.Operations.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1266,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-link_window"},{"id":"Libtmux.Operations.move_pane","publicId":"Libtmux.Operations.move_pane","qualifiedName":"Libtmux.Operations.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1306,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target -> direction:Geometry.direction -> unit Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"beside","type":"Pane.target","keywordOnly":true},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_pane"},{"id":"Libtmux.Operations.move_window_at","publicId":"Libtmux.Operations.move_window_at","qualifiedName":"Libtmux.Operations.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1271,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1271,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n Session.target ->\n from_index:int -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_window_at"},{"id":"Libtmux.Operations.read_hook","publicId":"Libtmux.Operations.read_hook","qualifiedName":"Libtmux.Operations.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1172,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_hook"},{"id":"Libtmux.Operations.read_option","publicId":"Libtmux.Operations.read_option","qualifiedName":"Libtmux.Operations.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1138,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1138,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_option"},{"id":"Libtmux.Operations.refresh_client_at","publicId":"Libtmux.Operations.refresh_client_at","qualifiedName":"Libtmux.Operations.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1089,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1089,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-refresh_client_at"},{"id":"Libtmux.Operations.remove_environment","publicId":"Libtmux.Operations.remove_environment","qualifiedName":"Libtmux.Operations.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1127,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_environment"},{"id":"Libtmux.Operations.remove_hook","publicId":"Libtmux.Operations.remove_hook","qualifiedName":"Libtmux.Operations.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1195,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_hook"},{"id":"Libtmux.Operations.rename_session","publicId":"Libtmux.Operations.rename_session","qualifiedName":"Libtmux.Operations.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1071,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session : Session.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1071,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session : Session.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_session"},{"id":"Libtmux.Operations.rename_window","publicId":"Libtmux.Operations.rename_window","qualifiedName":"Libtmux.Operations.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1067,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window : Window.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1067,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window : Window.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_window"},{"id":"Libtmux.Operations.request_detach_client_at","publicId":"Libtmux.Operations.request_detach_client_at","qualifiedName":"Libtmux.Operations.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1084,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at : Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1084,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at : Client_name.t -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-request_detach_client_at"},{"id":"Libtmux.Operations.resize_control_client_at","publicId":"Libtmux.Operations.resize_control_client_at","qualifiedName":"Libtmux.Operations.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1092,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1092,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_control_client_at"},{"id":"Libtmux.Operations.resize_pane","publicId":"Libtmux.Operations.resize_pane","qualifiedName":"Libtmux.Operations.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1288,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_pane"},{"id":"Libtmux.Operations.resize_window","publicId":"Libtmux.Operations.resize_window","qualifiedName":"Libtmux.Operations.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1293,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_window"},{"id":"Libtmux.Operations.respawn_pane","publicId":"Libtmux.Operations.respawn_pane","qualifiedName":"Libtmux.Operations.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1327,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Spawn.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-respawn_pane"},{"id":"Libtmux.Operations.rotate_panes","publicId":"Libtmux.Operations.rotate_panes","qualifiedName":"Libtmux.Operations.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1320,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n Window.target -> [ `Backward | `Forward ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Backward | `Forward ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rotate_panes"},{"id":"Libtmux.Operations.run_hook","publicId":"Libtmux.Operations.run_hook","qualifiedName":"Libtmux.Operations.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1199,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-run_hook"},{"id":"Libtmux.Operations.select_layout","publicId":"Libtmux.Operations.select_layout","qualifiedName":"Libtmux.Operations.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1299,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout : Window.target -> Layout.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout : Window.target -> Layout.t -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"Layout.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_layout"},{"id":"Libtmux.Operations.select_pane","publicId":"Libtmux.Operations.select_pane","qualifiedName":"Libtmux.Operations.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1280,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1280,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_pane"},{"id":"Libtmux.Operations.select_window_at","publicId":"Libtmux.Operations.select_window_at","qualifiedName":"Libtmux.Operations.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1257,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at : Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at : Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_window_at"},{"id":"Libtmux.Operations.send_keys","publicId":"Libtmux.Operations.send_keys","qualifiedName":"Libtmux.Operations.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1099,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys : Pane.target -> Key.t list -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1099,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys : Pane.target -> Key.t list -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Key.t list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_keys"},{"id":"Libtmux.Operations.send_text","publicId":"Libtmux.Operations.send_text","qualifiedName":"Libtmux.Operations.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1096,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text : Pane.target -> text:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1096,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text : Pane.target -> text:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_text"},{"id":"Libtmux.Operations.set_environment","publicId":"Libtmux.Operations.set_environment","qualifiedName":"Libtmux.Operations.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1117,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n Environment.scope -> name:string -> string -> unit Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_environment"},{"id":"Libtmux.Operations.set_hook","publicId":"Libtmux.Operations.set_hook","qualifiedName":"Libtmux.Operations.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1180,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1180,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Hook.command list -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Hook.command list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_hook"},{"id":"Libtmux.Operations.set_option","publicId":"Libtmux.Operations.set_option","qualifiedName":"Libtmux.Operations.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1148,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Options.scalar -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Options.scalar"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_option"},{"id":"Libtmux.Operations.set_pane_title","publicId":"Libtmux.Operations.set_pane_title","qualifiedName":"Libtmux.Operations.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1284,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title : Pane.target -> title:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1284,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title : Pane.target -> title:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_pane_title"},{"id":"Libtmux.Operations.signal","publicId":"Libtmux.Operations.signal","qualifiedName":"Libtmux.Operations.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1106,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-signal"},{"id":"Libtmux.Operations.split_pane","publicId":"Libtmux.Operations.split_pane","qualifiedName":"Libtmux.Operations.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1225,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target -> direction:Geometry.direction -> Created.t Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-split_pane"},{"id":"Libtmux.Operations.swap_panes","publicId":"Libtmux.Operations.swap_panes","qualifiedName":"Libtmux.Operations.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1316,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-swap_panes"},{"id":"Libtmux.Operations.switch_client_at","publicId":"Libtmux.Operations.switch_client_at","qualifiedName":"Libtmux.Operations.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1075,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1075,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t -> session:Session.target -> unit Command.t","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"},{"name":"session","type":"Session.target","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-switch_client_at"},{"id":"Libtmux.Operations.unlink_window_at","publicId":"Libtmux.Operations.unlink_window_at","qualifiedName":"Libtmux.Operations.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1261,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unlink_window_at"},{"id":"Libtmux.Operations.unset_environment","publicId":"Libtmux.Operations.unset_environment","qualifiedName":"Libtmux.Operations.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1123,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_environment"},{"id":"Libtmux.Operations.unset_option","publicId":"Libtmux.Operations.unset_option","qualifiedName":"Libtmux.Operations.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1161,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1161,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_option"},{"id":"Libtmux.Operations.wait_for","publicId":"Libtmux.Operations.wait_for","qualifiedName":"Libtmux.Operations.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1103,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-wait_for"},{"id":"Libtmux.Operations.zoom_pane","publicId":"Libtmux.Operations.zoom_pane","qualifiedName":"Libtmux.Operations.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1324,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-zoom_pane"},{"id":"Libtmux.Options","publicId":"Libtmux.Options","qualifiedName":"Libtmux.Options","name":"Options","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Version-aware option descriptors and captured scoped values. Sparse array\n indexes and inherited entries retain their tmux meaning. "],"declarations":[{"kind":"module","text":"module Options : sig\n module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }\n (** Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. *)\n\n type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target\n\n type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string\n\n type value = Scalar of scalar | Array of (int * scalar) Iarray.t\n type entry = { descriptor : descriptor; value : value; inherited : bool }\n\n type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor, Error.t) result\n\n val lookup : t -> string -> entry option\n (** [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. *)\nend","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Version-aware option descriptors and captured scoped values. Sparse array indexes and inherited entries retain their tmux meaning."},"slug":"libtmux-options"},{"id":"Libtmux.Options.Kind","publicId":"Libtmux.Options.Kind","qualifiedName":"Libtmux.Options.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":797,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end","source":{"file":"lib/libtmux.mli","line":797,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","slug":"libtmux-options-kind"},{"id":"Libtmux.Options.Kind.t","publicId":"Libtmux.Options.Kind.t","qualifiedName":"Libtmux.Options.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind","signatures":[{"raw":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","params":[]}],"slug":"libtmux-options-kind-t"},{"id":"Libtmux.Options.Kind.t.Choice","publicId":"Libtmux.Options.Kind.t.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Choice","slug":"libtmux-options-kind-t-choice"},{"id":"Libtmux.Options.Kind.t.Colour","publicId":"Libtmux.Options.Kind.t.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Colour","slug":"libtmux-options-kind-t-colour"},{"id":"Libtmux.Options.Kind.t.Commands","publicId":"Libtmux.Options.Kind.t.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Commands","slug":"libtmux-options-kind-t-commands"},{"id":"Libtmux.Options.Kind.t.Flag","publicId":"Libtmux.Options.Kind.t.Flag","name":"Flag","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Flag","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Flag","slug":"libtmux-options-kind-t-flag"},{"id":"Libtmux.Options.Kind.t.Key","publicId":"Libtmux.Options.Kind.t.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Key","slug":"libtmux-options-kind-t-key"},{"id":"Libtmux.Options.Kind.t.Number","publicId":"Libtmux.Options.Kind.t.Number","name":"Number","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Number","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Number","slug":"libtmux-options-kind-t-number"},{"id":"Libtmux.Options.Kind.t.Text","publicId":"Libtmux.Options.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Text","slug":"libtmux-options-kind-t-text"},{"id":"Libtmux.Options.catalog","publicId":"Libtmux.Options.catalog","qualifiedName":"Libtmux.Options.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":843,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":843,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-options-catalog"},{"id":"Libtmux.Options.describe","publicId":"Libtmux.Options.describe","qualifiedName":"Libtmux.Options.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":844,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor, Error.t) result","source":{"file":"lib/libtmux.mli","line":844,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val describe : version:string -> string -> (descriptor, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor, Error.t) result"}],"slug":"libtmux-options-describe"},{"id":"Libtmux.Options.descriptor","publicId":"Libtmux.Options.descriptor","qualifiedName":"Libtmux.Options.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":801,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":801,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","doc":{"summary":"Generated upstream descriptors. `versions` lists qualified releases; user options have no built-in release history."},"signatures":[{"raw":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Pane | `Server | `Session | `Window ] list;\n versions : string list;\n}","params":[]}],"slug":"libtmux-options-descriptor"},{"id":"Libtmux.Options.descriptor.array","publicId":"Libtmux.Options.descriptor.array","name":"array","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":804,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"array : bool;","source":{"file":"lib/libtmux.mli","line":804,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.array","slug":"libtmux-options-descriptor-array"},{"id":"Libtmux.Options.descriptor.hook","publicId":"Libtmux.Options.descriptor.hook","name":"hook","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":805,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hook : bool;","source":{"file":"lib/libtmux.mli","line":805,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.hook","slug":"libtmux-options-descriptor-hook"},{"id":"Libtmux.Options.descriptor.kind","publicId":"Libtmux.Options.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":803,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":803,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Options.kind","slug":"libtmux-options-descriptor-kind"},{"id":"Libtmux.Options.descriptor.name","publicId":"Libtmux.Options.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":802,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":802,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.descriptor","type":"string","qualifiedName":"Libtmux.Options.name","slug":"libtmux-options-descriptor-name"},{"id":"Libtmux.Options.descriptor.scopes","publicId":"Libtmux.Options.descriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":806,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scopes : [ `Server | `Session | `Window | `Pane ] list;","source":{"file":"lib/libtmux.mli","line":806,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.descriptor","type":"[ `Pane | `Server | `Session | `Window ] list","qualifiedName":"Libtmux.Options.scopes","slug":"libtmux-options-descriptor-scopes"},{"id":"Libtmux.Options.descriptor.versions","publicId":"Libtmux.Options.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":807,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":807,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.descriptor","type":"string list","qualifiedName":"Libtmux.Options.versions","slug":"libtmux-options-descriptor-versions"},{"id":"Libtmux.Options.entry","publicId":"Libtmux.Options.entry","qualifiedName":"Libtmux.Options.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { descriptor : descriptor; value : value; inherited : bool }","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type entry = { descriptor : descriptor; value : value; inherited : bool; }","params":[]}],"slug":"libtmux-options-entry"},{"id":"Libtmux.Options.entry.descriptor","publicId":"Libtmux.Options.entry.descriptor","name":"descriptor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"descriptor : descriptor;","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.entry","type":"descriptor","qualifiedName":"Libtmux.Options.descriptor","slug":"libtmux-options-entry-descriptor"},{"id":"Libtmux.Options.entry.inherited","publicId":"Libtmux.Options.entry.inherited","name":"inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inherited : bool","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.entry","type":"bool","qualifiedName":"Libtmux.Options.inherited","slug":"libtmux-options-entry-inherited"},{"id":"Libtmux.Options.entry.value","publicId":"Libtmux.Options.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value;","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.entry","type":"value","qualifiedName":"Libtmux.Options.value","slug":"libtmux-options-entry-value"},{"id":"Libtmux.Options.lookup","publicId":"Libtmux.Options.lookup","qualifiedName":"Libtmux.Options.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":846,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> entry option","source":{"file":"lib/libtmux.mli","line":846,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","doc":{"summary":"`None` means absent from this capture's selected scope and inheritance policy. Use `describe` to distinguish an unsupported built-in name."},"signatures":[{"raw":"val lookup : t -> string -> entry option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"entry option"}],"slug":"libtmux-options-lookup"},{"id":"Libtmux.Options.scalar","publicId":"Libtmux.Options.scalar","qualifiedName":"Libtmux.Options.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scalar =\n Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","params":[]}],"slug":"libtmux-options-scalar"},{"id":"Libtmux.Options.scalar.Bool","publicId":"Libtmux.Options.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":823,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool of bool","source":{"file":"lib/libtmux.mli","line":823,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Bool","slug":"libtmux-options-scalar-bool"},{"id":"Libtmux.Options.scalar.Choice","publicId":"Libtmux.Options.scalar.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":824,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice of string","source":{"file":"lib/libtmux.mli","line":824,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Choice","slug":"libtmux-options-scalar-choice"},{"id":"Libtmux.Options.scalar.Colour","publicId":"Libtmux.Options.scalar.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":826,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour of string","source":{"file":"lib/libtmux.mli","line":826,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Colour","slug":"libtmux-options-scalar-colour"},{"id":"Libtmux.Options.scalar.Commands","publicId":"Libtmux.Options.scalar.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":827,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands of string","source":{"file":"lib/libtmux.mli","line":827,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Commands","slug":"libtmux-options-scalar-commands"},{"id":"Libtmux.Options.scalar.Integer","publicId":"Libtmux.Options.scalar.Integer","name":"Integer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":822,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Integer of int64","source":{"file":"lib/libtmux.mli","line":822,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Integer","slug":"libtmux-options-scalar-integer"},{"id":"Libtmux.Options.scalar.Key","publicId":"Libtmux.Options.scalar.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":825,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key of string","source":{"file":"lib/libtmux.mli","line":825,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Key","slug":"libtmux-options-scalar-key"},{"id":"Libtmux.Options.scalar.Text","publicId":"Libtmux.Options.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":821,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":821,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Text","slug":"libtmux-options-scalar-text"},{"id":"Libtmux.Options.scope","publicId":"Libtmux.Options.scope","qualifiedName":"Libtmux.Options.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":812,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":812,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scope =\n Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","params":[]}],"slug":"libtmux-options-scope"},{"id":"Libtmux.Options.scope.Global_sessions","publicId":"Libtmux.Options.scope.Global_sessions","name":"Global_sessions","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":814,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_sessions","source":{"file":"lib/libtmux.mli","line":814,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_sessions","slug":"libtmux-options-scope-global_sessions"},{"id":"Libtmux.Options.scope.Global_windows","publicId":"Libtmux.Options.scope.Global_windows","name":"Global_windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":815,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_windows","source":{"file":"lib/libtmux.mli","line":815,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_windows","slug":"libtmux-options-scope-global_windows"},{"id":"Libtmux.Options.scope.Pane","publicId":"Libtmux.Options.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":818,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":818,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Pane","slug":"libtmux-options-scope-pane"},{"id":"Libtmux.Options.scope.Server","publicId":"Libtmux.Options.scope.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":813,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":813,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Server","slug":"libtmux-options-scope-server"},{"id":"Libtmux.Options.scope.Session","publicId":"Libtmux.Options.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":816,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":816,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Session","slug":"libtmux-options-scope-session"},{"id":"Libtmux.Options.scope.Window","publicId":"Libtmux.Options.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":817,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.target","source":{"file":"lib/libtmux.mli","line":817,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Window","slug":"libtmux-options-scope-window"},{"id":"Libtmux.Options.t","publicId":"Libtmux.Options.t","qualifiedName":"Libtmux.Options.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":832,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":832,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","doc":{"summary":"Captured options in tmux order, with original array indexes. An empty array differs from an absent local entry. No accessor performs I/O."},"signatures":[{"raw":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-options-t"},{"id":"Libtmux.Options.t.entries","publicId":"Libtmux.Options.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":836,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":836,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Options.entries","slug":"libtmux-options-t-entries"},{"id":"Libtmux.Options.t.finished_at_ns","publicId":"Libtmux.Options.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":838,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":838,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.finished_at_ns","slug":"libtmux-options-t-finished_at_ns"},{"id":"Libtmux.Options.t.include_inherited","publicId":"Libtmux.Options.t.include_inherited","name":"include_inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":835,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"include_inherited : bool;","source":{"file":"lib/libtmux.mli","line":835,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.t","type":"bool","qualifiedName":"Libtmux.Options.include_inherited","slug":"libtmux-options-t-include_inherited"},{"id":"Libtmux.Options.t.scope","publicId":"Libtmux.Options.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":834,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":834,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.t","type":"scope","qualifiedName":"Libtmux.Options.scope","slug":"libtmux-options-t-scope"},{"id":"Libtmux.Options.t.source","publicId":"Libtmux.Options.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":833,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":833,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.t","type":"Source.t","qualifiedName":"Libtmux.Options.source","slug":"libtmux-options-t-source"},{"id":"Libtmux.Options.t.started_at_ns","publicId":"Libtmux.Options.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":837,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":837,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.started_at_ns","slug":"libtmux-options-t-started_at_ns"},{"id":"Libtmux.Options.value","publicId":"Libtmux.Options.value","qualifiedName":"Libtmux.Options.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","params":[]}],"slug":"libtmux-options-value"},{"id":"Libtmux.Options.value.Array","publicId":"Libtmux.Options.value.Array","name":"Array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Array","slug":"libtmux-options-value-array"},{"id":"Libtmux.Options.value.Scalar","publicId":"Libtmux.Options.value.Scalar","name":"Scalar","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Scalar of scalar","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Scalar","slug":"libtmux-options-value-scalar"},{"id":"Libtmux.Output","publicId":"Libtmux.Output","qualifiedName":"Libtmux.Output","name":"Output","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1012,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Future observed pane bytes, local cursors and explicit continuity loss.\n Output cursors are unrelated to snapshot times or server-side history. "],"declarations":[{"kind":"module","text":"module Output : sig\n type cursor = { generation : Generation.t; offset : int64 }\n (** [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. *)\n\n type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t\n\n type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason\n (** Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. *)\n\n val reason_pp : Format.formatter -> reason -> unit\n\n type wait_error =\n | Ended of reason\n | Failure of Error.t\n (** A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. *)\nend","source":{"file":"lib/libtmux.mli","line":1012,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Future observed pane bytes, local cursors and explicit continuity loss. Output cursors are unrelated to snapshot times or server-side history."},"slug":"libtmux-output"},{"id":"Libtmux.Output.cursor","publicId":"Libtmux.Output.cursor","qualifiedName":"Libtmux.Output.cursor","name":"cursor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. "],"declarations":[{"kind":"struct","text":"type cursor = { generation : Generation.t; offset : int64 }","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output","doc":{"summary":"`offset` is the number of observed bytes through the end of a Data event. Cursors from different subscription generations are unrelated. No cursor identifies a snapshot instant or a server-side historical position."},"signatures":[{"raw":"type cursor = { generation : Generation.t; offset : int64; }","params":[]}],"slug":"libtmux-output-cursor"},{"id":"Libtmux.Output.cursor.generation","publicId":"Libtmux.Output.cursor.generation","name":"generation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"generation : Generation.t;","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.cursor","type":"Generation.t","qualifiedName":"Libtmux.Output.generation","slug":"libtmux-output-cursor-generation"},{"id":"Libtmux.Output.cursor.offset","publicId":"Libtmux.Output.cursor.offset","name":"offset","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"offset : int64","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.cursor","type":"int64","qualifiedName":"Libtmux.Output.offset","slug":"libtmux-output-cursor-offset"},{"id":"Libtmux.Output.event","publicId":"Libtmux.Output.event","qualifiedName":"Libtmux.Output.event","name":"event","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1026,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason","source":{"file":"lib/libtmux.mli","line":1026,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type event =\n Data of { cursor : cursor; bytes : string; }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason;\n }\n | End of reason","params":[]}],"slug":"libtmux-output-event"},{"id":"Libtmux.Output.event.Data","publicId":"Libtmux.Output.event.Data","name":"Data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Data of { cursor : cursor; bytes : string }","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Data","slug":"libtmux-output-event-data"},{"id":"Libtmux.Output.event.Data.bytes","publicId":"Libtmux.Output.event.Data.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event.Data","type":"string","qualifiedName":"Libtmux.Output.bytes","slug":"libtmux-output-event-data-bytes"},{"id":"Libtmux.Output.event.Data.cursor","publicId":"Libtmux.Output.event.Data.cursor","name":"cursor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cursor : cursor;","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event.Data","type":"cursor","qualifiedName":"Libtmux.Output.cursor","slug":"libtmux-output-event-data-cursor"},{"id":"Libtmux.Output.event.End","publicId":"Libtmux.Output.event.End","name":"End","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1029,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. "],"declarations":[{"kind":"constant","text":"| End of reason","source":{"file":"lib/libtmux.mli","line":1029,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event","doc":{"summary":"Immutable event values. `Gap.after` is the last cursor delivered to the caller. Unknown loss is `None`. A gap ends continuity and is followed by End; recover with a fresh capture and a new subscription. Data preserves bytes, including NUL and invalid UTF-8. It is future observed output, not rendered text or historical reconstruction."},"variant":"tuple","qualifiedName":"Libtmux.Output.End","slug":"libtmux-output-event-end"},{"id":"Libtmux.Output.event.Gap","publicId":"Libtmux.Output.event.Gap","name":"Gap","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Gap of { after : cursor option; lost_bytes : int option; reason : reason }","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Gap","slug":"libtmux-output-event-gap"},{"id":"Libtmux.Output.event.Gap.after","publicId":"Libtmux.Output.event.Gap.after","name":"after","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"after : cursor option;","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event.Gap","type":"cursor option","qualifiedName":"Libtmux.Output.after","slug":"libtmux-output-event-gap-after"},{"id":"Libtmux.Output.event.Gap.lost_bytes","publicId":"Libtmux.Output.event.Gap.lost_bytes","name":"lost_bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"lost_bytes : int option;","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event.Gap","type":"int option","qualifiedName":"Libtmux.Output.lost_bytes","slug":"libtmux-output-event-gap-lost_bytes"},{"id":"Libtmux.Output.event.Gap.reason","publicId":"Libtmux.Output.event.Gap.reason","name":"reason","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"reason : reason","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event.Gap","type":"reason","qualifiedName":"Libtmux.Output.reason","slug":"libtmux-output-event-gap-reason"},{"id":"Libtmux.Output.reason","publicId":"Libtmux.Output.reason","qualifiedName":"Libtmux.Output.reason","name":"reason","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1018,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1018,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type reason =\n Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","params":[]}],"slug":"libtmux-output-reason"},{"id":"Libtmux.Output.reason.Cancelled","publicId":"Libtmux.Output.reason.Cancelled","name":"Cancelled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1022,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancelled","source":{"file":"lib/libtmux.mli","line":1022,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Cancelled","slug":"libtmux-output-reason-cancelled"},{"id":"Libtmux.Output.reason.Client_closed","publicId":"Libtmux.Output.reason.Client_closed","name":"Client_closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1023,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client_closed","source":{"file":"lib/libtmux.mli","line":1023,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Client_closed","slug":"libtmux-output-reason-client_closed"},{"id":"Libtmux.Output.reason.Membership_changed","publicId":"Libtmux.Output.reason.Membership_changed","name":"Membership_changed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1020,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Membership_changed","source":{"file":"lib/libtmux.mli","line":1020,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Membership_changed","slug":"libtmux-output-reason-membership_changed"},{"id":"Libtmux.Output.reason.Overflow","publicId":"Libtmux.Output.reason.Overflow","name":"Overflow","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1019,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Overflow","source":{"file":"lib/libtmux.mli","line":1019,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Overflow","slug":"libtmux-output-reason-overflow"},{"id":"Libtmux.Output.reason.Server_paused","publicId":"Libtmux.Output.reason.Server_paused","name":"Server_paused","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1021,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server_paused","source":{"file":"lib/libtmux.mli","line":1021,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Server_paused","slug":"libtmux-output-reason-server_paused"},{"id":"Libtmux.Output.reason.Transport_error","publicId":"Libtmux.Output.reason.Transport_error","name":"Transport_error","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1024,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1024,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.reason","variant":"tuple","qualifiedName":"Libtmux.Output.Transport_error","slug":"libtmux-output-reason-transport_error"},{"id":"Libtmux.Output.reason_pp","publicId":"Libtmux.Output.reason_pp","qualifiedName":"Libtmux.Output.reason_pp","name":"reason_pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1037,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val reason_pp : Format.formatter -> reason -> unit","source":{"file":"lib/libtmux.mli","line":1037,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output","signatures":[{"raw":"val reason_pp : Format.formatter -> reason -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"reason"}],"returns":"unit"}],"slug":"libtmux-output-reason_pp"},{"id":"Libtmux.Output.wait_error","publicId":"Libtmux.Output.wait_error","qualifiedName":"Libtmux.Output.wait_error","name":"wait_error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1039,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type wait_error =\n | Ended of reason\n | Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1039,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type wait_error = Ended of reason | Failure of Error.t","params":[]}],"slug":"libtmux-output-wait_error"},{"id":"Libtmux.Output.wait_error.Ended","publicId":"Libtmux.Output.wait_error.Ended","name":"Ended","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1040,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Ended of reason","source":{"file":"lib/libtmux.mli","line":1040,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.wait_error","variant":"tuple","qualifiedName":"Libtmux.Output.Ended","slug":"libtmux-output-wait_error-ended"},{"id":"Libtmux.Output.wait_error.Failure","publicId":"Libtmux.Output.wait_error.Failure","name":"Failure","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1041,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. "],"declarations":[{"kind":"constant","text":"| Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1041,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.wait_error","doc":{"summary":"A future-byte wait either loses its subscription's continuity or fails an operation. Neither result establishes that the text was absent earlier."},"variant":"tuple","qualifiedName":"Libtmux.Output.Failure","slug":"libtmux-output-wait_error-failure"},{"id":"Libtmux.Pane","publicId":"Libtmux.Pane","qualifiedName":"Libtmux.Pane","name":"Pane","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":288,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A captured pane with local geometry, process metadata and a window\n relationship. Use {!Pane.val-target} for explicit actions; reading the\n observation never refreshes it. "],"declarations":[{"kind":"module","text":"and Pane : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end\n\n module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val index : t -> int\n val active : t -> bool\n val dead : t -> bool\n val title : t -> string\n val current_command : t -> string\n val current_path : t -> string\n\n val pid : t -> int option\n (** The captured process ID, absent when tmux reports no process. *)\n\n val width : t -> int\n val height : t -> int\n val left : t -> int\n val top : t -> int\n val window : t -> Window.t\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"A captured pane with local geometry, process metadata and a window relationship. Use {!Pane.val-target} for explicit actions; reading the observation never refreshes it."},"slug":"libtmux-pane"},{"id":"Libtmux.Pane.Fields","publicId":"Libtmux.Pane.Fields","qualifiedName":"Libtmux.Pane.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":291,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":291,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-fields"},{"id":"Libtmux.Pane.Fields.active","publicId":"Libtmux.Pane.Fields.active","qualifiedName":"Libtmux.Pane.Fields.active","name":"active","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val active : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val active : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-active"},{"id":"Libtmux.Pane.Fields.current_command","publicId":"Libtmux.Pane.Fields.current_command","qualifiedName":"Libtmux.Pane.Fields.current_command","name":"current_command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":297,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_command : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":297,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_command : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_command"},{"id":"Libtmux.Pane.Fields.current_path","publicId":"Libtmux.Pane.Fields.current_path","qualifiedName":"Libtmux.Pane.Fields.current_path","name":"current_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":298,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_path : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":298,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_path : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_path"},{"id":"Libtmux.Pane.Fields.dead","publicId":"Libtmux.Pane.Fields.dead","qualifiedName":"Libtmux.Pane.Fields.dead","name":"dead","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":295,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val dead : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":295,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val dead : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-dead"},{"id":"Libtmux.Pane.Fields.height","publicId":"Libtmux.Pane.Fields.height","qualifiedName":"Libtmux.Pane.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-height"},{"id":"Libtmux.Pane.Fields.id","publicId":"Libtmux.Pane.Fields.id","qualifiedName":"Libtmux.Pane.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":292,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":292,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-id"},{"id":"Libtmux.Pane.Fields.index","publicId":"Libtmux.Pane.Fields.index","qualifiedName":"Libtmux.Pane.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":293,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-index"},{"id":"Libtmux.Pane.Fields.left","publicId":"Libtmux.Pane.Fields.left","qualifiedName":"Libtmux.Pane.Fields.left","name":"left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":301,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val left : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":301,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val left : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-left"},{"id":"Libtmux.Pane.Fields.title","publicId":"Libtmux.Pane.Fields.title","qualifiedName":"Libtmux.Pane.Fields.title","name":"title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":296,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val title : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":296,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val title : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-title"},{"id":"Libtmux.Pane.Fields.top","publicId":"Libtmux.Pane.Fields.top","qualifiedName":"Libtmux.Pane.Fields.top","name":"top","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":302,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val top : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val top : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-top"},{"id":"Libtmux.Pane.Fields.width","publicId":"Libtmux.Pane.Fields.width","qualifiedName":"Libtmux.Pane.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":299,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-width"},{"id":"Libtmux.Pane.Id","publicId":"Libtmux.Pane.Id","qualifiedName":"Libtmux.Pane.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-id-16to"},{"id":"Libtmux.Pane.Id.compare","publicId":"Libtmux.Pane.Id.compare","qualifiedName":"Libtmux.Pane.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-id-compare"},{"id":"Libtmux.Pane.Id.equal","publicId":"Libtmux.Pane.Id.equal","qualifiedName":"Libtmux.Pane.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-id-equal"},{"id":"Libtmux.Pane.Id.of_string","publicId":"Libtmux.Pane.Id.of_string","qualifiedName":"Libtmux.Pane.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-pane-id-of_string"},{"id":"Libtmux.Pane.Id.pp","publicId":"Libtmux.Pane.Id.pp","qualifiedName":"Libtmux.Pane.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-pane-id-pp"},{"id":"Libtmux.Pane.Id.t","publicId":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux.Pane.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-id-t"},{"id":"Libtmux.Pane.Id.to_string","publicId":"Libtmux.Pane.Id.to_string","qualifiedName":"Libtmux.Pane.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-id-to_string"},{"id":"Libtmux.Pane.Relations","publicId":"Libtmux.Pane.Relations","qualifiedName":"Libtmux.Pane.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-relations"},{"id":"Libtmux.Pane.Relations.window","publicId":"Libtmux.Pane.Relations.window","qualifiedName":"Libtmux.Pane.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-pane-relations-window"},{"id":"Libtmux.Pane.Target","publicId":"Libtmux.Pane.Target","qualifiedName":"Libtmux.Pane.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":311,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":311,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-target-nx8w"},{"id":"Libtmux.Pane.Target.id","publicId":"Libtmux.Pane.Target.id","qualifiedName":"Libtmux.Pane.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":316,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-target-id"},{"id":"Libtmux.Pane.Target.of_id","publicId":"Libtmux.Pane.Target.of_id","qualifiedName":"Libtmux.Pane.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":314,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":314,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-pane-target-of_id"},{"id":"Libtmux.Pane.Target.source","publicId":"Libtmux.Pane.Target.source","qualifiedName":"Libtmux.Pane.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":315,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-target-source"},{"id":"Libtmux.Pane.Target.t","publicId":"Libtmux.Pane.Target.t","qualifiedName":"Libtmux.Pane.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":312,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":312,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-target-t"},{"id":"Libtmux.Pane.active","publicId":"Libtmux.Pane.active","qualifiedName":"Libtmux.Pane.active","name":"active","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":323,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val active : t -> bool","source":{"file":"lib/libtmux.mli","line":323,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val active : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-active"},{"id":"Libtmux.Pane.current_command","publicId":"Libtmux.Pane.current_command","qualifiedName":"Libtmux.Pane.current_command","name":"current_command","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":326,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_command : t -> string","source":{"file":"lib/libtmux.mli","line":326,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_command : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_command"},{"id":"Libtmux.Pane.current_path","publicId":"Libtmux.Pane.current_path","qualifiedName":"Libtmux.Pane.current_path","name":"current_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_path : t -> string","source":{"file":"lib/libtmux.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_path : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_path"},{"id":"Libtmux.Pane.dead","publicId":"Libtmux.Pane.dead","qualifiedName":"Libtmux.Pane.dead","name":"dead","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":324,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dead : t -> bool","source":{"file":"lib/libtmux.mli","line":324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val dead : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-dead"},{"id":"Libtmux.Pane.height","publicId":"Libtmux.Pane.height","qualifiedName":"Libtmux.Pane.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":333,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-height"},{"id":"Libtmux.Pane.id","publicId":"Libtmux.Pane.id","qualifiedName":"Libtmux.Pane.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":321,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":321,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-id-19ve"},{"id":"Libtmux.Pane.index","publicId":"Libtmux.Pane.index","qualifiedName":"Libtmux.Pane.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":322,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":322,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-index"},{"id":"Libtmux.Pane.left","publicId":"Libtmux.Pane.left","qualifiedName":"Libtmux.Pane.left","name":"left","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":334,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val left : t -> int","source":{"file":"lib/libtmux.mli","line":334,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val left : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-left"},{"id":"Libtmux.Pane.pid","publicId":"Libtmux.Pane.pid","qualifiedName":"Libtmux.Pane.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":329,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" The captured process ID, absent when tmux reports no process. "],"declarations":[{"kind":"function","text":"val pid : t -> int option","source":{"file":"lib/libtmux.mli","line":329,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","doc":{"summary":"The captured process ID, absent when tmux reports no process."},"signatures":[{"raw":"val pid : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-pane-pid"},{"id":"Libtmux.Pane.same_entity","publicId":"Libtmux.Pane.same_entity","qualifiedName":"Libtmux.Pane.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":339,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":339,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_entity"},{"id":"Libtmux.Pane.same_observation","publicId":"Libtmux.Pane.same_observation","qualifiedName":"Libtmux.Pane.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_observation"},{"id":"Libtmux.Pane.source","publicId":"Libtmux.Pane.source","qualifiedName":"Libtmux.Pane.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-source"},{"id":"Libtmux.Pane.t","publicId":"Libtmux.Pane.t","qualifiedName":"Libtmux.Pane.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":289,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":289,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-t"},{"id":"Libtmux.Pane.target","publicId":"Libtmux.Pane.target","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":338,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":338,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-pane-target-t3h1"},{"id":"Libtmux.Pane.target:type","publicId":"Libtmux.Pane.target:type","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-pane-target-type"},{"id":"Libtmux.Pane.title","publicId":"Libtmux.Pane.title","qualifiedName":"Libtmux.Pane.title","name":"title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":325,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val title : t -> string","source":{"file":"lib/libtmux.mli","line":325,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val title : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-title"},{"id":"Libtmux.Pane.top","publicId":"Libtmux.Pane.top","qualifiedName":"Libtmux.Pane.top","name":"top","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":335,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val top : t -> int","source":{"file":"lib/libtmux.mli","line":335,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val top : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-top"},{"id":"Libtmux.Pane.width","publicId":"Libtmux.Pane.width","qualifiedName":"Libtmux.Pane.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-width"},{"id":"Libtmux.Pane.window","publicId":"Libtmux.Pane.window","qualifiedName":"Libtmux.Pane.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":336,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":336,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-pane-window"},{"id":"Libtmux.Plan","publicId":"Libtmux.Plan","qualifiedName":"Libtmux.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":644,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Explicit source-filter planning for a new acquisition. A plan separates\n supported tmux predicates from residual local evaluation; it never changes\n the I/O-free contract of {!Query.matching}. Backend capture operations\n acquire a complete graph and do not consume these plans. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type pushdown = Auto | Never | Require_exact\n type t\n\n val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result\n (** Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. *)\n\n val source_filter : t -> string option\n val residual : t -> Pane.t Expr.t\n val required_fields : t -> string list\n val required_relations : t -> string list\n val explanation : t -> string\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":644,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Explicit source-filter planning for a new acquisition. A plan separates supported tmux predicates from residual local evaluation; it never changes the I/O-free contract of {!Query.matching}. Backend capture operations acquire a complete graph and do not consume these plans."},"slug":"libtmux-plan"},{"id":"Libtmux.Plan.explanation","publicId":"Libtmux.Plan.explanation","qualifiedName":"Libtmux.Plan.explanation","name":"explanation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":659,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val explanation : t -> string","source":{"file":"lib/libtmux.mli","line":659,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val explanation : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-plan-explanation"},{"id":"Libtmux.Plan.panes","publicId":"Libtmux.Plan.panes","qualifiedName":"Libtmux.Plan.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":648,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. "],"declarations":[{"kind":"function","text":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":648,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","doc":{"summary":"Plan without I/O. Exact lowering covers pane active/dead flags and complete Boolean combinations. Unsupported children prevent lowering the whole expression, including under OR and NOT. Relationships always stay local. `Require_exact` rejects an unsupported expression before acquisition."},"signatures":[{"raw":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","params":[{"name":"pushdown","type":"pushdown","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t Expr.t"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-plan-panes"},{"id":"Libtmux.Plan.pp","publicId":"Libtmux.Plan.pp","qualifiedName":"Libtmux.Plan.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":660,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":660,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-plan-pp"},{"id":"Libtmux.Plan.pushdown","publicId":"Libtmux.Plan.pushdown","qualifiedName":"Libtmux.Plan.pushdown","name":"pushdown","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type pushdown = Auto | Never | Require_exact","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type pushdown = Auto | Never | Require_exact","params":[]}],"slug":"libtmux-plan-pushdown"},{"id":"Libtmux.Plan.pushdown.Auto","publicId":"Libtmux.Plan.pushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Auto","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Auto","slug":"libtmux-plan-pushdown-auto"},{"id":"Libtmux.Plan.pushdown.Never","publicId":"Libtmux.Plan.pushdown.Never","name":"Never","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Never","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Never","slug":"libtmux-plan-pushdown-never"},{"id":"Libtmux.Plan.pushdown.Require_exact","publicId":"Libtmux.Plan.pushdown.Require_exact","name":"Require_exact","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_exact","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Require_exact","slug":"libtmux-plan-pushdown-require_exact"},{"id":"Libtmux.Plan.required_fields","publicId":"Libtmux.Plan.required_fields","qualifiedName":"Libtmux.Plan.required_fields","name":"required_fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":657,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_fields : t -> string list","source":{"file":"lib/libtmux.mli","line":657,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_fields : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_fields"},{"id":"Libtmux.Plan.required_relations","publicId":"Libtmux.Plan.required_relations","qualifiedName":"Libtmux.Plan.required_relations","name":"required_relations","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":658,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_relations : t -> string list","source":{"file":"lib/libtmux.mli","line":658,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_relations : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_relations"},{"id":"Libtmux.Plan.residual","publicId":"Libtmux.Plan.residual","qualifiedName":"Libtmux.Plan.residual","name":"residual","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":656,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val residual : t -> Pane.t Expr.t","source":{"file":"lib/libtmux.mli","line":656,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val residual : t -> Pane.t Expr.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Expr.t"}],"slug":"libtmux-plan-residual"},{"id":"Libtmux.Plan.source_filter","publicId":"Libtmux.Plan.source_filter","qualifiedName":"Libtmux.Plan.source_filter","name":"source_filter","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":655,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source_filter : t -> string option","source":{"file":"lib/libtmux.mli","line":655,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val source_filter : t -> string option","params":[{"name":"arg1","type":"t"}],"returns":"string option"}],"slug":"libtmux-plan-source_filter"},{"id":"Libtmux.Plan.t","publicId":"Libtmux.Plan.t","qualifiedName":"Libtmux.Plan.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":646,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":646,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-plan-t"},{"id":"Libtmux.Query","publicId":"Libtmux.Query","qualifiedName":"Libtmux.Query","name":"Query","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":672,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Sequence adapters and bounded cardinality checks over captured values.\n Matching preserves order and duplicates. Expected absence and ambiguity\n remain ordinary result values. "],"declarations":[{"kind":"module","text":"module Query : sig\n val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t\n (** [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. *)\n\n val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result\n (** Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. *)\n\n val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result\n (** As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n *)\nend","source":{"file":"lib/libtmux.mli","line":672,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Sequence adapters and bounded cardinality checks over captured values. Matching preserves order and duplicates. Expected absence and ambiguity remain ordinary result values."},"slug":"libtmux-query"},{"id":"Libtmux.Query.exactly_one","publicId":"Libtmux.Query.exactly_one","qualifiedName":"Libtmux.Query.exactly_one","name":"exactly_one","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":679,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. "],"declarations":[{"kind":"function","text":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":679,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Query","doc":{"summary":"Return the unique value. Stop when a second value is found; proving uniqueness requires exhausting the remaining sequence. The input's effects and exceptions propagate. This does not execute a mutation."},"signatures":[{"raw":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a, Cardinality.error) result"}],"slug":"libtmux-query-exactly_one"},{"id":"Libtmux.Query.matching","publicId":"Libtmux.Query.matching","qualifiedName":"Libtmux.Query.matching","name":"matching","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":673,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. "],"declarations":[{"kind":"function","text":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","source":{"file":"lib/libtmux.mli","line":673,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Query","doc":{"summary":"`matching expression` compiles once when the adapter is constructed. Filtering preserves order and duplicates. Snapshot-derived sequences replay captured values; arbitrary input sequences retain their effects, exceptions and replay semantics. No tmux acquisition occurs."},"signatures":[{"raw":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","params":[{"name":"arg1","type":"'a Expr.t"},{"name":"arg2","type":"'a Seq.t"}],"returns":"'a Seq.t"}],"slug":"libtmux-query-matching"},{"id":"Libtmux.Query.one_or_none","publicId":"Libtmux.Query.one_or_none","qualifiedName":"Libtmux.Query.one_or_none","name":"one_or_none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":684,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n "],"declarations":[{"kind":"function","text":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":684,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Query","doc":{"summary":"As {!exactly_one}, with `Ok None` for an empty sequence. Order and duplicate entries count toward cardinality; values are not deduplicated."},"signatures":[{"raw":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a option, Cardinality.error) result"}],"slug":"libtmux-query-one_or_none"},{"id":"Libtmux.Relation","publicId":"Libtmux.Relation","qualifiedName":"Libtmux.Relation","name":"Relation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Typed edges in a captured graph. Many, one and optional relations are\n distinct; an unacquired relationship is never represented as an empty one.\n"],"declarations":[{"kind":"module","text":"module Relation : sig\n module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\nend","source":{"file":"lib/libtmux.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Typed edges in a captured graph. Many, one and optional relations are distinct; an unacquired relationship is never represented as an empty one."},"slug":"libtmux-relation"},{"id":"Libtmux.Relation.Many","publicId":"Libtmux.Relation.Many","qualifiedName":"Libtmux.Relation.Many","name":"Many","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-many"},{"id":"Libtmux.Relation.Many.name","publicId":"Libtmux.Relation.Many.name","qualifiedName":"Libtmux.Relation.Many.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-many-name"},{"id":"Libtmux.Relation.Many.t","publicId":"Libtmux.Relation.Many.t","qualifiedName":"Libtmux.Relation.Many.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-many-t"},{"id":"Libtmux.Relation.One","publicId":"Libtmux.Relation.One","qualifiedName":"Libtmux.Relation.One","name":"One","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":157,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":157,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-one"},{"id":"Libtmux.Relation.One.name","publicId":"Libtmux.Relation.One.name","qualifiedName":"Libtmux.Relation.One.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":160,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-one-name"},{"id":"Libtmux.Relation.One.t","publicId":"Libtmux.Relation.One.t","qualifiedName":"Libtmux.Relation.One.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":158,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":158,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-one-t"},{"id":"Libtmux.Relation.Optional","publicId":"Libtmux.Relation.Optional","qualifiedName":"Libtmux.Relation.Optional","name":"Optional","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-optional"},{"id":"Libtmux.Relation.Optional.name","publicId":"Libtmux.Relation.Optional.name","qualifiedName":"Libtmux.Relation.Optional.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-optional-name"},{"id":"Libtmux.Relation.Optional.t","publicId":"Libtmux.Relation.Optional.t","qualifiedName":"Libtmux.Relation.Optional.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-optional-t"},{"id":"Libtmux.Session","publicId":"Libtmux.Session","qualifiedName":"Libtmux.Session","name":"Session","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A captured session and its ordered window-link contexts. A session can\n contain repeated links to the same global window. "],"declarations":[{"kind":"module","text":"module rec Session : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end\n\n module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val attached : t -> int\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\n\n val window_links : t -> Window_link.t Iarray.t\n (** All captured links, in capture order, including repeated windows. *)\n\n val windows : t -> Window.t Iarray.t\n (** Distinct windows in first-link order. All accesses are local. *)\nend","source":{"file":"lib/libtmux.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"A captured session and its ordered window-link contexts. A session can contain repeated links to the same global window."},"slug":"libtmux-session"},{"id":"Libtmux.Session.Fields","publicId":"Libtmux.Session.Fields","qualifiedName":"Libtmux.Session.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":175,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":175,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","slug":"libtmux-session-fields"},{"id":"Libtmux.Session.Fields.attached","publicId":"Libtmux.Session.Fields.attached","qualifiedName":"Libtmux.Session.Fields.attached","name":"attached","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val attached : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val attached : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-session-fields-attached"},{"id":"Libtmux.Session.Fields.id","publicId":"Libtmux.Session.Fields.id","qualifiedName":"Libtmux.Session.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":176,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":176,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-id"},{"id":"Libtmux.Session.Fields.name","publicId":"Libtmux.Session.Fields.name","qualifiedName":"Libtmux.Session.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-name"},{"id":"Libtmux.Session.Id","publicId":"Libtmux.Session.Id","qualifiedName":"Libtmux.Session.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","slug":"libtmux-session-id-12k2"},{"id":"Libtmux.Session.Id.compare","publicId":"Libtmux.Session.Id.compare","qualifiedName":"Libtmux.Session.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-session-id-compare"},{"id":"Libtmux.Session.Id.equal","publicId":"Libtmux.Session.Id.equal","qualifiedName":"Libtmux.Session.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-id-equal"},{"id":"Libtmux.Session.Id.of_string","publicId":"Libtmux.Session.Id.of_string","qualifiedName":"Libtmux.Session.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-session-id-of_string"},{"id":"Libtmux.Session.Id.pp","publicId":"Libtmux.Session.Id.pp","qualifiedName":"Libtmux.Session.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-session-id-pp"},{"id":"Libtmux.Session.Id.t","publicId":"Libtmux.Session.Id.t","qualifiedName":"Libtmux.Session.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-id-t"},{"id":"Libtmux.Session.Id.to_string","publicId":"Libtmux.Session.Id.to_string","qualifiedName":"Libtmux.Session.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-id-to_string"},{"id":"Libtmux.Session.Relations","publicId":"Libtmux.Session.Relations","qualifiedName":"Libtmux.Session.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","slug":"libtmux-session-relations"},{"id":"Libtmux.Session.Relations.window_links","publicId":"Libtmux.Session.Relations.window_links","qualifiedName":"Libtmux.Session.Relations.window_links","name":"window_links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val window_links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-session-relations-window_links"},{"id":"Libtmux.Session.Relations.windows","publicId":"Libtmux.Session.Relations.windows","qualifiedName":"Libtmux.Session.Relations.windows","name":"windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val windows : (t, Window.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val windows : (t, Window.t) Relation.Many.t","params":[],"returns":"(t, Window.t) Relation.Many.t"}],"slug":"libtmux-session-relations-windows"},{"id":"Libtmux.Session.Target","publicId":"Libtmux.Session.Target","qualifiedName":"Libtmux.Session.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","slug":"libtmux-session-target-5p2d"},{"id":"Libtmux.Session.Target.id","publicId":"Libtmux.Session.Target.id","qualifiedName":"Libtmux.Session.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":195,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-target-id"},{"id":"Libtmux.Session.Target.of_id","publicId":"Libtmux.Session.Target.of_id","qualifiedName":"Libtmux.Session.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Describe a target in an existing connection generation. No I/O. "],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Target","doc":{"summary":"Describe a target in an existing connection generation. No I/O."},"signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-session-target-of_id"},{"id":"Libtmux.Session.Target.source","publicId":"Libtmux.Session.Target.source","qualifiedName":"Libtmux.Session.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":194,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-target-source"},{"id":"Libtmux.Session.Target.t","publicId":"Libtmux.Session.Target.t","qualifiedName":"Libtmux.Session.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-target-t"},{"id":"Libtmux.Session.attached","publicId":"Libtmux.Session.attached","qualifiedName":"Libtmux.Session.attached","name":"attached","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val attached : t -> int","source":{"file":"lib/libtmux.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val attached : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-session-attached"},{"id":"Libtmux.Session.id","publicId":"Libtmux.Session.id","qualifiedName":"Libtmux.Session.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-id-12gy"},{"id":"Libtmux.Session.name","publicId":"Libtmux.Session.name","qualifiedName":"Libtmux.Session.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-name"},{"id":"Libtmux.Session.same_entity","publicId":"Libtmux.Session.same_entity","qualifiedName":"Libtmux.Session.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_entity"},{"id":"Libtmux.Session.same_observation","publicId":"Libtmux.Session.same_observation","qualifiedName":"Libtmux.Session.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_observation"},{"id":"Libtmux.Session.source","publicId":"Libtmux.Session.source","qualifiedName":"Libtmux.Session.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-source"},{"id":"Libtmux.Session.t","publicId":"Libtmux.Session.t","qualifiedName":"Libtmux.Session.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-t"},{"id":"Libtmux.Session.target","publicId":"Libtmux.Session.target","qualifiedName":"Libtmux.Session.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-session-target-iu8j"},{"id":"Libtmux.Session.target:type","publicId":"Libtmux.Session.target:type","qualifiedName":"Libtmux.Session.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-session-target-type"},{"id":"Libtmux.Session.window_links","publicId":"Libtmux.Session.window_links","qualifiedName":"Libtmux.Session.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" All captured links, in capture order, including repeated windows. "],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","doc":{"summary":"All captured links, in capture order, including repeated windows.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-session-window_links"},{"id":"Libtmux.Session.windows","publicId":"Libtmux.Session.windows","qualifiedName":"Libtmux.Session.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Distinct windows in first-link order. All accesses are local. "],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","doc":{"summary":"Distinct windows in first-link order. All accesses are local."},"signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-session-windows"},{"id":"Libtmux.Snapshot","publicId":"Libtmux.Snapshot","qualifiedName":"Libtmux.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A complete immutable graph captured over an acquisition interval.\n Collections are replayable immutable arrays. Capturing several tmux commands\n does not establish an atomic transaction. "],"declarations":[{"kind":"module","text":"module Snapshot : sig\n type t\n\n module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end\n\n module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end\n\n val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result\n (** Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. *)\n\n val id : t -> Id.t\n val source : t -> Source.t\n val started_at_ns : t -> int64\n val finished_at_ns : t -> int64\n val sessions : t -> Session.t Iarray.t\n val windows : t -> Window.t Iarray.t\n val window_links : t -> Window_link.t Iarray.t\n val panes : t -> Pane.t Iarray.t\n\n val clients : t -> Client_observation.t Iarray.t\n (** Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. *)\n\n val find_session : t -> Session.Id.t -> Session.t option\n val find_window : t -> Window.Id.t -> Window.t option\n val find_pane : t -> Pane.Id.t -> Pane.t option\nend","source":{"file":"lib/libtmux.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"A complete immutable graph captured over an acquisition interval. Collections are replayable immutable arrays. Capturing several tmux commands does not establish an atomic transaction."},"slug":"libtmux-snapshot"},{"id":"Libtmux.Snapshot.Id","publicId":"Libtmux.Snapshot.Id","qualifiedName":"Libtmux.Snapshot.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":384,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end","source":{"file":"lib/libtmux.mli","line":384,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-id-1y9h"},{"id":"Libtmux.Snapshot.Id.equal","publicId":"Libtmux.Snapshot.Id.equal","qualifiedName":"Libtmux.Snapshot.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":389,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":389,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-snapshot-id-equal"},{"id":"Libtmux.Snapshot.Id.of_string","publicId":"Libtmux.Snapshot.Id.of_string","qualifiedName":"Libtmux.Snapshot.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-id-of_string"},{"id":"Libtmux.Snapshot.Id.t","publicId":"Libtmux.Snapshot.Id.t","qualifiedName":"Libtmux.Snapshot.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":385,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":385,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-id-t"},{"id":"Libtmux.Snapshot.Id.to_string","publicId":"Libtmux.Snapshot.Id.to_string","qualifiedName":"Libtmux.Snapshot.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":388,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":388,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-snapshot-id-to_string"},{"id":"Libtmux.Snapshot.Input","publicId":"Libtmux.Snapshot.Input","qualifiedName":"Libtmux.Snapshot.Input","name":"Input","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":392,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end","source":{"file":"lib/libtmux.mli","line":392,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-input"},{"id":"Libtmux.Snapshot.Input.client","publicId":"Libtmux.Snapshot.Input.client","qualifiedName":"Libtmux.Snapshot.Input.client","name":"client","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }","source":{"file":"lib/libtmux.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n}","params":[]}],"slug":"libtmux-snapshot-input-client"},{"id":"Libtmux.Snapshot.Input.client.control_mode","publicId":"Libtmux.Snapshot.Input.client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":432,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"control_mode : bool;","source":{"file":"lib/libtmux.mli","line":432,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.client","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.control_mode","slug":"libtmux-snapshot-input-client-control_mode"},{"id":"Libtmux.Snapshot.Input.client.height","publicId":"Libtmux.Snapshot.Input.client.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":431,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":431,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-client-height"},{"id":"Libtmux.Snapshot.Input.client.name","publicId":"Libtmux.Snapshot.Input.client.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.client","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-client-name"},{"id":"Libtmux.Snapshot.Input.client.pid","publicId":"Libtmux.Snapshot.Input.client.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":429,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int;","source":{"file":"lib/libtmux.mli","line":429,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-client-pid"},{"id":"Libtmux.Snapshot.Input.client.session_id","publicId":"Libtmux.Snapshot.Input.client.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":428,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t option;","source":{"file":"lib/libtmux.mli","line":428,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.client","type":"Session.Id.t option","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-client-session_id"},{"id":"Libtmux.Snapshot.Input.client.width","publicId":"Libtmux.Snapshot.Input.client.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":430,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":430,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-client-width"},{"id":"Libtmux.Snapshot.Input.pane","publicId":"Libtmux.Snapshot.Input.pane","qualifiedName":"Libtmux.Snapshot.Input.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }","source":{"file":"lib/libtmux.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n}","params":[]}],"slug":"libtmux-snapshot-input-pane"},{"id":"Libtmux.Snapshot.Input.pane.active","publicId":"Libtmux.Snapshot.Input.pane.active","name":"active","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"active : bool;","source":{"file":"lib/libtmux.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.active","slug":"libtmux-snapshot-input-pane-active"},{"id":"Libtmux.Snapshot.Input.pane.current_command","publicId":"Libtmux.Snapshot.Input.pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_command : string;","source":{"file":"lib/libtmux.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_command","slug":"libtmux-snapshot-input-pane-current_command"},{"id":"Libtmux.Snapshot.Input.pane.current_path","publicId":"Libtmux.Snapshot.Input.pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":418,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_path : string;","source":{"file":"lib/libtmux.mli","line":418,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_path","slug":"libtmux-snapshot-input-pane-current_path"},{"id":"Libtmux.Snapshot.Input.pane.dead","publicId":"Libtmux.Snapshot.Input.pane.dead","name":"dead","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"dead : bool;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.dead","slug":"libtmux-snapshot-input-pane-dead"},{"id":"Libtmux.Snapshot.Input.pane.height","publicId":"Libtmux.Snapshot.Input.pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":421,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":421,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-pane-height"},{"id":"Libtmux.Snapshot.Input.pane.id","publicId":"Libtmux.Snapshot.Input.pane.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Pane.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-pane-id"},{"id":"Libtmux.Snapshot.Input.pane.index","publicId":"Libtmux.Snapshot.Input.pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":413,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":413,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-pane-index"},{"id":"Libtmux.Snapshot.Input.pane.left","publicId":"Libtmux.Snapshot.Input.pane.left","name":"left","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"left : int;","source":{"file":"lib/libtmux.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.left","slug":"libtmux-snapshot-input-pane-left"},{"id":"Libtmux.Snapshot.Input.pane.pid","publicId":"Libtmux.Snapshot.Input.pane.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":419,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int option;","source":{"file":"lib/libtmux.mli","line":419,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-pane-pid"},{"id":"Libtmux.Snapshot.Input.pane.title","publicId":"Libtmux.Snapshot.Input.pane.title","name":"title","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":416,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"title : string;","source":{"file":"lib/libtmux.mli","line":416,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.title","slug":"libtmux-snapshot-input-pane-title"},{"id":"Libtmux.Snapshot.Input.pane.top","publicId":"Libtmux.Snapshot.Input.pane.top","name":"top","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"top : int;","source":{"file":"lib/libtmux.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.top","slug":"libtmux-snapshot-input-pane-top"},{"id":"Libtmux.Snapshot.Input.pane.width","publicId":"Libtmux.Snapshot.Input.pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":420,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":420,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-pane-width"},{"id":"Libtmux.Snapshot.Input.pane.window_id","publicId":"Libtmux.Snapshot.Input.pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":412,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":412,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-pane-window_id"},{"id":"Libtmux.Snapshot.Input.session","publicId":"Libtmux.Snapshot.Input.session","qualifiedName":"Libtmux.Snapshot.Input.session","name":"session","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type session = { id : Session.Id.t; name : string; attached : int }","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type session = { id : Session.Id.t; name : string; attached : int; }","params":[]}],"slug":"libtmux-snapshot-input-session"},{"id":"Libtmux.Snapshot.Input.session.attached","publicId":"Libtmux.Snapshot.Input.session.attached","name":"attached","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"attached : int","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.session","type":"int","qualifiedName":"Libtmux.Snapshot.Input.attached","slug":"libtmux-snapshot-input-session-attached"},{"id":"Libtmux.Snapshot.Input.session.id","publicId":"Libtmux.Snapshot.Input.session.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.session","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-session-id"},{"id":"Libtmux.Snapshot.Input.session.name","publicId":"Libtmux.Snapshot.Input.session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.session","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-session-name"},{"id":"Libtmux.Snapshot.Input.window","publicId":"Libtmux.Snapshot.Input.window","qualifiedName":"Libtmux.Snapshot.Input.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":395,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }","source":{"file":"lib/libtmux.mli","line":395,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n}","params":[]}],"slug":"libtmux-snapshot-input-window"},{"id":"Libtmux.Snapshot.Input.window.height","publicId":"Libtmux.Snapshot.Input.window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":399,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":399,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-window-height"},{"id":"Libtmux.Snapshot.Input.window.id","publicId":"Libtmux.Snapshot.Input.window.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":396,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":396,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-window-id"},{"id":"Libtmux.Snapshot.Input.window.layout","publicId":"Libtmux.Snapshot.Input.window.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":400,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : string;","source":{"file":"lib/libtmux.mli","line":400,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.layout","slug":"libtmux-snapshot-input-window-layout"},{"id":"Libtmux.Snapshot.Input.window.name","publicId":"Libtmux.Snapshot.Input.window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-window-name"},{"id":"Libtmux.Snapshot.Input.window.width","publicId":"Libtmux.Snapshot.Input.window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":398,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":398,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-window-width"},{"id":"Libtmux.Snapshot.Input.window_link","publicId":"Libtmux.Snapshot.Input.window_link","qualifiedName":"Libtmux.Snapshot.Input.window_link","name":"window_link","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }","source":{"file":"lib/libtmux.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n}","params":[]}],"slug":"libtmux-snapshot-input-window_link"},{"id":"Libtmux.Snapshot.Input.window_link.index","publicId":"Libtmux.Snapshot.Input.window_link.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-window_link-index"},{"id":"Libtmux.Snapshot.Input.window_link.is_current","publicId":"Libtmux.Snapshot.Input.window_link.is_current","name":"is_current","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":407,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"is_current : bool;","source":{"file":"lib/libtmux.mli","line":407,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.is_current","slug":"libtmux-snapshot-input-window_link-is_current"},{"id":"Libtmux.Snapshot.Input.window_link.session_id","publicId":"Libtmux.Snapshot.Input.window_link.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":404,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":404,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-window_link-session_id"},{"id":"Libtmux.Snapshot.Input.window_link.window_id","publicId":"Libtmux.Snapshot.Input.window_link.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":405,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":405,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-window_link-window_id"},{"id":"Libtmux.Snapshot.clients","publicId":"Libtmux.Snapshot.clients","qualifiedName":"Libtmux.Snapshot.clients","name":"clients","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":464,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. "],"declarations":[{"kind":"function","text":"val clients : t -> Client_observation.t Iarray.t","source":{"file":"lib/libtmux.mli","line":464,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Collections and their contents are immutable. They retain capture order, are replayable and remain readable after the acquiring client closes."},"signatures":[{"raw":"val clients : t -> Client_observation.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_observation.t Iarray.t"}],"slug":"libtmux-snapshot-clients"},{"id":"Libtmux.Snapshot.create","publicId":"Libtmux.Snapshot.create","qualifiedName":"Libtmux.Snapshot.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":436,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. "],"declarations":[{"kind":"function","text":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":436,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Validate and materialize a complete captured graph without I/O. Equal duplicate global rows collapse in first-occurrence order; conflicting rows and dangling references return {!Error.Capture_raced}. Links at different indexes remain distinct, including within one session. At most 10,000 input rows are admitted. Each session needs one current link and each window one active pane. Capture spans an interval, not an atomic instant. Input strings are bytes; no Unicode normalization is performed."},"signatures":[{"raw":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list -> clients:Input.client list -> (t, Error.t) result","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"id","type":"Id.t","keywordOnly":true},{"name":"started_at_ns","type":"int64","keywordOnly":true},{"name":"finished_at_ns","type":"int64","keywordOnly":true},{"name":"sessions","type":"Input.session list","keywordOnly":true},{"name":"windows","type":"Input.window list","keywordOnly":true},{"name":"window_links","type":"Input.window_link list","keywordOnly":true},{"name":"panes","type":"Input.pane list","keywordOnly":true},{"name":"clients","type":"Input.client list","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-create"},{"id":"Libtmux.Snapshot.find_pane","publicId":"Libtmux.Snapshot.find_pane","qualifiedName":"Libtmux.Snapshot.find_pane","name":"find_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":470,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_pane : t -> Pane.Id.t -> Pane.t option","source":{"file":"lib/libtmux.mli","line":470,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_pane : t -> Pane.Id.t -> Pane.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Pane.Id.t"}],"returns":"Pane.t option"}],"slug":"libtmux-snapshot-find_pane"},{"id":"Libtmux.Snapshot.find_session","publicId":"Libtmux.Snapshot.find_session","qualifiedName":"Libtmux.Snapshot.find_session","name":"find_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":468,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_session : t -> Session.Id.t -> Session.t option","source":{"file":"lib/libtmux.mli","line":468,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_session : t -> Session.Id.t -> Session.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Session.Id.t"}],"returns":"Session.t option"}],"slug":"libtmux-snapshot-find_session"},{"id":"Libtmux.Snapshot.find_window","publicId":"Libtmux.Snapshot.find_window","qualifiedName":"Libtmux.Snapshot.find_window","name":"find_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":469,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_window : t -> Window.Id.t -> Window.t option","source":{"file":"lib/libtmux.mli","line":469,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_window : t -> Window.Id.t -> Window.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Window.Id.t"}],"returns":"Window.t option"}],"slug":"libtmux-snapshot-find_window"},{"id":"Libtmux.Snapshot.finished_at_ns","publicId":"Libtmux.Snapshot.finished_at_ns","qualifiedName":"Libtmux.Snapshot.finished_at_ns","name":"finished_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val finished_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val finished_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-finished_at_ns"},{"id":"Libtmux.Snapshot.id","publicId":"Libtmux.Snapshot.id","qualifiedName":"Libtmux.Snapshot.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":455,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":455,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-snapshot-id-1y6d"},{"id":"Libtmux.Snapshot.panes","publicId":"Libtmux.Snapshot.panes","qualifiedName":"Libtmux.Snapshot.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":462,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":462,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"slug":"libtmux-snapshot-panes"},{"id":"Libtmux.Snapshot.sessions","publicId":"Libtmux.Snapshot.sessions","qualifiedName":"Libtmux.Snapshot.sessions","name":"sessions","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":459,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val sessions : t -> Session.t Iarray.t","source":{"file":"lib/libtmux.mli","line":459,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val sessions : t -> Session.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-snapshot-sessions"},{"id":"Libtmux.Snapshot.source","publicId":"Libtmux.Snapshot.source","qualifiedName":"Libtmux.Snapshot.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":456,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":456,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-snapshot-source"},{"id":"Libtmux.Snapshot.started_at_ns","publicId":"Libtmux.Snapshot.started_at_ns","qualifiedName":"Libtmux.Snapshot.started_at_ns","name":"started_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":457,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val started_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":457,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val started_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-started_at_ns"},{"id":"Libtmux.Snapshot.t","publicId":"Libtmux.Snapshot.t","qualifiedName":"Libtmux.Snapshot.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":382,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":382,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-t"},{"id":"Libtmux.Snapshot.window_links","publicId":"Libtmux.Snapshot.window_links","qualifiedName":"Libtmux.Snapshot.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":461,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":461,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-snapshot-window_links"},{"id":"Libtmux.Snapshot.windows","publicId":"Libtmux.Snapshot.windows","qualifiedName":"Libtmux.Snapshot.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":460,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":460,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-snapshot-windows"},{"id":"Libtmux.Source","publicId":"Libtmux.Source","qualifiedName":"Libtmux.Source","name":"Source","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":92,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Endpoint and observed daemon identity for one connection generation.\n Constructing metadata alone does not establish a live binding. "],"declarations":[{"kind":"module","text":"module Source : sig\n type t\n\n val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result\n (** Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. *)\n\n val endpoint : t -> Endpoint.t\n val generation : t -> Generation.t\n val server_pid : t -> int\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":92,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Endpoint and observed daemon identity for one connection generation. Constructing metadata alone does not establish a live binding."},"slug":"libtmux-source"},{"id":"Libtmux.Source.create","publicId":"Libtmux.Source.create","qualifiedName":"Libtmux.Source.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. "],"declarations":[{"kind":"function","text":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Source","doc":{"summary":"Pure metadata import for capture adapters. This neither establishes a connection nor verifies process identity. The backend must bind the generation to a live daemon before it admits operations."},"signatures":[{"raw":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t -> server_pid:int -> (t, Error.t) result","params":[{"name":"endpoint","type":"Endpoint.t","keywordOnly":true},{"name":"generation","type":"Generation.t","keywordOnly":true},{"name":"server_pid","type":"int","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-source-create"},{"id":"Libtmux.Source.endpoint","publicId":"Libtmux.Source.endpoint","qualifiedName":"Libtmux.Source.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Endpoint.t","source":{"file":"lib/libtmux.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val endpoint : t -> Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Endpoint.t"}],"slug":"libtmux-source-endpoint"},{"id":"Libtmux.Source.equal","publicId":"Libtmux.Source.equal","qualifiedName":"Libtmux.Source.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":107,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":107,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-source-equal"},{"id":"Libtmux.Source.generation","publicId":"Libtmux.Source.generation","qualifiedName":"Libtmux.Source.generation","name":"generation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":105,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val generation : t -> Generation.t","source":{"file":"lib/libtmux.mli","line":105,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val generation : t -> Generation.t","params":[{"name":"arg1","type":"t"}],"returns":"Generation.t"}],"slug":"libtmux-source-generation"},{"id":"Libtmux.Source.server_pid","publicId":"Libtmux.Source.server_pid","qualifiedName":"Libtmux.Source.server_pid","name":"server_pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val server_pid : t -> int","source":{"file":"lib/libtmux.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val server_pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-source-server_pid"},{"id":"Libtmux.Source.t","publicId":"Libtmux.Source.t","qualifiedName":"Libtmux.Source.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Source","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-source-t"},{"id":"Libtmux.Spawn","publicId":"Libtmux.Spawn","qualifiedName":"Libtmux.Spawn","name":"Spawn","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":717,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A process description with explicit argv or shell semantics, working\n directory and environment. Describing a process performs no I/O. "],"declarations":[{"kind":"module","text":"module Spawn : sig\n type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string\n\n type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }\n\n val make : ?cwd:string -> ?environment:(string * string) list -> command -> t\n (** Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. *)\n\n val default : t\nend","source":{"file":"lib/libtmux.mli","line":717,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"A process description with explicit argv or shell semantics, working directory and environment. Describing a process performs no I/O."},"slug":"libtmux-spawn"},{"id":"Libtmux.Spawn.command","publicId":"Libtmux.Spawn.command","qualifiedName":"Libtmux.Spawn.command","name":"command","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":718,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string","source":{"file":"lib/libtmux.mli","line":718,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type command =\n Default\n | Exec of { program : string; args : string list; }\n | Shell of string","params":[]}],"slug":"libtmux-spawn-command"},{"id":"Libtmux.Spawn.command.Default","publicId":"Libtmux.Spawn.command.Default","name":"Default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":719,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Default","source":{"file":"lib/libtmux.mli","line":719,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.command","variant":"unit","qualifiedName":"Libtmux.Spawn.Default","slug":"libtmux-spawn-command-default"},{"id":"Libtmux.Spawn.command.Exec","publicId":"Libtmux.Spawn.command.Exec","name":"Exec","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Exec of { program : string; args : string list }","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.command","variant":"struct","qualifiedName":"Libtmux.Spawn.Exec","slug":"libtmux-spawn-command-exec"},{"id":"Libtmux.Spawn.command.Exec.args","publicId":"Libtmux.Spawn.command.Exec.args","name":"args","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"args : string list","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string list","qualifiedName":"Libtmux.Spawn.args","slug":"libtmux-spawn-command-exec-args"},{"id":"Libtmux.Spawn.command.Exec.program","publicId":"Libtmux.Spawn.command.Exec.program","name":"program","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"program : string;","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string","qualifiedName":"Libtmux.Spawn.program","slug":"libtmux-spawn-command-exec-program"},{"id":"Libtmux.Spawn.command.Shell","publicId":"Libtmux.Spawn.command.Shell","name":"Shell","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Shell of string","source":{"file":"lib/libtmux.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.command","variant":"tuple","qualifiedName":"Libtmux.Spawn.Shell","slug":"libtmux-spawn-command-shell"},{"id":"Libtmux.Spawn.default","publicId":"Libtmux.Spawn.default","qualifiedName":"Libtmux.Spawn.default","name":"default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":737,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val default : t","source":{"file":"lib/libtmux.mli","line":737,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"val default : t","params":[],"returns":"t"}],"slug":"libtmux-spawn-default"},{"id":"Libtmux.Spawn.make","publicId":"Libtmux.Spawn.make","qualifiedName":"Libtmux.Spawn.make","name":"make","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. "],"declarations":[{"kind":"function","text":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","source":{"file":"lib/libtmux.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn","doc":{"summary":"Describe a program without I/O. `Exec` preserves argv; `Shell` explicitly requests the daemon's configured shell. `cwd` must be absolute. Validation occurs at admission. With no arguments, `Exec` uses a fixed `/bin/sh` trampoline because tmux treats a single argument as shell code. `Default` follows tmux defaults on creation and reuses the previous command on respawn."},"signatures":[{"raw":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"arg1","type":"command"}],"returns":"t"}],"slug":"libtmux-spawn-make"},{"id":"Libtmux.Spawn.t","publicId":"Libtmux.Spawn.t","qualifiedName":"Libtmux.Spawn.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":723,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }","source":{"file":"lib/libtmux.mli","line":723,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n}","params":[]}],"slug":"libtmux-spawn-t"},{"id":"Libtmux.Spawn.t.command","publicId":"Libtmux.Spawn.t.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : command;","source":{"file":"lib/libtmux.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.t","type":"command","qualifiedName":"Libtmux.Spawn.command","slug":"libtmux-spawn-t-command"},{"id":"Libtmux.Spawn.t.cwd","publicId":"Libtmux.Spawn.t.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":725,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"lib/libtmux.mli","line":725,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.t","type":"string option","qualifiedName":"Libtmux.Spawn.cwd","slug":"libtmux-spawn-t-cwd"},{"id":"Libtmux.Spawn.t.environment","publicId":"Libtmux.Spawn.t.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":726,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"lib/libtmux.mli","line":726,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.t","type":"(string * string) list","qualifiedName":"Libtmux.Spawn.environment","slug":"libtmux-spawn-t-environment"},{"id":"Libtmux.Window","publicId":"Libtmux.Window","qualifiedName":"Libtmux.Window","name":"Window","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A global window shared by its session links. Window index and current state\n belong to a link, while panes and geometry belong to the window. "],"declarations":[{"kind":"module","text":"and Window : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end\n\n module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val width : t -> int\n val height : t -> int\n val layout : t -> string\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\n val panes : t -> Pane.t Iarray.t\n val links : t -> Window_link.t Iarray.t\nend","source":{"file":"lib/libtmux.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"A global window shared by its session links. Window index and current state belong to a link, while panes and geometry belong to the window."},"slug":"libtmux-window"},{"id":"Libtmux.Window.Fields","publicId":"Libtmux.Window.Fields","qualifiedName":"Libtmux.Window.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end","source":{"file":"lib/libtmux.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","slug":"libtmux-window-fields"},{"id":"Libtmux.Window.Fields.height","publicId":"Libtmux.Window.Fields.height","qualifiedName":"Libtmux.Window.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-height"},{"id":"Libtmux.Window.Fields.id","publicId":"Libtmux.Window.Fields.id","qualifiedName":"Libtmux.Window.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-id"},{"id":"Libtmux.Window.Fields.layout","publicId":"Libtmux.Window.Fields.layout","qualifiedName":"Libtmux.Window.Fields.layout","name":"layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":225,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val layout : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val layout : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-layout"},{"id":"Libtmux.Window.Fields.name","publicId":"Libtmux.Window.Fields.name","qualifiedName":"Libtmux.Window.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-name"},{"id":"Libtmux.Window.Fields.width","publicId":"Libtmux.Window.Fields.width","qualifiedName":"Libtmux.Window.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-width"},{"id":"Libtmux.Window.Id","publicId":"Libtmux.Window.Id","qualifiedName":"Libtmux.Window.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","slug":"libtmux-window-id-1sgu"},{"id":"Libtmux.Window.Id.compare","publicId":"Libtmux.Window.Id.compare","qualifiedName":"Libtmux.Window.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-window-id-compare"},{"id":"Libtmux.Window.Id.equal","publicId":"Libtmux.Window.Id.equal","qualifiedName":"Libtmux.Window.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-id-equal"},{"id":"Libtmux.Window.Id.of_string","publicId":"Libtmux.Window.Id.of_string","qualifiedName":"Libtmux.Window.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-window-id-of_string"},{"id":"Libtmux.Window.Id.pp","publicId":"Libtmux.Window.Id.pp","qualifiedName":"Libtmux.Window.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-window-id-pp"},{"id":"Libtmux.Window.Id.t","publicId":"Libtmux.Window.Id.t","qualifiedName":"Libtmux.Window.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-id-t"},{"id":"Libtmux.Window.Id.to_string","publicId":"Libtmux.Window.Id.to_string","qualifiedName":"Libtmux.Window.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-id-to_string"},{"id":"Libtmux.Window.Relations","publicId":"Libtmux.Window.Relations","qualifiedName":"Libtmux.Window.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":228,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":228,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","slug":"libtmux-window-relations"},{"id":"Libtmux.Window.Relations.links","publicId":"Libtmux.Window.Relations.links","qualifiedName":"Libtmux.Window.Relations.links","name":"links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-window-relations-links"},{"id":"Libtmux.Window.Relations.panes","publicId":"Libtmux.Window.Relations.panes","qualifiedName":"Libtmux.Window.Relations.panes","name":"panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val panes : (t, Pane.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val panes : (t, Pane.t) Relation.Many.t","params":[],"returns":"(t, Pane.t) Relation.Many.t"}],"slug":"libtmux-window-relations-panes"},{"id":"Libtmux.Window.Target","publicId":"Libtmux.Window.Target","qualifiedName":"Libtmux.Window.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","slug":"libtmux-window-target-6ecc"},{"id":"Libtmux.Window.Target.id","publicId":"Libtmux.Window.Target.id","qualifiedName":"Libtmux.Window.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":240,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":240,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-target-id"},{"id":"Libtmux.Window.Target.of_id","publicId":"Libtmux.Window.Target.of_id","qualifiedName":"Libtmux.Window.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-window-target-of_id"},{"id":"Libtmux.Window.Target.source","publicId":"Libtmux.Window.Target.source","qualifiedName":"Libtmux.Window.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":239,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-target-source"},{"id":"Libtmux.Window.Target.t","publicId":"Libtmux.Window.Target.t","qualifiedName":"Libtmux.Window.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-target-t"},{"id":"Libtmux.Window.height","publicId":"Libtmux.Window.height","qualifiedName":"Libtmux.Window.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-height"},{"id":"Libtmux.Window.id","publicId":"Libtmux.Window.id","qualifiedName":"Libtmux.Window.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-id-1sjw"},{"id":"Libtmux.Window.layout","publicId":"Libtmux.Window.layout","qualifiedName":"Libtmux.Window.layout","name":"layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val layout : t -> string","source":{"file":"lib/libtmux.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val layout : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-layout"},{"id":"Libtmux.Window.links","publicId":"Libtmux.Window.links","qualifiedName":"Libtmux.Window.links","name":"links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":255,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":255,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-window-links"},{"id":"Libtmux.Window.name","publicId":"Libtmux.Window.name","qualifiedName":"Libtmux.Window.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-name"},{"id":"Libtmux.Window.panes","publicId":"Libtmux.Window.panes","qualifiedName":"Libtmux.Window.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":254,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":254,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-window-panes"},{"id":"Libtmux.Window.same_entity","publicId":"Libtmux.Window.same_entity","qualifiedName":"Libtmux.Window.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_entity"},{"id":"Libtmux.Window.same_observation","publicId":"Libtmux.Window.same_observation","qualifiedName":"Libtmux.Window.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_observation"},{"id":"Libtmux.Window.source","publicId":"Libtmux.Window.source","qualifiedName":"Libtmux.Window.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":250,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":250,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-source"},{"id":"Libtmux.Window.t","publicId":"Libtmux.Window.t","qualifiedName":"Libtmux.Window.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-t"},{"id":"Libtmux.Window.target","publicId":"Libtmux.Window.target","qualifiedName":"Libtmux.Window.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-window-target-1sbf"},{"id":"Libtmux.Window.target:type","publicId":"Libtmux.Window.target:type","qualifiedName":"Libtmux.Window.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":243,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":243,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-window-target-type"},{"id":"Libtmux.Window.width","publicId":"Libtmux.Window.width","qualifiedName":"Libtmux.Window.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":247,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":247,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-width"},{"id":"Libtmux.Window_link","publicId":"Libtmux.Window_link","qualifiedName":"Libtmux.Window_link","name":"Window_link","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" One captured session/index/window context. It is not a stable link\n incarnation across unlinking, movement or reindexing. "],"declarations":[{"kind":"module","text":"and Window_link : sig\n type t\n\n module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end\n\n val index : t -> int\n val is_current : t -> bool\n val session : t -> Session.t\n val window : t -> Window.t\n\n val same_context : t -> t -> bool\n (** Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. *)\n\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"One captured session/index/window context. It is not a stable link incarnation across unlinking, movement or reindexing."},"slug":"libtmux-window_link"},{"id":"Libtmux.Window_link.Fields","publicId":"Libtmux.Window_link.Fields","qualifiedName":"Libtmux.Window_link.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-fields"},{"id":"Libtmux.Window_link.Fields.index","publicId":"Libtmux.Window_link.Fields.index","qualifiedName":"Libtmux.Window_link.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window_link-fields-index"},{"id":"Libtmux.Window_link.Fields.is_current","publicId":"Libtmux.Window_link.Fields.is_current","qualifiedName":"Libtmux.Window_link.Fields.is_current","name":"is_current","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":265,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val is_current : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":265,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val is_current : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-window_link-fields-is_current"},{"id":"Libtmux.Window_link.Relations","publicId":"Libtmux.Window_link.Relations","qualifiedName":"Libtmux.Window_link.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":268,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":268,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-relations"},{"id":"Libtmux.Window_link.Relations.session","publicId":"Libtmux.Window_link.Relations.session","qualifiedName":"Libtmux.Window_link.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.One.t","params":[],"returns":"(t, Session.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-session"},{"id":"Libtmux.Window_link.Relations.window","publicId":"Libtmux.Window_link.Relations.window","qualifiedName":"Libtmux.Window_link.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":270,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":270,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-window"},{"id":"Libtmux.Window_link.index","publicId":"Libtmux.Window_link.index","qualifiedName":"Libtmux.Window_link.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window_link-index"},{"id":"Libtmux.Window_link.is_current","publicId":"Libtmux.Window_link.is_current","qualifiedName":"Libtmux.Window_link.is_current","name":"is_current","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_current : t -> bool","source":{"file":"lib/libtmux.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val is_current : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-is_current"},{"id":"Libtmux.Window_link.same_context","publicId":"Libtmux.Window_link.same_context","qualifiedName":"Libtmux.Window_link.same_context","name":"same_context","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":278,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. "],"declarations":[{"kind":"function","text":"val same_context : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":278,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","doc":{"summary":"Compare source, session, index and window. An equal context does not certify a stable link incarnation across reindexing or unlink/relink."},"signatures":[{"raw":"val same_context : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_context"},{"id":"Libtmux.Window_link.same_observation","publicId":"Libtmux.Window_link.same_observation","qualifiedName":"Libtmux.Window_link.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_observation"},{"id":"Libtmux.Window_link.session","publicId":"Libtmux.Window_link.session","qualifiedName":"Libtmux.Window_link.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":275,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> Session.t","source":{"file":"lib/libtmux.mli","line":275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val session : t -> Session.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t"}],"slug":"libtmux-window_link-session"},{"id":"Libtmux.Window_link.t","publicId":"Libtmux.Window_link.t","qualifiedName":"Libtmux.Window_link.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window_link-t"},{"id":"Libtmux.Window_link.window","publicId":"Libtmux.Window_link.window","qualifiedName":"Libtmux.Window_link.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":276,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":276,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-window_link-window"},{"id":"Libtmux_eio","publicId":"Libtmux_eio","qualifiedName":"Libtmux_eio","name":"Libtmux_eio","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Concurrent Linux tmux clients using the application's Eio scheduler.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md}streaming\n guide} demonstrates application-owned switches, cancellation and continuity\n gaps. "],"declarations":[{"kind":"module","text":"","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"doc":{"summary":"Concurrent Linux tmux clients using the application's Eio scheduler.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [streaming guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md) demonstrates application-owned switches, cancellation and continuity gaps."},"slug":"libtmux_eio"},{"id":"Libtmux_eio.Client","publicId":"Libtmux_eio.Client","qualifiedName":"Libtmux_eio.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. *)\n\n val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. No history/barrier guarantee. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve bounded capacity without I/O. *)\n\n val await : 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. *)\n\n val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result\n (** Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. *)\n\n val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. *)\n\n val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Retire the generation and close owned control clients and descriptors.\n tmux's [exit-unattached] and [exit-empty] policies can end the daemon\n after its clients or sessions disappear. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_eio-client"},{"id":"Libtmux_eio.Client.await","publicId":"Libtmux_eio.Client.await","qualifiedName":"Libtmux_eio.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. "],"declarations":[{"kind":"function","text":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Cancellation propagates as Eio cancellation. Store the handle outside the cancelled fiber: the client drains written work independently, and the eventual result remains inspectable."},"signatures":[{"raw":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-await"},{"id":"Libtmux_eio.Client.break_pane","publicId":"Libtmux_eio.Client.break_pane","qualifiedName":"Libtmux_eio.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-break_pane"},{"id":"Libtmux_eio.Client.capture","publicId":"Libtmux_eio.Client.capture","qualifiedName":"Libtmux_eio.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. "],"declarations":[{"kind":"function","text":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a complete immutable graph over an interval. Conflicting or disappearing entities fail capture; they do not become empty relations. The returned values remain readable after client closure."},"signatures":[{"raw":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture"},{"id":"Libtmux_eio.Client.capture_environment","publicId":"Libtmux_eio.Client.capture_environment","qualifiedName":"Libtmux_eio.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_environment"},{"id":"Libtmux_eio.Client.capture_hooks","publicId":"Libtmux_eio.Client.capture_hooks","qualifiedName":"Libtmux_eio.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_hooks"},{"id":"Libtmux_eio.Client.capture_options","publicId":"Libtmux_eio.Client.capture_options","qualifiedName":"Libtmux_eio.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":283,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_options"},{"id":"Libtmux_eio.Client.capture_text","publicId":"Libtmux_eio.Client.capture_text","qualifiedName":"Libtmux_eio.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Inclusive ordinary screen rows, using a bounded private file transfer. Qualified local scratch storage must be shared with the daemon."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_text"},{"id":"Libtmux_eio.Client.clear_history","publicId":"Libtmux_eio.Client.clear_history","qualifiedName":"Libtmux_eio.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_history"},{"id":"Libtmux_eio.Client.clear_option_array","publicId":"Libtmux_eio.Client.clear_option_array","qualifiedName":"Libtmux_eio.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_option_array"},{"id":"Libtmux_eio.Client.close","publicId":"Libtmux_eio.Client.close","qualifiedName":"Libtmux_eio.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Retire the generation and close owned control clients and descriptors.\n tmux's [exit-unattached] and [exit-empty] policies can end the daemon\n after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Retire the generation and close owned control clients and descriptors. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-close"},{"id":"Libtmux_eio.Client.connect","publicId":"Libtmux_eio.Client.connect","qualifiedName":"Libtmux_eio.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n "],"declarations":[{"kind":"function","text":"val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Attach to an existing local Linux daemon in the same PID namespace and shared filesystem. Requires pidfd support. Default exchange timeout: one second. All client calls belong to the connecting OCaml domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-connect"},{"id":"Libtmux_eio.Client.create_session","publicId":"Libtmux_eio.Client.create_session","qualifiedName":"Libtmux_eio.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":380,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":380,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_session"},{"id":"Libtmux_eio.Client.create_window","publicId":"Libtmux_eio.Client.create_window","qualifiedName":"Libtmux_eio.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":391,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":391,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_window"},{"id":"Libtmux_eio.Client.cycle_layout","publicId":"Libtmux_eio.Client.cycle_layout","qualifiedName":"Libtmux_eio.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-cycle_layout"},{"id":"Libtmux_eio.Client.kill_pane","publicId":"Libtmux_eio.Client.kill_pane","qualifiedName":"Libtmux_eio.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":431,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":431,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_pane"},{"id":"Libtmux_eio.Client.kill_session","publicId":"Libtmux_eio.Client.kill_session","qualifiedName":"Libtmux_eio.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_session"},{"id":"Libtmux_eio.Client.kill_window","publicId":"Libtmux_eio.Client.kill_window","qualifiedName":"Libtmux_eio.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_window"},{"id":"Libtmux_eio.Client.link_window","publicId":"Libtmux_eio.Client.link_window","qualifiedName":"Libtmux_eio.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-link_window"},{"id":"Libtmux_eio.Client.move_pane","publicId":"Libtmux_eio.Client.move_pane","qualifiedName":"Libtmux_eio.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_pane"},{"id":"Libtmux_eio.Client.move_window_at","publicId":"Libtmux_eio.Client.move_window_at","qualifiedName":"Libtmux_eio.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_window_at"},{"id":"Libtmux_eio.Client.read_hook","publicId":"Libtmux_eio.Client.read_hook","qualifiedName":"Libtmux_eio.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_hook"},{"id":"Libtmux_eio.Client.read_option","publicId":"Libtmux_eio.Client.read_option","qualifiedName":"Libtmux_eio.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_option"},{"id":"Libtmux_eio.Client.refresh_client_at","publicId":"Libtmux_eio.Client.refresh_client_at","qualifiedName":"Libtmux_eio.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-refresh_client_at"},{"id":"Libtmux_eio.Client.remove_environment","publicId":"Libtmux_eio.Client.remove_environment","qualifiedName":"Libtmux_eio.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_environment"},{"id":"Libtmux_eio.Client.remove_hook","publicId":"Libtmux_eio.Client.remove_hook","qualifiedName":"Libtmux_eio.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":362,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":362,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_hook"},{"id":"Libtmux_eio.Client.rename_session","publicId":"Libtmux_eio.Client.rename_session","qualifiedName":"Libtmux_eio.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_session"},{"id":"Libtmux_eio.Client.rename_window","publicId":"Libtmux_eio.Client.rename_window","qualifiedName":"Libtmux_eio.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":193,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":193,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_window"},{"id":"Libtmux_eio.Client.request_detach_client_at","publicId":"Libtmux_eio.Client.request_detach_client_at","qualifiedName":"Libtmux_eio.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-request_detach_client_at"},{"id":"Libtmux_eio.Client.resize_control_client_at","publicId":"Libtmux_eio.Client.resize_control_client_at","qualifiedName":"Libtmux_eio.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_control_client_at"},{"id":"Libtmux_eio.Client.resize_pane","publicId":"Libtmux_eio.Client.resize_pane","qualifiedName":"Libtmux_eio.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":477,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":477,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_pane"},{"id":"Libtmux_eio.Client.resize_window","publicId":"Libtmux_eio.Client.resize_window","qualifiedName":"Libtmux_eio.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":487,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":487,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_window"},{"id":"Libtmux_eio.Client.respawn_pane","publicId":"Libtmux_eio.Client.respawn_pane","qualifiedName":"Libtmux_eio.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-respawn_pane"},{"id":"Libtmux_eio.Client.rotate_panes","publicId":"Libtmux_eio.Client.rotate_panes","qualifiedName":"Libtmux_eio.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rotate_panes"},{"id":"Libtmux_eio.Client.run","publicId":"Libtmux_eio.Client.run","qualifiedName":"Libtmux_eio.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. "],"declarations":[{"kind":"function","text":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Submit and await an explicit command. Retain a separate submitted handle when the outcome must remain inspectable after caller cancellation."},"signatures":[{"raw":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run"},{"id":"Libtmux_eio.Client.run_hook","publicId":"Libtmux_eio.Client.run_hook","qualifiedName":"Libtmux_eio.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":371,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":371,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run_hook"},{"id":"Libtmux_eio.Client.select_layout","publicId":"Libtmux_eio.Client.select_layout","qualifiedName":"Libtmux_eio.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout :\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_layout"},{"id":"Libtmux_eio.Client.select_pane","publicId":"Libtmux_eio.Client.select_pane","qualifiedName":"Libtmux_eio.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":468,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":468,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_pane"},{"id":"Libtmux_eio.Client.select_window_at","publicId":"Libtmux_eio.Client.select_window_at","qualifiedName":"Libtmux_eio.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":435,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":435,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_window_at"},{"id":"Libtmux_eio.Client.send_keys","publicId":"Libtmux_eio.Client.send_keys","qualifiedName":"Libtmux_eio.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys :\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_keys"},{"id":"Libtmux_eio.Client.send_text","publicId":"Libtmux_eio.Client.send_text","qualifiedName":"Libtmux_eio.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_text"},{"id":"Libtmux_eio.Client.set_environment","publicId":"Libtmux_eio.Client.set_environment","qualifiedName":"Libtmux_eio.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_environment"},{"id":"Libtmux_eio.Client.set_hook","publicId":"Libtmux_eio.Client.set_hook","qualifiedName":"Libtmux_eio.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":346,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_hook"},{"id":"Libtmux_eio.Client.set_option","publicId":"Libtmux_eio.Client.set_option","qualifiedName":"Libtmux_eio.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_option"},{"id":"Libtmux_eio.Client.set_pane_title","publicId":"Libtmux_eio.Client.set_pane_title","qualifiedName":"Libtmux_eio.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_pane_title"},{"id":"Libtmux_eio.Client.signal","publicId":"Libtmux_eio.Client.signal","qualifiedName":"Libtmux_eio.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-signal"},{"id":"Libtmux_eio.Client.source","publicId":"Libtmux_eio.Client.source","qualifiedName":"Libtmux_eio.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_eio-client-source"},{"id":"Libtmux_eio.Client.split_pane","publicId":"Libtmux_eio.Client.split_pane","qualifiedName":"Libtmux_eio.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":400,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":400,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-split_pane"},{"id":"Libtmux_eio.Client.submit","publicId":"Libtmux_eio.Client.submit","qualifiedName":"Libtmux_eio.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate and reserve bounded capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate and reserve bounded capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-submit"},{"id":"Libtmux_eio.Client.subscribe","publicId":"Libtmux_eio.Client.subscribe","qualifiedName":"Libtmux_eio.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire verified coverage through one shared lane per session; choose the least observed session ID unless supplied. A client-owned reader delivers future bytes without application callbacks. Default queue bounds are 1 MiB/1024 events; max 16 subscribers and eight total client lanes, sharing the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap then End. Data starts after admission's marker, with no snapshot/history barrier, automatic reconnect or silent cursor reuse.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-subscribe"},{"id":"Libtmux_eio.Client.swap_panes","publicId":"Libtmux_eio.Client.swap_panes","qualifiedName":"Libtmux_eio.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-swap_panes"},{"id":"Libtmux_eio.Client.switch_client_at","publicId":"Libtmux_eio.Client.switch_client_at","qualifiedName":"Libtmux_eio.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-switch_client_at"},{"id":"Libtmux_eio.Client.t","publicId":"Libtmux_eio.Client.t","qualifiedName":"Libtmux_eio.Client.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-client-t"},{"id":"Libtmux_eio.Client.unlink_window_at","publicId":"Libtmux_eio.Client.unlink_window_at","qualifiedName":"Libtmux_eio.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unlink_window_at"},{"id":"Libtmux_eio.Client.unset_environment","publicId":"Libtmux_eio.Client.unset_environment","qualifiedName":"Libtmux_eio.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_environment"},{"id":"Libtmux_eio.Client.unset_option","publicId":"Libtmux_eio.Client.unset_option","qualifiedName":"Libtmux_eio.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_option"},{"id":"Libtmux_eio.Client.version","publicId":"Libtmux_eio.Client.version","qualifiedName":"Libtmux_eio.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":132,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"eio/libtmux_eio.mli","line":132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_eio-client-version"},{"id":"Libtmux_eio.Client.wait_for","publicId":"Libtmux_eio.Client.wait_for","qualifiedName":"Libtmux_eio.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for"},{"id":"Libtmux_eio.Client.wait_for_text","publicId":"Libtmux_eio.Client.wait_for_text","qualifiedName":"Libtmux_eio.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. No history/barrier guarantee. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Subscribe and capture the screen immediately, then recapture on output. Membership/overflow gaps establish fresh coverage in the same binding. Maximum pattern: 64 KiB. Return captured rendered text containing it; transient text may be missed. Deadlines are checked between bounded acquisitions, whose I/O retains the client exchange timeout. Cancellation propagates and releases the subscription. No history/barrier guarantee."},"signatures":[{"raw":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for_text"},{"id":"Libtmux_eio.Client.zoom_pane","publicId":"Libtmux_eio.Client.zoom_pane","qualifiedName":"Libtmux_eio.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":539,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":539,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-zoom_pane"},{"id":"Libtmux_eio.Operation","publicId":"Libtmux_eio.Operation","qualifiedName":"Libtmux_eio.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":45,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** Read without I/O, including after client closure. Owning domain only. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove unsent work. A written request remains owned and drained by the\n client. *)\n\n val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result\n (** Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":45,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_eio-operation"},{"id":"Libtmux_eio.Operation.await_stage","publicId":"Libtmux_eio.Operation.await_stage","qualifiedName":"Libtmux_eio.Operation.await_stage","name":"await_stage","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n "],"declarations":[{"kind":"function","text":"val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Wait for the named stage or a terminal state. Acknowledgement does not establish completion. Cancelling this observer leaves the operation alone."},"signatures":[{"raw":"val await_stage :\n 'a t -> [ `Acknowledged | `Written ] -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"[ `Acknowledged | `Written ]"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-await_stage"},{"id":"Libtmux_eio.Operation.cancel","publicId":"Libtmux_eio.Operation.cancel","qualifiedName":"Libtmux_eio.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove unsent work. A written request remains owned and drained by the\n client. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Remove unsent work. A written request remains owned and drained by the client."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-cancel"},{"id":"Libtmux_eio.Operation.cleanup_receipt","publicId":"Libtmux_eio.Operation.cleanup_receipt","qualifiedName":"Libtmux_eio.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":48,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"eio/libtmux_eio.mli","line":48,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n}","params":[]}],"slug":"libtmux_eio-operation-cleanup_receipt"},{"id":"Libtmux_eio.Operation.cleanup_receipt.cause","publicId":"Libtmux_eio.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"eio/libtmux_eio.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_eio.Operation.cause","slug":"libtmux_eio-operation-cleanup_receipt-cause"},{"id":"Libtmux_eio.Operation.cleanup_receipt.created","publicId":"Libtmux_eio.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"eio/libtmux_eio.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_eio.Operation.created","slug":"libtmux_eio-operation-cleanup_receipt-created"},{"id":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"eio/libtmux_eio.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_eio.Operation.owned_buffers","slug":"libtmux_eio-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_eio.Operation.id","publicId":"Libtmux_eio.Operation.id","qualifiedName":"Libtmux_eio.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"eio/libtmux_eio.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_eio-operation-id"},{"id":"Libtmux_eio.Operation.inspect","publicId":"Libtmux_eio.Operation.inspect","qualifiedName":"Libtmux_eio.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read without I/O, including after client closure. Owning domain only. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Read without I/O, including after client closure. Owning domain only."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-inspect"},{"id":"Libtmux_eio.Operation.state","publicId":"Libtmux_eio.Operation.state","qualifiedName":"Libtmux_eio.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a state =\n Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","params":[]}],"slug":"libtmux_eio-operation-state"},{"id":"Libtmux_eio.Operation.state.Acknowledged","publicId":"Libtmux_eio.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Acknowledged","slug":"libtmux_eio-operation-state-acknowledged"},{"id":"Libtmux_eio.Operation.state.Finished","publicId":"Libtmux_eio.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Finished","slug":"libtmux_eio-operation-state-finished"},{"id":"Libtmux_eio.Operation.state.Not_started","publicId":"Libtmux_eio.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Not_started","slug":"libtmux_eio-operation-state-not_started"},{"id":"Libtmux_eio.Operation.state.Outcome_unknown","publicId":"Libtmux_eio.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Outcome_unknown","slug":"libtmux_eio-operation-state-outcome_unknown"},{"id":"Libtmux_eio.Operation.state.Queued","publicId":"Libtmux_eio.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"eio/libtmux_eio.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Queued","slug":"libtmux_eio-operation-state-queued"},{"id":"Libtmux_eio.Operation.state.Written","publicId":"Libtmux_eio.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Written","slug":"libtmux_eio-operation-state-written"},{"id":"Libtmux_eio.Operation.t","publicId":"Libtmux_eio.Operation.t","qualifiedName":"Libtmux_eio.Operation.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":46,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"eio/libtmux_eio.mli","line":46,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-operation-t"},{"id":"Libtmux_eio.Rendered","publicId":"Libtmux_eio.Rendered","qualifiedName":"Libtmux_eio.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio","exportedFrom":"Libtmux.Captured_text","slug":"libtmux_eio-rendered"},{"id":"Libtmux_eio.Subscription","publicId":"Libtmux_eio.Subscription","qualifiedName":"Libtmux_eio.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O, on the owning domain. *)\n\n val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Discard pending data and retain End Cancelled. Borrowed clients and the\n daemon remain alive. *)\n\n val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_eio-subscription"},{"id":"Libtmux_eio.Subscription.close","publicId":"Libtmux_eio.Subscription.close","qualifiedName":"Libtmux_eio.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Discard pending data and retain End Cancelled. Borrowed clients and the\n daemon remain alive. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Discard pending data and retain End Cancelled. Borrowed clients and the daemon remain alive."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-close"},{"id":"Libtmux_eio.Subscription.next","publicId":"Libtmux_eio.Subscription.next","qualifiedName":"Libtmux_eio.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":88,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. "],"declarations":[{"kind":"function","text":"val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":88,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Await one event, defaulting to a one-second deadline. `None` follows a consumed End. A deadline keeps the subscription active. Eio cancellation closes it, releases its lane when unused, and propagates."},"signatures":[{"raw":"val next :\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-next"},{"id":"Libtmux_eio.Subscription.poll","publicId":"Libtmux_eio.Subscription.poll","qualifiedName":"Libtmux_eio.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":85,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove a queued event without I/O, on the owning domain. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":85,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Remove a queued event without I/O, on the owning domain."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-poll"},{"id":"Libtmux_eio.Subscription.t","publicId":"Libtmux_eio.Subscription.t","qualifiedName":"Libtmux_eio.Subscription.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-subscription-t"},{"id":"Libtmux_eio.Subscription.wait_for_bytes","publicId":"Libtmux_eio.Subscription.wait_for_bytes","qualifiedName":"Libtmux_eio.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Consume future observed bytes through a match, with a maximum 64 KiB nonempty pattern. Match across Data boundaries and return its end cursor. Gaps end matching. This searches neither rendered text nor history. A deadline leaves the subscription active; cancellation closes it.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_eio-subscription-wait_for_bytes"},{"id":"Libtmux_eio.Terminal","publicId":"Libtmux_eio.Terminal","qualifiedName":"Libtmux_eio.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_eio-terminal"},{"id":"Libtmux_eio.Terminal.attach_current","publicId":"Libtmux_eio.Terminal.attach_current","qualifiedName":"Libtmux_eio.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Terminal","doc":{"summary":"Run an interactive terminal client until exit, using the application's process manager and standard streams unless explicit flows are supplied. `stdin` must be backed by a terminal descriptor; a pipe-backed flow is rejected by tmux. Select the exact ID on the daemon currently listening at `endpoint`, without a captured target, binding, retry or daemon startup.","body":"Environment updates and read-only mode default to false. Clear inherited `TMUX` and `TMUX_PANE`. Cancellation propagates after terminating and reaping this client; it does not stop the daemon. Success proves terminal client exit. Diagnostics go to `stderr`; borrowed flows stay open."},"signatures":[{"raw":"val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:[> Eio.Flow.source_ty ] Eio.Flow.source ->\n ?stdout:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n ?stderr:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"[> Eio.Flow.source_ty ] Eio.Flow.source","optional":true,"keywordOnly":true},{"name":"stdout","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"stderr","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-terminal-attach_current"},{"id":"Libtmux_eio.Workspace","publicId":"Libtmux_eio.Workspace","qualifiedName":"Libtmux_eio.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":567,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Apply workspace plans through Eio while retaining journals across caller\n cancellation. Handles belong to the creating domain; the application owns\n the scheduler and switch. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. *)\n\n val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. *)\n\n val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Read a journal copy without I/O, including any late retained outcome. *)\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":567,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio","doc":{"summary":"Apply workspace plans through Eio while retaining journals across caller cancellation. Handles belong to the creating domain; the application owns the scheduler and switch."},"slug":"libtmux_eio-workspace"},{"id":"Libtmux_eio.Workspace.await","publicId":"Libtmux_eio.Workspace.await","qualifiedName":"Libtmux_eio.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. "],"declarations":[{"kind":"function","text":"val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Apply once. Expected failures return a retained journal. Eio cancellation propagates after progress is recorded and at most 500 ms of protected compensation. Admitted commands can still complete under client ownership; inspect the receipt before attempting manual recovery."},"signatures":[{"raw":"val await :\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-await"},{"id":"Libtmux_eio.Workspace.client","publicId":"Libtmux_eio.Workspace.client","qualifiedName":"Libtmux_eio.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_eio-workspace-client"},{"id":"Libtmux_eio.Workspace.close","publicId":"Libtmux_eio.Workspace.close","qualifiedName":"Libtmux_eio.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Closing is idempotent; completed journals remain readable."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-close"},{"id":"Libtmux_eio.Workspace.inspect","publicId":"Libtmux_eio.Workspace.inspect","qualifiedName":"Libtmux_eio.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read a journal copy without I/O, including any late retained outcome. "],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Read a journal copy without I/O, including any late retained outcome."},"signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-inspect"},{"id":"Libtmux_eio.Workspace.submit","publicId":"Libtmux_eio.Workspace.submit","qualifiedName":"Libtmux_eio.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":570,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":570,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a generation-bound handle without I/O. The supplied client is borrowed; closing the handle leaves it open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit"},{"id":"Libtmux_eio.Workspace.submit_bootstrap","publicId":"Libtmux_eio.Workspace.submit_bootstrap","qualifiedName":"Libtmux_eio.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a missing-endpoint execution without I/O. Await starts control new-session and binds that same connection. The handle owns its new client within `sw`; it never owns the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit_bootstrap"},{"id":"Libtmux_eio.Workspace.t","publicId":"Libtmux_eio.Workspace.t","qualifiedName":"Libtmux_eio.Workspace.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-workspace-t"},{"id":"Libtmux_json","publicId":"Libtmux_json","qualifiedName":"Libtmux_json","name":"Libtmux_json","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Pure, bounded query and workspace JSON interchange.\n\n {!Expr} validates portable queries and {!Workspace} decodes configurations\n and encodes plans and receipts. Both return {!Decode_error.t} on invalid\n data. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} and\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for complete programs. "],"declarations":[{"kind":"module","text":"","source":{"file":"json/libtmux_json.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"doc":{"summary":"Pure, bounded query and workspace JSON interchange.","body":"{!Expr} validates portable queries and {!Workspace} decodes configurations and encodes plans and receipts. Both return {!Decode_error.t} on invalid data. See the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) and [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for complete programs."},"slug":"libtmux_json"},{"id":"Libtmux_json.Decode_error","publicId":"Libtmux_json.Decode_error","qualifiedName":"Libtmux_json.Decode_error","name":"Decode_error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Decode_error : sig\n type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported\n\n type t = { pointer : string; category : category; message : string }\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"json/libtmux_json.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json","slug":"libtmux_json-decode_error"},{"id":"Libtmux_json.Decode_error.category","publicId":"Libtmux_json.Decode_error.category","qualifiedName":"Libtmux_json.Decode_error.category","name":"category","kind":"enum","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":12,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","source":{"file":"json/libtmux_json.mli","line":12,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type category =\n Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","params":[]}],"slug":"libtmux_json-decode_error-category"},{"id":"Libtmux_json.Decode_error.category.Limit","publicId":"Libtmux_json.Decode_error.category.Limit","name":"Limit","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Limit","source":{"file":"json/libtmux_json.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Limit","slug":"libtmux_json-decode_error-category-limit"},{"id":"Libtmux_json.Decode_error.category.Out_of_range","publicId":"Libtmux_json.Decode_error.category.Out_of_range","name":"Out_of_range","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Out_of_range","source":{"file":"json/libtmux_json.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Out_of_range","slug":"libtmux_json-decode_error-category-out_of_range"},{"id":"Libtmux_json.Decode_error.category.Syntax","publicId":"Libtmux_json.Decode_error.category.Syntax","name":"Syntax","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Syntax","source":{"file":"json/libtmux_json.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Syntax","slug":"libtmux_json-decode_error-category-syntax"},{"id":"Libtmux_json.Decode_error.category.Unknown","publicId":"Libtmux_json.Decode_error.category.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"json/libtmux_json.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unknown","slug":"libtmux_json-decode_error-category-unknown"},{"id":"Libtmux_json.Decode_error.category.Unsupported","publicId":"Libtmux_json.Decode_error.category.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"json/libtmux_json.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unsupported","slug":"libtmux_json-decode_error-category-unsupported"},{"id":"Libtmux_json.Decode_error.category.Wrong_type","publicId":"Libtmux_json.Decode_error.category.Wrong_type","name":"Wrong_type","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_type","source":{"file":"json/libtmux_json.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Wrong_type","slug":"libtmux_json-decode_error-category-wrong_type"},{"id":"Libtmux_json.Decode_error.pp","publicId":"Libtmux_json.Decode_error.pp","qualifiedName":"Libtmux_json.Decode_error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"json/libtmux_json.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux_json-decode_error-pp"},{"id":"Libtmux_json.Decode_error.t","publicId":"Libtmux_json.Decode_error.t","qualifiedName":"Libtmux_json.Decode_error.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = { pointer : string; category : category; message : string }","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type t = { pointer : string; category : category; message : string; }","params":[]}],"slug":"libtmux_json-decode_error-t"},{"id":"Libtmux_json.Decode_error.t.category","publicId":"Libtmux_json.Decode_error.t.category","name":"category","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"category : category;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.t","type":"category","qualifiedName":"Libtmux_json.Decode_error.category","slug":"libtmux_json-decode_error-t-category"},{"id":"Libtmux_json.Decode_error.t.message","publicId":"Libtmux_json.Decode_error.t.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.message","slug":"libtmux_json-decode_error-t-message"},{"id":"Libtmux_json.Decode_error.t.pointer","publicId":"Libtmux_json.Decode_error.t.pointer","name":"pointer","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pointer : string;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.pointer","slug":"libtmux_json-decode_error-t-pointer"},{"id":"Libtmux_json.Error","publicId":"Libtmux_json.Error","qualifiedName":"Libtmux_json.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Structured native failures for JSON consumers. "],"declarations":[{"kind":"module","text":"module Error : sig\n val encode : Libtmux.Error.t -> Yojson.Safe.t\n (** Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json","doc":{"summary":"Structured native failures for JSON consumers."},"slug":"libtmux_json-error"},{"id":"Libtmux_json.Error.encode","publicId":"Libtmux_json.Error.encode","qualifiedName":"Libtmux_json.Error.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. "],"declarations":[{"kind":"function","text":"val encode : Libtmux.Error.t -> Yojson.Safe.t","source":{"file":"json/libtmux_json.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Error","doc":{"summary":"Return a stable `code`, bounded `message`, `message_truncated` flag and relevant operation, resource or target metadata. Messages and text attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex representation described by {!Workspace.encode_receipt}. No I/O."},"signatures":[{"raw":"val encode : Libtmux.Error.t -> Yojson.Safe.t","params":[{"name":"arg1","type":"Libtmux.Error.t"}],"returns":"Yojson.Safe.t"}],"slug":"libtmux_json-error-encode"},{"id":"Libtmux_json.Expr","publicId":"Libtmux_json.Expr","qualifiedName":"Libtmux_json.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Expr : sig\n val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result\n (** Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. *)\n\n val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result\n (** Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. *)\n\n val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result\n\n val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result\n (** Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json","slug":"libtmux_json-expr"},{"id":"Libtmux_json.Expr.decode","publicId":"Libtmux_json.Expr.decode","qualifiedName":"Libtmux_json.Expr.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. "],"declarations":[{"kind":"function","text":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Validate the supplied tree, including duplicate properties, before typed construction. Only the shared scalar pane registry and Boolean composition are accepted. Java regex, relationships and native extension fields return `Unsupported`. Numbers must fit signed 32-bit integers."},"signatures":[{"raw":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"Yojson.Safe.t"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-decode"},{"id":"Libtmux_json.Expr.encode","publicId":"Libtmux_json.Expr.encode","qualifiedName":"Libtmux_json.Expr.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Expr","signatures":[{"raw":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-encode"},{"id":"Libtmux_json.Expr.of_string","publicId":"Libtmux_json.Expr.of_string","qualifiedName":"Libtmux_json.Expr.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. "],"declarations":[{"kind":"function","text":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at most 256 values. Errors include a JSON pointer, never the whole input."},"signatures":[{"raw":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"string"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-of_string"},{"id":"Libtmux_json.Expr.to_string","publicId":"Libtmux_json.Expr.to_string","qualifiedName":"Libtmux_json.Expr.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. "],"declarations":[{"kind":"function","text":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Apply the same bounds and subset when encoding. Text with invalid UTF-8 has no representation in this schema. These functions perform no I/O."},"signatures":[{"raw":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(string, Decode_error.t) result"}],"slug":"libtmux_json-expr-to_string"},{"id":"Libtmux_json.Workspace","publicId":"Libtmux_json.Workspace","qualifiedName":"Libtmux_json.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Validate workspace documents and describe plans and retained execution.\n Preview output never supplies executable targets. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n\n val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n (** Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. *)\n\n val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. *)\n\n val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. *)\nend","source":{"file":"json/libtmux_json.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json","doc":{"summary":"Validate workspace documents and describe plans and retained execution. Preview output never supplies executable targets."},"slug":"libtmux_json-workspace"},{"id":"Libtmux_json.Workspace.decode","publicId":"Libtmux_json.Workspace.decode","qualifiedName":"Libtmux_json.Workspace.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Workspace","signatures":[{"raw":"val decode :\n directory:string ->\n Yojson.Safe.t -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"Yojson.Safe.t"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-decode"},{"id":"Libtmux_json.Workspace.encode_plan","publicId":"Libtmux_json.Workspace.encode_plan","qualifiedName":"Libtmux_json.Workspace.encode_plan","name":"encode_plan","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. "],"declarations":[{"kind":"function","text":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-plan/1` without I/O. The advisory preview contains command argv, cwd and environment names, excluding environment values, option values and startup text. It is not an execution script."},"signatures":[{"raw":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_plan"},{"id":"Libtmux_json.Workspace.encode_receipt","publicId":"Libtmux_json.Workspace.encode_receipt","qualifiedName":"Libtmux_json.Workspace.encode_receipt","name":"encode_receipt","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. "],"declarations":[{"kind":"function","text":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-receipt/1` with ordered steps, outcome index lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic messages are limited to 4096 bytes with an explicit truncation flag; command payloads are omitted.","body":"Both output schemas have a 4 MiB bound. Invalid UTF-8 values use `{\"encoding\":\"hex\",\"bytes\":\"...\"}` instead of losing bytes. Imported IDs and hints never establish a connection binding."},"signatures":[{"raw":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Execution.receipt"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_receipt"},{"id":"Libtmux_json.Workspace.of_string","publicId":"Libtmux_json.Workspace.of_string","qualifiedName":"Libtmux_json.Workspace.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":42,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. "],"declarations":[{"kind":"function","text":"val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":42,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Decode `libtmux.workspace/1` with the query codec's 64 KiB, UTF-8 and 32-level JSON bounds. Reject duplicate and unknown properties, invalid argv/shell combinations and configuration errors. `directory` is the absolute document directory; these functions perform no filesystem I/O."},"signatures":[{"raw":"val of_string :\n directory:string ->\n string -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-of_string"},{"id":"Libtmux_unix","publicId":"Libtmux_unix","qualifiedName":"Libtmux_unix","name":"Libtmux_unix","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Blocking Linux tmux clients with explicit scoped cancellation.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md}control\n guide} explains binding, completion and recovery. "],"declarations":[{"kind":"module","text":"","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"doc":{"summary":"Blocking Linux tmux clients with explicit scoped cancellation.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [control guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md) explains binding, completion and recovery."},"slug":"libtmux_unix"},{"id":"Libtmux_unix.Cancellation","publicId":"Libtmux_unix.Cancellation","qualifiedName":"Libtmux_unix.Cancellation","name":"Cancellation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cancellation : sig\n type t\n\n exception Cancelled\n\n val with_ : (t -> 'a) -> 'a\n (** Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. *)\n\n val cancel : t -> unit\n (** Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","slug":"libtmux_unix-cancellation"},{"id":"Libtmux_unix.Cancellation.Cancelled","publicId":"Libtmux_unix.Cancellation.Cancelled","qualifiedName":"Libtmux_unix.Cancellation.Cancelled","name":"Cancelled","kind":"exception","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"exception","text":"exception Cancelled","source":{"file":"unix/libtmux_unix.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type exn += Cancelled","params":[]}],"slug":"libtmux_unix-cancellation-cancelled"},{"id":"Libtmux_unix.Cancellation.cancel","publicId":"Libtmux_unix.Cancellation.cancel","qualifiedName":"Libtmux_unix.Cancellation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. "],"declarations":[{"kind":"function","text":"val cancel : t -> unit","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Wake waiters. Safe from another domain or systhread, but not from a signal handler. Repeated calls and calls after scope exit have no effect."},"signatures":[{"raw":"val cancel : t -> unit","params":[{"name":"arg1","type":"t"}],"returns":"unit"}],"slug":"libtmux_unix-cancellation-cancel"},{"id":"Libtmux_unix.Cancellation.t","publicId":"Libtmux_unix.Cancellation.t","qualifiedName":"Libtmux_unix.Cancellation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-cancellation-t"},{"id":"Libtmux_unix.Cancellation.with_","publicId":"Libtmux_unix.Cancellation.with_","qualifiedName":"Libtmux_unix.Cancellation.with_","name":"with_","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. "],"declarations":[{"kind":"function","text":"val with_ : (t -> 'a) -> 'a","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Own a cancellation token for the callback's lifetime. Leaving the scope cancels outstanding waiters and releases its descriptors after they finish. An escaped token is cancelled and cannot be reused."},"signatures":[{"raw":"val with_ : (t -> 'a) -> 'a","params":[{"name":"arg1","type":"t -> 'a"}],"returns":"'a"}],"slug":"libtmux_unix-cancellation-with_"},{"id":"Libtmux_unix.Client","publicId":"Libtmux_unix.Client","qualifiedName":"Libtmux_unix.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. *)\n\n val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. No capture/stream barrier exists.\n *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve queue capacity without I/O. *)\n\n val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O must also finish. No background\n scheduler or worker is started. *)\n\n val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result\n (** Submit and await. Use the two calls separately to retain an operation\n handle. *)\n\n val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. *)\n\n val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Close owned control clients and descriptors. Idempotent on the owning\n domain. tmux's [exit-unattached] and [exit-empty] policies can end the\n daemon after its clients or sessions disappear. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_unix-client"},{"id":"Libtmux_unix.Client.await","publicId":"Libtmux_unix.Client.await","qualifiedName":"Libtmux_unix.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O must also finish. No background\n scheduler or worker is started. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Pump admitted work until this operation is finished. Only one blocking caller may own the client at a time. Cancellation removes queued work or drains admitted work before raising `Cancellation.Cancelled`. The handle retains its outcome. Draining has at most one exchange timeout from detection; local scratch filesystem I/O must also finish. No background scheduler or worker is started."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-await"},{"id":"Libtmux_unix.Client.break_pane","publicId":"Libtmux_unix.Client.break_pane","qualifiedName":"Libtmux_unix.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-break_pane"},{"id":"Libtmux_unix.Client.capture","publicId":"Libtmux_unix.Client.capture","qualifiedName":"Libtmux_unix.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. "],"declarations":[{"kind":"function","text":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a complete graph over a recorded interval, with a fixed number of listing commands. Races fail validation. Access to returned values performs no I/O, including after closing the client.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture"},{"id":"Libtmux_unix.Client.capture_environment","publicId":"Libtmux_unix.Client.capture_environment","qualifiedName":"Libtmux_unix.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":308,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":308,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_environment"},{"id":"Libtmux_unix.Client.capture_hooks","publicId":"Libtmux_unix.Client.capture_hooks","qualifiedName":"Libtmux_unix.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":405,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":405,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_hooks"},{"id":"Libtmux_unix.Client.capture_options","publicId":"Libtmux_unix.Client.capture_options","qualifiedName":"Libtmux_unix.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":348,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":348,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_options"},{"id":"Libtmux_unix.Client.capture_text","publicId":"Libtmux_unix.Client.capture_text","qualifiedName":"Libtmux_unix.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture ordinary rendered screen rows, inclusively, via an owned paste buffer and private file. Reject applicable capture/save hooks. The scratch directory defaults to `/tmp` and must be local storage shared with the daemon. Pending and alternate-screen byte modes are unsupported. This observes an interval and establishes no stream continuity barrier."},"signatures":[{"raw":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_text"},{"id":"Libtmux_unix.Client.clear_history","publicId":"Libtmux_unix.Client.clear_history","qualifiedName":"Libtmux_unix.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":677,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":677,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_history"},{"id":"Libtmux_unix.Client.clear_option_array","publicId":"Libtmux_unix.Client.clear_option_array","qualifiedName":"Libtmux_unix.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_option_array"},{"id":"Libtmux_unix.Client.close","publicId":"Libtmux_unix.Client.close","qualifiedName":"Libtmux_unix.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":687,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Close owned control clients and descriptors. Idempotent on the owning\n domain. tmux's [exit-unattached] and [exit-empty] policies can end the\n daemon after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":687,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Close owned control clients and descriptors. Idempotent on the owning domain. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-close"},{"id":"Libtmux_unix.Client.connect","publicId":"Libtmux_unix.Client.connect","qualifiedName":"Libtmux_unix.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":132,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. "],"declarations":[{"kind":"function","text":"val connect :\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Attach to an existing local daemon with at least one session. The caller and daemon must share the PID namespace and filesystem. A local socket pathname alone does not establish these preconditions. `timeout` is the maximum seconds per control exchange, defaulting to one second. Requires Linux pidfd support. The client belongs to the current domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?binary:string ->\n ?timeout:float -> Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-connect"},{"id":"Libtmux_unix.Client.create_session","publicId":"Libtmux_unix.Client.create_session","qualifiedName":"Libtmux_unix.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":463,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":463,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_session"},{"id":"Libtmux_unix.Client.create_window","publicId":"Libtmux_unix.Client.create_window","qualifiedName":"Libtmux_unix.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_create_window.ml","intro":"Create a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"created: logs\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_window"},{"id":"Libtmux_unix.Client.cycle_layout","publicId":"Libtmux_unix.Client.cycle_layout","qualifiedName":"Libtmux_unix.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-cycle_layout"},{"id":"Libtmux_unix.Client.kill_pane","publicId":"Libtmux_unix.Client.kill_pane","qualifiedName":"Libtmux_unix.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_pane"},{"id":"Libtmux_unix.Client.kill_session","publicId":"Libtmux_unix.Client.kill_session","qualifiedName":"Libtmux_unix.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":509,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":509,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_session"},{"id":"Libtmux_unix.Client.kill_window","publicId":"Libtmux_unix.Client.kill_window","qualifiedName":"Libtmux_unix.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":517,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":517,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_window"},{"id":"Libtmux_unix.Client.link_window","publicId":"Libtmux_unix.Client.link_window","qualifiedName":"Libtmux_unix.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-link_window"},{"id":"Libtmux_unix.Client.move_pane","publicId":"Libtmux_unix.Client.move_pane","qualifiedName":"Libtmux_unix.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_pane"},{"id":"Libtmux_unix.Client.move_window_at","publicId":"Libtmux_unix.Client.move_window_at","qualifiedName":"Libtmux_unix.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_move_window.ml","intro":"Move a window between sessions. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"moved: build at 7\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_window_at"},{"id":"Libtmux_unix.Client.read_hook","publicId":"Libtmux_unix.Client.read_hook","qualifiedName":"Libtmux_unix.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":413,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":413,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_hook"},{"id":"Libtmux_unix.Client.read_option","publicId":"Libtmux_unix.Client.read_option","qualifiedName":"Libtmux_unix.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":360,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":360,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_option"},{"id":"Libtmux_unix.Client.refresh_client_at","publicId":"Libtmux_unix.Client.refresh_client_at","qualifiedName":"Libtmux_unix.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":265,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":265,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-refresh_client_at"},{"id":"Libtmux_unix.Client.remove_environment","publicId":"Libtmux_unix.Client.remove_environment","qualifiedName":"Libtmux_unix.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_environment"},{"id":"Libtmux_unix.Client.remove_hook","publicId":"Libtmux_unix.Client.remove_hook","qualifiedName":"Libtmux_unix.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_hook"},{"id":"Libtmux_unix.Client.rename_session","publicId":"Libtmux_unix.Client.rename_session","qualifiedName":"Libtmux_unix.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_session"},{"id":"Libtmux_unix.Client.rename_window","publicId":"Libtmux_unix.Client.rename_window","qualifiedName":"Libtmux_unix.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_rename_window.ml","intro":"Rename a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"renamed: editor-main\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val rename_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_window"},{"id":"Libtmux_unix.Client.request_detach_client_at","publicId":"Libtmux_unix.Client.request_detach_client_at","qualifiedName":"Libtmux_unix.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":256,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":256,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-request_detach_client_at"},{"id":"Libtmux_unix.Client.resize_control_client_at","publicId":"Libtmux_unix.Client.resize_control_client_at","qualifiedName":"Libtmux_unix.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_control_client_at"},{"id":"Libtmux_unix.Client.resize_pane","publicId":"Libtmux_unix.Client.resize_pane","qualifiedName":"Libtmux_unix.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_pane"},{"id":"Libtmux_unix.Client.resize_window","publicId":"Libtmux_unix.Client.resize_window","qualifiedName":"Libtmux_unix.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_window"},{"id":"Libtmux_unix.Client.respawn_pane","publicId":"Libtmux_unix.Client.respawn_pane","qualifiedName":"Libtmux_unix.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-respawn_pane"},{"id":"Libtmux_unix.Client.rotate_panes","publicId":"Libtmux_unix.Client.rotate_panes","qualifiedName":"Libtmux_unix.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":650,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":650,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rotate_panes"},{"id":"Libtmux_unix.Client.run","publicId":"Libtmux_unix.Client.run","qualifiedName":"Libtmux_unix.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Submit and await. Use the two calls separately to retain an operation\n handle. "],"declarations":[{"kind":"function","text":"val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Submit and await. Use the two calls separately to retain an operation handle."},"signatures":[{"raw":"val run :\n ?cancel:Cancellation.t ->\n t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run"},{"id":"Libtmux_unix.Client.run_hook","publicId":"Libtmux_unix.Client.run_hook","qualifiedName":"Libtmux_unix.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run_hook"},{"id":"Libtmux_unix.Client.select_layout","publicId":"Libtmux_unix.Client.select_layout","qualifiedName":"Libtmux_unix.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_layout.ml","intro":"Apply a layout. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"layout: 3 horizontal panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_layout"},{"id":"Libtmux_unix.Client.select_pane","publicId":"Libtmux_unix.Client.select_pane","qualifiedName":"Libtmux_unix.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":573,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":573,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_pane"},{"id":"Libtmux_unix.Client.select_window_at","publicId":"Libtmux_unix.Client.select_window_at","qualifiedName":"Libtmux_unix.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":533,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":533,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_window_at"},{"id":"Libtmux_unix.Client.send_keys","publicId":"Libtmux_unix.Client.send_keys","qualifiedName":"Libtmux_unix.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":290,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":290,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_keys"},{"id":"Libtmux_unix.Client.send_text","publicId":"Libtmux_unix.Client.send_text","qualifiedName":"Libtmux_unix.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_text :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_text"},{"id":"Libtmux_unix.Client.set_environment","publicId":"Libtmux_unix.Client.set_environment","qualifiedName":"Libtmux_unix.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_environment"},{"id":"Libtmux_unix.Client.set_hook","publicId":"Libtmux_unix.Client.set_hook","qualifiedName":"Libtmux_unix.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_hook"},{"id":"Libtmux_unix.Client.set_option","publicId":"Libtmux_unix.Client.set_option","qualifiedName":"Libtmux_unix.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_option"},{"id":"Libtmux_unix.Client.set_pane_title","publicId":"Libtmux_unix.Client.set_pane_title","qualifiedName":"Libtmux_unix.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_pane_title"},{"id":"Libtmux_unix.Client.signal","publicId":"Libtmux_unix.Client.signal","qualifiedName":"Libtmux_unix.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":303,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":303,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-signal"},{"id":"Libtmux_unix.Client.source","publicId":"Libtmux_unix.Client.source","qualifiedName":"Libtmux_unix.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"unix/libtmux_unix.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_unix-client-source"},{"id":"Libtmux_unix.Client.split_pane","publicId":"Libtmux_unix.Client.split_pane","qualifiedName":"Libtmux_unix.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-split_pane"},{"id":"Libtmux_unix.Client.submit","publicId":"Libtmux_unix.Client.submit","qualifiedName":"Libtmux_unix.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate and reserve queue capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate and reserve queue capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-submit"},{"id":"Libtmux_unix.Client.subscribe","publicId":"Libtmux_unix.Client.subscribe","qualifiedName":"Libtmux_unix.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire verified coverage of the pane's observed session/window. Choose the least session ID unless explicitly supplied. Reuse one lane per session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16 subscribers and eight client lanes including commands. Reserve payload against the shared 32 MiB budget before admission.","body":"Data starts after admission's marker. Layout/membership changes end continuity conservatively. Overflow emits Gap then End, without blocking another subscriber. Blocking delivery advances during Subscription.next. There is no snapshot/history barrier or automatic recovery."},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-subscribe"},{"id":"Libtmux_unix.Client.swap_panes","publicId":"Libtmux_unix.Client.swap_panes","qualifiedName":"Libtmux_unix.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-swap_panes"},{"id":"Libtmux_unix.Client.switch_client_at","publicId":"Libtmux_unix.Client.switch_client_at","qualifiedName":"Libtmux_unix.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-switch_client_at"},{"id":"Libtmux_unix.Client.t","publicId":"Libtmux_unix.Client.t","qualifiedName":"Libtmux_unix.Client.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-client-t"},{"id":"Libtmux_unix.Client.unlink_window_at","publicId":"Libtmux_unix.Client.unlink_window_at","qualifiedName":"Libtmux_unix.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unlink_window_at"},{"id":"Libtmux_unix.Client.unset_environment","publicId":"Libtmux_unix.Client.unset_environment","qualifiedName":"Libtmux_unix.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":331,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":331,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_environment"},{"id":"Libtmux_unix.Client.unset_option","publicId":"Libtmux_unix.Client.unset_option","qualifiedName":"Libtmux_unix.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_option"},{"id":"Libtmux_unix.Client.version","publicId":"Libtmux_unix.Client.version","qualifiedName":"Libtmux_unix.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"unix/libtmux_unix.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_unix-client-version"},{"id":"Libtmux_unix.Client.wait_for","publicId":"Libtmux_unix.Client.wait_for","qualifiedName":"Libtmux_unix.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":299,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for"},{"id":"Libtmux_unix.Client.wait_for_text","publicId":"Libtmux_unix.Client.wait_for_text","qualifiedName":"Libtmux_unix.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. No capture/stream barrier exists.\n "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Subscribe, capture the ordinary screen immediately, and recapture after output. Membership/overflow gaps trigger explicit fresh capture and new coverage in the same binding. Maximum pattern: 64 KiB. Success returns a capture that contains the text. Transient text between captures may be missed. Check the deadline between bounded acquisitions; in-flight I/O retains the client's exchange timeout. No capture/stream barrier exists."},"signatures":[{"raw":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for_text"},{"id":"Libtmux_unix.Client.zoom_pane","publicId":"Libtmux_unix.Client.zoom_pane","qualifiedName":"Libtmux_unix.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":659,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":659,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-zoom_pane"},{"id":"Libtmux_unix.Operation","publicId":"Libtmux_unix.Operation","qualifiedName":"Libtmux_unix.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** No I/O. Results remain inspectable after client closure, on the owning\n domain. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_unix-operation"},{"id":"Libtmux_unix.Operation.cancel","publicId":"Libtmux_unix.Operation.cancel","qualifiedName":"Libtmux_unix.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"Remove queued work before it is written. Admitted commands retain their owner and are drained by {!Client.await}; cancellation does not undo effects. Returns `Busy` while another blocking caller owns the client; use a {!Cancellation.t} token to interrupt that caller."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-cancel"},{"id":"Libtmux_unix.Operation.cleanup_receipt","publicId":"Libtmux_unix.Operation.cleanup_receipt","qualifiedName":"Libtmux_unix.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n}","params":[]}],"slug":"libtmux_unix-operation-cleanup_receipt"},{"id":"Libtmux_unix.Operation.cleanup_receipt.cause","publicId":"Libtmux_unix.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"unix/libtmux_unix.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_unix.Operation.cause","slug":"libtmux_unix-operation-cleanup_receipt-cause"},{"id":"Libtmux_unix.Operation.cleanup_receipt.created","publicId":"Libtmux_unix.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"unix/libtmux_unix.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_unix.Operation.created","slug":"libtmux_unix-operation-cleanup_receipt-created"},{"id":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_unix.Operation.owned_buffers","slug":"libtmux_unix-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_unix.Operation.id","publicId":"Libtmux_unix.Operation.id","qualifiedName":"Libtmux_unix.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"unix/libtmux_unix.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_unix-operation-id"},{"id":"Libtmux_unix.Operation.inspect","publicId":"Libtmux_unix.Operation.inspect","qualifiedName":"Libtmux_unix.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" No I/O. Results remain inspectable after client closure, on the owning\n domain. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"No I/O. Results remain inspectable after client closure, on the owning domain."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-inspect"},{"id":"Libtmux_unix.Operation.state","publicId":"Libtmux_unix.Operation.state","qualifiedName":"Libtmux_unix.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a state =\n Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","params":[]}],"slug":"libtmux_unix-operation-state"},{"id":"Libtmux_unix.Operation.state.Acknowledged","publicId":"Libtmux_unix.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"unix/libtmux_unix.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Acknowledged","slug":"libtmux_unix-operation-state-acknowledged"},{"id":"Libtmux_unix.Operation.state.Finished","publicId":"Libtmux_unix.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":77,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":77,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Finished","slug":"libtmux_unix-operation-state-finished"},{"id":"Libtmux_unix.Operation.state.Not_started","publicId":"Libtmux_unix.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"unix/libtmux_unix.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Not_started","slug":"libtmux_unix-operation-state-not_started"},{"id":"Libtmux_unix.Operation.state.Outcome_unknown","publicId":"Libtmux_unix.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":78,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":78,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Outcome_unknown","slug":"libtmux_unix-operation-state-outcome_unknown"},{"id":"Libtmux_unix.Operation.state.Queued","publicId":"Libtmux_unix.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Queued","slug":"libtmux_unix-operation-state-queued"},{"id":"Libtmux_unix.Operation.state.Written","publicId":"Libtmux_unix.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"unix/libtmux_unix.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Written","slug":"libtmux_unix-operation-state-written"},{"id":"Libtmux_unix.Operation.t","publicId":"Libtmux_unix.Operation.t","qualifiedName":"Libtmux_unix.Operation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"unix/libtmux_unix.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-operation-t"},{"id":"Libtmux_unix.Rendered","publicId":"Libtmux_unix.Rendered","qualifiedName":"Libtmux_unix.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Blocking native Linux transport. No Eio scheduler is started. "],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"unix/libtmux_unix.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","doc":{"summary":"Blocking native Linux transport. No Eio scheduler is started."},"exportedFrom":"Libtmux.Captured_text","slug":"libtmux_unix-rendered"},{"id":"Libtmux_unix.Subscription","publicId":"Libtmux_unix.Subscription","qualifiedName":"Libtmux_unix.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. *)\n\n val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Discard pending data and retain End Cancelled. Release an unused lane.\n Does not stop the daemon. *)\n\n val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_unix-subscription"},{"id":"Libtmux_unix.Subscription.close","publicId":"Libtmux_unix.Subscription.close","qualifiedName":"Libtmux_unix.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Discard pending data and retain End Cancelled. Release an unused lane.\n Does not stop the daemon. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Discard pending data and retain End Cancelled. Release an unused lane. Does not stop the daemon."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-close"},{"id":"Libtmux_unix.Subscription.next","publicId":"Libtmux_unix.Subscription.next","qualifiedName":"Libtmux_unix.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. "],"declarations":[{"kind":"function","text":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Pump all subscription lanes until one event is available. Default deadline is one second. `None` follows a consumed End. A deadline keeps the subscription active; cancellation closes it and raises Cancelled."},"signatures":[{"raw":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-next"},{"id":"Libtmux_unix.Subscription.poll","publicId":"Libtmux_unix.Subscription.poll","qualifiedName":"Libtmux_unix.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Remove a queued event without I/O. Owning domain only, including after client closure. `None` means no queued event, not proof of continuity."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-poll"},{"id":"Libtmux_unix.Subscription.t","publicId":"Libtmux_unix.Subscription.t","qualifiedName":"Libtmux_unix.Subscription.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-subscription-t"},{"id":"Libtmux_unix.Subscription.wait_for_bytes","publicId":"Libtmux_unix.Subscription.wait_for_bytes","qualifiedName":"Libtmux_unix.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Consume future bytes until the nonempty pattern matches, including across Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's end within its consumed event. Gaps stop matching; no rendered or earlier output is searched. Timeout leaves the subscription active."},"signatures":[{"raw":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_unix-subscription-wait_for_bytes"},{"id":"Libtmux_unix.Terminal","publicId":"Libtmux_unix.Terminal","qualifiedName":"Libtmux_unix.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises [Cancellation.Cancelled]. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_unix-terminal"},{"id":"Libtmux_unix.Terminal.attach_current","publicId":"Libtmux_unix.Terminal.attach_current","qualifiedName":"Libtmux_unix.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises [Cancellation.Cancelled]. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Terminal","doc":{"summary":"Run an interactive terminal client until it exits. Select the exact session ID on the daemon currently listening at `endpoint`; this is explicitly unbound and accepts no captured target. No retry or daemon startup occurs. A successful result proves client exit, not continued attachment. Diagnostics go to `stderr`.","body":"Descriptors default to the application's standard streams and remain caller-owned. `stdin` must be a terminal. Environment updates and read-only mode are disabled by default; inherited `TMUX` and `TMUX_PANE` are removed. Cancellation terminates and reaps this terminal client, leaves the daemon running, then raises `Cancellation.Cancelled`."},"signatures":[{"raw":"val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stdout","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stderr","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-terminal-attach_current"},{"id":"Libtmux_unix.Workspace","publicId":"Libtmux_unix.Workspace","qualifiedName":"Libtmux_unix.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":696,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Apply validated plans with blocking I/O and scoped cancellation tokens.\n Execution handles retain journals and borrow existing clients; bootstrap\n handles own their newly bound clients without owning the daemon. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. *)\n\n val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. *)\n\n val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":696,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","doc":{"summary":"Apply validated plans with blocking I/O and scoped cancellation tokens. Execution handles retain journals and borrow existing clients; bootstrap handles own their newly bound clients without owning the daemon."},"slug":"libtmux_unix-workspace"},{"id":"Libtmux_unix.Workspace.await","publicId":"Libtmux_unix.Workspace.await","qualifiedName":"Libtmux_unix.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":713,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":713,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Expected apply failures are retained receipts. Cancellation propagates after recording progress and at most 500 ms of protected compensation."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-await"},{"id":"Libtmux_unix.Workspace.client","publicId":"Libtmux_unix.Workspace.client","qualifiedName":"Libtmux_unix.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"unix/libtmux_unix.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_unix-workspace-client"},{"id":"Libtmux_unix.Workspace.close","publicId":"Libtmux_unix.Workspace.close","qualifiedName":"Libtmux_unix.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Completed journals remain readable after close."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-close"},{"id":"Libtmux_unix.Workspace.inspect","publicId":"Libtmux_unix.Workspace.inspect","qualifiedName":"Libtmux_unix.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-inspect"},{"id":"Libtmux_unix.Workspace.submit","publicId":"Libtmux_unix.Workspace.submit","qualifiedName":"Libtmux_unix.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":699,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":699,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a generation-bound execution handle without I/O. The caller owns the supplied client; closing this handle leaves that client open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit"},{"id":"Libtmux_unix.Workspace.submit_bootstrap","publicId":"Libtmux_unix.Workspace.submit_bootstrap","qualifiedName":"Libtmux_unix.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":704,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":704,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a handle for a missing-endpoint plan. Awaiting it starts control new-session and binds the same connection. The handle owns its new client; it never acquires ownership of the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit_bootstrap"},{"id":"Libtmux_unix.Workspace.t","publicId":"Libtmux_unix.Workspace.t","qualifiedName":"Libtmux_unix.Workspace.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-workspace-t"},{"id":"Libtmux_workspace","publicId":"Libtmux_workspace","qualifiedName":"Libtmux_workspace","name":"Libtmux_workspace","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" {!Config} validates workspace descriptions and {!Plan} previews their\n actions without I/O. {!Execution} delegates effects to an explicit executor\n and retains a recovery journal. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for JSON loading, preview, apply and receipt inspection. "],"declarations":[{"kind":"module","text":"","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"doc":{"summary":"{!Config} validates workspace descriptions and {!Plan} previews their actions without I/O. {!Execution} delegates effects to an explicit executor and retains a recovery journal. See the [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for JSON loading, preview, apply and receipt inspection."},"slug":"libtmux_workspace"},{"id":"Libtmux_workspace.Config","publicId":"Libtmux_workspace.Config","qualifiedName":"Libtmux_workspace.Config","name":"Config","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Validate native workspace values without contacting tmux or reading the\n filesystem. Relative directories resolve against the document directory;\n only declared variables participate in expansion. "],"declarations":[{"kind":"module","text":"module Config : sig\n type error = { path : string; message : string }\n\n val pp_error : Format.formatter -> error -> unit\n\n type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }\n\n type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n\n type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }\n\n type t\n\n val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane\n\n val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window\n (** Builders are unchecked descriptions; {!make} validates the whole document.\n *)\n\n val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result\n (** Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. *)\n\n val session : t -> string\n val windows : t -> window Iarray.t\n val environment : t -> (string * string) list\n val options : t -> setting list\n val dimensions : t -> int * int\nend","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace","doc":{"summary":"Validate native workspace values without contacting tmux or reading the filesystem. Relative directories resolve against the document directory; only declared variables participate in expansion."},"slug":"libtmux_workspace-config"},{"id":"Libtmux_workspace.Config.dimensions","publicId":"Libtmux_workspace.Config.dimensions","qualifiedName":"Libtmux_workspace.Config.dimensions","name":"dimensions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dimensions : t -> int * int","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val dimensions : t -> int * int","params":[{"name":"arg1","type":"t"}],"returns":"int * int"}],"slug":"libtmux_workspace-config-dimensions"},{"id":"Libtmux_workspace.Config.environment","publicId":"Libtmux_workspace.Config.environment","qualifiedName":"Libtmux_workspace.Config.environment","name":"environment","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val environment : t -> (string * string) list","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val environment : t -> (string * string) list","params":[{"name":"arg1","type":"t"}],"returns":"(string * string) list"}],"slug":"libtmux_workspace-config-environment"},{"id":"Libtmux_workspace.Config.error","publicId":"Libtmux_workspace.Config.error","qualifiedName":"Libtmux_workspace.Config.error","name":"error","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type error = { path : string; message : string }","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type error = { path : string; message : string; }","params":[]}],"slug":"libtmux_workspace-config-error"},{"id":"Libtmux_workspace.Config.error.message","publicId":"Libtmux_workspace.Config.error.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.message","slug":"libtmux_workspace-config-error-message"},{"id":"Libtmux_workspace.Config.error.path","publicId":"Libtmux_workspace.Config.error.path","name":"path","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"path : string;","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.path","slug":"libtmux_workspace-config-error-path"},{"id":"Libtmux_workspace.Config.make","publicId":"Libtmux_workspace.Config.make","qualifiedName":"Libtmux_workspace.Config.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. "],"declarations":[{"kind":"function","text":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Resolve relative working directories against the absolute document directory. Explicit variables expand `${NAME}` in directories only; they never read the process environment. Cycles and unknown names fail. Command arguments, shell code, startup text and environment values remain literal.","body":"At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names and settings must be unique in their scope. No filesystem is consulted."},"signatures":[{"raw":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string -> session:string -> window list -> (t, error) result","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"variables","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"directory","type":"string","keywordOnly":true},{"name":"session","type":"string","keywordOnly":true},{"name":"arg1","type":"window list"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-config-make"},{"id":"Libtmux_workspace.Config.options","publicId":"Libtmux_workspace.Config.options","qualifiedName":"Libtmux_workspace.Config.options","name":"options","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val options : t -> setting list","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val options : t -> setting list","params":[{"name":"arg1","type":"t"}],"returns":"setting list"}],"slug":"libtmux_workspace-config-options"},{"id":"Libtmux_workspace.Config.pane","publicId":"Libtmux_workspace.Config.pane","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size -> unit -> pane","params":[{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"startup","type":"string list","optional":true,"keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"pane"}],"slug":"libtmux_workspace-config-pane"},{"id":"Libtmux_workspace.Config.pane:type","publicId":"Libtmux_workspace.Config.pane:type","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n}","params":[]}],"slug":"libtmux_workspace-config-pane-type"},{"id":"Libtmux_workspace.Config.pane:type.direction","publicId":"Libtmux_workspace.Config.pane:type.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Config.direction","slug":"libtmux_workspace-config-pane-type-direction"},{"id":"Libtmux_workspace.Config.pane:type.options","publicId":"Libtmux_workspace.Config.pane:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-pane-type-options"},{"id":"Libtmux_workspace.Config.pane:type.size","publicId":"Libtmux_workspace.Config.pane:type.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Config.size","slug":"libtmux_workspace-config-pane-type-size"},{"id":"Libtmux_workspace.Config.pane:type.spawn","publicId":"Libtmux_workspace.Config.pane:type.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Config.spawn","slug":"libtmux_workspace-config-pane-type-spawn"},{"id":"Libtmux_workspace.Config.pane:type.startup","publicId":"Libtmux_workspace.Config.pane:type.startup","name":"startup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"startup : string list;","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"string list","qualifiedName":"Libtmux_workspace.Config.startup","slug":"libtmux_workspace-config-pane-type-startup"},{"id":"Libtmux_workspace.Config.pp_error","publicId":"Libtmux_workspace.Config.pp_error","qualifiedName":"Libtmux_workspace.Config.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-config-pp_error"},{"id":"Libtmux_workspace.Config.session","publicId":"Libtmux_workspace.Config.session","qualifiedName":"Libtmux_workspace.Config.session","name":"session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> string","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val session : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_workspace-config-session"},{"id":"Libtmux_workspace.Config.setting","publicId":"Libtmux_workspace.Config.setting","qualifiedName":"Libtmux_workspace.Config.setting","name":"setting","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n}","params":[]}],"slug":"libtmux_workspace-config-setting"},{"id":"Libtmux_workspace.Config.setting.index","publicId":"Libtmux_workspace.Config.setting.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.setting","type":"int option","qualifiedName":"Libtmux_workspace.Config.index","slug":"libtmux_workspace-config-setting-index"},{"id":"Libtmux_workspace.Config.setting.name","publicId":"Libtmux_workspace.Config.setting.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.setting","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-setting-name"},{"id":"Libtmux_workspace.Config.setting.value","publicId":"Libtmux_workspace.Config.setting.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Libtmux.Options.scalar;","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.setting","type":"Libtmux.Options.scalar","qualifiedName":"Libtmux_workspace.Config.value","slug":"libtmux_workspace-config-setting-value"},{"id":"Libtmux_workspace.Config.t","publicId":"Libtmux_workspace.Config.t","qualifiedName":"Libtmux_workspace.Config.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-config-t"},{"id":"Libtmux_workspace.Config.window","publicId":"Libtmux_workspace.Config.window","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Builders are unchecked descriptions; {!make} validates the whole document.\n "],"declarations":[{"kind":"function","text":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Builders are unchecked descriptions; {!make} validates the whole document."},"signatures":[{"raw":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t -> name:string -> pane list -> window","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"layout","type":"Libtmux.Layout.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"pane list"}],"returns":"window"}],"slug":"libtmux_workspace-config-window"},{"id":"Libtmux_workspace.Config.window:type","publicId":"Libtmux_workspace.Config.window:type","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n}","params":[]}],"slug":"libtmux_workspace-config-window-type"},{"id":"Libtmux_workspace.Config.window:type.cwd","publicId":"Libtmux_workspace.Config.window:type.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string option","qualifiedName":"Libtmux_workspace.Config.cwd","slug":"libtmux_workspace-config-window-type-cwd"},{"id":"Libtmux_workspace.Config.window:type.environment","publicId":"Libtmux_workspace.Config.window:type.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.window:type","type":"(string * string) list","qualifiedName":"Libtmux_workspace.Config.environment","slug":"libtmux_workspace-config-window-type-environment"},{"id":"Libtmux_workspace.Config.window:type.layout","publicId":"Libtmux_workspace.Config.window:type.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : Libtmux.Layout.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.window:type","type":"Libtmux.Layout.t option","qualifiedName":"Libtmux_workspace.Config.layout","slug":"libtmux_workspace-config-window-type-layout"},{"id":"Libtmux_workspace.Config.window:type.name","publicId":"Libtmux_workspace.Config.window:type.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-window-type-name"},{"id":"Libtmux_workspace.Config.window:type.options","publicId":"Libtmux_workspace.Config.window:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.window:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-window-type-options"},{"id":"Libtmux_workspace.Config.window:type.panes","publicId":"Libtmux_workspace.Config.window:type.panes","name":"panes","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"panes : pane list;","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.window:type","type":"pane list","qualifiedName":"Libtmux_workspace.Config.panes","slug":"libtmux_workspace-config-window-type-panes"},{"id":"Libtmux_workspace.Config.windows","publicId":"Libtmux_workspace.Config.windows","qualifiedName":"Libtmux_workspace.Config.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> window Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val windows : t -> window Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"window Iarray.t"}],"slug":"libtmux_workspace-config-windows"},{"id":"Libtmux_workspace.Execution","publicId":"Libtmux_workspace.Execution","qualifiedName":"Libtmux_workspace.Execution","name":"Execution","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":162,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Apply a plan once and retain an immutable journal of effects, uncertainty\n and cleanup. Ordinary applications use their backend's Workspace module;\n executors below integrate another transport. "],"declarations":[{"kind":"module","text":"module Execution : sig\n type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }\n (** A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. *)\n\n type certainty = Not_started | Applied | Unknown\n\n type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }\n (** Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. *)\n\n type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t\n\n type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }\n\n type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t\n\n type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }\n\n type t\n\n val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. *)\n\n val inspect : t -> receipt\n (** Return an immutable copy of the retained journal without I/O. *)\n\n val await : ?compensate_on_failure:bool -> t -> receipt\n (** Execute once, rechecking generation and captured preconditions first.\n Expected failures return a partial journal. Exceptions, including native\n cancellation, propagate after recording progress and bounded compensation.\n Subsequent calls only return the retained receipt; mutations never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":162,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace","doc":{"summary":"Apply a plan once and retain an immutable journal of effects, uncertainty and cleanup. Ordinary applications use their backend's Workspace module; executors below integrate another transport."},"slug":"libtmux_workspace-execution"},{"id":"Libtmux_workspace.Execution.await","publicId":"Libtmux_workspace.Execution.await","qualifiedName":"Libtmux_workspace.Execution.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Execute once, rechecking generation and captured preconditions first.\n Expected failures return a partial journal. Exceptions, including native\n cancellation, propagate after recording progress and bounded compensation.\n Subsequent calls only return the retained receipt; mutations never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. "],"declarations":[{"kind":"function","text":"val await : ?compensate_on_failure:bool -> t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Execute once, rechecking generation and captured preconditions first. Expected failures return a partial journal. Exceptions, including native cancellation, propagate after recording progress and bounded compensation. Subsequent calls only return the retained receipt; mutations never retry.","body":"Compensation kills only panes reported by completed creation commands, in reverse creation order. tmux removes windows and sessions that become empty. Containers with foreign panes or window links remain; adding a borrowed pane never makes it eligible for cleanup. Cleanup failures have separate outcomes."},"signatures":[{"raw":"val await : ?compensate_on_failure:bool -> t -> receipt","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-await"},{"id":"Libtmux_workspace.Execution.certainty","publicId":"Libtmux_workspace.Execution.certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","name":"certainty","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type certainty = Not_started | Applied | Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type certainty = Not_started | Applied | Unknown","params":[]}],"slug":"libtmux_workspace-execution-certainty"},{"id":"Libtmux_workspace.Execution.certainty.Applied","publicId":"Libtmux_workspace.Execution.certainty.Applied","name":"Applied","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applied","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applied","slug":"libtmux_workspace-execution-certainty-applied"},{"id":"Libtmux_workspace.Execution.certainty.Not_started","publicId":"Libtmux_workspace.Execution.certainty.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Not_started","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Not_started","slug":"libtmux_workspace-execution-certainty-not_started"},{"id":"Libtmux_workspace.Execution.certainty.Unknown","publicId":"Libtmux_workspace.Execution.certainty.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Unknown","slug":"libtmux_workspace-execution-certainty-unknown"},{"id":"Libtmux_workspace.Execution.cleanup","publicId":"Libtmux_workspace.Execution.cleanup","qualifiedName":"Libtmux_workspace.Execution.cleanup","name":"cleanup","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n}","params":[]}],"slug":"libtmux_workspace-execution-cleanup"},{"id":"Libtmux_workspace.Execution.cleanup.outcome","publicId":"Libtmux_workspace.Execution.cleanup.outcome","name":"outcome","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":214,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"outcome : (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":214,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"(unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.outcome","slug":"libtmux_workspace-execution-cleanup-outcome"},{"id":"Libtmux_workspace.Execution.cleanup.pane","publicId":"Libtmux_workspace.Execution.cleanup.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.target;","source":{"file":"workspace/libtmux_workspace.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"Libtmux.Pane.target","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-cleanup-pane"},{"id":"Libtmux_workspace.Execution.create","publicId":"Libtmux_workspace.Execution.create","qualifiedName":"Libtmux_workspace.Execution.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":237,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. "],"declarations":[{"kind":"function","text":"val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"workspace/libtmux_workspace.mli","line":237,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Allocate a retained handle without I/O. IDs have 1..64 ASCII letters, digits, underscores or hyphens."},"signatures":[{"raw":"val create :\n operation_id:string ->\n executor:executor -> Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"operation_id","type":"string","keywordOnly":true},{"name":"executor","type":"executor","keywordOnly":true},{"name":"arg1","type":"Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_workspace-execution-create"},{"id":"Libtmux_workspace.Execution.executor","publicId":"Libtmux_workspace.Execution.executor","qualifiedName":"Libtmux_workspace.Execution.executor","name":"executor","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. "],"declarations":[{"kind":"struct","text":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Backend integration: `inspect` returns a callback tied to the latest operation, reading only its retained state even after later submissions. `protect` bounds compensation and shields it from caller cancellation, reporting expected failures as `Error`. Ordinary callers use their backend's Workspace API."},"signatures":[{"raw":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n}","params":[]}],"slug":"libtmux_workspace-execution-executor"},{"id":"Libtmux_workspace.Execution.executor.bootstrap","publicId":"Libtmux_workspace.Execution.executor.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.executor","type":"Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.bootstrap","slug":"libtmux_workspace-execution-executor-bootstrap"},{"id":"Libtmux_workspace.Execution.executor.capture","publicId":"Libtmux_workspace.Execution.executor.capture","name":"capture","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":184,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":184,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.capture","slug":"libtmux_workspace-execution-executor-capture"},{"id":"Libtmux_workspace.Execution.executor.inspect","publicId":"Libtmux_workspace.Execution.executor.inspect","name":"inspect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inspect : unit -> unit -> observation;","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> unit -> observation","qualifiedName":"Libtmux_workspace.Execution.inspect","slug":"libtmux_workspace-execution-executor-inspect"},{"id":"Libtmux_workspace.Execution.executor.protect","publicId":"Libtmux_workspace.Execution.executor.protect","name":"protect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.executor","type":"(unit -> unit) -> (unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.protect","slug":"libtmux_workspace-execution-executor-protect"},{"id":"Libtmux_workspace.Execution.executor.run","publicId":"Libtmux_workspace.Execution.executor.run","name":"run","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.executor","type":"'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.run","slug":"libtmux_workspace-execution-executor-run"},{"id":"Libtmux_workspace.Execution.executor.source","publicId":"Libtmux_workspace.Execution.executor.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : unit -> Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-executor-source"},{"id":"Libtmux_workspace.Execution.hint","publicId":"Libtmux_workspace.Execution.hint","qualifiedName":"Libtmux_workspace.Execution.hint","name":"hint","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. "],"declarations":[{"kind":"struct","text":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"A creation row received before daemon binding finished. Hints are not operational targets and are never eligible for automatic compensation."},"signatures":[{"raw":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n}","params":[]}],"slug":"libtmux_workspace-execution-hint"},{"id":"Libtmux_workspace.Execution.hint.pane","publicId":"Libtmux_workspace.Execution.hint.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-hint-pane"},{"id":"Libtmux_workspace.Execution.hint.pane_index","publicId":"Libtmux_workspace.Execution.hint.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.pane_index","slug":"libtmux_workspace-execution-hint-pane_index"},{"id":"Libtmux_workspace.Execution.hint.server_pid","publicId":"Libtmux_workspace.Execution.hint.server_pid","name":"server_pid","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"server_pid : int;","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.server_pid","slug":"libtmux_workspace-execution-hint-server_pid"},{"id":"Libtmux_workspace.Execution.hint.session","publicId":"Libtmux_workspace.Execution.hint.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Libtmux.Session.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Session.Id.t","qualifiedName":"Libtmux_workspace.Execution.session","slug":"libtmux_workspace-execution-hint-session"},{"id":"Libtmux_workspace.Execution.hint.window","publicId":"Libtmux_workspace.Execution.hint.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Libtmux.Window.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Window.Id.t","qualifiedName":"Libtmux_workspace.Execution.window","slug":"libtmux_workspace-execution-hint-window"},{"id":"Libtmux_workspace.Execution.hint.window_index","publicId":"Libtmux_workspace.Execution.hint.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.window_index","slug":"libtmux_workspace-execution-hint-window_index"},{"id":"Libtmux_workspace.Execution.inspect","publicId":"Libtmux_workspace.Execution.inspect","qualifiedName":"Libtmux_workspace.Execution.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Return an immutable copy of the retained journal without I/O. "],"declarations":[{"kind":"function","text":"val inspect : t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Return an immutable copy of the retained journal without I/O."},"signatures":[{"raw":"val inspect : t -> receipt","params":[{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-inspect"},{"id":"Libtmux_workspace.Execution.observation","publicId":"Libtmux_workspace.Execution.observation","qualifiedName":"Libtmux_workspace.Execution.observation","name":"observation","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":176,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":176,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n}","params":[]}],"slug":"libtmux_workspace-execution-observation"},{"id":"Libtmux_workspace.Execution.observation.certainty","publicId":"Libtmux_workspace.Execution.observation.certainty","name":"certainty","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"certainty : certainty;","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.observation","type":"certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","slug":"libtmux_workspace-execution-observation-certainty"},{"id":"Libtmux_workspace.Execution.observation.created","publicId":"Libtmux_workspace.Execution.observation.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.observation","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-observation-created"},{"id":"Libtmux_workspace.Execution.observation.unbound","publicId":"Libtmux_workspace.Execution.observation.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.observation","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-observation-unbound"},{"id":"Libtmux_workspace.Execution.receipt","publicId":"Libtmux_workspace.Execution.receipt","qualifiedName":"Libtmux_workspace.Execution.receipt","name":"receipt","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n}","params":[]}],"slug":"libtmux_workspace-execution-receipt"},{"id":"Libtmux_workspace.Execution.receipt.cleanup","publicId":"Libtmux_workspace.Execution.receipt.cleanup","name":"cleanup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup : cleanup Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"cleanup Iarray.t","qualifiedName":"Libtmux_workspace.Execution.cleanup","slug":"libtmux_workspace-execution-receipt-cleanup"},{"id":"Libtmux_workspace.Execution.receipt.cleanup_error","publicId":"Libtmux_workspace.Execution.receipt.cleanup_error","name":"cleanup_error","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup_error : Libtmux.Error.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_workspace.Execution.cleanup_error","slug":"libtmux_workspace-execution-receipt-cleanup_error"},{"id":"Libtmux_workspace.Execution.receipt.operation_id","publicId":"Libtmux_workspace.Execution.receipt.operation_id","name":"operation_id","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation_id : string;","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"string","qualifiedName":"Libtmux_workspace.Execution.operation_id","slug":"libtmux_workspace-execution-receipt-operation_id"},{"id":"Libtmux_workspace.Execution.receipt.source","publicId":"Libtmux_workspace.Execution.receipt.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":228,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":228,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-receipt-source"},{"id":"Libtmux_workspace.Execution.receipt.status","publicId":"Libtmux_workspace.Execution.receipt.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : status;","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-receipt-status"},{"id":"Libtmux_workspace.Execution.receipt.steps","publicId":"Libtmux_workspace.Execution.receipt.steps","name":"steps","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"steps : step Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"step Iarray.t","qualifiedName":"Libtmux_workspace.Execution.steps","slug":"libtmux_workspace-execution-receipt-steps"},{"id":"Libtmux_workspace.Execution.status","publicId":"Libtmux_workspace.Execution.status","qualifiedName":"Libtmux_workspace.Execution.status","name":"status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type status =\n Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","params":[]}],"slug":"libtmux_workspace-execution-status"},{"id":"Libtmux_workspace.Execution.status.Applying","publicId":"Libtmux_workspace.Execution.status.Applying","name":"Applying","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applying","source":{"file":"workspace/libtmux_workspace.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applying","slug":"libtmux_workspace-execution-status-applying"},{"id":"Libtmux_workspace.Execution.status.Interrupted","publicId":"Libtmux_workspace.Execution.status.Interrupted","name":"Interrupted","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Interrupted","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Interrupted","slug":"libtmux_workspace-execution-status-interrupted"},{"id":"Libtmux_workspace.Execution.status.Partial","publicId":"Libtmux_workspace.Execution.status.Partial","name":"Partial","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Partial","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Partial","slug":"libtmux_workspace-execution-status-partial"},{"id":"Libtmux_workspace.Execution.status.Queued","publicId":"Libtmux_workspace.Execution.status.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"workspace/libtmux_workspace.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Queued","slug":"libtmux_workspace-execution-status-queued"},{"id":"Libtmux_workspace.Execution.status.Rejected","publicId":"Libtmux_workspace.Execution.status.Rejected","name":"Rejected","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rejected of Plan.error","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Rejected","slug":"libtmux_workspace-execution-status-rejected"},{"id":"Libtmux_workspace.Execution.status.Succeeded","publicId":"Libtmux_workspace.Execution.status.Succeeded","name":"Succeeded","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Succeeded","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Succeeded","slug":"libtmux_workspace-execution-status-succeeded"},{"id":"Libtmux_workspace.Execution.status.Unavailable","publicId":"Libtmux_workspace.Execution.status.Unavailable","name":"Unavailable","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Unavailable","slug":"libtmux_workspace-execution-status-unavailable"},{"id":"Libtmux_workspace.Execution.step","publicId":"Libtmux_workspace.Execution.step","qualifiedName":"Libtmux_workspace.Execution.step","name":"step","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n}","params":[]}],"slug":"libtmux_workspace-execution-step"},{"id":"Libtmux_workspace.Execution.step.action","publicId":"Libtmux_workspace.Execution.step.action","name":"action","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"action : Plan.action;","source":{"file":"workspace/libtmux_workspace.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step","type":"Plan.action","qualifiedName":"Libtmux_workspace.Execution.action","slug":"libtmux_workspace-execution-step-action"},{"id":"Libtmux_workspace.Execution.step.created","publicId":"Libtmux_workspace.Execution.step.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-step-created"},{"id":"Libtmux_workspace.Execution.step.index","publicId":"Libtmux_workspace.Execution.step.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step","type":"int","qualifiedName":"Libtmux_workspace.Execution.index","slug":"libtmux_workspace-execution-step-index"},{"id":"Libtmux_workspace.Execution.step.status","publicId":"Libtmux_workspace.Execution.step.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : step_status;","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step","type":"step_status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-step-status"},{"id":"Libtmux_workspace.Execution.step.unbound","publicId":"Libtmux_workspace.Execution.step.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-step-unbound"},{"id":"Libtmux_workspace.Execution.step_status","publicId":"Libtmux_workspace.Execution.step_status","qualifiedName":"Libtmux_workspace.Execution.step_status","name":"step_status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":196,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":196,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step_status =\n Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","params":[]}],"slug":"libtmux_workspace-execution-step_status"},{"id":"Libtmux_workspace.Execution.step_status.Completed","publicId":"Libtmux_workspace.Execution.step_status.Completed","name":"Completed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Completed","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Completed","slug":"libtmux_workspace-execution-step_status-completed"},{"id":"Libtmux_workspace.Execution.step_status.Failed","publicId":"Libtmux_workspace.Execution.step_status.Failed","name":"Failed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Failed of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Failed","slug":"libtmux_workspace-execution-step_status-failed"},{"id":"Libtmux_workspace.Execution.step_status.Pending","publicId":"Libtmux_workspace.Execution.step_status.Pending","name":"Pending","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":197,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pending","source":{"file":"workspace/libtmux_workspace.mli","line":197,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Pending","slug":"libtmux_workspace-execution-step_status-pending"},{"id":"Libtmux_workspace.Execution.step_status.Running","publicId":"Libtmux_workspace.Execution.step_status.Running","name":"Running","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Running","source":{"file":"workspace/libtmux_workspace.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Running","slug":"libtmux_workspace-execution-step_status-running"},{"id":"Libtmux_workspace.Execution.step_status.Skipped","publicId":"Libtmux_workspace.Execution.step_status.Skipped","name":"Skipped","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Skipped","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Skipped","slug":"libtmux_workspace-execution-step_status-skipped"},{"id":"Libtmux_workspace.Execution.step_status.Uncertain","publicId":"Libtmux_workspace.Execution.step_status.Uncertain","name":"Uncertain","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Uncertain","slug":"libtmux_workspace-execution-step_status-uncertain"},{"id":"Libtmux_workspace.Execution.t","publicId":"Libtmux_workspace.Execution.t","qualifiedName":"Libtmux_workspace.Execution.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-execution-t"},{"id":"Libtmux_workspace.Plan","publicId":"Libtmux_workspace.Plan","qualifiedName":"Libtmux_workspace.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Preview ordered workspace actions against one observed daemon generation. A\n plan retains collision policy and bound targets; it is not a portable\n command script. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type server_policy = Create_if_missing | Require_existing_server\n type window_collision = Reject\n\n type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }\n\n type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale\n\n val pp_error : Format.formatter -> error -> unit\n\n type scope = Session | Window of int | Pane of { window : int; pane : int }\n\n type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t\n\n type t\n\n val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result\n (** [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. *)\n\n val endpoint : t -> Libtmux.Endpoint.t\n val source : t -> Libtmux.Source.t option\n val existing_session : t -> Libtmux.Session.target option\n val actions : t -> action Iarray.t\n val config : t -> Config.t\n\n val check_source : t -> Libtmux.Source.t option -> (unit, error) result\n (** Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace","doc":{"summary":"Preview ordered workspace actions against one observed daemon generation. A plan retains collision policy and bound targets; it is not a portable command script."},"slug":"libtmux_workspace-plan"},{"id":"Libtmux_workspace.Plan.action","publicId":"Libtmux_workspace.Plan.action","qualifiedName":"Libtmux_workspace.Plan.action","name":"action","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type action =\n Create_session of { bootstrap : bool; name : string;\n window_name : string; spawn : Libtmux.Spawn.t; width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t;\n }\n | Split_pane of { window : int; pane : int; spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string; }\n | Send_enter of { window : int; pane : int; }\n | Select_layout of int * Libtmux.Layout.t","params":[]}],"slug":"libtmux_workspace-plan-action"},{"id":"Libtmux_workspace.Plan.action.Create_session","publicId":"Libtmux_workspace.Plan.action.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_session","slug":"libtmux_workspace-plan-action-create_session"},{"id":"Libtmux_workspace.Plan.action.Create_session.bootstrap","publicId":"Libtmux_workspace.Plan.action.Create_session.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : bool;","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"bool","qualifiedName":"Libtmux_workspace.Plan.bootstrap","slug":"libtmux_workspace-plan-action-create_session-bootstrap"},{"id":"Libtmux_workspace.Plan.action.Create_session.height","publicId":"Libtmux_workspace.Plan.action.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.height","slug":"libtmux_workspace-plan-action-create_session-height"},{"id":"Libtmux_workspace.Plan.action.Create_session.name","publicId":"Libtmux_workspace.Plan.action.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_session-name"},{"id":"Libtmux_workspace.Plan.action.Create_session.spawn","publicId":"Libtmux_workspace.Plan.action.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_session-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_session.width","publicId":"Libtmux_workspace.Plan.action.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.width","slug":"libtmux_workspace-plan-action-create_session-width"},{"id":"Libtmux_workspace.Plan.action.Create_session.window_name","publicId":"Libtmux_workspace.Plan.action.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.window_name","slug":"libtmux_workspace-plan-action-create_session-window_name"},{"id":"Libtmux_workspace.Plan.action.Create_window","publicId":"Libtmux_workspace.Plan.action.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_window","slug":"libtmux_workspace-plan-action-create_window"},{"id":"Libtmux_workspace.Plan.action.Create_window.name","publicId":"Libtmux_workspace.Plan.action.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_window-name"},{"id":"Libtmux_workspace.Plan.action.Create_window.spawn","publicId":"Libtmux_workspace.Plan.action.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_window-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_window.window","publicId":"Libtmux_workspace.Plan.action.Create_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-create_window-window"},{"id":"Libtmux_workspace.Plan.action.Select_layout","publicId":"Libtmux_workspace.Plan.action.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Select_layout","slug":"libtmux_workspace-plan-action-select_layout"},{"id":"Libtmux_workspace.Plan.action.Send_enter","publicId":"Libtmux_workspace.Plan.action.Send_enter","name":"Send_enter","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_enter of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_enter","slug":"libtmux_workspace-plan-action-send_enter"},{"id":"Libtmux_workspace.Plan.action.Send_enter.pane","publicId":"Libtmux_workspace.Plan.action.Send_enter.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_enter-pane"},{"id":"Libtmux_workspace.Plan.action.Send_enter.window","publicId":"Libtmux_workspace.Plan.action.Send_enter.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_enter-window"},{"id":"Libtmux_workspace.Plan.action.Send_text","publicId":"Libtmux_workspace.Plan.action.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text of { window : int; pane : int; text : string }","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_text","slug":"libtmux_workspace-plan-action-send_text"},{"id":"Libtmux_workspace.Plan.action.Send_text.pane","publicId":"Libtmux_workspace.Plan.action.Send_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_text-pane"},{"id":"Libtmux_workspace.Plan.action.Send_text.text","publicId":"Libtmux_workspace.Plan.action.Send_text.text","name":"text","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"text : string","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"string","qualifiedName":"Libtmux_workspace.Plan.text","slug":"libtmux_workspace-plan-action-send_text-text"},{"id":"Libtmux_workspace.Plan.action.Send_text.window","publicId":"Libtmux_workspace.Plan.action.Send_text.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_text-window"},{"id":"Libtmux_workspace.Plan.action.Set_environment","publicId":"Libtmux_workspace.Plan.action.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of string * string","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_environment","slug":"libtmux_workspace-plan-action-set_environment"},{"id":"Libtmux_workspace.Plan.action.Set_option","publicId":"Libtmux_workspace.Plan.action.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of scope * Config.setting","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_option","slug":"libtmux_workspace-plan-action-set_option"},{"id":"Libtmux_workspace.Plan.action.Split_pane","publicId":"Libtmux_workspace.Plan.action.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Split_pane","slug":"libtmux_workspace-plan-action-split_pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.direction","publicId":"Libtmux_workspace.Plan.action.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Plan.direction","slug":"libtmux_workspace-plan-action-split_pane-direction"},{"id":"Libtmux_workspace.Plan.action.Split_pane.pane","publicId":"Libtmux_workspace.Plan.action.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-split_pane-pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.size","publicId":"Libtmux_workspace.Plan.action.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Plan.size","slug":"libtmux_workspace-plan-action-split_pane-size"},{"id":"Libtmux_workspace.Plan.action.Split_pane.spawn","publicId":"Libtmux_workspace.Plan.action.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-split_pane-spawn"},{"id":"Libtmux_workspace.Plan.action.Split_pane.window","publicId":"Libtmux_workspace.Plan.action.Split_pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-split_pane-window"},{"id":"Libtmux_workspace.Plan.actions","publicId":"Libtmux_workspace.Plan.actions","qualifiedName":"Libtmux_workspace.Plan.actions","name":"actions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val actions : t -> action Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val actions : t -> action Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"action Iarray.t"}],"slug":"libtmux_workspace-plan-actions"},{"id":"Libtmux_workspace.Plan.check_source","publicId":"Libtmux_workspace.Plan.check_source","qualifiedName":"Libtmux_workspace.Plan.check_source","name":"check_source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. "],"declarations":[{"kind":"function","text":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"Operational plans are ephemeral and bound to one connection generation. A printed or serialized preview cannot supply operational targets."},"signatures":[{"raw":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Source.t option"}],"returns":"(unit, error) result"}],"slug":"libtmux_workspace-plan-check_source"},{"id":"Libtmux_workspace.Plan.collision_policy","publicId":"Libtmux_workspace.Plan.collision_policy","qualifiedName":"Libtmux_workspace.Plan.collision_policy","name":"collision_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type collision_policy =\n Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision; }","params":[]}],"slug":"libtmux_workspace-plan-collision_policy"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","name":"Append_new_windows","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Append_new_windows","slug":"libtmux_workspace-plan-collision_policy-append_new_windows"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","name":"window_collision","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_collision : window_collision","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","type":"window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","slug":"libtmux_workspace-plan-collision_policy-append_new_windows-window_collision"},{"id":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","publicId":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","name":"Fail_if_session_exists","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Fail_if_session_exists","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Fail_if_session_exists","slug":"libtmux_workspace-plan-collision_policy-fail_if_session_exists"},{"id":"Libtmux_workspace.Plan.config","publicId":"Libtmux_workspace.Plan.config","qualifiedName":"Libtmux_workspace.Plan.config","name":"config","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val config : t -> Config.t","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val config : t -> Config.t","params":[{"name":"arg1","type":"t"}],"returns":"Config.t"}],"slug":"libtmux_workspace-plan-config"},{"id":"Libtmux_workspace.Plan.endpoint","publicId":"Libtmux_workspace.Plan.endpoint","qualifiedName":"Libtmux_workspace.Plan.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Libtmux.Endpoint.t","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val endpoint : t -> Libtmux.Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Endpoint.t"}],"slug":"libtmux_workspace-plan-endpoint"},{"id":"Libtmux_workspace.Plan.error","publicId":"Libtmux_workspace.Plan.error","qualifiedName":"Libtmux_workspace.Plan.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type error =\n Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","params":[]}],"slug":"libtmux_workspace-plan-error"},{"id":"Libtmux_workspace.Plan.error.Append_session_options","publicId":"Libtmux_workspace.Plan.error.Append_session_options","name":"Append_session_options","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_session_options","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Append_session_options","slug":"libtmux_workspace-plan-error-append_session_options"},{"id":"Libtmux_workspace.Plan.error.Missing_endpoint","publicId":"Libtmux_workspace.Plan.error.Missing_endpoint","name":"Missing_endpoint","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing_endpoint","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Missing_endpoint","slug":"libtmux_workspace-plan-error-missing_endpoint"},{"id":"Libtmux_workspace.Plan.error.Session_conflict","publicId":"Libtmux_workspace.Plan.error.Session_conflict","name":"Session_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Session_conflict","slug":"libtmux_workspace-plan-error-session_conflict"},{"id":"Libtmux_workspace.Plan.error.Stale","publicId":"Libtmux_workspace.Plan.error.Stale","name":"Stale","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Stale","slug":"libtmux_workspace-plan-error-stale"},{"id":"Libtmux_workspace.Plan.error.Too_many_steps","publicId":"Libtmux_workspace.Plan.error.Too_many_steps","name":"Too_many_steps","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Too_many_steps","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Too_many_steps","slug":"libtmux_workspace-plan-error-too_many_steps"},{"id":"Libtmux_workspace.Plan.error.Unsupported_setting","publicId":"Libtmux_workspace.Plan.error.Unsupported_setting","name":"Unsupported_setting","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_setting of Config.error","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Unsupported_setting","slug":"libtmux_workspace-plan-error-unsupported_setting"},{"id":"Libtmux_workspace.Plan.error.Window_conflict","publicId":"Libtmux_workspace.Plan.error.Window_conflict","name":"Window_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window_conflict","slug":"libtmux_workspace-plan-error-window_conflict"},{"id":"Libtmux_workspace.Plan.existing_session","publicId":"Libtmux_workspace.Plan.existing_session","qualifiedName":"Libtmux_workspace.Plan.existing_session","name":"existing_session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val existing_session : t -> Libtmux.Session.target option","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val existing_session : t -> Libtmux.Session.target option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Session.target option"}],"slug":"libtmux_workspace-plan-existing_session"},{"id":"Libtmux_workspace.Plan.make","publicId":"Libtmux_workspace.Plan.make","qualifiedName":"Libtmux_workspace.Plan.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. "],"declarations":[{"kind":"function","text":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"`None` means an explicitly observed missing endpoint. It is not an empty successful snapshot. A plan does not start a server. Append rejects any existing requested window name and never changes session options. `version` selects the generated option catalog."},"signatures":[{"raw":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option -> Config.t -> (t, error) result","params":[{"name":"server_policy","type":"server_policy","optional":true,"keywordOnly":true},{"name":"collision_policy","type":"collision_policy","optional":true,"keywordOnly":true},{"name":"endpoint","type":"Libtmux.Endpoint.t","keywordOnly":true},{"name":"version","type":"string","keywordOnly":true},{"name":"observed","type":"Libtmux.Snapshot.t option","keywordOnly":true},{"name":"arg1","type":"Config.t"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-plan-make"},{"id":"Libtmux_workspace.Plan.pp_error","publicId":"Libtmux_workspace.Plan.pp_error","qualifiedName":"Libtmux_workspace.Plan.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-plan-pp_error"},{"id":"Libtmux_workspace.Plan.scope","publicId":"Libtmux_workspace.Plan.scope","qualifiedName":"Libtmux_workspace.Plan.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Session | Window of int | Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type scope = Session | Window of int | Pane of { window : int; pane : int; }","params":[]}],"slug":"libtmux_workspace-plan-scope"},{"id":"Libtmux_workspace.Plan.scope.Pane","publicId":"Libtmux_workspace.Plan.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Pane","slug":"libtmux_workspace-plan-scope-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.pane","publicId":"Libtmux_workspace.Plan.scope.Pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-scope-pane-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.window","publicId":"Libtmux_workspace.Plan.scope.Pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-scope-pane-window"},{"id":"Libtmux_workspace.Plan.scope.Session","publicId":"Libtmux_workspace.Plan.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Session","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Session","slug":"libtmux_workspace-plan-scope-session"},{"id":"Libtmux_workspace.Plan.scope.Window","publicId":"Libtmux_workspace.Plan.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window","slug":"libtmux_workspace-plan-scope-window"},{"id":"Libtmux_workspace.Plan.server_policy","publicId":"Libtmux_workspace.Plan.server_policy","qualifiedName":"Libtmux_workspace.Plan.server_policy","name":"server_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type server_policy = Create_if_missing | Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type server_policy = Create_if_missing | Require_existing_server","params":[]}],"slug":"libtmux_workspace-plan-server_policy"},{"id":"Libtmux_workspace.Plan.server_policy.Create_if_missing","publicId":"Libtmux_workspace.Plan.server_policy.Create_if_missing","name":"Create_if_missing","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Create_if_missing","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Create_if_missing","slug":"libtmux_workspace-plan-server_policy-create_if_missing"},{"id":"Libtmux_workspace.Plan.server_policy.Require_existing_server","publicId":"Libtmux_workspace.Plan.server_policy.Require_existing_server","name":"Require_existing_server","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Require_existing_server","slug":"libtmux_workspace-plan-server_policy-require_existing_server"},{"id":"Libtmux_workspace.Plan.source","publicId":"Libtmux_workspace.Plan.source","qualifiedName":"Libtmux_workspace.Plan.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t option","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val source : t -> Libtmux.Source.t option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t option"}],"slug":"libtmux_workspace-plan-source"},{"id":"Libtmux_workspace.Plan.t","publicId":"Libtmux_workspace.Plan.t","qualifiedName":"Libtmux_workspace.Plan.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-plan-t"},{"id":"Libtmux_workspace.Plan.window_collision","publicId":"Libtmux_workspace.Plan.window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","name":"window_collision","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type window_collision = Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type window_collision = Reject","params":[]}],"slug":"libtmux_workspace-plan-window_collision"},{"id":"Libtmux_workspace.Plan.window_collision.Reject","publicId":"Libtmux_workspace.Plan.window_collision.Reject","name":"Reject","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.window_collision","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Reject","slug":"libtmux_workspace-plan-window_collision-reject"}]} diff --git a/site/src/data/api/ocaml.paths.json b/site/src/data/api/ocaml.paths.json index bf23fc83d..3bcb8f036 100644 --- a/site/src/data/api/ocaml.paths.json +++ b/site/src/data/api/ocaml.paths.json @@ -1 +1 @@ -{"port":"ocaml","repo":"libtmux/libtmux-ocaml","revision":"ade2f9787024a5426710cec06f864648c217263c","paths":[".github/CONTRIBUTING.md",".github/WRITING.md",".github/actions/build-tmux/action.yml",".github/scripts/tmux_build.py",".github/social-preview.png",".github/tmux-releases.toml",".github/workflows/ocaml.yml",".gitignore",".ocamlformat",".tool-versions","AGENTS.md","CHANGELOG.md","CLAUDE.md","LICENSE","README.md","bench/capture.ml","bench/capture.py","bench/concurrency.ml","bench/concurrency.py","bench/dune","bench/results/capture-3.3-4x4.json","bench/results/capture-3.3.json","bench/results/capture-3.3a-4x4.json","bench/results/capture-3.3a.json","bench/results/capture-3.4-4x4.json","bench/results/capture-3.4.json","bench/results/capture-3.8-16x16.json","bench/results/capture-3.8-1x1.json","bench/results/capture-3.8-4x4.json","bench/results/capture-3.8-8x8.json","bench/results/capture-3.8.json","bench/results/concurrency-3.3-c8.json","bench/results/concurrency-3.3a-c8.json","bench/results/concurrency-3.4-c8.json","bench/results/concurrency-3.8-c1.json","bench/results/concurrency-3.8-c16.json","bench/results/concurrency-3.8-c64.json","bench/results/concurrency-3.8-c8.json","catalog/fields.json","catalog/formats.json","catalog/operations.json","catalog/options.json","cli/CHANGELOG.md","cli/dune","cli/main.ml","cli/runtime.ml","docs/README.md","docs/api.md","docs/assets/app-icon-1024-dark.png","docs/assets/app-icon-1024-light.png","docs/assets/apple-touch-icon-dark.png","docs/assets/apple-touch-icon-light.png","docs/assets/browserconfig-dark.xml","docs/assets/browserconfig.xml","docs/assets/favicon.ico","docs/assets/logo-1024.png","docs/assets/logo-128.png","docs/assets/logo-144.png","docs/assets/logo-152.png","docs/assets/logo-16.png","docs/assets/logo-167.png","docs/assets/logo-180.png","docs/assets/logo-192.png","docs/assets/logo-24.png","docs/assets/logo-256.png","docs/assets/logo-32.png","docs/assets/logo-384.png","docs/assets/logo-48.png","docs/assets/logo-512.png","docs/assets/logo-64.png","docs/assets/logo-96.png","docs/assets/logo.svg","docs/assets/maskable-192-dark.png","docs/assets/maskable-192-light.png","docs/assets/maskable-512-dark.png","docs/assets/maskable-512-light.png","docs/assets/mstile-150-dark.png","docs/assets/mstile-150-light.png","docs/assets/mstile-310-dark.png","docs/assets/mstile-310-light.png","docs/assets/opengraph-dark.jpg","docs/assets/opengraph-dark.png","docs/assets/opengraph-light.jpg","docs/assets/opengraph-light.png","docs/assets/safari-pinned-tab.svg","docs/assets/site-dark.webmanifest","docs/assets/site.webmanifest","docs/assets/social-square-dark.png","docs/assets/social-square-light.png","docs/assets/source.json","docs/assets/twitter-dark.png","docs/assets/twitter-light.png","docs/benchmarking.md","docs/branding.md","docs/compatibility.md","docs/control.md","docs/fields.md","docs/formats.md","docs/getting-started.md","docs/graph.md","docs/operations.md","docs/options.md","docs/packages.md","docs/queries.md","docs/showcases.md","docs/status.md","docs/streaming.md","docs/testing.md","docs/workspaces.md","dune","dune-project","eio/CHANGELOG.md","eio/dune","eio/generated_operations.ml","eio/index.mld","eio/libtmux_eio.ml","eio/libtmux_eio.mli","examples/dune","examples/native_build.ml","examples/native_capture.ml","examples/native_graph.ml","examples/native_query.ml","examples/native_wait.ml","examples/native_watch.ml","examples/showcase.json","examples/showcase_create_window.ml","examples/showcase_graph.ml","examples/showcase_layout.ml","examples/showcase_move_window.ml","examples/showcase_rename_window.ml","examples/showcase_send_keys.ml","examples/showcase_watch.ml","examples/workspace/project.json","json/CHANGELOG.md","json/document.ml","json/dune","json/index.mld","json/libtmux_json.ml","json/libtmux_json.mli","json/workspace_json.ml","json/workspace_output.ml","lib/CHANGELOG.md","lib/commands.ml","lib/dune","lib/endpoint.ml","lib/error.ml","lib/filter.ml","lib/format_catalog.ml","lib/formats.ml","lib/generated_fields.ml","lib/graph.ml","lib/index.mld","lib/libtmux.ml","lib/libtmux.mli","lib/option_catalog.ml","lib/options.ml","lib/output.ml","lib/planner.ml","lib/protocol.ml","libtmux-eio.opam","libtmux-json.opam","libtmux-unix.opam","libtmux-workspace-cli.opam","libtmux-workspace.opam","libtmux.opam","test/api_export_test.py","test/binding_peer.ml","test/binding_test.py","test/blocking_cancel_peer.ml","test/blocking_peer.ml","test/blocking_test.py","test/bootstrap_peer.ml","test/bootstrap_test.py","test/capture_cancel_peer.ml","test/capture_cancel_test.py","test/capture_peer.ml","test/capture_proxy.py","test/capture_test.py","test/client_operations_peer.ml","test/client_operations_test.py","test/codec_peer.ml","test/conformance/FilterPeer.java","test/conformance/cases.json","test/conformance/dune","test/conformance/filter_peer.ml","test/conformance/run.py","test/core_test.ml","test/diagnostics_expect.ml","test/dune","test/eio_peer.ml","test/eio_test.py","test/environment_peer.ml","test/environment_test.py","test/fixture_test.py","test/installed_consumer.py","test/json_test.ml","test/model_fixture.ml","test/model_test.ml","test/native_suite.py","test/operations_peer.ml","test/operations_test.py","test/options_peer.ml","test/options_test.py","test/pid_race_peer.ml","test/pid_race_test.py","test/pid_race_tmux.py","test/plan_peer.ml","test/plan_test.py","test/protocol_test.ml","test/protocol_test.py","test/query_test.ml","test/read_process_peer.ml","test/read_process_proxy.py","test/read_process_test.py","test/runtime_test.ml","test/showcase_test.py","test/stream_fault_peer.ml","test/stream_fault_test.py","test/streaming_peer.ml","test/streaming_test.py","test/support/readme_walkthrough.py","test/support/tmux_fixture.py","test/terminal_peer.ml","test/terminal_test.py","test/tmux_cache_test.py","test/type_test.py","test/workspace_cli_test.py","test/workspace_docs_test.py","test/workspace_document_test.py","test/workspace_eio_peer.ml","test/workspace_json_test.ml","test/workspace_pane_ready.ml","test/workspace_peer.ml","test/workspace_scenarios.ml","test/workspace_test.ml","test/workspace_test.py","tools/api_doc.ml","tools/api_export.ml","tools/api_modules.json","tools/check.py","tools/docs_snippets.py","tools/dune","tools/export_api.py","tools/generate_fields.py","tools/generate_formats.py","tools/generate_operations.py","tools/generate_options.py","tools/setup_tmux.py","unix/CHANGELOG.md","unix/acquisition.ml","unix/bootstrap.ml","unix/byte_pattern.ml","unix/cancellation.ml","unix/capture_file.ml","unix/command_encoding.ml","unix/connection.ml","unix/dune","unix/engine.ml","unix/environment_io.ml","unix/generated_operations.ml","unix/index.mld","unix/libtmux_unix.ml","unix/libtmux_unix.mli","unix/linux.ml","unix/linux_stubs.c","unix/observation_wait.ml","unix/options_io.ml","unix/read_process.ml","unix/rendered.ml","unix/runtime_io.ml","unix/streaming.ml","unix/terminal.ml","unix/workspace_runner.ml","workspace/CHANGELOG.md","workspace/README.md","workspace/assets/app-icon-1024-dark.png","workspace/assets/app-icon-1024-light.png","workspace/assets/apple-touch-icon-dark.png","workspace/assets/apple-touch-icon-light.png","workspace/assets/browserconfig-dark.xml","workspace/assets/browserconfig.xml","workspace/assets/favicon.ico","workspace/assets/logo-1024.png","workspace/assets/logo-128.png","workspace/assets/logo-144.png","workspace/assets/logo-152.png","workspace/assets/logo-16.png","workspace/assets/logo-167.png","workspace/assets/logo-180.png","workspace/assets/logo-192.png","workspace/assets/logo-24.png","workspace/assets/logo-256.png","workspace/assets/logo-32.png","workspace/assets/logo-384.png","workspace/assets/logo-48.png","workspace/assets/logo-512.png","workspace/assets/logo-64.png","workspace/assets/logo-96.png","workspace/assets/logo.svg","workspace/assets/maskable-192-dark.png","workspace/assets/maskable-192-light.png","workspace/assets/maskable-512-dark.png","workspace/assets/maskable-512-light.png","workspace/assets/mstile-150-dark.png","workspace/assets/mstile-150-light.png","workspace/assets/mstile-310-dark.png","workspace/assets/mstile-310-light.png","workspace/assets/opengraph-dark.jpg","workspace/assets/opengraph-dark.png","workspace/assets/opengraph-light.jpg","workspace/assets/opengraph-light.png","workspace/assets/safari-pinned-tab.svg","workspace/assets/site-dark.webmanifest","workspace/assets/site.webmanifest","workspace/assets/social-square-dark.png","workspace/assets/social-square-light.png","workspace/assets/source.json","workspace/assets/twitter-dark.png","workspace/assets/twitter-light.png","workspace/config.ml","workspace/dune","workspace/execution.ml","workspace/index.mld","workspace/libtmux_workspace.ml","workspace/libtmux_workspace.mli","workspace/plan.ml"]} +{"port":"ocaml","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","paths":[".github/CONTRIBUTING.md",".github/WRITING.md",".github/actions/build-tmux/action.yml",".github/scripts/tmux_build.py",".github/social-preview.png",".github/tmux-releases.toml",".github/workflows/docs.yml",".github/workflows/ocaml.yml",".gitignore",".ocamlformat",".tool-versions","AGENTS.md","CHANGELOG.md","CLAUDE.md","LICENSE","README.md","bench/capture.ml","bench/capture.py","bench/concurrency.ml","bench/concurrency.py","bench/dune","bench/results/capture-3.3-4x4.json","bench/results/capture-3.3.json","bench/results/capture-3.3a-4x4.json","bench/results/capture-3.3a.json","bench/results/capture-3.4-4x4.json","bench/results/capture-3.4.json","bench/results/capture-3.8-16x16.json","bench/results/capture-3.8-1x1.json","bench/results/capture-3.8-4x4.json","bench/results/capture-3.8-8x8.json","bench/results/capture-3.8.json","bench/results/concurrency-3.3-c8.json","bench/results/concurrency-3.3a-c8.json","bench/results/concurrency-3.4-c8.json","bench/results/concurrency-3.8-c1.json","bench/results/concurrency-3.8-c16.json","bench/results/concurrency-3.8-c64.json","bench/results/concurrency-3.8-c8.json","catalog/fields.json","catalog/formats.json","catalog/operations.json","catalog/options.json","cli/CHANGELOG.md","cli/dune","cli/main.ml","cli/runtime.ml","docs/README.md","docs/api.md","docs/assets/app-icon-1024-dark.png","docs/assets/app-icon-1024-light.png","docs/assets/apple-touch-icon-dark.png","docs/assets/apple-touch-icon-light.png","docs/assets/browserconfig-dark.xml","docs/assets/browserconfig.xml","docs/assets/favicon.ico","docs/assets/logo-1024.png","docs/assets/logo-128.png","docs/assets/logo-144.png","docs/assets/logo-152.png","docs/assets/logo-16.png","docs/assets/logo-167.png","docs/assets/logo-180.png","docs/assets/logo-192.png","docs/assets/logo-24.png","docs/assets/logo-256.png","docs/assets/logo-32.png","docs/assets/logo-384.png","docs/assets/logo-48.png","docs/assets/logo-512.png","docs/assets/logo-64.png","docs/assets/logo-96.png","docs/assets/logo.svg","docs/assets/maskable-192-dark.png","docs/assets/maskable-192-light.png","docs/assets/maskable-512-dark.png","docs/assets/maskable-512-light.png","docs/assets/mstile-150-dark.png","docs/assets/mstile-150-light.png","docs/assets/mstile-310-dark.png","docs/assets/mstile-310-light.png","docs/assets/opengraph-dark.jpg","docs/assets/opengraph-dark.png","docs/assets/opengraph-light.jpg","docs/assets/opengraph-light.png","docs/assets/safari-pinned-tab.svg","docs/assets/site-dark.webmanifest","docs/assets/site.webmanifest","docs/assets/social-square-dark.png","docs/assets/social-square-light.png","docs/assets/source.json","docs/assets/twitter-dark.png","docs/assets/twitter-light.png","docs/benchmarking.md","docs/branding.md","docs/compatibility.md","docs/control.md","docs/fields.md","docs/formats.md","docs/getting-started.md","docs/graph.md","docs/operations.md","docs/options.md","docs/packages.md","docs/queries.md","docs/recovery.md","docs/showcases.md","docs/status.md","docs/streaming.md","docs/testing.md","docs/workspaces.md","dune","dune-project","eio/CHANGELOG.md","eio/dune","eio/generated_operations.ml","eio/index.mld","eio/libtmux_eio.ml","eio/libtmux_eio.mli","examples/dune","examples/native_build.ml","examples/native_capture.ml","examples/native_graph.ml","examples/native_query.ml","examples/native_recovery.ml","examples/native_wait.ml","examples/native_watch.ml","examples/showcase.json","examples/showcase_create_window.ml","examples/showcase_graph.ml","examples/showcase_layout.ml","examples/showcase_move_window.ml","examples/showcase_rename_window.ml","examples/showcase_send_keys.ml","examples/showcase_watch.ml","examples/workspace/project.json","json/CHANGELOG.md","json/document.ml","json/dune","json/index.mld","json/libtmux_json.ml","json/libtmux_json.mli","json/workspace_json.ml","json/workspace_output.ml","lib/CHANGELOG.md","lib/commands.ml","lib/dune","lib/endpoint.ml","lib/error.ml","lib/filter.ml","lib/format_catalog.ml","lib/formats.ml","lib/generated_fields.ml","lib/graph.ml","lib/index.mld","lib/libtmux.ml","lib/libtmux.mli","lib/option_catalog.ml","lib/options.ml","lib/output.ml","lib/planner.ml","lib/protocol.ml","libtmux-eio.opam","libtmux-json.opam","libtmux-unix.opam","libtmux-workspace-cli.opam","libtmux-workspace.opam","libtmux.opam","test/api_export_test.py","test/binding_peer.ml","test/binding_test.py","test/blocking_cancel_peer.ml","test/blocking_peer.ml","test/blocking_test.py","test/bootstrap_peer.ml","test/bootstrap_test.py","test/capture_cancel_peer.ml","test/capture_cancel_test.py","test/capture_peer.ml","test/capture_proxy.py","test/capture_test.py","test/client_operations_peer.ml","test/client_operations_test.py","test/codec_peer.ml","test/conformance/FilterPeer.java","test/conformance/cases.json","test/conformance/dune","test/conformance/filter_peer.ml","test/conformance/run.py","test/core_test.ml","test/diagnostics_expect.ml","test/dune","test/eio_peer.ml","test/eio_test.py","test/environment_peer.ml","test/environment_test.py","test/fixture_test.py","test/installed_consumer.py","test/json_test.ml","test/model_fixture.ml","test/model_test.ml","test/native_suite.py","test/operations_peer.ml","test/operations_test.py","test/options_peer.ml","test/options_test.py","test/pid_race_peer.ml","test/pid_race_test.py","test/pid_race_tmux.py","test/plan_peer.ml","test/plan_test.py","test/protocol_test.ml","test/protocol_test.py","test/query_test.ml","test/read_process_peer.ml","test/read_process_proxy.py","test/read_process_test.py","test/runtime_test.ml","test/showcase_test.py","test/stream_fault_peer.ml","test/stream_fault_test.py","test/streaming_peer.ml","test/streaming_test.py","test/support/readme_walkthrough.py","test/support/tmux_fixture.py","test/terminal_peer.ml","test/terminal_test.py","test/tmux_cache_test.py","test/type_test.py","test/workspace_cli_test.py","test/workspace_docs_test.py","test/workspace_document_test.py","test/workspace_eio_peer.ml","test/workspace_json_test.ml","test/workspace_pane_ready.ml","test/workspace_peer.ml","test/workspace_scenarios.ml","test/workspace_test.ml","test/workspace_test.py","tools/api_doc.ml","tools/api_export.ml","tools/api_modules.json","tools/check.py","tools/docs_snippets.py","tools/dune","tools/export_api.py","tools/generate_fields.py","tools/generate_formats.py","tools/generate_operations.py","tools/generate_options.py","tools/setup_tmux.py","unix/CHANGELOG.md","unix/acquisition.ml","unix/bootstrap.ml","unix/byte_pattern.ml","unix/cancellation.ml","unix/capture_file.ml","unix/command_encoding.ml","unix/connection.ml","unix/dune","unix/engine.ml","unix/environment_io.ml","unix/generated_operations.ml","unix/index.mld","unix/libtmux_unix.ml","unix/libtmux_unix.mli","unix/linux.ml","unix/linux_stubs.c","unix/observation_wait.ml","unix/options_io.ml","unix/read_process.ml","unix/rendered.ml","unix/runtime_io.ml","unix/streaming.ml","unix/terminal.ml","unix/workspace_runner.ml","workspace/CHANGELOG.md","workspace/README.md","workspace/assets/app-icon-1024-dark.png","workspace/assets/app-icon-1024-light.png","workspace/assets/apple-touch-icon-dark.png","workspace/assets/apple-touch-icon-light.png","workspace/assets/browserconfig-dark.xml","workspace/assets/browserconfig.xml","workspace/assets/favicon.ico","workspace/assets/logo-1024.png","workspace/assets/logo-128.png","workspace/assets/logo-144.png","workspace/assets/logo-152.png","workspace/assets/logo-16.png","workspace/assets/logo-167.png","workspace/assets/logo-180.png","workspace/assets/logo-192.png","workspace/assets/logo-24.png","workspace/assets/logo-256.png","workspace/assets/logo-32.png","workspace/assets/logo-384.png","workspace/assets/logo-48.png","workspace/assets/logo-512.png","workspace/assets/logo-64.png","workspace/assets/logo-96.png","workspace/assets/logo.svg","workspace/assets/maskable-192-dark.png","workspace/assets/maskable-192-light.png","workspace/assets/maskable-512-dark.png","workspace/assets/maskable-512-light.png","workspace/assets/mstile-150-dark.png","workspace/assets/mstile-150-light.png","workspace/assets/mstile-310-dark.png","workspace/assets/mstile-310-light.png","workspace/assets/opengraph-dark.jpg","workspace/assets/opengraph-dark.png","workspace/assets/opengraph-light.jpg","workspace/assets/opengraph-light.png","workspace/assets/safari-pinned-tab.svg","workspace/assets/site-dark.webmanifest","workspace/assets/site.webmanifest","workspace/assets/social-square-dark.png","workspace/assets/social-square-light.png","workspace/assets/source.json","workspace/assets/twitter-dark.png","workspace/assets/twitter-light.png","workspace/config.ml","workspace/dune","workspace/execution.ml","workspace/index.mld","workspace/libtmux_workspace.ml","workspace/libtmux_workspace.mli","workspace/plan.ml"]} diff --git a/site/src/data/example-sources.json b/site/src/data/example-sources.json index 978b7cad5..3c9a46ba9 100644 --- a/site/src/data/example-sources.json +++ b/site/src/data/example-sources.json @@ -151,61 +151,61 @@ }, "ocaml:examples/showcase_create_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c", + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", "sha256": "ea2d5ff182bb80b2f8115d4d2c43cf8e32f7989626fa9d6dfda666b76dc8217b", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n" }, "ocaml:examples/showcase_graph.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c", + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" }, "ocaml:examples/showcase_layout.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c", + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", "sha256": "dca905f7b9b91858ec642fa21c2bd7c544f3a7684223f7fafd5a46f2b997cfd0", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n" }, "ocaml:examples/showcase_move_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c", + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", "sha256": "da767e573f7188350a328c78b9417610a2bc62992e1892b501435a6328e21cc5", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n" }, "ocaml:examples/showcase_rename_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c", + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", "sha256": "8722c7cd933fa53a18b41b5fb2de7d6a99fcfa1f70e8c14164c85bebf9efc6d5", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n" }, "ocaml:examples/showcase_send_keys.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c", + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", "sha256": "680f6772040e12a16b93bd0c6d582d0a5e8f4e70de303372ba924be6e0237f09", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n" }, "ocaml:examples/showcase_watch.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c", + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", "sha256": "98fa6d843a98a4d98bbdd398108704805e852a262df0e54b43c08d3f2e299f8f", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n" }, "ocaml:examples/showcase.json": { "repository": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c", + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", "sha256": "178ca9f8e940cd9d4d893940089c2e0212e58dfea54b22e2eb7fb44131d5c9ef", "content": "{\n \"schema\": \"libtmux.showcase/1\",\n \"tmux_floor\": \"3.3\",\n \"ci\": {\n \"workflow\": \".github/workflows/ocaml.yml\",\n \"job\": \"native\",\n \"runner\": \"test/showcase_test.py\"\n },\n \"examples\": [\n {\n \"capability\": \"graph\",\n \"title\": \"Navigate the typed object graph\",\n \"file\": \"examples/showcase_graph.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_graph.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"graph: 2 sessions, 2 windows, 3 links, 2 panes\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"watch\",\n \"title\": \"Observe future output with Eio\",\n \"file\": \"examples/showcase_watch.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_watch.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"observed: changed\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"send-keys\",\n \"title\": \"Send literal input and keys\",\n \"file\": \"examples/showcase_send_keys.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_send_keys.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"sent: literal: $HOME; #{pane_id}\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"rename-window\",\n \"title\": \"Rename a window\",\n \"file\": \"examples/showcase_rename_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_rename_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"renamed: editor-main\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"create-window\",\n \"title\": \"Create a window\",\n \"file\": \"examples/showcase_create_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_create_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"created: logs\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"move-window\",\n \"title\": \"Move a window between sessions\",\n \"file\": \"examples/showcase_move_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_move_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"moved: build at 7\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"layout\",\n \"title\": \"Apply a layout\",\n \"file\": \"examples/showcase_layout.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_layout.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"layout: 3 horizontal panes\",\n \"success_exit_code\": 0\n }\n ]\n}\n" }, "ocaml:test/showcase_test.py": { "repository": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c", + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", "sha256": "17ff54eaa950f1d9a2d64b7386b456bf2a01b20209c9c7e49bcd0b990c8b4f8a", "content": "\"\"\"Outer: compile whole showcase programs against installed packages and run their entry points.\"\"\"\nimport ctypes\nimport json\nimport os\nfrom pathlib import Path\nimport selectors\nimport shutil\nimport signal\nimport subprocess\nimport sys\nimport tempfile\n\nroot = Path(__file__).resolve().parents[1]\nmanifest = json.loads((root / \"examples/showcase.json\").read_text())\nprograms = {}\nfor entry in manifest[\"examples\"]:\n path = (root / entry[\"file\"]).resolve()\n assert path.parent == root / \"examples\" and path.suffix == \".ml\"\n assert entry[\"whole_file\"] and entry[\"success_exit_code\"] == 0\n executable = str(Path(entry[\"file\"]).with_suffix(\".exe\"))\n assert entry[\"command\"] == [\"opam\", \"exec\", \"--\", \"dune\", \"exec\", executable, \"--\", \"tmux\"], \\\n \"showcase command does not execute its recorded source\"\n assert path.stem not in programs, \"duplicate showcase program\"\n programs[path.stem] = entry\nlibc = ctypes.CDLL(None, use_errno=True)\nif libc.prctl(36, 1, 0, 0, 0):\n raise OSError(ctypes.get_errno(), \"PR_SET_CHILD_SUBREAPER\")\nchild_file = Path(f\"/proc/self/task/{os.getpid()}/children\")\n\n\ndef children():\n return set(map(int, child_file.read_text().split()))\n\n\nwith tempfile.TemporaryDirectory(prefix=\"libtmux-ocaml-showcase-consumer-\") as temporary:\n temporary = Path(temporary)\n prefix = temporary / \"installed\"\n packages = [\"libtmux\", \"libtmux-workspace\", \"libtmux-unix\", \"libtmux-eio\"]\n subprocess.run([\"dune\", \"install\", \"--sections=lib,stublibs\", \"--prefix\", str(prefix), *packages],\n cwd=root, check=True, capture_output=True)\n project = temporary / \"consumer\"\n project.mkdir()\n runtime_temp = temporary / \"runtime-temp\"\n runtime_temp.mkdir(mode=0o700)\n (project / \"dune-project\").write_text(\"(lang dune 3.24)\\n\")\n examples = project / \"examples\"\n examples.mkdir()\n blocking = \" \".join(name for name in programs if name != \"showcase_watch\")\n (examples / \"dune\").write_text(\"(executables (names \" + blocking + \") (modules \" + blocking +\n \") (libraries libtmux libtmux-workspace libtmux-unix unix))\\n\" +\n \"(executable (name showcase_watch) (modules showcase_watch) \" +\n \"(libraries libtmux libtmux-workspace libtmux-unix libtmux-eio eio_main unix))\\n\")\n for name in programs:\n source = root / \"examples\" / f\"{name}.ml\"\n assert source.is_file(), f\"missing standalone showcase: {name}\"\n (examples / source.name).write_bytes(source.read_bytes())\n environment = dict(os.environ, OCAMLPATH=str(prefix / \"lib\"), TMPDIR=str(runtime_temp),\n TMUX=\"/unrelated/server,99999,0\", TMUX_PANE=\"%99999\")\n for key in [\"DUNE_SOURCEROOT\", \"DUNE_WORKSPACE\"]:\n environment.pop(key, None)\n environment[\"OPAMSWITCH\"] = subprocess.check_output(\n [\"opam\", \"switch\", \"show\", \"--safe\"], cwd=root, env=environment, text=True).strip()\n resolved = subprocess.check_output([\"opam\", \"exec\", \"--\", \"ocamlfind\", \"query\", *packages],\n cwd=project, env=environment, text=True).splitlines()\n assert list(map(Path, resolved)) == [prefix / \"lib\" / package for package in packages]\n built = subprocess.run([\"dune\", \"build\", \"--root\", str(project)],\n cwd=project, env=environment, capture_output=True)\n assert built.returncode == 0, (built.stdout + built.stderr).decode(errors=\"replace\")\n for index, binary in enumerate(sys.argv[1:]):\n actual = str(Path(binary).resolve(strict=True))\n fault = temporary / f\"fault-tmux-{index}\"\n audit = temporary / f\"fault-directory-{index}\"\n fault.write_text(\"#!/usr/bin/env python3\\nimport os,sys\\nfrom pathlib import Path\\n\" +\n \"args=sys.argv[1:]\\nif '-C' in args and 'new-session' in args:\\n\" +\n \" p=Path(args[args.index('-f')+1])\\n\" +\n f\" Path({str(audit)!r}).write_text(str(p.parent))\\n\" +\n \" with p.open('a') as output:\\n\" +\n \" output.write('new-session -d -s showcase -- /bin/cat -u\\\\n')\\n\" +\n f\"os.execv({actual!r}, [{actual!r}, *args])\\n\")\n fault.chmod(0o700)\n cases = [(name, entry, actual, False) for name, entry in programs.items()]\n cases.append((\"showcase_create_window\", programs[\"showcase_create_window\"], str(fault), True))\n for name, entry, program, should_fail in cases:\n previous = children()\n command = [*entry[\"command\"][:-1], program]\n process = subprocess.Popen(command,\n cwd=project, env=environment, stdout=subprocess.PIPE,\n stderr=subprocess.PIPE)\n try:\n output, error = process.communicate(timeout=1)\n if should_fail:\n assert process.returncode == 2 and error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() not in output.splitlines()\n directory = Path(audit.read_text())\n else:\n assert process.returncode == 0 and not error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() in output.splitlines(), \\\n (name, \"missing expected outcome\", output)\n socket_line = next(line for line in output.splitlines() if line.startswith(b\"socket=\"))\n directory = Path(os.fsdecode(socket_line[len(b\"socket=\"):])).parent\n assert directory.name.startswith(\"libtmux-ocaml-showcase-\")\n assert not directory.exists(), \"showcase left its private directory\"\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), f\"{name} left owned child {pid} running\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n outcome = \"startup failure\" if should_fail else \"installed entry point\"\n print(f\"PASS {Path(binary).parent.name}: {name}, {outcome} and owned teardown\")\n finally:\n if process.poll() is None:\n process.kill()\n process.wait(timeout=1)\n while children() - previous:\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n try:\n signal.pidfd_send_signal(descriptor, signal.SIGTERM)\n except ProcessLookupError:\n pass\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), \"owned showcase child did not terminate\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n process.stdout.close()\n process.stderr.close()\n for path in runtime_temp.iterdir():\n if path.is_dir():\n shutil.rmtree(path)\n else:\n path.unlink()\n" }, "ocaml/workspace:examples/showcase_graph.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c", + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" }, diff --git a/site/src/data/port-guides/ocaml.json b/site/src/data/port-guides/ocaml.json index b2d5def4a..266de2350 100644 --- a/site/src/data/port-guides/ocaml.json +++ b/site/src/data/port-guides/ocaml.json @@ -1,12 +1,12 @@ { "source": { "repository": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c" + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" }, "guides": [ { "path": "docs/getting-started.md", - "content": "# Install and run your first capture\n\nUse the [README installation](../README.md#install-from-source) with OCaml\n5.5.2, opam and tmux on Linux. The native clients compile a small Linux C helper\nand require a C compiler and system headers. This source checkout installs the\nlibraries; no registry release is available yet.\n\nActivate the local switch in the current shell as shown in the README before\nchanging to a separate project. This exports the switch choice for `opam exec`\nwithout changing shell startup files or the global default switch.\n\n## Link an installed library\n\nFor a blocking program, use a Dune executable with `libtmux` and `libtmux-unix`:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-unix))\n```\n\nFor the Eio examples, link the Eio backend and the application's runtime entry\npoint instead:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-eio eio_main))\n```\n\nCreate `dune-project` with `(lang dune 3.24)`, put the\n[graph program](../examples/native_graph.ml) in `main.ml`, and build from that\nproject. The installed-example check does this outside the repository with a\nseparate install prefix; it does not depend on source-tree library resolution.\n\n```console\n$ opam exec -- dune build\n```\n\n## Select an endpoint explicitly\n\n`Endpoint.socket_path` accepts an absolute socket path; `Endpoint.named_socket`\ndescribes tmux's `-L` name. Constructing either performs no I/O. Ordinary\n`Client.connect` attaches to an existing daemon and does not start one.\n\nThe [private demo setup](../README.md#read-a-real-tmux-graph) creates an owned\nsocket and a `cat` pane. Run the graph program with the tmux binary and socket\npath, or copy its complete source into your project. It captures the graph,\ncloses its connection and prints retained observations.\n\nA connection identifies the daemon PID twice around pidfd acquisition. The\nclient and daemon must share a PID namespace and local scratch filesystem;\nan accessible socket by itself does not establish those conditions. A stale\nsource is an error, never permission to reconnect a mutation automatically.\n\n## Run a concurrent application\n\nThe [complete Eio example](../examples/native_watch.ml) calls `Eio_main.run`\nand `Eio.Switch.run`, then supplies `process_mgr` and `mono_clock` from the\napplication environment. Use that outer shape in your application. Capturing\nand querying values does not require adopting Eio in the pure core.\n\nExpected failures return `result` and print with `Error.pp`. Backend\ncancellation propagates separately. Clients and subscriptions belong to their\nconnecting domain; immutable observations can be shared. Close owned resources\nwith `Fun.protect` or the supplied Eio switch.\n\n[Object graph](graph.md) · [Queries](queries.md) · [Control](control.md) ·\n[API](api.md) · [Compatibility](compatibility.md)\n" + "content": "# Install and run your first capture\n\nUse the [README installation](../README.md#install-from-source) with OCaml\n5.5.2, opam and tmux on Linux. The native clients compile a small Linux C helper\nand require a C compiler and system headers. This source checkout installs the\nlibraries; no registry release is available yet.\n\nActivate the local switch in the current shell as shown in the README before\nchanging to a separate project. This exports the switch choice for `opam exec`\nwithout changing shell startup files or the global default switch.\n\n## Link an installed library\n\nFor a blocking program, use a Dune executable with `libtmux` and `libtmux-unix`:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-unix))\n```\n\nFor the Eio examples, link the Eio backend and the application's runtime entry\npoint instead:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-eio eio_main))\n```\n\nCreate `dune-project` with `(lang dune 3.24)`, save the\n[graph program](../examples/native_graph.ml) as `main.ml`, and build from that\nproject. The installed-example check does this outside the repository with a\nseparate install prefix; it does not depend on source-tree library resolution.\n\n```console\n$ opam exec -- dune build\n```\n\n## Select an endpoint explicitly\n\n`Endpoint.socket_path` accepts an absolute socket path; `Endpoint.named_socket`\ndescribes tmux's `-L` name. Constructing either performs no I/O. Ordinary\n`Client.connect` attaches to an existing daemon and does not start one.\n\nThe [private demo setup](../README.md#read-a-real-tmux-graph) creates an owned\nsocket and a `cat` pane. Run the graph program with the tmux binary and socket\npath, or copy its complete source into your project. It captures the graph,\ncloses its connection and prints retained observations.\n\nA connection identifies the daemon PID twice around pidfd acquisition. The\nclient and daemon must share a PID namespace and local scratch filesystem;\nan accessible socket by itself does not establish those conditions. A stale\nsource is an error, never permission to reconnect a mutation automatically.\n\n## Run a concurrent application\n\nThe [complete Eio example](../examples/native_watch.ml) calls `Eio_main.run`\nand `Eio.Switch.run`, then supplies `process_mgr` and `mono_clock` from the\napplication environment. Use that outer shape in your application. Capturing\nand querying values does not require adopting Eio in the pure core.\n\nExpected failures return `result` and print with `Error.pp`. Backend\ncancellation propagates separately. Clients and subscriptions belong to their\nconnecting domain; immutable observations can be shared. Close owned resources\nwith `Fun.protect` or the supplied Eio switch.\n\n[Object graph](graph.md) · [Queries](queries.md) · [Control](control.md) ·\n[API](api.md) · [Compatibility](compatibility.md)\n" }, { "path": "docs/graph.md", @@ -14,19 +14,23 @@ }, { "path": "docs/queries.md", - "content": "# Query captured data\n\nCapture once, then use standard collections. The [complete program](../examples/native_query.ml)\ncloses its blocking client before evaluating any of the functions below.\nFollow the [README setup](../README.md#read-a-real-tmux-graph) first.\n\n## Use a native predicate\n\n\n\n```ocaml\nlet active_ids snapshot =\n Snapshot.panes snapshot |> Iarray.to_seq |> Seq.filter Pane.active\n |> Seq.map Pane.id |> List.of_seq\n```\n\n`Snapshot.panes` returns an immutable array of captured panes. Converting it to\na sequence does not acquire anything. Repeated traversal sees captured values;\nstateful callbacks supplied by an application can still behave differently.\n\n## Describe a typed query\n\n\n\n```ocaml\nlet roomy_terminals : Pane.t Expr.t =\n Expr.all\n [\n Expr.Bool.is_true Pane.Fields.active;\n Expr.Text.is_in Pane.Fields.current_command\n [ \"cat\"; \"bash\"; \"zsh\"; \"nvim\" ];\n Expr.Int.ge Pane.Fields.width 80;\n ]\n\nlet roomy_ids snapshot =\n Snapshot.panes snapshot |> Iarray.to_seq\n |> Query.matching roomy_terminals\n |> Seq.map Pane.id |> List.of_seq\n```\n\n`Expr.compile` returns an ordinary predicate. `Query.matching` compiles once\nwhen constructed and preserves order and multiplicity. Field descriptors carry\nboth entity and value types, so invalid entity/operator combinations fail in\nthe compiler. Boolean `Expr.all []` is true and `Expr.any []` is false.\n\n## Follow relationships without fetching\n\n\n\n```ocaml\nlet sessions_with_room snapshot =\n let expression =\n Expr.Rel.any Session.Relations.windows\n (Expr.Rel.any Window.Relations.panes roomy_terminals)\n in\n Snapshot.sessions snapshot |> Iarray.to_seq |> Query.matching expression\n |> Seq.map Session.name |> List.of_seq\n```\n\nRelationships traverse the complete captured graph. `Expr.Rel.any` over no\nchildren is false; `all` and `none` over no children are true. Put conditions\ninside one `any` when the same child must satisfy both. Two independent\nexistentials can match different children.\n\n## Establish cardinality before acting\n\n`Query.exactly_one` returns `No_match` or `Multiple_matches {at_least=2}` instead\nof choosing the first element. It stops once it finds a second match; proving\nuniqueness exhausts the remaining finite sequence. `one_or_none` returns an\noption while retaining an ambiguity error. Duplicate entries count separately.\n\nSelect first, inspect the result, then submit a mutation. Selection does not\nlock tmux; a target can disappear between observation and action. The\n[control guide](control.md) explains that failure boundary.\n\n## Decode portable query data explicitly\n\n`Libtmux_json.Expr.of_string Model.pane` validates the shared scalar pane\nsubset of `libtmux.filter/1`. It rejects duplicate/unknown keys, wrong operand\ntypes, invalid UTF-8, oversized/deep documents and Java regex. Native closures\nstay in `Seq.filter`; they have no portable wire identity.\n\n`Libtmux.Plan.panes` compiles a source filter and retains the residual expression\nwithout I/O. Inspect `source_filter` and use `Require_exact` to reject unsupported\nlowering. Current client capture operations acquire the complete graph; they do\nnot execute these plans. The planner is a separate seam for acquisition adapters.\nConjunctions, disjunctions, negation and relationships require different lowering\nrules; local sequence processing never issues a tmux query implicitly.\n\nThe [native reference](../lib/index.mld) executes a pure planning example with MDX.\n\n[Field reference](fields.md) · [API](api.md) · [Guide](README.md)\n" + "content": "# Query captured data\n\nCapture once, then use standard collections. The [complete program](../examples/native_query.ml)\ncloses its blocking client before evaluating any of the functions below.\nFollow the [README setup](../README.md#read-a-real-tmux-graph) first.\n\n## Use a native predicate\n\n\n\n```ocaml\nlet active_ids snapshot =\n Snapshot.panes snapshot |> Iarray.to_seq |> Seq.filter Pane.active\n |> Seq.map Pane.id |> List.of_seq\n```\n\n`Snapshot.panes` returns an immutable array of captured panes. Converting it to\na sequence does not acquire anything. Repeated traversal sees captured values;\nstateful callbacks supplied by an application can still behave differently.\n\n## Describe a typed query\n\n\n\n```ocaml\nlet roomy_terminals : Pane.t Expr.t =\n Expr.all\n [\n Expr.Bool.is_true Pane.Fields.active;\n Expr.Text.is_in Pane.Fields.current_command\n [ \"cat\"; \"bash\"; \"zsh\"; \"nvim\" ];\n Expr.Int.ge Pane.Fields.width 80;\n ]\n\nlet roomy_ids snapshot =\n Snapshot.panes snapshot |> Iarray.to_seq\n |> Query.matching roomy_terminals\n |> Seq.map Pane.id |> List.of_seq\n```\n\n`Expr.compile` returns an ordinary predicate. `Query.matching` compiles once\nwhen constructed and preserves order and multiplicity. Field descriptors carry\nboth entity and value types, so invalid entity/operator combinations fail in\nthe compiler. Boolean `Expr.all []` is true and `Expr.any []` is false.\n\n## Follow relationships without fetching\n\n\n\n```ocaml\nlet sessions_with_room snapshot =\n let expression =\n Expr.Rel.any Session.Relations.windows\n (Expr.Rel.any Window.Relations.panes roomy_terminals)\n in\n Snapshot.sessions snapshot |> Iarray.to_seq |> Query.matching expression\n |> Seq.map Session.name |> List.of_seq\n```\n\nRelationships traverse the complete captured graph. `Expr.Rel.any` over no\nchildren is false; `all` and `none` over no children are true. Put conditions\ninside one `any` when the same child must satisfy both. Two independent\nexistentials can match different children.\n\n## Establish cardinality before acting\n\n`Query.exactly_one` returns `No_match` or `Multiple_matches {at_least=2}` instead\nof choosing the first element. It stops once it finds a second match; proving\nuniqueness exhausts the remaining finite sequence. `one_or_none` returns an\noption while retaining an ambiguity error. Duplicate entries count separately.\n\nSelect first, inspect the result, then submit a mutation. Selection does not\nlock tmux; a target can disappear between observation and action. The\n[control guide](control.md) explains that failure boundary.\n\n## Decode portable query data explicitly\n\n`Libtmux_json.Expr.of_string Model.pane` validates the shared scalar pane\nsubset of [`libtmux.filter/1`](../json/index.mld). It rejects duplicate/unknown\nkeys, wrong operand types, invalid UTF-8, oversized/deep documents and Java\nregex. Native closures stay in `Seq.filter`; they have no portable wire identity.\n\n`Libtmux.Plan.panes` compiles a source filter and retains the residual expression\nwithout I/O. Inspect `source_filter` and use `Require_exact` to reject unsupported\nlowering. Current client capture operations acquire the complete graph; they do\nnot execute these plans. The planner is a separate seam for acquisition adapters.\nConjunctions, disjunctions, negation and relationships require different lowering\nrules; local sequence processing never issues a tmux query implicitly.\n\nThe [native reference](../lib/index.mld) executes a pure planning example with MDX.\n\n[Field reference](fields.md) · [API](api.md) · [Guide](README.md)\n" }, { "path": "docs/control.md", - "content": "# Submit actions and retain their outcomes\n\nObservations are local values. Client calls perform explicit I/O, and mutations\nuse targets bound to the source that produced them. Closing a client releases\nits own transports. tmux then applies its configured lifetime: for example,\n[the standalone programs](showcases.md) enable `exit-unattached` on their\nprivate daemons so they exit after their final client detaches.\n\nThe [layout program](../examples/native_build.ml) creates a session, splits its\nfirst pane and adds a logs window. It passes argv through `Spawn.Exec`, a working\ndirectory and an environment value. `Spawn.Shell` explicitly requests shell\ncode. `send_text` is literal input; `send_keys [Key.Enter]` is a separate action.\n\nA creation response returns the reported session, window and pane IDs without\nan extra graph capture. Only the resource requested by that command is newly\ncreated. A split's returned session and window are pre-existing containers.\n\n## Choose a backend\n\nUse `Libtmux_unix.Client` in a blocking script. Use `Libtmux_eio.Client` inside\nan application-owned Eio switch, supplying the process manager and monotonic\nclock. Clients are affine to their connecting domain. Immutable captured values\ncan be read from other domains; live client handles cannot move between them.\n\nThe Eio backend has client-owned workers for command draining and stream\nreading. A cancelled waiter does not abandon a written request. Local scratch\nfilesystem work runs on a system thread. The blocking backend supports scoped\ncancellation tokens signalled from another domain or systhread.\n\n## Distinguish acknowledgement from completion\n\n`submit` validates and reserves capacity without writing. Retain the operation\nhandle before awaiting it. `Operation.inspect` reads its state without I/O:\nqueued, not started, written, acknowledged, finished, or outcome unknown.\n\nA reply can acknowledge a command while hooks or its completion marker remain\noutstanding. Sending keys confirms tmux accepted input; it does not prove a\nterminal program consumed it or completed work. A detach request does not prove\nthe peer exited. Use the relevant postcondition, rendered wait or external exit\nsignal for the task.\n\nExpected failures use `result` and `Error.t`. Backend cancellation propagates\nas cancellation. An uncertain result retains reported creation IDs and unresolved\nowned buffers; it never becomes an instruction to retry the mutation.\n\n## Recover deliberately\n\nA replacement daemon retires the connection generation. Reconnect explicitly,\ncapture again and establish cardinality before choosing a fresh target.\nOld captured values remain readable, but their targets cannot silently move to\nthe new server.\n\nPartial effects can remain after a later hook or command failure. Inspect the\nretained receipt and current server state. Compensate only resources whose\ncreation is proven. A snapshot is an observation over an interval, and a\nselection followed by mutation is not an atomic transaction.\n\nSee [streaming](streaming.md) for Data/Gap/End and bounded queues, and\n[compatibility](compatibility.md) for hook, PID-namespace and scratch-file\nconstraints. [Guide](README.md) · [API](api.md)\n" + "content": "# Submit actions and retain their outcomes\n\nObservations are local values. Client calls perform explicit I/O, and mutations\nuse targets bound to the source that produced them. Closing a client releases\nits own transports. tmux then applies its configured lifetime: for example,\n[the standalone programs](showcases.md) enable `exit-unattached` on their\nprivate daemons so they exit after their final client detaches.\n\nThe [layout program](../examples/native_build.ml) creates a session, splits its\nfirst pane and adds a logs window. It passes argv through `Spawn.Exec`, a working\ndirectory and an environment value. `Spawn.Shell` explicitly requests shell\ncode. `send_text` is literal input; `send_keys [Key.Enter]` is a separate action.\n\nA creation response returns the reported session, window and pane IDs without\nan extra graph capture. Only the resource requested by that command is newly\ncreated. A split's returned session and window are pre-existing containers.\n\n## Choose a backend\n\nUse `Libtmux_unix.Client` in a blocking script. Use `Libtmux_eio.Client` inside\nan application-owned Eio switch, supplying the process manager and monotonic\nclock. Clients are affine to their connecting domain. Immutable captured values\ncan be read from other domains; live client handles cannot move between them.\n\nThe Eio backend has client-owned workers for command draining and stream\nreading. A cancelled waiter does not abandon a written request. Local scratch\nfilesystem work runs on a system thread. The blocking backend supports scoped\ncancellation tokens signalled from another domain or systhread.\n\n| Recovery concern | Eio | Blocking Unix |\n| --- | --- | --- |\n| Cancel one caller | Eio cancellation scope around `Client.await` | `Cancellation.with_` token passed to `Client.await` |\n| Return after cancellation | The waiter raises while a client-owned fiber drains admitted work | The call drains before raising; one exchange timeout after detection bounds transport work |\n| Inspect an outcome | `Operation.inspect`, on the connecting domain | `Operation.inspect`, on the connecting domain |\n| Release resources | Close the client inside its application-owned switch | Close the client after the call returns |\n\nThe blocking bound covers transport draining. Local scratch I/O must still\nfinish before the call returns.\n\nThe [complete recovery example](recovery.md) cancels an active waiter, awaits\nthe same retained operation and checks server state before its next mutation.\n\n## Distinguish acknowledgement from completion\n\n`submit` validates and reserves capacity without writing. Retain the operation\nhandle before awaiting it. `Operation.inspect` reads its state without I/O:\nqueued, not started, written, acknowledged, finished, or outcome unknown.\n\nA reply can acknowledge a command while hooks or its completion marker remain\noutstanding. Sending keys confirms tmux accepted input; it does not prove a\nterminal program consumed it or completed work. A detach request does not prove\nthe peer exited. Use the relevant postcondition, rendered wait or external exit\nsignal for the task.\n\nExpected failures use `result` and `Error.t`. Backend cancellation propagates\nas cancellation. An uncertain result retains reported creation IDs and unresolved\nowned buffers; it never becomes an instruction to retry the mutation.\n\n## Recover deliberately\n\nA replacement daemon retires the connection generation. Reconnect explicitly,\ncapture again and establish cardinality before choosing a fresh target.\nOld captured values remain readable, but their targets cannot silently move to\nthe new server.\n\nPartial effects can remain after a later hook or command failure. Inspect the\nretained receipt and current server state. Compensate only resources whose\ncreation is proven. A snapshot is an observation over an interval, and a\nselection followed by mutation is not an atomic transaction.\n\nUse the [recovery walkthrough](recovery.md) to follow this sequence through a\ncomplete installed program, including cleanup of its own pane.\n\nSee [streaming](streaming.md) for Data/Gap/End and bounded queues, and\n[compatibility](compatibility.md) for hook, PID-namespace and scratch-file\nconstraints. [Guide](README.md) · [API](api.md)\n" + }, + { + "path": "docs/recovery.md", + "content": "# Recover an operation after cancelling its waiter\n\nRetain the operation handle before awaiting it. Cancelling one Eio waiter leaves\nadmitted work under the client's ownership. Inspect that handle, await its\noutcome and check the relevant server state before choosing another mutation.\n\nThis program uses a tmux `wait-for` barrier to keep an operation pending while\nits waiter is cancelled. It then signals the barrier once and awaits the same\nhandle. A fresh capture checks the window's name before renaming it. The barrier\ncoordinates this example; it does not establish completion of a terminal\nprogram. [Control](control.md) compares Eio and blocking cancellation timing.\n\n## Run the complete program\n\nComplete the [source installation](getting-started.md) and run from the cloned\nrepository. Start an empty private server:\n\n```console\n$ export LIBTMUX_RECOVERY_DIR=\"$(mktemp -d -t libtmux-ocaml-recovery.XXXXXX)\"\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_RECOVERY_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s recovery-demo \\\n -- \"exec cat\"\n```\n\nThe fresh server's session ID is `$0`; quote it to preserve the literal ID:\n\n```console\n$ opam exec -- dune exec examples/native_recovery.exe -- \\\n tmux \"$LIBTMUX_RECOVERY_DIR/server\" '$0'\n```\n\nExpected output is `waiter=cancelled; operation=retained`, followed by\n`operation=finished; postcondition=recovery-complete`. The program creates a\nwindow and removes its own pane afterward. It preserves the seed session and\nother panes, and closes its client on success or failure.\n\nRemove the private seed session and directory:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_RECOVERY_DIR/server\" \\\n kill-session \\\n -t '=recovery-demo'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_RECOVERY_DIR/server\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_RECOVERY_DIR\"\n```\n\n## Inspect before acting\n\nThe [complete source](../examples/native_recovery.ml) uses installed public\nlibraries. Its Eio cancellation scope covers only the waiter. Client ownership\nand cleanup remain outside that scope.\n\n\n\n```ocaml\nopen Libtmux\nmodule Client = Libtmux_eio.Client\nmodule Operation = Libtmux_eio.Operation\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet protect ~finally use =\n match use () with\n | value ->\n finally ();\n value\n | exception error ->\n let backtrace = Printexc.get_raw_backtrace () in\n (try finally ()\n with cleanup ->\n Format.eprintf \"cleanup failed: %s@.\" (Printexc.to_string cleanup));\n Printexc.raise_with_backtrace error backtrace\n\nlet cancel_waiter operation =\n let entered, enter = Eio.Promise.create () in\n let context = ref None in\n Eio.Fiber.pair\n (fun () ->\n try\n Eio.Cancel.sub (fun current ->\n context := Some current;\n Eio.Promise.resolve enter ();\n ignore (get (Client.await operation));\n failwith \"wait completed before its release signal\")\n with Eio.Cancel.Cancelled Exit -> ())\n (fun () ->\n Eio.Promise.await entered;\n Eio.Cancel.cancel (Option.get !context) Exit)\n |> ignore\n\nlet recover client session =\n let created =\n get\n (Client.create_window client session ~name:\"recovery-pending\"\n ~spawn:(Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\" ] })))\n in\n let channel =\n \"libtmux-recovery-\"\n ^ Generation.to_string (Source.generation (Client.source client))\n in\n let pending = ref None and release_attempted = ref false in\n let release () =\n if not !release_attempted then (\n release_attempted := true;\n get (Client.signal client channel))\n in\n protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () ->\n protect\n ~finally:(fun () -> get (Client.kill_pane client created.pane))\n (fun () ->\n match !pending with\n | None -> ()\n | Some operation -> (\n match get (Operation.inspect operation) with\n | Operation.Queued -> get (Operation.cancel operation)\n | Operation.Written | Operation.Acknowledged ->\n release ();\n get (Client.await operation)\n | Operation.Not_started | Operation.Finished _\n | Operation.Outcome_unknown _ ->\n ()))))\n (fun () ->\n let operation =\n get (Client.submit client (Operations.wait_for channel))\n in\n pending := Some operation;\n ignore (get (Operation.await_stage operation `Acknowledged));\n cancel_waiter operation;\n (match get (Operation.inspect operation) with\n | Operation.Written | Operation.Acknowledged -> ()\n | Operation.Outcome_unknown receipt ->\n failwith\n (Format.asprintf \"outcome unknown: %a\" Error.pp receipt.cause)\n | _ -> failwith \"expected a retained in-flight operation\");\n print_endline \"waiter=cancelled; operation=retained\";\n release ();\n get (Client.await operation);\n (match get (Operation.inspect operation) with\n | Operation.Finished (Ok ()) -> ()\n | _ -> failwith \"retained operation did not finish\");\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n if Window.name window <> \"recovery-pending\" then\n failwith \"postcondition changed; leave the next action to the caller\";\n get\n (Client.rename_window client (Window.target window)\n ~name:\"recovery-complete\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id window)\n |> Option.get\n in\n assert (Window.name after = \"recovery-complete\");\n Printf.printf \"operation=finished; postcondition=%s\\n\" (Window.name after))\n\nlet () =\n if Array.length Sys.argv <> 4 then (\n prerr_endline \"usage: native_recovery TMUX_BINARY SOCKET_PATH SESSION_ID\";\n exit 2);\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let client =\n get\n (Client.connect ~sw ~binary:Sys.argv.(1)\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Endpoint.socket_path Sys.argv.(2)))\n in\n protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let id = get (Session.Id.of_string Sys.argv.(3)) in\n let session =\n Snapshot.find_session (get (Client.capture client)) id |> Option.get\n in\n recover client (Session.target session))\n```\n\nThe release attempt is recorded before its I/O so cleanup cannot retry an\nuncertain signal. The finally block cancels queued work, releases and drains a\nlive barrier, and removes only the pane whose creation was reported. Existing\npanes remain outside that cleanup. A primary failure keeps its original\nexception and backtrace; a later cleanup failure is reported separately. Both clients and operations stay on the\nconnecting domain.\n\n## Interpret a retained state\n\n[`Libtmux_eio.Operation.inspect`](../eio/libtmux_eio.mli) performs no I/O and\nremains readable after client closure. A state describes this operation; it\ndoes not prove a terminal program consumed input or exited.\n\n| State | Next decision |\n| --- | --- |\n| `Queued` | Cancel before writing, or continue awaiting the same handle. |\n| `Not_started` | The operation made no admitted effect; establish fresh preconditions before a new action. |\n| `Written` or `Acknowledged` | Keep the handle. The client still owns completion; cancelling another waiter does not undo the write. |\n| `Finished (Ok value)` | Use the result and check the task's relevant postcondition. |\n| `Finished (Error error)` | Examine the error and current state; a later command or hook failure can follow an earlier effect. |\n| `Outcome_unknown receipt` | Preserve the cause and reported creations. Reacquire observations explicitly and resolve uncertainty before another mutation. |\n\nThe example exercises active-waiter cancellation and retained completion. Its\nunknown-outcome branch reports the cause and stops the next action. Transport\nloss, a replacement daemon and uncertain mutation recovery require the retained\nreceipt and fresh observation; this program does not simulate those failures.\nClosing a client does not terminate a borrowed tmux daemon.\n\nFor workspace automation, inspect the [execution receipt](workspaces.md#collisions-and-recovery)\nand compensate only proven creations. For stream continuity loss, handle the\n[Gap or End event](streaming.md) before choosing a fresh subscription.\n\n[First use](getting-started.md) · [Control](control.md) · [Guide](README.md)\n" }, { "path": "docs/streaming.md", - "content": "# Observe output and wait for rendered text\n\nUse [native_watch.ml](../examples/native_watch.ml) for a complete concurrent\nliteral-send, future-byte match and rendered-screen check. Its application owns\nthe Eio scheduler and switch. Use [native_wait.ml](../examples/native_wait.ml) to capture exactly one pane and\nwait until its ordinary screen contains the supplied text. The example imports\nthe installed Eio client, owns its switch, uses an explicit socket, closes its\nclient and prints the matched pane ID. It requires an existing daemon and one\npane; absence and ambiguity remain errors.\n\n`Client.wait_for_text` first subscribes, then captures the screen immediately.\nOutput invalidates that observation. Queued Data events are coalesced before\nthe next bounded capture; a queued Gap stops that coalescing. Membership and\noverflow gaps cause fresh graph acquisition and subscription in the same\nconnection binding. A disconnected daemon or stream fails the wait.\n\nSuccess returns a captured screen containing the text. Text that appears and\ndisappears between captures may be missed. Deadlines are checked between\nacquisitions, whose in-flight I/O keeps the client's exchange timeout. A timed\nout wait does not prove that text was absent in the past.\n\nUse `Client.subscribe` and `Subscription.next` for future output bytes. Data\nretains every byte, including NUL and invalid UTF-8. Its cursor records a local\nsubscription generation and an observed byte offset. A cursor is neither a\nsnapshot timestamp nor a server-side history position. `poll` only removes a\nqueued event and performs no I/O.\n\n`Subscription.wait_for_bytes` consumes those future events and matches across\nevent boundaries. Its nonempty pattern is limited to 64 KiB. It returns the\nmatch's end cursor, possibly inside the last consumed Data event. A deadline\nleaves the subscription active. A Gap returns `Output.Ended reason`; later\nmatching requires an explicit fresh capture and new subscription.\n\nThe defaults are 1 MiB and 1024 queued events per subscriber, at most 16 active\nsubscribers, and eight total client lanes including command/wait lanes. Reuse\none verified lane per covered session. Admission reserves bytes against the\nshared 32 MiB budget. A full queue produces Gap then End rather than blocking\nanother subscriber or an independent command. Unknown loss uses `None`.\n\nCoverage uses an observed session/window context and revalidates it during\nadmission. Layout or membership changes end continuity conservatively. Detaching\na stream leaves the primary client usable; a daemon replacement retires the\nwhole binding. New coverage always has a new subscription generation.\n\nEio readers belong to the client, use no application callbacks and keep running\nwhen a subscriber stalls. The blocking backend advances all stream lanes during\n`Subscription.next`. Cancellation closes the affected subscription and\npropagates through the backend's cancellation mechanism. Client close releases\nall owned lanes and retains terminal events; it leaves the daemon alive.\n\nNeither interface establishes an atomic capture/stream barrier or reconstructs\nterminal history. An immutable snapshot remains a separate captured value.\n\n[First use](getting-started.md) · [Control and recovery](control.md) ·\n[API](api.md) · [Guide](README.md)\n" + "content": "# Observe output and wait for rendered text\n\nUse [native_watch.ml](../examples/native_watch.ml) for a complete concurrent\nliteral-send, future-byte match and rendered-screen check. Its application owns\nthe Eio scheduler and switch. Use [native_wait.ml](../examples/native_wait.ml) to capture exactly one pane and\nwait until its ordinary screen contains the supplied text. The example imports\nthe installed Eio client, owns its switch, uses an explicit socket, closes its\nclient and prints the matched pane ID. It requires an existing daemon and one\npane; absence and ambiguity remain errors.\n\n`Client.wait_for_text` first subscribes, then captures the screen immediately.\nOutput invalidates that observation. Queued Data events are coalesced before\nthe next bounded capture; a queued Gap stops that coalescing. Membership and\noverflow gaps cause fresh graph acquisition and subscription in the same\nconnection binding. A disconnected daemon or stream fails the wait.\n\nSuccess returns a captured screen containing the text. Text that appears and\ndisappears between captures may be missed. Deadlines are checked between\nacquisitions, whose in-flight I/O keeps the client's exchange timeout. A timed\nout wait does not prove that text was absent in the past.\n\nUse `Client.subscribe` and `Subscription.next` for future output bytes. Data\nretains every byte, including NUL and invalid UTF-8. Its cursor records a local\nsubscription generation and an observed byte offset. A cursor is neither a\nsnapshot timestamp nor a server-side history position. `poll` only removes a\nqueued event and performs no I/O.\n\n`Subscription.wait_for_bytes` consumes those future events and matches across\nevent boundaries. Its nonempty pattern is limited to 64 KiB. It returns the\nmatch's end cursor, possibly inside the last consumed Data event. A deadline\nleaves the subscription active. A Gap returns `Output.Ended reason`; later\nmatching requires an explicit fresh capture and new subscription.\n\nThe defaults are 1 MiB and 1024 queued events per subscriber, at most 16 active\nsubscribers, and eight total client lanes including command/wait lanes. Reuse\none verified lane per covered session. Admission reserves bytes against the\nshared 32 MiB budget. A full queue produces Gap then End rather than blocking\nanother subscriber or an independent command. Unknown loss has no byte count.\n\nCoverage uses an observed session/window context and revalidates it during\nadmission. Layout or membership changes end continuity conservatively. Detaching\na stream leaves the primary client usable; a daemon replacement retires the\nwhole binding. New coverage always has a new subscription generation.\n\nEio readers belong to the client, use no application callbacks and keep running\nwhen a subscriber stalls. The blocking backend advances all stream lanes during\n`Subscription.next`. Cancellation closes the affected subscription and\npropagates through the backend's cancellation mechanism. Client close releases\nall owned lanes and retains terminal events; it leaves the daemon alive.\n\nThe [recovery program](recovery.md) shows how to cancel one operation waiter\nwhile keeping its retained outcome available. Cancelling a subscription closes\nthat subscription; it does not cancel an already admitted command.\n\nNeither interface establishes an atomic capture/stream barrier or reconstructs\nterminal history. An immutable snapshot remains a separate captured value.\n\n[First use](getting-started.md) · [Control and recovery](control.md) ·\n[API](api.md) · [Guide](README.md)\n" }, { "path": "docs/showcases.md", - "content": "# Run a complete capability example\n\nEach program creates a private tmux workspace, performs one task, verifies the\nresult and closes its clients. Copy the whole file into a Dune project or run\nit from this checkout after [installation](getting-started.md).\n\nThe programs use a minimal tmux configuration that makes their private daemon\nexit when its last client detaches. They accept an optional tmux binary,\nnot a borrowed server socket. Their setup uses the public workspace API; the\ntask uses the client API. The Eio example starts its scheduler after setup and\nsubscribes before sending the bytes it observes.\n\nFor a separate project, copy a program as `main.ml` and use these Dune libraries:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-workspace libtmux-unix unix))\n```\n\nThe watch program also needs `libtmux-eio` and `eio_main`. The\n[installation guide](getting-started.md) supplies the project and switch setup.\n\n| Task | Complete program | Expected outcome line |\n| --- | --- | --- |\n| Navigate sessions, shared windows and panes | [Graph](../examples/showcase_graph.ml) | `graph: 2 sessions, 2 windows, 3 links, 2 panes` |\n| Observe future bytes concurrently | [Watch](../examples/showcase_watch.ml) | `observed: changed` |\n| Send literal input and Enter | [Keys](../examples/showcase_send_keys.ml) | `sent: literal: $HOME; #{pane_id}` |\n| Rename a window and retain the old observation | [Rename](../examples/showcase_rename_window.ml) | `renamed: editor-main` |\n| Create a window and recapture its name | [Create](../examples/showcase_create_window.ml) | `created: logs` |\n| Move a window to another session's index | [Move](../examples/showcase_move_window.ml) | `moved: build at 7` |\n| Apply and verify horizontal pane geometry | [Layout](../examples/showcase_layout.ml) | `layout: 3 horizontal panes` |\n\nAll programs print their temporary socket path before the outcome. Run the\ngraph example; it traverses the snapshot after the client and daemon close:\n\n```console\n$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n```\n\nObserve future output with an application-owned Eio switch:\n\n```console\n$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n```\n\nSend a literal string containing shell and tmux format characters:\n\n```console\n$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n```\n\nRename the editor window:\n\n```console\n$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n```\n\nCreate a separate logs window:\n\n```console\n$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n```\n\nMove a build window to index 7 in another session:\n\n```console\n$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n```\n\nSplit a window and apply an even horizontal layout:\n\n```console\n$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n```\n\nThese examples require tmux 3.3 or newer on the qualified Linux environment.\nThe native CI job executes their real entry points on 3.3, 3.3a, 3.4 and 3.8,\nusing a separate installation and Dune project. A nonzero exit, missing exact\noutcome line, leftover directory or surviving owned process fails the run.\n[`showcase.json`](../examples/showcase.json) records the whole files, commands,\nexpected lines, tmux floor, workflow, job and runner.\n\nSending keys confirms tmux accepted input. The rendered-text example observes\nthe resulting screen; it does not wait for an arbitrary application's exit\ncode. A future-byte subscription has no historical capture barrier. See\n[control outcomes](control.md) and [streaming](streaming.md) for those contracts.\n" + "content": "# Run a complete capability example\n\nEach program creates a private tmux workspace, performs one task, verifies the\nresult and closes its clients. Copy the whole file into a Dune project or run\nit from this checkout after [installation](getting-started.md).\n\nThe programs use a minimal tmux configuration that makes their private daemon\nexit when its last client detaches. They accept an optional tmux binary,\nnot a borrowed server socket. Their setup uses the public workspace API; the\ntask uses the client API. The Eio example starts its scheduler after setup and\nsubscribes before sending the bytes it observes.\n\nFor a separate project, save a program as `main.ml` and use these Dune libraries:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-workspace libtmux-unix unix))\n```\n\nThe watch program also needs `libtmux-eio` and `eio_main`. The\n[installation guide](getting-started.md) supplies the project and switch setup.\n\n| Task | Complete program | Expected outcome line |\n| --- | --- | --- |\n| Navigate sessions, shared windows and panes | [Graph](../examples/showcase_graph.ml) | `graph: 2 sessions, 2 windows, 3 links, 2 panes` |\n| Observe future bytes concurrently | [Watch](../examples/showcase_watch.ml) | `observed: changed` |\n| Send literal input and Enter | [Keys](../examples/showcase_send_keys.ml) | `sent: literal: $HOME; #{pane_id}` |\n| Rename a window and retain the old observation | [Rename](../examples/showcase_rename_window.ml) | `renamed: editor-main` |\n| Create a window and recapture its name | [Create](../examples/showcase_create_window.ml) | `created: logs` |\n| Move a window to another session's index | [Move](../examples/showcase_move_window.ml) | `moved: build at 7` |\n| Apply and verify horizontal pane geometry | [Layout](../examples/showcase_layout.ml) | `layout: 3 horizontal panes` |\n\nAll programs print their temporary socket path before the outcome. Run the\ngraph example; it traverses the snapshot after the client and daemon close:\n\n```console\n$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n```\n\nObserve future output with an application-owned Eio switch:\n\n```console\n$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n```\n\nSend a literal string containing shell and tmux format characters:\n\n```console\n$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n```\n\nRename the editor window:\n\n```console\n$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n```\n\nCreate a separate logs window:\n\n```console\n$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n```\n\nMove a build window to index 7 in another session:\n\n```console\n$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n```\n\nSplit a window and apply an even horizontal layout:\n\n```console\n$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n```\n\nThese examples require tmux 3.3 or newer on the qualified Linux environment.\nThe native CI job executes their real entry points on 3.3, 3.3a, 3.4 and 3.8,\nusing a separate installation and Dune project. A nonzero exit, missing exact\noutcome line, leftover directory or surviving owned process fails the run.\n[`showcase.json`](../examples/showcase.json) records the whole files, commands,\nexpected lines, tmux floor, workflow, job and runner.\n\nSending keys confirms tmux accepted input. The rendered-text example observes\nthe resulting screen; it does not wait for an arbitrary application's exit\ncode. A future-byte subscription has no historical capture barrier. See\n[control outcomes](control.md) and [streaming](streaming.md) for those contracts.\n" }, { "path": "docs/packages.md", @@ -34,11 +38,11 @@ }, { "path": "docs/compatibility.md", - "content": "# Compatibility\n\nThe compiler target is **OCaml 5.5.2**, exactly pinned. Older compilers are\noutside this implementation's scope. The development tools are Dune 3.24.2\nand opam 2.6.1.\n\nThe implementation targets Linux and tmux 3.3 or newer. Current evidence covers\nspecific components; final suite qualification has a separate acceptance gate.\n\n| Component | 3.3 | 3.3a | 3.4 | 3.8 |\n| --- | --- | --- | --- | --- |\n| Owned fixture teardown | PASS | PASS | PASS | PASS |\n| Exact Boolean pane filters | PASS | PASS | PASS | PASS |\n| Argument and metadata byte codecs | PASS | PASS | PASS | PASS |\n| Split control framing and command groups | PASS | PASS | PASS | PASS |\n| Bound graph capture and client teardown | PASS | PASS | PASS | PASS |\n| Replacement-daemon rejection | PASS | PASS | PASS | PASS |\n| Private-file capture and failed-save callbacks | PASS | PASS | PASS | PASS |\n| Eio waiter cancellation and retained outcomes | PASS | PASS | PASS | PASS |\n| Blocking cancellation and bounded drain | PASS | PASS | PASS | PASS |\n| Command and lane admission limits | PASS | PASS | PASS | PASS |\n| Environment bytes, scopes and read-process lifecycle | PASS | PASS | PASS | PASS |\n| Scoped options and built-in hook execution | PASS | PASS | PASS | PASS |\n| Current client names and detach-request semantics | PASS | PASS | PASS | PASS |\n| Interactive attachment, cancellation and child exit | PASS | PASS | PASS | PASS |\n| Versioned format availability and generated APIs | PASS | PASS | PASS | PASS |\n| Native operation inventory | PASS | PASS | PASS | PASS |\n| Data/Gap/End, stream limits and recovery | PASS | PASS | PASS | PASS |\n| Rendered waits and future-byte matching | PASS | PASS | PASS | PASS |\n| Blocking/Eio workspace preconditions and compensation | PASS | PASS | PASS | PASS |\n| Public workspace bootstrap on fresh/existing daemons | PASS | PASS | PASS | PASS |\n| Installed workspace CLI, receipts, interruption and output faults | PASS | PASS | PASS | PASS |\n| Literal workspace guide and owned teardown | PASS | PASS | PASS | PASS |\n| Final suite qualification | UNVERIFIED | UNVERIFIED | UNVERIFIED | UNVERIFIED |\n\nThe blocking client and workspace CLI reject 3.2a. Development tmux 3.8a does\nnot replace the published 3.8 cell. PID-acquisition races and malformed replies after writing\npass deterministic fault checks with real Linux child processes. Cancellation\nat each capture transfer step and unresolved-buffer receipts also pass on\nevery release. Ready I/O still checks its deadline; busy pipes cannot bypass\nthe timeout. These results qualify the implemented lifecycle contracts, not\nthe final suite qualification. MCP integration is outside this port's scope.\n\nThe I/O packages require Linux pidfds, the same PID namespace as the daemon,\nand shared local scratch storage. A socket pathname does not prove those\nconditions. Each connection has its own generation; a replacement daemon never\ninherits old targets. Closing a client releases its own processes and leaves\nthe daemon running.\n\nThe blocking client accepts a scoped `Cancellation` token that another domain\nor systhread can cancel. It drains admitted work before raising\n`Cancellation.Cancelled`, with at most one exchange timeout from detection.\nThe operation handle retains success, failure or uncertainty. Eio cancellation\nreleases the waiter immediately while a client-owned fiber drains the work.\nLocal scratch I/O must finish in either case; Eio performs it on a system\nthread. Filesystem failures have a distinct error from transport disconnects.\n\nPane PIDs and client terminal heights can be absent. The model exposes these as\noptions; a control client without a started terminal has no reported height.\ntmux itself sanitizes names on older releases and rejects some names on newer\nreleases. Captures preserve the observed value rather than reconstructing the\nargument originally submitted by another client.\n\nControl commands use ASCII escapes for non-ASCII bytes because tmux 3.3's\ncommand-string lexer can confuse a signed `0xff` byte with EOF. Metadata uses\ntmux's `q` format modifier and preserves physical newlines. A fixed read probe\ndetects the additional visual escaping used by tmux 3.4 before decoding it.\nControl clients must request UTF-8 mode so locale-dependent sanitization cannot\nalter captured bytes.\n\nAn end guard acknowledges a command. Completion requires the operation's\npostcondition or a following marker on its lane. A control client may exit\nwith status 1 after an earlier command failed, even when later commands and\nshutdown succeeded. Tests retain that distinction.\n\nThe optional JSON codec supports the scalar pane registry and Boolean nodes\nfrom Java's `libtmux.filter/1` at revision\n`e8a39689d8d60968ac978a1dd2a89c6112333896`. Both implementations agree on 66\ncaptured-value cases and read each other's encoded queries. Numeric operands\nuse signed 32-bit bounds. Regex, relationship documents, numeric membership\nand native extension fields remain unsupported in this wire schema.\n\nReproduce native checks with the commands in\n[CONTRIBUTING.md](../.github/CONTRIBUTING.md). The fixture builders use official\nrelease archives and retain archive and binary digests under `scratch/tmux/`.\n\nEnvironment reads use a bounded read-only process on the same daemon. The\nclient checks its reported PID and the original pidfd after collecting the\ncomplete response. Values may contain control-marker text without entering\nthe control parser. Replacement, malformed data, truncated output and capacity\nfailures never become a successful empty table. This route does not execute\nmutations or reconnect the primary lane.\n\nScoped options preserve scalar types, sparse array indexes and local versus\ninherited entries. Bulk inherited enumeration follows tmux and includes only\nbuilt-ins; `read_option` resolves a named inherited user option. Descriptors are\nqualified for the exact releases in the [option catalog](options.md). tmux fills\nthe lowest unused indexes when appending array elements.\n\nHook commands keep names and arguments separate. Built-in hook arrays report\nsynchronous failures; earlier effects remain after a later command fails. Named\n`@` hooks can be configured, read and removed, but `run_hook` rejects them because\ntmux may hide parse failures in the server log. Hooks that print arbitrary output\nremain outside the supported control transport contract.\n\nCaptured client names belong to a connection generation but may be reused within\nit. Operations address the client currently bearing that name. A detach request\nconfirms command processing, not peer exit; callers need separate exit evidence.\nSwitching an existing client does not create a new terminal.\n\n`Terminal.attach_current` opens an interactive terminal against an explicit\nendpoint and session ID. This separate utility is unbound: an ID can refer to a\ndifferent daemon if the endpoint changes. It accepts no captured target and\nnever retries or starts a daemon. Both backends wait for the terminal client to\nexit and reap it on cancellation. Supplied terminal streams remain caller-owned.\n\nThe generated [format catalog](formats.md) records exact-release availability\nand callback contexts. Local `Formats.lookup` distinguishes captured values,\nmissing values, unacquired fields and fields unsupported by that release.\nIt does not perform arbitrary format acquisition. Generated\n[operation conveniences](operations.md) share the same command constructors\nbetween Unix and Eio; the installed-consumer test exercises both adapters.\n" + "content": "# Compatibility\n\nThe compiler target is **OCaml 5.5.2**, exactly pinned. Older compilers are\noutside this implementation's scope. The development tools are Dune 3.24.2\nand opam 2.6.1.\n\nThe implementation targets Linux and tmux 3.3 or newer. Current evidence covers\nspecific components; final suite qualification has a separate acceptance gate.\n\n| Component | 3.3 | 3.3a | 3.4 | 3.8 |\n| --- | --- | --- | --- | --- |\n| Owned fixture teardown | PASS | PASS | PASS | PASS |\n| Exact Boolean pane filters | PASS | PASS | PASS | PASS |\n| Argument and metadata byte codecs | PASS | PASS | PASS | PASS |\n| Split control framing and command groups | PASS | PASS | PASS | PASS |\n| Bound graph capture and client teardown | PASS | PASS | PASS | PASS |\n| Replacement-daemon rejection | PASS | PASS | PASS | PASS |\n| Private-file capture and failed-save callbacks | PASS | PASS | PASS | PASS |\n| Eio waiter cancellation and retained outcomes | PASS | PASS | PASS | PASS |\n| Blocking cancellation and bounded drain | PASS | PASS | PASS | PASS |\n| Command and lane admission limits | PASS | PASS | PASS | PASS |\n| Environment bytes, scopes and read-process lifecycle | PASS | PASS | PASS | PASS |\n| Scoped options and built-in hook execution | PASS | PASS | PASS | PASS |\n| Current client names and detach-request semantics | PASS | PASS | PASS | PASS |\n| Interactive attachment, cancellation and child exit | PASS | PASS | PASS | PASS |\n| Versioned format availability and generated APIs | PASS | PASS | PASS | PASS |\n| Native operation inventory | PASS | PASS | PASS | PASS |\n| Data/Gap/End, stream limits and recovery | PASS | PASS | PASS | PASS |\n| Rendered waits and future-byte matching | PASS | PASS | PASS | PASS |\n| Blocking/Eio workspace preconditions and compensation | PASS | PASS | PASS | PASS |\n| Public workspace bootstrap on fresh/existing daemons | PASS | PASS | PASS | PASS |\n| Installed workspace CLI, receipts, interruption and output faults | PASS | PASS | PASS | PASS |\n| Literal workspace guide and owned teardown | PASS | PASS | PASS | PASS |\n| Final suite qualification | UNVERIFIED | UNVERIFIED | UNVERIFIED | UNVERIFIED |\n\nThe blocking client and workspace CLI reject 3.2a. Development tmux 3.8a does\nnot replace the published 3.8 cell. PID-acquisition races and malformed replies after writing\npass deterministic fault checks with real Linux child processes. Cancellation\nat each capture transfer step and unresolved-buffer receipts also pass on\nevery release. Ready I/O still checks its deadline; busy pipes cannot bypass\nthe timeout. These results qualify the implemented lifecycle contracts, not\nthe final suite qualification. MCP integration is outside this port's scope.\n\nThe I/O packages require Linux pidfds, the same PID namespace as the daemon,\nand shared local scratch storage. A socket pathname does not prove those\nconditions. Each connection has its own generation; a replacement daemon never\ninherits old targets. Closing a client releases its own processes and leaves\nthe daemon running.\n\nThe blocking client accepts a scoped `Cancellation` token that another domain\nor systhread can cancel. It drains admitted work before raising\n`Cancellation.Cancelled`, with at most one exchange timeout from detection.\nThe operation handle retains success, failure or uncertainty. Eio cancellation\nreleases the waiter immediately while a client-owned fiber drains the work.\nLocal scratch I/O must finish in either case; Eio performs it on a system\nthread. Filesystem failures have a distinct error from transport disconnects.\n\nPane PIDs and client terminal heights can be absent. The model exposes these as\noptions; a control client without a started terminal has no reported height.\ntmux itself sanitizes names on older releases and rejects some names on newer\nreleases. Captures preserve the observed value rather than reconstructing the\nargument originally submitted by another client.\n\nControl commands use ASCII escapes for non-ASCII bytes because tmux 3.3's\ncommand-string lexer can confuse a signed `0xff` byte with EOF. Metadata uses\ntmux's `q` format modifier and preserves physical newlines. A fixed read probe\ndetects the additional visual escaping used by tmux 3.4 before decoding it.\nControl clients must request UTF-8 mode so locale-dependent sanitization cannot\nalter captured bytes.\n\nAn end guard acknowledges a command. Completion requires the operation's\npostcondition or a following marker on its lane. A control client may exit\nwith status 1 after an earlier command failed, even when later commands and\nshutdown succeeded. Tests retain that distinction.\n\nThe optional JSON codec supports the scalar pane registry and Boolean nodes\nfrom Java's [`libtmux.filter/1`](../json/index.mld) at revision\n`e8a39689d8d60968ac978a1dd2a89c6112333896`. Both implementations agree on 66\ncaptured-value cases and read each other's encoded queries. Numeric operands\nuse signed 32-bit bounds. Regex, relationship documents, numeric membership\nand native extension fields remain unsupported in this wire schema.\n\nReproduce native checks with the commands in\n[CONTRIBUTING.md](../.github/CONTRIBUTING.md). The fixture builders use official\nrelease archives and retain archive and binary digests under `scratch/tmux/`.\n\nEnvironment reads use a bounded read-only process on the same daemon. The\nclient checks its reported PID and the original pidfd after collecting the\ncomplete response. Values may contain control-marker text without entering\nthe control parser. Replacement, malformed data, truncated output and capacity\nfailures never become a successful empty table. This route does not execute\nmutations or reconnect the primary lane.\n\nScoped options preserve scalar types, sparse array indexes and local versus\ninherited entries. Bulk inherited enumeration follows tmux and includes only\nbuilt-ins; `read_option` resolves a named inherited user option. Descriptors are\nqualified for the exact releases in the [option catalog](options.md). tmux fills\nthe lowest unused indexes when appending array elements.\n\nHook commands keep names and arguments separate. Built-in hook arrays report\nsynchronous failures; earlier effects remain after a later command fails. Named\n`@` hooks can be configured, read and removed, but `run_hook` rejects them because\ntmux may hide parse failures in the server log. Hooks that print arbitrary output\nremain outside the supported control transport contract.\n\nCaptured client names belong to a connection generation but may be reused within\nit. Operations address the client currently bearing that name. A detach request\nconfirms command processing, not peer exit; callers need separate exit evidence.\nSwitching an existing client does not create a new terminal.\n\n`Terminal.attach_current` opens an interactive terminal against an explicit\nendpoint and session ID. This separate utility is unbound: an ID can refer to a\ndifferent daemon if the endpoint changes. It accepts no captured target and\nnever retries or starts a daemon. Both backends wait for the terminal client to\nexit and reap it on cancellation. Supplied terminal streams remain caller-owned.\n\nThe generated [format catalog](formats.md) records exact-release availability\nand callback contexts. Local `Formats.lookup` distinguishes captured values,\nmissing values, unacquired fields and fields unsupported by that release.\nIt does not perform arbitrary format acquisition. Generated\n[operation conveniences](operations.md) share the same command constructors\nbetween Unix and Eio; the installed-consumer test exercises both adapters.\n" }, { "path": "docs/testing.md", - "content": "# Testing and CI\n\nUse Alcotest for typed values and lifecycle invariants, `ppx_expect` for readable\noutput contracts, and QCheck for generated semantic cases. All three run through\nDune. The pure runtime library uses the standard library; the PPX is a test-only\ndependency.\n\nThe [cardinality tests](../test/core_test.ml) compare typed results using an\n`Alcotest.testable` with `Cardinality.pp_error`. A failure displays the expected\nand actual values, including the error variant's meaning. Comparing a Boolean\nexpression would only report `true` versus `false`. Keep testable printers small\nand show the values needed to understand the failure.\n\nThe [expect tests](../test/diagnostics_expect.ml) place expected diagnostic text\nbeside the code that prints it. A mismatch produces a diff and a `.corrected`\nfile. Inspect the changed meaning before promoting an expectation. Stable query\nexplanations, error messages and CLI output fit this style. Avoid snapshotting\ntimestamps, random IDs or whole server captures to test a small invariant.\n\n[QCheck cases](../test/query_test.ml) compare typed-expression evaluation against\nnative predicates with generated inputs. A fixed seed makes the current suite\nreproducible; shrinking helps explain counterexamples. Properties supplement the\nsmall authored edge cases and live tmux checks.\n\nRun the unit, expect, property and compile-failure suite:\n\n```console\n$ opam exec -- dune runtest --force\n```\n\nCold PPX driver compilation belongs to setup or an outer build. Time the warm\ntest command separately and retain the existing inner/mid budgets. Native and\ninstalled-consumer checks belong to the outer loop because they launch processes\nand own real tmux servers.\n\nRun the implemented native contract suite against one explicit release binary:\n\n```console\n$ opam exec -- python3 test/native_suite.py /path/to/tmux\n```\n\nThe [CI workflow](../.github/workflows/ocaml.yml) uses exactly OCaml 5.5.2,\nAlcotest 1.9.1, `ppx_expect` v0.17.3 and QCheck 0.91. It checks authored manifests,\nbuilds/odoc, generated files, formatting, unit/expect/property cases, four native\nrelease cells and separate 3.2a rejection. Each native cell installs the packages\ninto a temporary prefix and runs a consumer outside the checkout. Consumer\nfeatures still in development need their own later acceptance gates.\n\nThe CLI document check exercises regular files and piped input on both Eio\nbackends, including the inclusive 64 KiB boundary. Pass `--directory` to\nexercise a mounted filesystem using an owned temporary directory:\n\n```console\n$ opam exec -- python3 test/workspace_document_test.py\n```\n\n`ocaml/setup-ocaml` caches opam and the switch. The tmux composite action caches\nonly an installed prefix, keyed by source, runner image/version, architecture,\ncompiler, package versions and build/probe recipes. Dependencies are installed\nbefore validating either hits or misses. A restored binary must match its hash,\nreport the exact release and pass an owned-daemon probe with verified teardown.\nRejected caches rebuild; no broad restore key reuses a binary from another\nenvironment. Save a validated installation before running library tests.\n\nThe cache design adapts the [Go port's pinned implementation](https://github.com/libtmux/libtmux-go/blob/d8ea6f77ede9f75e96af78719c8c1707fc47bdfb/.github/scripts/tmux_build.py).\nThe APIs and testing styles follow the primary documentation for\n[setup-ocaml](https://github.com/ocaml/setup-ocaml/tree/ff66428f72b64472e749b22e0ad4dded4b2ddca6),\n[Alcotest](https://github.com/mirage/alcotest/tree/1.9.1),\n[ppx_expect](https://github.com/janestreet/ppx_expect/tree/v0.17.3), and\n[Dune tests](https://dune.readthedocs.io/en/stable/tests.html).\n\n## Executed documentation\n\nREADME and guide snippets name regions in the compiled programs under\n`examples/`; JSON includes use the complete shipped configuration. The source\nis authoritative; this check rejects drift:\n\n```console\n$ python3 tools/docs_snippets.py\n```\n\nThe installed-consumer test installs libraries into a separate prefix, builds\nevery shipped example in an independent Dune project and runs it against owned\ntmux servers. It checks linked-window contexts, typed/native query results,\ncreated layout geometry, options, pane titles, working directories, literal\ninput, future-byte matches, rendered-screen waits and zero remaining clients.\nOwned fixture teardown verifies pane and daemon exit.\n\nThe [standalone capability programs](showcases.md) include their own private\nserver setup. CI copies their whole source files into an independent Dune\nproject and executes the recorded `opam exec -- dune exec` commands against\ninstalled packages. Exact outcome lines and owned process/directory teardown\nare checked. The [inventory](../examples/showcase.json) records each source and\ncommand with its native workflow/job and tmux floor.\n\nEach native CI cell also runs the [workspace guide](workspaces.md) through real\n`opam exec` and an installed `tmux-workspace`. It executes the displayed setup,\nvalidation, plan, apply and cleanup commands, then checks receipt fields, pane\ndirectories, layout output, client closure and owned process exit. CLI fault\ntests pin their output pipe capacity so a larger host pipe cannot turn a\nstalled-consumer test into successful buffered delivery.\n\nThese are correctness checks and whole-command timings, not throughput\nbenchmarks. Do not derive performance comparisons from their durations.\n\n[Guide](README.md) · [API](api.md) · [Compatibility](compatibility.md)\n" + "content": "# Testing and CI\n\nUse Alcotest for typed values and lifecycle invariants, `ppx_expect` for readable\noutput contracts, and QCheck for generated semantic cases. All three run through\nDune. The pure runtime library uses the standard library; the PPX is a test-only\ndependency.\n\nThe [cardinality tests](../test/core_test.ml) compare typed results using an\n[`Alcotest.testable`](https://mirage.github.io/alcotest/alcotest/Alcotest/index.html#type-testable)\nwith `Cardinality.pp_error`. A failure displays the expected\nand actual values, including the error variant's meaning. Comparing a Boolean\nexpression would only report `true` versus `false`. Keep testable printers small\nand show the values needed to understand the failure.\n\nThe [expect tests](../test/diagnostics_expect.ml) place expected diagnostic text\nbeside the code that prints it. A mismatch produces a diff and a `.corrected`\nfile. Inspect the changed meaning before promoting an expectation. Stable query\nexplanations, error messages and CLI output fit this style. Avoid snapshotting\ntimestamps, random IDs or whole server captures to test a small invariant.\n\n[QCheck cases](../test/query_test.ml) compare typed-expression evaluation against\nnative predicates with generated inputs. A fixed seed makes the current suite\nreproducible; shrinking helps explain counterexamples. Properties supplement the\nsmall authored edge cases and live tmux checks.\n\nRun the unit, expect, property and compile-failure suite:\n\n```console\n$ opam exec -- dune runtest --force\n```\n\nCold PPX driver compilation belongs to setup or an outer build. Time the warm\ntest command separately and retain the existing inner/mid budgets. Native and\ninstalled-consumer checks belong to the outer loop because they launch processes\nand own real tmux servers.\n\nRun the implemented native contract suite against one explicit release binary:\n\n```console\n$ opam exec -- python3 test/native_suite.py /path/to/tmux\n```\n\nThe [CI workflow](../.github/workflows/ocaml.yml) uses exactly OCaml 5.5.2,\nAlcotest 1.9.1, `ppx_expect` v0.17.3 and QCheck 0.91. It checks authored manifests,\nbuilds/odoc, generated files, formatting, unit/expect/property cases, four native\nrelease cells and separate 3.2a rejection. Each native cell installs the packages\ninto a temporary prefix and runs a consumer outside the checkout. Consumer\nfeatures still in development need their own later acceptance gates.\n\nThe CLI document check exercises regular files and piped input on both Eio\nbackends, including the inclusive 64 KiB boundary. Pass `--directory` to\nexercise a mounted filesystem using an owned temporary directory:\n\n```console\n$ opam exec -- python3 test/workspace_document_test.py\n```\n\n`ocaml/setup-ocaml` caches opam and the switch. The tmux composite action caches\nonly an installed prefix, keyed by source, runner image/version, architecture,\ncompiler, package versions and build/probe recipes. Dependencies are installed\nbefore validating either hits or misses. A restored binary must match its hash,\nreport the exact release and pass an owned-daemon probe with verified teardown.\nRejected caches rebuild; no broad restore key reuses a binary from another\nenvironment. Save a validated installation before running library tests.\n\nThe cache design adapts the [Go port's pinned implementation](https://github.com/libtmux/libtmux-go/blob/d8ea6f77ede9f75e96af78719c8c1707fc47bdfb/.github/scripts/tmux_build.py).\nThe APIs and testing styles follow the primary documentation for\n[setup-ocaml](https://github.com/ocaml/setup-ocaml/tree/ff66428f72b64472e749b22e0ad4dded4b2ddca6),\n[Alcotest](https://github.com/mirage/alcotest/tree/1.9.1),\n[ppx_expect](https://github.com/janestreet/ppx_expect/tree/v0.17.3), and\n[Dune tests](https://dune.readthedocs.io/en/stable/tests.html).\n\n## Executed documentation\n\nREADME and guide snippets name regions in the compiled programs under\n`examples/`; JSON includes use the complete shipped configuration. The source\nis authoritative; this check rejects drift:\n\n```console\n$ python3 tools/docs_snippets.py\n```\n\nThe installed-consumer test installs libraries into a separate prefix, builds\nevery shipped example in an independent Dune project and runs it against owned\ntmux servers. It checks linked-window contexts, typed/native query results,\ncreated layout geometry, options, pane titles, working directories, literal\ninput, future-byte matches, rendered-screen waits and zero remaining clients.\nOwned fixture teardown verifies pane and daemon exit.\n\nThe [standalone capability programs](showcases.md) include their own private\nserver setup. CI copies their whole source files into an independent Dune\nproject and executes the recorded `opam exec -- dune exec` commands against\ninstalled packages. Exact outcome lines and owned process/directory teardown\nare checked. The [inventory](../examples/showcase.json) records each source and\ncommand with its native workflow/job and tmux floor.\n\nEach native CI cell also runs the [workspace guide](workspaces.md) through real\n`opam exec` and an installed `tmux-workspace`. It executes the displayed setup,\nvalidation, plan, apply and cleanup commands, then checks receipt fields, pane\ndirectories, layout output, client closure and owned process exit. CLI fault\ntests pin their output pipe capacity so a larger host pipe cannot turn a\nstalled-consumer test into successful buffered delivery.\n\nThese are correctness checks and whole-command timings, not throughput\nbenchmarks. Do not derive performance comparisons from their durations.\n\n[Guide](README.md) · [API](api.md) · [Compatibility](compatibility.md)\n" }, { "path": "docs/benchmarking.md", @@ -50,7 +54,7 @@ }, { "path": "docs/workspaces.md", - "content": "# Create a workspace from JSON\n\n`tmux-workspace` validates a JSON configuration, previews an advisory plan, and\napplies a fresh plan to an explicit socket. Install it through the\n[source installation](../README.md#install-from-source); `opam install .`\nincludes the CLI. Run this guide from the repository root.\n\n`check` performs no tmux I/O. `plan` observes the endpoint and never starts a\ndaemon. `apply` rereads the document, checks current state, then executes ordered\nactions. A preview is not a transaction or an executable target.\n\n## Define the layout\n\nThe shipped [project.json](../examples/workspace/project.json) creates an\n`editor` window with two panes and a `logs` window with one. Each pane runs\n`/bin/cat -u` directly, keeping the demonstration alive without a shell command.\n\n\n\n```json\n{\n \"schema\": \"libtmux.workspace/1\",\n \"session\": \"ocaml-project\",\n \"cwd\": \".\",\n \"width\": 120,\n \"height\": 40,\n \"environment\": {\"PROJECT\": \"ocaml\"},\n \"options\": [{\"name\": \"@project\", \"kind\": \"text\", \"value\": \"ocaml\"}],\n \"windows\": [\n {\n \"name\": \"editor\",\n \"layout\": \"even-horizontal\",\n \"panes\": [\n {\"exec\": [\"/bin/cat\", \"-u\"]},\n {\"exec\": [\"/bin/cat\", \"-u\"], \"direction\": \"right\"}\n ]\n },\n {\"name\": \"logs\", \"panes\": [{\"exec\": [\"/bin/cat\", \"-u\"]}]}\n ]\n}\n```\n\nRelative directories resolve against the JSON file's directory. Environment\nvalues merge from session to window to pane. `exec` supplies literal argv;\n`shell` explicitly requests shell interpretation. They are mutually exclusive.\nOmitting both uses tmux's default command. `startup` entries send literal text\nfollowed by Enter; they do not wait for a command to finish.\n\n## Validate, preview and apply\n\nThis walkthrough uses a private server and an empty tmux configuration. The\n`seed` session keeps the server alive while the CLI creates the project.\nInherited `TMUX` and `TMUX_PANE` do not select the endpoint.\n\n\n\n```console\n$ export LIBTMUX_WORKSPACE_DIR=\"$(mktemp -d -t libtmux-ocaml-workspace.XXXXXX)\"\n```\n\nCopying the file also makes its working directory the private directory:\n\n```console\n$ cp examples/workspace/project.json \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\n```console\n$ opam exec -- tmux-workspace check \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nExpected output: `Valid workspace \"ocaml-project\": 2 windows, 3 panes`.\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s seed \\\n -- \"exec cat\"\n```\n\n```console\n$ opam exec -- tmux-workspace plan \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nThe plan lists session creation, settings, the split and layout, and the logs\nwindow. Applying it requires the original configuration:\n\n```console\n$ opam exec -- tmux-workspace apply \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n --json \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n > \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\nThe receipt uses `libtmux.workspace-receipt/1`. On success, `status` is\n`succeeded`; `failed`, `uncertain` and `skipped` are empty. Each creation records\nthe IDs returned by tmux. Check the resulting windows independently:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n list-windows \\\n -t '=ocaml-project' \\\n -F '#{window_name}:#{window_panes}'\n```\n\nExpected output is `editor:2` followed by `logs:1`.\n\nRemove only the sessions this walkthrough created:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=ocaml-project'\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=seed'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_WORKSPACE_DIR\"\n```\n\n\n\nWithout `--require-existing`, `apply` can start a missing endpoint by creating\nthe requested session. That server uses the normal tmux configuration. Closing\nthe CLI's client leaves the server running; its appearance does not grant\ndaemon ownership. `plan` on a missing endpoint checks the local tmux version\nand returns a bootstrap plan without creating the socket.\n\n## Collisions and recovery\n\nAn existing session name fails with exit 4 by default. `--append` adds new\nwindows to that session and rejects window-name collisions. Append never\nchanges the existing session's options or environment; omit those session\nsettings from an append document. It preserves existing panes.\n\nUse `--json` on `check` or `plan` to obtain `document_digest`, then pass that\nvalue through `--expect-document` on apply. A changed document fails before\nendpoint I/O. The digest does not lock tmux state. Each apply builds and\nrechecks its own plan on the current connection generation.\n\nOn failure or SIGINT, inspect the receipt before deciding what to do next.\nDefault compensation kills only panes whose creation the journal proved, in\nreverse order. A foreign pane moved into a new window remains. `--keep-partial`\nretains proven creations instead. Cleanup failures and creations whose IDs\ncould not be bound remain explicit. Never rerun an uncertain mutation solely\nbecause its caller was interrupted.\n\n| Exit | Meaning |\n| --- | --- |\n| 0 | Validation, planning or apply succeeded |\n| 2 | Invalid arguments or document |\n| 3 | Required endpoint missing |\n| 4 | Collision, changed document or stale plan |\n| 5 | Failed, partial or uncertain apply; inspect the receipt |\n| 6 | Transport, capability or result-delivery failure |\n| 130 | SIGINT; the available journal is emitted within the cleanup bound |\n\nSIGINT does not undo admitted commands. Receipt output is bounded; a blocked or\nbroken stdout cannot produce a successful exit. Forced process termination\ncannot promise a delivered receipt. Expected failures are distinct from Eio\ncancellation in the native API, which propagates cancellation to the caller.\n\n## Bounds and native callers\n\nDocuments use UTF-8 JSON with a 64 KiB input bound and depth limit 32. Unknown\nand duplicate properties fail. Configurations allow at most 64 windows and 256\npanes; a plan allows at most 4096 actions. Plans and receipts have a 4 MiB output\nbound. Plans omit environment values, option values and startup text. They can\nstill contain command arguments and paths; treat them as application data.\n\nFor native code, use `Libtmux_json.Workspace.of_string`,\n`Libtmux_workspace.Plan.make`, and the backend's `Workspace.submit` or\n`Workspace.submit_bootstrap`. `inspect` reads the retained journal locally;\n`await` performs I/O. The application owns the Eio switch and scheduler.\nSee the [API reference](api.md), [control outcomes](control.md) and\n[compatibility evidence](compatibility.md).\n" + "content": "# Create a workspace from JSON\n\n`tmux-workspace` validates a JSON configuration, previews an advisory plan, and\napplies a fresh plan to an explicit socket. Install it through the\n[source installation](../README.md#install-from-source); `opam install .`\nincludes the CLI. Run this guide from the repository root.\n\n`check` performs no tmux I/O. `plan` observes the endpoint and never starts a\ndaemon. `apply` rereads the document, checks current state, then executes ordered\nactions. A preview is not a transaction or an executable target.\n\n## Define the layout\n\nThe shipped [project.json](../examples/workspace/project.json) creates an\n`editor` window with two panes and a `logs` window with one. Each pane runs\n`/bin/cat -u` directly, keeping the demonstration alive without a shell command.\n\n\n\n```json\n{\n \"schema\": \"libtmux.workspace/1\",\n \"session\": \"ocaml-project\",\n \"cwd\": \".\",\n \"width\": 120,\n \"height\": 40,\n \"environment\": {\"PROJECT\": \"ocaml\"},\n \"options\": [{\"name\": \"@project\", \"kind\": \"text\", \"value\": \"ocaml\"}],\n \"windows\": [\n {\n \"name\": \"editor\",\n \"layout\": \"even-horizontal\",\n \"panes\": [\n {\"exec\": [\"/bin/cat\", \"-u\"]},\n {\"exec\": [\"/bin/cat\", \"-u\"], \"direction\": \"right\"}\n ]\n },\n {\"name\": \"logs\", \"panes\": [{\"exec\": [\"/bin/cat\", \"-u\"]}]}\n ]\n}\n```\n\nRelative directories resolve against the JSON file's directory. Environment\nvalues merge from session to window to pane. `exec` supplies literal argv;\n`shell` explicitly requests shell interpretation. They are mutually exclusive.\nOmitting both uses tmux's default command. `startup` entries send literal text\nfollowed by Enter; they do not wait for a command to finish.\n\n## Validate, preview and apply\n\nThis walkthrough uses a private server and an empty tmux configuration. The\n`seed` session keeps the server alive while the CLI creates the project.\nInherited `TMUX` and `TMUX_PANE` do not select the endpoint.\n\n\n\n```console\n$ export LIBTMUX_WORKSPACE_DIR=\"$(mktemp -d -t libtmux-ocaml-workspace.XXXXXX)\"\n```\n\nCopying the file also makes its working directory the private directory:\n\n```console\n$ cp examples/workspace/project.json \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\n```console\n$ opam exec -- tmux-workspace check \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nExpected output: `Valid workspace \"ocaml-project\": 2 windows, 3 panes`.\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s seed \\\n -- \"exec cat\"\n```\n\n```console\n$ opam exec -- tmux-workspace plan \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nThe plan lists session creation, settings, the split and layout, and the logs\nwindow. Applying it requires the original configuration:\n\n```console\n$ opam exec -- tmux-workspace apply \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n --json \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n > \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\nThe receipt uses [`libtmux.workspace-receipt/1`](../json/libtmux_json.mli).\nOn success, `status` is\n`succeeded`; `failed`, `uncertain` and `skipped` are empty. Each creation records\nthe IDs returned by tmux. Check the resulting windows independently:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n list-windows \\\n -t '=ocaml-project' \\\n -F '#{window_name}:#{window_panes}'\n```\n\nExpected output is `editor:2` followed by `logs:1`.\n\nRemove only the sessions this walkthrough created:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=ocaml-project'\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=seed'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_WORKSPACE_DIR\"\n```\n\n\n\nWithout `--require-existing`, `apply` can start a missing endpoint by creating\nthe requested session. That server uses the normal tmux configuration. Closing\nthe CLI's client leaves the server running; its appearance does not grant\ndaemon ownership. `plan` on a missing endpoint checks the local tmux version\nand returns a bootstrap plan without creating the socket.\n\n## Collisions and recovery\n\nAn existing session name fails with exit 4 by default. `--append` adds new\nwindows to that session and rejects window-name collisions. Append never\nchanges the existing session's options or environment; omit those session\nsettings from an append document. It preserves existing panes.\n\nUse `--json` on `check` or `plan` to obtain `document_digest`, then pass that\nvalue through `--expect-document` on apply. A changed document fails before\nendpoint I/O. The digest does not lock tmux state. Each apply builds and\nrechecks its own plan on the current connection generation.\n\nOn failure or SIGINT, inspect the receipt before deciding what to do next.\nDefault compensation kills only panes whose creation the journal proved, in\nreverse order. A foreign pane moved into a new window remains. `--keep-partial`\nretains proven creations instead. Cleanup failures and creations whose IDs\ncould not be bound remain explicit. Never rerun an uncertain mutation solely\nbecause its caller was interrupted.\n\nThe [native recovery example](recovery.md) demonstrates the cancellation,\ninspection and fresh-postcondition sequence for a retained operation. Workspace\ncallers use the same discipline with `Workspace.inspect`: read the available\njournal, identify proven effects, then choose compensation or another explicit\naction. A saved JSON receipt describes observations; it is not an executable\ntarget or a transaction to replay.\n\n| Exit | Meaning |\n| --- | --- |\n| 0 | Validation, planning or apply succeeded |\n| 2 | Invalid arguments or document |\n| 3 | Required endpoint missing |\n| 4 | Collision, changed document or stale plan |\n| 5 | Failed, partial or uncertain apply; inspect the receipt |\n| 6 | Transport, capability or result-delivery failure |\n| 130 | SIGINT; the available journal is emitted within the cleanup bound |\n\nSIGINT does not undo admitted commands. Receipt output is bounded; a blocked or\nbroken stdout cannot produce a successful exit. Forced process termination\ncannot promise a delivered receipt. Expected failures are distinct from Eio\ncancellation in the native API, which propagates cancellation to the caller.\n\n## Bounds and native callers\n\nDocuments use UTF-8 JSON with a 64 KiB input bound and depth limit 32. Unknown\nand duplicate properties fail. Configurations allow at most 64 windows and 256\npanes; a plan allows at most 4096 actions. Plans and receipts have a 4 MiB output\nbound. Plans omit environment values, option values and startup text. They can\nstill contain command arguments and paths; treat them as application data.\n\nFor native code, use `Libtmux_json.Workspace.of_string`,\n`Libtmux_workspace.Plan.make`, and the backend's `Workspace.submit` or\n`Workspace.submit_bootstrap`. `inspect` reads the retained journal locally;\n`await` performs I/O. The application owns the Eio switch and scheduler.\nSee the [API reference](api.md), [control outcomes](control.md) and\n[compatibility evidence](compatibility.md).\n" } ] } diff --git a/site/src/data/tmux-usage/ocaml.json b/site/src/data/tmux-usage/ocaml.json index 9d53ed542..b99b94a6a 100644 --- a/site/src/data/tmux-usage/ocaml.json +++ b/site/src/data/tmux-usage/ocaml.json @@ -94,7 +94,7 @@ ], "port": "ocaml", "repo": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c", + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", "schemaVersion": 1, "symbols": { "Libtmux_eio.Client.break_pane": [ diff --git a/site/src/lib/port-documentation.ts b/site/src/lib/port-documentation.ts index e91306134..484828a9a 100644 --- a/site/src/lib/port-documentation.ts +++ b/site/src/lib/port-documentation.ts @@ -74,7 +74,7 @@ const PORT_DOCUMENTATION: Readonly> = { description: 'Validate, preview and apply JSON workspaces with retained execution receipts.' }, ], sourceGuides: [ - ...['getting-started', 'graph', 'queries', 'control', 'streaming', 'showcases', 'packages', 'compatibility', 'testing', 'benchmarking', 'status'].map((name, index) => + ...['getting-started', 'graph', 'queries', 'control', 'recovery', 'streaming', 'showcases', 'packages', 'compatibility', 'testing', 'benchmarking', 'status'].map((name, index) => guide(`docs/${name}.md`, `guides/${name}`, 'core', { aliases: [], sidebar: { group: 'Guides', order: index + 1 } })), guide('docs/workspaces.md', 'workspace/source-guide', 'workspace', { title: 'Workspace guide', product: 'workspace', package: 'workspace', aliases: [] }), ], From 0e9c37655d9235f9348e6f33f48cc828d268b858 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 21:05:15 -0600 Subject: [PATCH 12/26] docs(fix[index]) Refresh OCaml guide mentions why: The committed mention index must reflect the source-owned guide refresh before publication checks can validate the full site. what: - Regenerate linked and unresolved mentions after native reference fixes - Include the scoped cancellation reference from the control guide --- site/src/data/mentions.json | 91 +++---------------------------------- 1 file changed, 7 insertions(+), 84 deletions(-) diff --git a/site/src/data/mentions.json b/site/src/data/mentions.json index 477cd5fe0..0cc82e800 100644 --- a/site/src/data/mentions.json +++ b/site/src/data/mentions.json @@ -8407,6 +8407,13 @@ "title": "Compatibility", "section": "guides" }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Cancellation.with_", + "page": "/ocaml/latest/guides/control/", + "title": "Submit actions and retain their outcomes", + "section": "guides" + }, { "port": "ocaml", "symbol": "Libtmux_unix.Client", @@ -15227,90 +15234,6 @@ "line": 33, "why": "not defined in the stated port" }, - { - "port": "ocaml", - "text": "libtmux.filter/1", - "page": "/ocaml/latest/guides/compatibility/", - "line": 85, - "why": "not defined in the stated port" - }, - { - "port": "ocaml", - "text": "main.ml", - "page": "/ocaml/latest/guides/getting-started/", - "line": 40, - "why": "not defined in the stated port" - }, - { - "port": "ocaml", - "text": "List", - "page": "/ocaml/latest/guides/packages/", - "line": 16, - "why": "not defined in the stated port" - }, - { - "port": "ocaml", - "text": "Unix", - "page": "/ocaml/latest/guides/packages/", - "line": 23, - "why": "not defined in the stated port" - }, - { - "port": "ocaml", - "text": "libtmux.filter/1", - "page": "/ocaml/latest/guides/queries/", - "line": 87, - "why": "not defined in the stated port" - }, - { - "port": "ocaml", - "text": "Seq.filter", - "page": "/ocaml/latest/guides/queries/", - "line": 89, - "why": "not defined in the stated port" - }, - { - "port": "ocaml", - "text": "main.ml", - "page": "/ocaml/latest/guides/showcases/", - "line": 21, - "why": "not defined in the stated port" - }, - { - "port": "ocaml", - "text": "None", - "page": "/ocaml/latest/guides/streaming/", - "line": 46, - "why": "not defined in the stated port" - }, - { - "port": "ocaml", - "text": "Alcotest.testable", - "page": "/ocaml/latest/guides/testing/", - "line": 17, - "why": "not defined in the stated port" - }, - { - "port": "ocaml", - "text": "libtmux.workspace-receipt/1", - "page": "/ocaml/latest/workspace/source-guide/", - "line": 112, - "why": "not defined in the stated port" - }, - { - "port": "ocaml", - "text": "editor:2", - "page": "/ocaml/latest/workspace/source-guide/", - "line": 124, - "why": "not defined in the stated port" - }, - { - "port": "ocaml", - "text": "logs:1", - "page": "/ocaml/latest/workspace/source-guide/", - "line": 124, - "why": "not defined in the stated port" - }, { "port": "ruby", "text": "Enumerable", From 4ce7a8de0b41efc8879ba459dba993f9837b6dec Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 21:11:16 -0600 Subject: [PATCH 13/26] docs(fix[ocaml]) Refresh manifest provenance with the guides why: The package inventory must name the same committed native source as the API model and source-owned documentation. what: - Regenerate OCaml distributions from the six pinned authored manifests - Preserve package identities and every other port inventory --- site/src/data/manifest-packages.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/site/src/data/manifest-packages.json b/site/src/data/manifest-packages.json index 0cd1b3a55..e91b29d6e 100644 --- a/site/src/data/manifest-packages.json +++ b/site/src/data/manifest-packages.json @@ -738,43 +738,43 @@ }, "ocaml": { "repo": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c", + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", "distributions": [ { "name": "libtmux", "manifest": "libtmux.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c" + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" }, { "name": "libtmux-eio", "manifest": "libtmux-eio.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c" + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" }, { "name": "libtmux-json", "manifest": "libtmux-json.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c" + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" }, { "name": "libtmux-unix", "manifest": "libtmux-unix.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c" + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" }, { "name": "libtmux-workspace", "manifest": "libtmux-workspace.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c" + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" }, { "name": "libtmux-workspace-cli", "manifest": "libtmux-workspace-cli.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "ade2f9787024a5426710cec06f864648c217263c" + "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" } ], "units": [] From 0836aca5d97e8b20c227070464751225eea52d59 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 21:28:13 -0600 Subject: [PATCH 14/26] test(fix[ocaml]) Guard missing declaration identities why: The declaration regression must establish a page identity before reading its kind and name under strict TypeScript checking. what: - Fail explicitly when an OCaml fixture yields no page identity - Retain all exact-name and forged-prefix comparison cases --- site/test/api-destination-evidence.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/site/test/api-destination-evidence.test.ts b/site/test/api-destination-evidence.test.ts index 737ae7a9a..a2b3dc839 100644 --- a/site/test/api-destination-evidence.test.ts +++ b/site/test/api-destination-evidence.test.ts @@ -316,6 +316,7 @@ describe('what the verifier reads from a page', () => { const url = `https://ocaml.org/manual/5.5/api/Seq.html#${prefix}${name}` const html = `OCaml library : Seq

    Module Seq

    ${keyword} ${keyword === 'type' ? "'a " : ''}${declared}${keyword === 'type' ? ' = unit' : ' : unit'}
    ` const identity = pageIdentity(url, readPage(html)) + if (!identity) throw new Error(`Missing OCaml page identity for ${prefix}${name}`) actual.push([prefix, name, declared, identity.kind, identity.kind === 'other' ? [] : identity.path]) expected.push([prefix, name, declared, name === declared ? kind : 'other', name === declared ? ['Seq', name] : []]) } From 6955e6f3df2de3014b8a121a58a5c0d801b02327 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 7 Nov 2026 21:37:19 -0600 Subject: [PATCH 15/26] docs(feat[ocaml]) Include mixed-workload evidence and limits why: Readers need current benchmark evidence and known compatibility failures beside the native API and task guides. what: - Refresh OCaml source artifacts from the committed benchmark revision - Include the mixed-workload summary, raw receipts and crash diagnosis links - Align package provenance, examples and mention data with that source --- site/src/data/api/ocaml.json | 2 +- site/src/data/api/ocaml.paths.json | 2 +- site/src/data/example-sources.json | 20 ++++++++++---------- site/src/data/manifest-packages.json | 14 +++++++------- site/src/data/mentions.json | 7 +++++++ site/src/data/port-guides/ocaml.json | 6 +++--- site/src/data/tmux-usage/ocaml.json | 2 +- 7 files changed, 30 insertions(+), 23 deletions(-) diff --git a/site/src/data/api/ocaml.json b/site/src/data/api/ocaml.json index 079a48e54..10e34a5cb 100644 --- a/site/src/data/api/ocaml.json +++ b/site/src/data/api/ocaml.json @@ -1 +1 @@ -{"port":"ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","repo":"libtmux/libtmux-ocaml","sources":[{"product":"core","package":"libtmux","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"core","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"workspace","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"core","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"workspace","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"core","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},{"product":"workspace","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"}],"extractor":"OCaml 5.5.2 compiler-libs .cmti + odoc-parser 3.2.2","nativeProvenance":{"files":[{"path":"lib/libtmux.mli","sha256":"eb15691c82da743bb49170e408ca50500b38d21aeb248bb41a171e1e0352bc8e"},{"path":"_build/install/default/lib/libtmux/libtmux.cmti","sha256":"2e9a977a5a36625b0d0e8499051a36d13deab0f4a59bd699f2ab430975fed851"},{"path":"workspace/libtmux_workspace.mli","sha256":"10c5cadc58269906f16550a7bb703a8e05bee163d9b1716bf2be994ec8ebbeed"},{"path":"_build/install/default/lib/libtmux-workspace/libtmux_workspace.cmti","sha256":"dac59166f00e4c248fb2fe84787faef28f4e838a8db7b2b17768f9f0cffcfaf2"},{"path":"json/libtmux_json.mli","sha256":"ae672cc3b970fbd3fe9f68bb8703bb961e8d5968d9920b2626cddbffeb85c94b"},{"path":"_build/install/default/lib/libtmux-json/libtmux_json.cmti","sha256":"1574d45efd30dffc97a5775dc90f55a6aa935593dad025b98e9027325f06c78d"},{"path":"unix/libtmux_unix.mli","sha256":"638e260745952dc3db2ec4cd4cd28733326fdb74d65668b46fe29398526a9421"},{"path":"_build/install/default/lib/libtmux-unix/libtmux_unix.cmti","sha256":"cf23cb48ff8f22a9d7ce5c606f9cf8117db1d9cbc9286f87987c279b156a0e36"},{"path":"eio/libtmux_eio.mli","sha256":"f4b35be04f35f5e6fe99c139f1f8bbaacf4ed82e1faa55ad0f73bdd9803d4386"},{"path":"_build/install/default/lib/libtmux-eio/libtmux_eio.cmti","sha256":"62e866a1e8c8c9789a8261ac7420c078c73d069d31e900f6f40dc82b262a56d9"}],"exporter":{"revision":"a111168bceee2085f0cee5efe784d8f446011ba1","baseRevision":"a111168bceee2085f0cee5efe784d8f446011ba1","files":[{"path":"tools/api_export.ml","sha256":"403353de9340f32586cb522a827be03a9693142eeec01c891175c4e76b069a5d"},{"path":"tools/api_doc.ml","sha256":"94d9b4dff3f86d570a31161019e06cea250926200b8cc4562f7d14f9f3cd0d59"},{"path":"tools/export_api.py","sha256":"5188348adc7e3ea577889e144de30da6204ec14ec6fc1577f86a732bc7625973"},{"path":"tools/api_modules.json","sha256":"233ef409440fa5015f522a11933e74f059a301aecbce5ab5126f14e8a35614cf"},{"path":"tools/dune","sha256":"777e122d729870f9f8dc6fc13485ce0eea29f0e741b9bb22cb0245d433ff9442"}],"compiler":"5.5.2","schema":"libtmux.ocaml-api/1","publicManifest":"tools/api_modules.json"}},"symbols":[{"id":"Libtmux","publicId":"Libtmux","qualifiedName":"Libtmux","name":"Libtmux","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Native captured values, typed queries and explicit command descriptions.\n\n A {!Snapshot.t} owns immutable observations. Entity accessors and query\n evaluation perform no I/O, preserve captured order and remain usable after\n client closure. Use [Libtmux_unix.Client] or [Libtmux_eio.Client] to acquire\n or mutate state.\n\n {1 Typical flow}\n\n Capture explicitly, traverse {!Session.window_links} and {!Window.panes},\n filter with [Seq.filter] or {!Query.matching}, establish cardinality with\n {!Query.exactly_one}, then submit a command with a bound target.\n\n The core depends only on the standard library. Its abstract observations are\n safe to share; live clients and subscriptions belong to their backend.\n\n See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md}graph\n guide} for window links and the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} for native predicates and typed expressions. "],"declarations":[{"kind":"module","text":"","source":{"file":"lib/libtmux.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"doc":{"summary":"Native captured values, typed queries and explicit command descriptions.","body":"A {!Snapshot.t} owns immutable observations. Entity accessors and query evaluation perform no I/O, preserve captured order and remain usable after client closure. Use `Libtmux_unix.Client` or `Libtmux_eio.Client` to acquire or mutate state.\n\n## Typical flow\n\nCapture explicitly, traverse {!Session.window_links} and {!Window.panes}, filter with `Seq.filter` or {!Query.matching}, establish cardinality with {!Query.exactly_one}, then submit a command with a bound target.\n\nThe core depends only on the standard library. Its abstract observations are safe to share; live clients and subscriptions belong to their backend.\n\nSee the [graph guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md) for window links and the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) for native predicates and typed expressions."},"slug":"libtmux"},{"id":"Libtmux.Captured_text","publicId":"Libtmux.Captured_text","qualifiedName":"Libtmux.Captured_text","name":"Captured_text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":690,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Captured_text : sig\n type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. *)\nend","source":{"file":"lib/libtmux.mli","line":690,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-captured_text"},{"id":"Libtmux.Captured_text.t","publicId":"Libtmux.Captured_text.t","qualifiedName":"Libtmux.Captured_text.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":691,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. "],"declarations":[{"kind":"struct","text":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":691,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Captured_text","doc":{"summary":"Ordinary rendered rows captured over an interval. This value has no implied relationship to a subscription cursor."},"signatures":[{"raw":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-captured_text-t"},{"id":"Libtmux.Captured_text.t.bytes","publicId":"Libtmux.Captured_text.t.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":692,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string;","source":{"file":"lib/libtmux.mli","line":692,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Captured_text.t","type":"string","qualifiedName":"Libtmux.Captured_text.bytes","slug":"libtmux-captured_text-t-bytes"},{"id":"Libtmux.Captured_text.t.finished_at_ns","publicId":"Libtmux.Captured_text.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":696,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":696,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.finished_at_ns","slug":"libtmux-captured_text-t-finished_at_ns"},{"id":"Libtmux.Captured_text.t.pane","publicId":"Libtmux.Captured_text.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":694,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":694,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Captured_text.t","type":"Pane.Id.t","qualifiedName":"Libtmux.Captured_text.pane","slug":"libtmux-captured_text-t-pane"},{"id":"Libtmux.Captured_text.t.source","publicId":"Libtmux.Captured_text.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":693,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":693,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Captured_text.t","type":"Source.t","qualifiedName":"Libtmux.Captured_text.source","slug":"libtmux-captured_text-t-source"},{"id":"Libtmux.Captured_text.t.started_at_ns","publicId":"Libtmux.Captured_text.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":695,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":695,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.started_at_ns","slug":"libtmux-captured_text-t-started_at_ns"},{"id":"Libtmux.Cardinality","publicId":"Libtmux.Cardinality","qualifiedName":"Libtmux.Cardinality","name":"Cardinality","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":663,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cardinality : sig\n type error = No_match | Multiple_matches of { at_least : int }\n\n val pp_error : Format.formatter -> error -> unit\nend","source":{"file":"lib/libtmux.mli","line":663,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-cardinality"},{"id":"Libtmux.Cardinality.error","publicId":"Libtmux.Cardinality.error","qualifiedName":"Libtmux.Cardinality.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error = No_match | Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"type error = No_match | Multiple_matches of { at_least : int; }","params":[]}],"slug":"libtmux-cardinality-error"},{"id":"Libtmux.Cardinality.error.Multiple_matches","publicId":"Libtmux.Cardinality.error.Multiple_matches","name":"Multiple_matches","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Cardinality.error","variant":"struct","qualifiedName":"Libtmux.Cardinality.Multiple_matches","slug":"libtmux-cardinality-error-multiple_matches"},{"id":"Libtmux.Cardinality.error.Multiple_matches.at_least","publicId":"Libtmux.Cardinality.error.Multiple_matches.at_least","name":"at_least","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"at_least : int","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Cardinality.error.Multiple_matches","type":"int","qualifiedName":"Libtmux.Cardinality.at_least","slug":"libtmux-cardinality-error-multiple_matches-at_least"},{"id":"Libtmux.Cardinality.error.No_match","publicId":"Libtmux.Cardinality.error.No_match","name":"No_match","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"No_match","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Cardinality.error","variant":"unit","qualifiedName":"Libtmux.Cardinality.No_match","slug":"libtmux-cardinality-error-no_match"},{"id":"Libtmux.Cardinality.pp_error","publicId":"Libtmux.Cardinality.pp_error","qualifiedName":"Libtmux.Cardinality.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"lib/libtmux.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux-cardinality-pp_error"},{"id":"Libtmux.Client_name","publicId":"Libtmux.Client_name","qualifiedName":"Libtmux.Client_name","name":"Client_name","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Client_name : sig\n type t\n (** A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. *)\n\n val source : t -> Source.t\n val to_string : t -> string\nend","source":{"file":"lib/libtmux.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-client_name"},{"id":"Libtmux.Client_name.source","publicId":"Libtmux.Client_name.source","qualifiedName":"Libtmux.Client_name.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_name-source"},{"id":"Libtmux.Client_name.t","publicId":"Libtmux.Client_name.t","qualifiedName":"Libtmux.Client_name.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_name","doc":{"summary":"A name in one connection generation, with current-name semantics. It does not identify a stable client incarnation; tmux may reuse client names."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_name-t"},{"id":"Libtmux.Client_name.to_string","publicId":"Libtmux.Client_name.to_string","qualifiedName":"Libtmux.Client_name.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_name-to_string"},{"id":"Libtmux.Client_observation","publicId":"Libtmux.Client_observation","qualifiedName":"Libtmux.Client_observation","name":"Client_observation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":343,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"and Client_observation : sig\n type t\n\n module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end\n\n val name : t -> string\n val pid : t -> int\n val width : t -> int\n\n val height : t -> int option\n (** No height is reported until the client has a started terminal. *)\n\n val control_mode : t -> bool\n val source : t -> Source.t\n\n val current_name : t -> Client_name.t\n (** Address whichever client has this name when a command executes. *)\n\n val session : t -> Session.t option\n (** [None] means the captured client has no attached session. *)\n\n val same_observation : t -> t -> bool\n (** Client names may be reused. No cross-snapshot entity equality is offered.\n *)\nend","source":{"file":"lib/libtmux.mli","line":343,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-client_observation"},{"id":"Libtmux.Client_observation.Fields","publicId":"Libtmux.Client_observation.Fields","qualifiedName":"Libtmux.Client_observation.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":346,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-fields"},{"id":"Libtmux.Client_observation.Fields.control_mode","publicId":"Libtmux.Client_observation.Fields.control_mode","qualifiedName":"Libtmux.Client_observation.Fields.control_mode","name":"control_mode","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":350,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val control_mode : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":350,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val control_mode : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-client_observation-fields-control_mode"},{"id":"Libtmux.Client_observation.Fields.name","publicId":"Libtmux.Client_observation.Fields.name","qualifiedName":"Libtmux.Client_observation.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":347,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":347,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-client_observation-fields-name"},{"id":"Libtmux.Client_observation.Fields.pid","publicId":"Libtmux.Client_observation.Fields.pid","qualifiedName":"Libtmux.Client_observation.Fields.pid","name":"pid","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":348,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pid : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":348,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val pid : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-pid"},{"id":"Libtmux.Client_observation.Fields.width","publicId":"Libtmux.Client_observation.Fields.width","qualifiedName":"Libtmux.Client_observation.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":349,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":349,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-width"},{"id":"Libtmux.Client_observation.Relations","publicId":"Libtmux.Client_observation.Relations","qualifiedName":"Libtmux.Client_observation.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":353,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end","source":{"file":"lib/libtmux.mli","line":353,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-relations"},{"id":"Libtmux.Client_observation.Relations.session","publicId":"Libtmux.Client_observation.Relations.session","qualifiedName":"Libtmux.Client_observation.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.Optional.t","source":{"file":"lib/libtmux.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.Optional.t","params":[],"returns":"(t, Session.t) Relation.Optional.t"}],"slug":"libtmux-client_observation-relations-session"},{"id":"Libtmux.Client_observation.control_mode","publicId":"Libtmux.Client_observation.control_mode","qualifiedName":"Libtmux.Client_observation.control_mode","name":"control_mode","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":364,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val control_mode : t -> bool","source":{"file":"lib/libtmux.mli","line":364,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val control_mode : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-control_mode"},{"id":"Libtmux.Client_observation.current_name","publicId":"Libtmux.Client_observation.current_name","qualifiedName":"Libtmux.Client_observation.current_name","name":"current_name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":367,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Address whichever client has this name when a command executes. "],"declarations":[{"kind":"function","text":"val current_name : t -> Client_name.t","source":{"file":"lib/libtmux.mli","line":367,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Address whichever client has this name when a command executes."},"signatures":[{"raw":"val current_name : t -> Client_name.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_name.t"}],"slug":"libtmux-client_observation-current_name"},{"id":"Libtmux.Client_observation.height","publicId":"Libtmux.Client_observation.height","qualifiedName":"Libtmux.Client_observation.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" No height is reported until the client has a started terminal. "],"declarations":[{"kind":"function","text":"val height : t -> int option","source":{"file":"lib/libtmux.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"No height is reported until the client has a started terminal."},"signatures":[{"raw":"val height : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-client_observation-height"},{"id":"Libtmux.Client_observation.name","publicId":"Libtmux.Client_observation.name","qualifiedName":"Libtmux.Client_observation.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":357,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":357,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_observation-name"},{"id":"Libtmux.Client_observation.pid","publicId":"Libtmux.Client_observation.pid","qualifiedName":"Libtmux.Client_observation.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pid : t -> int","source":{"file":"lib/libtmux.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-pid"},{"id":"Libtmux.Client_observation.same_observation","publicId":"Libtmux.Client_observation.same_observation","qualifiedName":"Libtmux.Client_observation.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":373,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Client names may be reused. No cross-snapshot entity equality is offered.\n "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":373,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Client names may be reused. No cross-snapshot entity equality is offered."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-same_observation"},{"id":"Libtmux.Client_observation.session","publicId":"Libtmux.Client_observation.session","qualifiedName":"Libtmux.Client_observation.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [None] means the captured client has no attached session. "],"declarations":[{"kind":"function","text":"val session : t -> Session.t option","source":{"file":"lib/libtmux.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"`None` means the captured client has no attached session."},"signatures":[{"raw":"val session : t -> Session.t option","params":[{"name":"arg1","type":"t"}],"returns":"Session.t option"}],"slug":"libtmux-client_observation-session"},{"id":"Libtmux.Client_observation.source","publicId":"Libtmux.Client_observation.source","qualifiedName":"Libtmux.Client_observation.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_observation-source"},{"id":"Libtmux.Client_observation.t","publicId":"Libtmux.Client_observation.t","qualifiedName":"Libtmux.Client_observation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_observation-t"},{"id":"Libtmux.Client_observation.width","publicId":"Libtmux.Client_observation.width","qualifiedName":"Libtmux.Client_observation.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":359,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":359,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-width"},{"id":"Libtmux.Command","publicId":"Libtmux.Command","qualifiedName":"Libtmux.Command","name":"Command","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":861,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Typed descriptions of explicit acquisition and mutation operations.\n Construction performs no I/O; a backend validates and admits the command. "],"declarations":[{"kind":"module","text":"module Command : sig\n type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }\n\n type 'a t\n (** An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. *)\n\n type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view\n\n val view : 'a t -> 'a view\n (** Read-only inspection for transport adapters. *)\nend","source":{"file":"lib/libtmux.mli","line":861,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Typed descriptions of explicit acquisition and mutation operations. Construction performs no I/O; a backend validates and admits the command."},"slug":"libtmux-command"},{"id":"Libtmux.Command.mutation","publicId":"Libtmux.Command.mutation","qualifiedName":"Libtmux.Command.mutation","name":"mutation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":862,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":862,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type mutation =\n Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of { session : Session.target; index : int;\n allow_kill : bool;\n }\n | Link_window of { window : Window.target; session : Session.target;\n index : int;\n }\n | Move_window_at of { from_session : Session.target; from_index : int;\n session : Session.target; index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of { pane : Pane.target; width : int option;\n height : int option;\n }\n | Resize_window of { window : Window.target; width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of { pane : Pane.target; beside : Pane.target;\n direction : Geometry.direction; size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Backward | `Forward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of { pane : Pane.target; spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of { scope : Environment.scope; name : string;\n value : string; hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of { scope : Options.scope; name : string; index : int option;\n value : Options.scalar; append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of { scope : Options.scope; name : string; index : int option;\n commands : Hook.command list; append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of { client : Client_name.t; session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of { client : Client_name.t; width : int;\n height : int;\n }","params":[]}],"slug":"libtmux-command-mutation"},{"id":"Libtmux.Command.mutation.Clear_history","publicId":"Libtmux.Command.mutation.Clear_history","name":"Clear_history","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":911,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_history of Pane.target","source":{"file":"lib/libtmux.mli","line":911,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_history","slug":"libtmux-command-mutation-clear_history"},{"id":"Libtmux.Command.mutation.Clear_option_array","publicId":"Libtmux.Command.mutation.Clear_option_array","name":"Clear_option_array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":928,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_option_array of Options.scope * string","source":{"file":"lib/libtmux.mli","line":928,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_option_array","slug":"libtmux-command-mutation-clear_option_array"},{"id":"Libtmux.Command.mutation.Cycle_layout","publicId":"Libtmux.Command.mutation.Cycle_layout","name":"Cycle_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":896,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cycle_layout of Window.target * [ `Next | `Previous ]","source":{"file":"lib/libtmux.mli","line":896,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Cycle_layout","slug":"libtmux-command-mutation-cycle_layout"},{"id":"Libtmux.Command.mutation.Kill_pane","publicId":"Libtmux.Command.mutation.Kill_pane","name":"Kill_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":865,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":865,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_pane","slug":"libtmux-command-mutation-kill_pane"},{"id":"Libtmux.Command.mutation.Kill_session","publicId":"Libtmux.Command.mutation.Kill_session","name":"Kill_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":863,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_session of Session.target","source":{"file":"lib/libtmux.mli","line":863,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_session","slug":"libtmux-command-mutation-kill_session"},{"id":"Libtmux.Command.mutation.Kill_window","publicId":"Libtmux.Command.mutation.Kill_window","name":"Kill_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":864,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_window of Window.target","source":{"file":"lib/libtmux.mli","line":864,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_window","slug":"libtmux-command-mutation-kill_window"},{"id":"Libtmux.Command.mutation.Link_window","publicId":"Libtmux.Command.mutation.Link_window","name":"Link_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":872,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":872,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Link_window","slug":"libtmux-command-mutation-link_window"},{"id":"Libtmux.Command.mutation.Link_window.index","publicId":"Libtmux.Command.mutation.Link_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":875,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":875,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-link_window-index"},{"id":"Libtmux.Command.mutation.Link_window.session","publicId":"Libtmux.Command.mutation.Link_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-link_window-session"},{"id":"Libtmux.Command.mutation.Link_window.window","publicId":"Libtmux.Command.mutation.Link_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":873,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":873,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-link_window-window"},{"id":"Libtmux.Command.mutation.Move_pane","publicId":"Libtmux.Command.mutation.Move_pane","name":"Move_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":897,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }","source":{"file":"lib/libtmux.mli","line":897,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_pane","slug":"libtmux-command-mutation-move_pane"},{"id":"Libtmux.Command.mutation.Move_pane.beside","publicId":"Libtmux.Command.mutation.Move_pane.beside","name":"beside","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":899,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"beside : Pane.target;","source":{"file":"lib/libtmux.mli","line":899,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.beside","slug":"libtmux-command-mutation-move_pane-beside"},{"id":"Libtmux.Command.mutation.Move_pane.direction","publicId":"Libtmux.Command.mutation.Move_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":900,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":900,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-mutation-move_pane-direction"},{"id":"Libtmux.Command.mutation.Move_pane.pane","publicId":"Libtmux.Command.mutation.Move_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":898,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":898,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-move_pane-pane"},{"id":"Libtmux.Command.mutation.Move_pane.size","publicId":"Libtmux.Command.mutation.Move_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":901,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":901,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-mutation-move_pane-size"},{"id":"Libtmux.Command.mutation.Move_window_at","publicId":"Libtmux.Command.mutation.Move_window_at","name":"Move_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":877,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":877,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_window_at","slug":"libtmux-command-mutation-move_window_at"},{"id":"Libtmux.Command.mutation.Move_window_at.from_index","publicId":"Libtmux.Command.mutation.Move_window_at.from_index","name":"from_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":879,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_index : int;","source":{"file":"lib/libtmux.mli","line":879,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.from_index","slug":"libtmux-command-mutation-move_window_at-from_index"},{"id":"Libtmux.Command.mutation.Move_window_at.from_session","publicId":"Libtmux.Command.mutation.Move_window_at.from_session","name":"from_session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":878,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_session : Session.target;","source":{"file":"lib/libtmux.mli","line":878,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.from_session","slug":"libtmux-command-mutation-move_window_at-from_session"},{"id":"Libtmux.Command.mutation.Move_window_at.index","publicId":"Libtmux.Command.mutation.Move_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":881,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":881,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-move_window_at-index"},{"id":"Libtmux.Command.mutation.Move_window_at.session","publicId":"Libtmux.Command.mutation.Move_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":880,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":880,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-move_window_at-session"},{"id":"Libtmux.Command.mutation.Refresh_client_at","publicId":"Libtmux.Command.mutation.Refresh_client_at","name":"Refresh_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":944,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Refresh_client_at of Client_name.t * bool","source":{"file":"lib/libtmux.mli","line":944,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Refresh_client_at","slug":"libtmux-command-mutation-refresh_client_at"},{"id":"Libtmux.Command.mutation.Remove_environment","publicId":"Libtmux.Command.mutation.Remove_environment","name":"Remove_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":919,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":919,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_environment","slug":"libtmux-command-mutation-remove_environment"},{"id":"Libtmux.Command.mutation.Remove_hook","publicId":"Libtmux.Command.mutation.Remove_hook","name":"Remove_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":936,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_hook of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":936,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_hook","slug":"libtmux-command-mutation-remove_hook"},{"id":"Libtmux.Command.mutation.Request_detach_client_at","publicId":"Libtmux.Command.mutation.Request_detach_client_at","name":"Request_detach_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":943,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Request_detach_client_at of Client_name.t","source":{"file":"lib/libtmux.mli","line":943,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Request_detach_client_at","slug":"libtmux-command-mutation-request_detach_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at","publicId":"Libtmux.Command.mutation.Resize_control_client_at","name":"Resize_control_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":945,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":945,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_control_client_at","slug":"libtmux-command-mutation-resize_control_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.client","publicId":"Libtmux.Command.mutation.Resize_control_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":946,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":946,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-resize_control_client_at-client"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.height","publicId":"Libtmux.Command.mutation.Resize_control_client_at.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":948,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":948,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_control_client_at-height"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.width","publicId":"Libtmux.Command.mutation.Resize_control_client_at.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":947,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":947,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_control_client_at-width"},{"id":"Libtmux.Command.mutation.Resize_pane","publicId":"Libtmux.Command.mutation.Resize_pane","name":"Resize_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":885,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":885,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_pane","slug":"libtmux-command-mutation-resize_pane"},{"id":"Libtmux.Command.mutation.Resize_pane.height","publicId":"Libtmux.Command.mutation.Resize_pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":888,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":888,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_pane-height"},{"id":"Libtmux.Command.mutation.Resize_pane.pane","publicId":"Libtmux.Command.mutation.Resize_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":886,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":886,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-resize_pane-pane"},{"id":"Libtmux.Command.mutation.Resize_pane.width","publicId":"Libtmux.Command.mutation.Resize_pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":887,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":887,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_pane-width"},{"id":"Libtmux.Command.mutation.Resize_window","publicId":"Libtmux.Command.mutation.Resize_window","name":"Resize_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":890,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":890,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_window","slug":"libtmux-command-mutation-resize_window"},{"id":"Libtmux.Command.mutation.Resize_window.height","publicId":"Libtmux.Command.mutation.Resize_window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":893,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":893,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_window-height"},{"id":"Libtmux.Command.mutation.Resize_window.width","publicId":"Libtmux.Command.mutation.Resize_window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":892,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":892,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_window-width"},{"id":"Libtmux.Command.mutation.Resize_window.window","publicId":"Libtmux.Command.mutation.Resize_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":891,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":891,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-resize_window-window"},{"id":"Libtmux.Command.mutation.Respawn_pane","publicId":"Libtmux.Command.mutation.Respawn_pane","name":"Respawn_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":906,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }","source":{"file":"lib/libtmux.mli","line":906,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Respawn_pane","slug":"libtmux-command-mutation-respawn_pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.kill_running","publicId":"Libtmux.Command.mutation.Respawn_pane.kill_running","name":"kill_running","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":909,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kill_running : bool;","source":{"file":"lib/libtmux.mli","line":909,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"bool","qualifiedName":"Libtmux.Command.kill_running","slug":"libtmux-command-mutation-respawn_pane-kill_running"},{"id":"Libtmux.Command.mutation.Respawn_pane.pane","publicId":"Libtmux.Command.mutation.Respawn_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":907,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":907,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-respawn_pane-pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.spawn","publicId":"Libtmux.Command.mutation.Respawn_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":908,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":908,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-mutation-respawn_pane-spawn"},{"id":"Libtmux.Command.mutation.Rotate_panes","publicId":"Libtmux.Command.mutation.Rotate_panes","name":"Rotate_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":904,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rotate_panes of Window.target * [ `Forward | `Backward ]","source":{"file":"lib/libtmux.mli","line":904,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Rotate_panes","slug":"libtmux-command-mutation-rotate_panes"},{"id":"Libtmux.Command.mutation.Run_hook","publicId":"Libtmux.Command.mutation.Run_hook","name":"Run_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":937,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Run_hook of Options.scope * string","source":{"file":"lib/libtmux.mli","line":937,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Run_hook","slug":"libtmux-command-mutation-run_hook"},{"id":"Libtmux.Command.mutation.Select_layout","publicId":"Libtmux.Command.mutation.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":895,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of Window.target * Layout.t","source":{"file":"lib/libtmux.mli","line":895,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_layout","slug":"libtmux-command-mutation-select_layout"},{"id":"Libtmux.Command.mutation.Select_pane","publicId":"Libtmux.Command.mutation.Select_pane","name":"Select_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":883,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":883,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_pane","slug":"libtmux-command-mutation-select_pane"},{"id":"Libtmux.Command.mutation.Select_window_at","publicId":"Libtmux.Command.mutation.Select_window_at","name":"Select_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":866,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_window_at of Session.target * int","source":{"file":"lib/libtmux.mli","line":866,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_window_at","slug":"libtmux-command-mutation-select_window_at"},{"id":"Libtmux.Command.mutation.Set_environment","publicId":"Libtmux.Command.mutation.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":912,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }","source":{"file":"lib/libtmux.mli","line":912,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_environment","slug":"libtmux-command-mutation-set_environment"},{"id":"Libtmux.Command.mutation.Set_environment.hidden","publicId":"Libtmux.Command.mutation.Set_environment.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":916,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":916,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"bool","qualifiedName":"Libtmux.Command.hidden","slug":"libtmux-command-mutation-set_environment-hidden"},{"id":"Libtmux.Command.mutation.Set_environment.name","publicId":"Libtmux.Command.mutation.Set_environment.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":914,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":914,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_environment-name"},{"id":"Libtmux.Command.mutation.Set_environment.scope","publicId":"Libtmux.Command.mutation.Set_environment.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":913,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Environment.scope;","source":{"file":"lib/libtmux.mli","line":913,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"Environment.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_environment-scope"},{"id":"Libtmux.Command.mutation.Set_environment.value","publicId":"Libtmux.Command.mutation.Set_environment.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":915,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : string;","source":{"file":"lib/libtmux.mli","line":915,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_environment-value"},{"id":"Libtmux.Command.mutation.Set_hook","publicId":"Libtmux.Command.mutation.Set_hook","name":"Set_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":929,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":929,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_hook","slug":"libtmux-command-mutation-set_hook"},{"id":"Libtmux.Command.mutation.Set_hook.append","publicId":"Libtmux.Command.mutation.Set_hook.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":934,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":934,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_hook-append"},{"id":"Libtmux.Command.mutation.Set_hook.commands","publicId":"Libtmux.Command.mutation.Set_hook.commands","name":"commands","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":933,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"commands : Hook.command list;","source":{"file":"lib/libtmux.mli","line":933,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Hook.command list","qualifiedName":"Libtmux.Command.commands","slug":"libtmux-command-mutation-set_hook-commands"},{"id":"Libtmux.Command.mutation.Set_hook.index","publicId":"Libtmux.Command.mutation.Set_hook.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":932,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":932,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_hook-index"},{"id":"Libtmux.Command.mutation.Set_hook.name","publicId":"Libtmux.Command.mutation.Set_hook.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":931,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":931,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_hook-name"},{"id":"Libtmux.Command.mutation.Set_hook.scope","publicId":"Libtmux.Command.mutation.Set_hook.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":930,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":930,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_hook-scope"},{"id":"Libtmux.Command.mutation.Set_option","publicId":"Libtmux.Command.mutation.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":920,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":920,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_option","slug":"libtmux-command-mutation-set_option"},{"id":"Libtmux.Command.mutation.Set_option.append","publicId":"Libtmux.Command.mutation.Set_option.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":925,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":925,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_option-append"},{"id":"Libtmux.Command.mutation.Set_option.index","publicId":"Libtmux.Command.mutation.Set_option.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":923,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":923,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_option-index"},{"id":"Libtmux.Command.mutation.Set_option.name","publicId":"Libtmux.Command.mutation.Set_option.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":922,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":922,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_option-name"},{"id":"Libtmux.Command.mutation.Set_option.scope","publicId":"Libtmux.Command.mutation.Set_option.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":921,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":921,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_option-scope"},{"id":"Libtmux.Command.mutation.Set_option.value","publicId":"Libtmux.Command.mutation.Set_option.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":924,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Options.scalar;","source":{"file":"lib/libtmux.mli","line":924,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scalar","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_option-value"},{"id":"Libtmux.Command.mutation.Set_pane_title","publicId":"Libtmux.Command.mutation.Set_pane_title","name":"Set_pane_title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":884,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_pane_title of Pane.target * string","source":{"file":"lib/libtmux.mli","line":884,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Set_pane_title","slug":"libtmux-command-mutation-set_pane_title"},{"id":"Libtmux.Command.mutation.Swap_panes","publicId":"Libtmux.Command.mutation.Swap_panes","name":"Swap_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":903,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Swap_panes of Pane.target * Pane.target","source":{"file":"lib/libtmux.mli","line":903,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Swap_panes","slug":"libtmux-command-mutation-swap_panes"},{"id":"Libtmux.Command.mutation.Switch_client_at","publicId":"Libtmux.Command.mutation.Switch_client_at","name":"Switch_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":938,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }","source":{"file":"lib/libtmux.mli","line":938,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Switch_client_at","slug":"libtmux-command-mutation-switch_client_at"},{"id":"Libtmux.Command.mutation.Switch_client_at.client","publicId":"Libtmux.Command.mutation.Switch_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":939,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":939,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-switch_client_at-client"},{"id":"Libtmux.Command.mutation.Switch_client_at.session","publicId":"Libtmux.Command.mutation.Switch_client_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":940,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":940,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-switch_client_at-session"},{"id":"Libtmux.Command.mutation.Switch_client_at.update_environment","publicId":"Libtmux.Command.mutation.Switch_client_at.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":941,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"update_environment : bool;","source":{"file":"lib/libtmux.mli","line":941,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"bool","qualifiedName":"Libtmux.Command.update_environment","slug":"libtmux-command-mutation-switch_client_at-update_environment"},{"id":"Libtmux.Command.mutation.Unlink_window_at","publicId":"Libtmux.Command.mutation.Unlink_window_at","name":"Unlink_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":867,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }","source":{"file":"lib/libtmux.mli","line":867,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Unlink_window_at","slug":"libtmux-command-mutation-unlink_window_at"},{"id":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","publicId":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","name":"allow_kill","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":870,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"allow_kill : bool;","source":{"file":"lib/libtmux.mli","line":870,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"bool","qualifiedName":"Libtmux.Command.allow_kill","slug":"libtmux-command-mutation-unlink_window_at-allow_kill"},{"id":"Libtmux.Command.mutation.Unlink_window_at.index","publicId":"Libtmux.Command.mutation.Unlink_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":869,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":869,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-unlink_window_at-index"},{"id":"Libtmux.Command.mutation.Unlink_window_at.session","publicId":"Libtmux.Command.mutation.Unlink_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":868,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":868,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-unlink_window_at-session"},{"id":"Libtmux.Command.mutation.Unset_environment","publicId":"Libtmux.Command.mutation.Unset_environment","name":"Unset_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":918,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":918,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_environment","slug":"libtmux-command-mutation-unset_environment"},{"id":"Libtmux.Command.mutation.Unset_option","publicId":"Libtmux.Command.mutation.Unset_option","name":"Unset_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":927,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_option of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":927,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_option","slug":"libtmux-command-mutation-unset_option"},{"id":"Libtmux.Command.mutation.Zoom_pane","publicId":"Libtmux.Command.mutation.Zoom_pane","name":"Zoom_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":905,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Zoom_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":905,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Zoom_pane","slug":"libtmux-command-mutation-zoom_pane"},{"id":"Libtmux.Command.t","publicId":"Libtmux.Command.t","qualifiedName":"Libtmux.Command.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":951,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. "],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":951,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command","doc":{"summary":"An immutable description, validated by a backend before admission. Constructing or inspecting it performs no I/O."},"signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-command-t"},{"id":"Libtmux.Command.view","publicId":"Libtmux.Command.view","qualifiedName":"Libtmux.Command.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1006,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read-only inspection for transport adapters. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":1006,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command","doc":{"summary":"Read-only inspection for transport adapters."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-command-view"},{"id":"Libtmux.Command.view:type","publicId":"Libtmux.Command.view:type","qualifiedName":"Libtmux.Command.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":955,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":955,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type _ view =\n Capture : Snapshot.t view\n | Capture_text : { pane : Pane.t; start : int; end_ : int;\n scratch_dir : string;\n } -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : { name : string; window_name : string option;\n width : int; height : int; spawn : Spawn.t;\n } -> Created.t view\n | Create_window : { session : Session.target; index : int option;\n name : string option; spawn : Spawn.t;\n } -> Created.t view\n | Split_pane : { pane : Pane.target; direction : Geometry.direction;\n size : Geometry.size option; spawn : Spawn.t;\n } -> Created.t view\n | Break_pane : { pane : Pane.target; session : Session.target; index : int;\n name : string option;\n } -> Created.t view","params":[]}],"slug":"libtmux-command-view-type"},{"id":"Libtmux.Command.view:type.Break_pane","publicId":"Libtmux.Command.view:type.Break_pane","name":"Break_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":998,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":998,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Break_pane","slug":"libtmux-command-view-type-break_pane"},{"id":"Libtmux.Command.view:type.Break_pane.index","publicId":"Libtmux.Command.view:type.Break_pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1001,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":1001,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-break_pane-index"},{"id":"Libtmux.Command.view:type.Break_pane.name","publicId":"Libtmux.Command.view:type.Break_pane.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1002,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1002,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-break_pane-name"},{"id":"Libtmux.Command.view:type.Break_pane.pane","publicId":"Libtmux.Command.view:type.Break_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":999,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":999,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-break_pane-pane"},{"id":"Libtmux.Command.view:type.Break_pane.session","publicId":"Libtmux.Command.view:type.Break_pane.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1000,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1000,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-break_pane-session"},{"id":"Libtmux.Command.view:type.Capture","publicId":"Libtmux.Command.view:type.Capture","name":"Capture","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":956,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture : Snapshot.t view","source":{"file":"lib/libtmux.mli","line":956,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"unit","qualifiedName":"Libtmux.Command.Capture","slug":"libtmux-command-view-type-capture"},{"id":"Libtmux.Command.view:type.Capture_environment","publicId":"Libtmux.Command.view:type.Capture_environment","name":"Capture_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":970,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_environment : Environment.scope * bool -> Environment.t view","source":{"file":"lib/libtmux.mli","line":970,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_environment","slug":"libtmux-command-view-type-capture_environment"},{"id":"Libtmux.Command.view:type.Capture_hooks","publicId":"Libtmux.Command.view:type.Capture_hooks","name":"Capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":973,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_hooks : Options.scope -> Options.t view","source":{"file":"lib/libtmux.mli","line":973,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_hooks","slug":"libtmux-command-view-type-capture_hooks"},{"id":"Libtmux.Command.view:type.Capture_options","publicId":"Libtmux.Command.view:type.Capture_options","name":"Capture_options","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":971,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_options : Options.scope * bool -> Options.t view","source":{"file":"lib/libtmux.mli","line":971,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_options","slug":"libtmux-command-view-type-capture_options"},{"id":"Libtmux.Command.view:type.Capture_text","publicId":"Libtmux.Command.view:type.Capture_text","name":"Capture_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":957,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view","source":{"file":"lib/libtmux.mli","line":957,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Capture_text","slug":"libtmux-command-view-type-capture_text"},{"id":"Libtmux.Command.view:type.Capture_text.end_","publicId":"Libtmux.Command.view:type.Capture_text.end_","name":"end_","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":960,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"end_ : int;","source":{"file":"lib/libtmux.mli","line":960,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.end_","slug":"libtmux-command-view-type-capture_text-end_"},{"id":"Libtmux.Command.view:type.Capture_text.pane","publicId":"Libtmux.Command.view:type.Capture_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":958,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.t;","source":{"file":"lib/libtmux.mli","line":958,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"Pane.t","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-capture_text-pane"},{"id":"Libtmux.Command.view:type.Capture_text.scratch_dir","publicId":"Libtmux.Command.view:type.Capture_text.scratch_dir","name":"scratch_dir","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":961,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scratch_dir : string;","source":{"file":"lib/libtmux.mli","line":961,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"string","qualifiedName":"Libtmux.Command.scratch_dir","slug":"libtmux-command-view-type-capture_text-scratch_dir"},{"id":"Libtmux.Command.view:type.Capture_text.start","publicId":"Libtmux.Command.view:type.Capture_text.start","name":"start","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":959,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"start : int;","source":{"file":"lib/libtmux.mli","line":959,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.start","slug":"libtmux-command-view-type-capture_text-start"},{"id":"Libtmux.Command.view:type.Create_session","publicId":"Libtmux.Command.view:type.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":976,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":976,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_session","slug":"libtmux-command-view-type-create_session"},{"id":"Libtmux.Command.view:type.Create_session.height","publicId":"Libtmux.Command.view:type.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":980,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":980,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-view-type-create_session-height"},{"id":"Libtmux.Command.view:type.Create_session.name","publicId":"Libtmux.Command.view:type.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":977,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":977,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_session-name"},{"id":"Libtmux.Command.view:type.Create_session.spawn","publicId":"Libtmux.Command.view:type.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":981,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":981,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_session-spawn"},{"id":"Libtmux.Command.view:type.Create_session.width","publicId":"Libtmux.Command.view:type.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":979,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":979,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-view-type-create_session-width"},{"id":"Libtmux.Command.view:type.Create_session.window_name","publicId":"Libtmux.Command.view:type.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":978,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string option;","source":{"file":"lib/libtmux.mli","line":978,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string option","qualifiedName":"Libtmux.Command.window_name","slug":"libtmux-command-view-type-create_session-window_name"},{"id":"Libtmux.Command.view:type.Create_window","publicId":"Libtmux.Command.view:type.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":984,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":984,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_window","slug":"libtmux-command-view-type-create_window"},{"id":"Libtmux.Command.view:type.Create_window.index","publicId":"Libtmux.Command.view:type.Create_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":986,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":986,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-create_window-index"},{"id":"Libtmux.Command.view:type.Create_window.name","publicId":"Libtmux.Command.view:type.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":987,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":987,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_window-name"},{"id":"Libtmux.Command.view:type.Create_window.session","publicId":"Libtmux.Command.view:type.Create_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":985,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":985,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-create_window-session"},{"id":"Libtmux.Command.view:type.Create_window.spawn","publicId":"Libtmux.Command.view:type.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":988,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":988,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_window-spawn"},{"id":"Libtmux.Command.view:type.Mutate","publicId":"Libtmux.Command.view:type.Mutate","name":"Mutate","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":975,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mutate : mutation -> unit view","source":{"file":"lib/libtmux.mli","line":975,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Mutate","slug":"libtmux-command-view-type-mutate"},{"id":"Libtmux.Command.view:type.Read_hook","publicId":"Libtmux.Command.view:type.Read_hook","name":"Read_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":974,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_hook : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":974,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_hook","slug":"libtmux-command-view-type-read_hook"},{"id":"Libtmux.Command.view:type.Read_option","publicId":"Libtmux.Command.view:type.Read_option","name":"Read_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":972,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_option : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":972,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_option","slug":"libtmux-command-view-type-read_option"},{"id":"Libtmux.Command.view:type.Rename_session","publicId":"Libtmux.Command.view:type.Rename_session","name":"Rename_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":965,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_session : Session.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":965,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_session","slug":"libtmux-command-view-type-rename_session"},{"id":"Libtmux.Command.view:type.Rename_window","publicId":"Libtmux.Command.view:type.Rename_window","name":"Rename_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":964,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_window : Window.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":964,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_window","slug":"libtmux-command-view-type-rename_window"},{"id":"Libtmux.Command.view:type.Send_keys","publicId":"Libtmux.Command.view:type.Send_keys","name":"Send_keys","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":967,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_keys : Pane.target * Key.t list -> unit view","source":{"file":"lib/libtmux.mli","line":967,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_keys","slug":"libtmux-command-view-type-send_keys"},{"id":"Libtmux.Command.view:type.Send_text","publicId":"Libtmux.Command.view:type.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":966,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text : Pane.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":966,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_text","slug":"libtmux-command-view-type-send_text"},{"id":"Libtmux.Command.view:type.Signal","publicId":"Libtmux.Command.view:type.Signal","name":"Signal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":969,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Signal : string -> unit view","source":{"file":"lib/libtmux.mli","line":969,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Signal","slug":"libtmux-command-view-type-signal"},{"id":"Libtmux.Command.view:type.Split_pane","publicId":"Libtmux.Command.view:type.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":991,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":991,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Split_pane","slug":"libtmux-command-view-type-split_pane"},{"id":"Libtmux.Command.view:type.Split_pane.direction","publicId":"Libtmux.Command.view:type.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":993,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":993,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-view-type-split_pane-direction"},{"id":"Libtmux.Command.view:type.Split_pane.pane","publicId":"Libtmux.Command.view:type.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":992,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":992,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-split_pane-pane"},{"id":"Libtmux.Command.view:type.Split_pane.size","publicId":"Libtmux.Command.view:type.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":994,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":994,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-view-type-split_pane-size"},{"id":"Libtmux.Command.view:type.Split_pane.spawn","publicId":"Libtmux.Command.view:type.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":995,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":995,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-split_pane-spawn"},{"id":"Libtmux.Command.view:type.Wait_for","publicId":"Libtmux.Command.view:type.Wait_for","name":"Wait_for","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":968,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wait_for : string -> unit view","source":{"file":"lib/libtmux.mli","line":968,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Wait_for","slug":"libtmux-command-view-type-wait_for"},{"id":"Libtmux.Created","publicId":"Libtmux.Created","qualifiedName":"Libtmux.Created","name":"Created","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":757,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" IDs reported by a successful creation reply. Only the requested kind is\n newly created; the other fields can describe existing containers. "],"declarations":[{"kind":"module","text":"module Created : sig\n type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }\n (** IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. *)\nend","source":{"file":"lib/libtmux.mli","line":757,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"IDs reported by a successful creation reply. Only the requested kind is newly created; the other fields can describe existing containers."},"slug":"libtmux-created"},{"id":"Libtmux.Created.t","publicId":"Libtmux.Created.t","qualifiedName":"Libtmux.Created.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":758,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. "],"declarations":[{"kind":"struct","text":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }","source":{"file":"lib/libtmux.mli","line":758,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Created","doc":{"summary":"IDs returned by the creation command, without a second capture. Indexes describe the creation response and may change afterward. Only the resource requested by the command is newly created: splitting a pane does not create the reported session or window."},"signatures":[{"raw":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n}","params":[]}],"slug":"libtmux-created-t"},{"id":"Libtmux.Created.t.pane","publicId":"Libtmux.Created.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":761,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":761,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Created.t","type":"Pane.target","qualifiedName":"Libtmux.Created.pane","slug":"libtmux-created-t-pane"},{"id":"Libtmux.Created.t.pane_index","publicId":"Libtmux.Created.t.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.pane_index","slug":"libtmux-created-t-pane_index"},{"id":"Libtmux.Created.t.session","publicId":"Libtmux.Created.t.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":759,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":759,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Created.t","type":"Session.target","qualifiedName":"Libtmux.Created.session","slug":"libtmux-created-t-session"},{"id":"Libtmux.Created.t.window","publicId":"Libtmux.Created.t.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":760,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":760,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Created.t","type":"Window.target","qualifiedName":"Libtmux.Created.window","slug":"libtmux-created-t-window"},{"id":"Libtmux.Created.t.window_index","publicId":"Libtmux.Created.t.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"lib/libtmux.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.window_index","slug":"libtmux-created-t-window_index"},{"id":"Libtmux.Endpoint","publicId":"Libtmux.Endpoint","qualifiedName":"Libtmux.Endpoint","name":"Endpoint","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" An explicit socket description. Constructing an endpoint neither reads the\n environment nor starts a daemon. {!Source.t} adds the observed daemon and\n connection generation. "],"declarations":[{"kind":"module","text":"module Endpoint : sig\n type t\n (** An explicit socket description, independent of the environment. *)\n\n type kind = Named_socket of string | Socket_path of string\n\n val named_socket : string -> t\n (** [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. *)\n\n val socket_path : string -> t\n (** [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. *)\n\n val kind : t -> kind\n\n val equal : t -> t -> bool\n (** Equality compares descriptions, not server instances or resolved paths. *)\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"An explicit socket description. Constructing an endpoint neither reads the environment nor starts a daemon. {!Source.t} adds the observed daemon and connection generation."},"slug":"libtmux-endpoint"},{"id":"Libtmux.Endpoint.equal","publicId":"Libtmux.Endpoint.equal","qualifiedName":"Libtmux.Endpoint.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":43,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Equality compares descriptions, not server instances or resolved paths. "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":43,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"Equality compares descriptions, not server instances or resolved paths."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-endpoint-equal"},{"id":"Libtmux.Endpoint.kind","publicId":"Libtmux.Endpoint.kind","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":41,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : t -> kind","source":{"file":"lib/libtmux.mli","line":41,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val kind : t -> kind","params":[{"name":"arg1","type":"t"}],"returns":"kind"}],"slug":"libtmux-endpoint-kind"},{"id":"Libtmux.Endpoint.kind:type","publicId":"Libtmux.Endpoint.kind:type","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type kind = Named_socket of string | Socket_path of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"type kind = Named_socket of string | Socket_path of string","params":[]}],"slug":"libtmux-endpoint-kind-type"},{"id":"Libtmux.Endpoint.kind:type.Named_socket","publicId":"Libtmux.Endpoint.kind:type.Named_socket","name":"Named_socket","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Named_socket of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Named_socket","slug":"libtmux-endpoint-kind-type-named_socket"},{"id":"Libtmux.Endpoint.kind:type.Socket_path","publicId":"Libtmux.Endpoint.kind:type.Socket_path","name":"Socket_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Socket_path of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Socket_path","slug":"libtmux-endpoint-kind-type-socket_path"},{"id":"Libtmux.Endpoint.named_socket","publicId":"Libtmux.Endpoint.named_socket","qualifiedName":"Libtmux.Endpoint.named_socket","name":"named_socket","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. "],"declarations":[{"kind":"function","text":"val named_socket : string -> t","source":{"file":"lib/libtmux.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`named_socket name` describes tmux's `-L name` endpoint. Raises `Invalid_argument` if `name` is empty or contains NUL or `/`."},"signatures":[{"raw":"val named_socket : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-named_socket"},{"id":"Libtmux.Endpoint.pp","publicId":"Libtmux.Endpoint.pp","qualifiedName":"Libtmux.Endpoint.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":46,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":46,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-endpoint-pp"},{"id":"Libtmux.Endpoint.socket_path","publicId":"Libtmux.Endpoint.socket_path","qualifiedName":"Libtmux.Endpoint.socket_path","name":"socket_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. "],"declarations":[{"kind":"function","text":"val socket_path : string -> t","source":{"file":"lib/libtmux.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`socket_path path` describes an absolute `-S path` endpoint. It does not check existence or resolve symbolic links. Raises `Invalid_argument` if `path` is relative, empty or contains NUL."},"signatures":[{"raw":"val socket_path : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-socket_path"},{"id":"Libtmux.Endpoint.t","publicId":"Libtmux.Endpoint.t","qualifiedName":"Libtmux.Endpoint.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" An explicit socket description, independent of the environment. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"An explicit socket description, independent of the environment."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-endpoint-t"},{"id":"Libtmux.Environment","publicId":"Libtmux.Environment","qualifiedName":"Libtmux.Environment","name":"Environment","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":771,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Environment : sig\n type scope = Global | Session of Session.target\n type value = Value of string | Removed\n type entry = { name : string; value : value }\n\n type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. *)\n\n val lookup : t -> string -> value option\n (** No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. *)\nend","source":{"file":"lib/libtmux.mli","line":771,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-environment"},{"id":"Libtmux.Environment.entry","publicId":"Libtmux.Environment.entry","qualifiedName":"Libtmux.Environment.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { name : string; value : value }","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type entry = { name : string; value : value; }","params":[]}],"slug":"libtmux-environment-entry"},{"id":"Libtmux.Environment.entry.name","publicId":"Libtmux.Environment.entry.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.entry","type":"string","qualifiedName":"Libtmux.Environment.name","slug":"libtmux-environment-entry-name"},{"id":"Libtmux.Environment.entry.value","publicId":"Libtmux.Environment.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.entry","type":"value","qualifiedName":"Libtmux.Environment.value","slug":"libtmux-environment-entry-value"},{"id":"Libtmux.Environment.lookup","publicId":"Libtmux.Environment.lookup","qualifiedName":"Libtmux.Environment.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":788,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> value option","source":{"file":"lib/libtmux.mli","line":788,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment","doc":{"summary":"No I/O. `None` means absent from the selected table and visibility. `Removed` masks a global value; `Value \"\"` is an explicitly empty value. Names must be ASCII identifiers; values preserve non-NUL bytes."},"signatures":[{"raw":"val lookup : t -> string -> value option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"value option"}],"slug":"libtmux-environment-lookup"},{"id":"Libtmux.Environment.scope","publicId":"Libtmux.Environment.scope","qualifiedName":"Libtmux.Environment.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Global | Session of Session.target","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type scope = Global | Session of Session.target","params":[]}],"slug":"libtmux-environment-scope"},{"id":"Libtmux.Environment.scope.Global","publicId":"Libtmux.Environment.scope.Global","name":"Global","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Global","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.scope","variant":"unit","qualifiedName":"Libtmux.Environment.Global","slug":"libtmux-environment-scope-global"},{"id":"Libtmux.Environment.scope.Session","publicId":"Libtmux.Environment.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.scope","variant":"tuple","qualifiedName":"Libtmux.Environment.Session","slug":"libtmux-environment-scope-session"},{"id":"Libtmux.Environment.t","publicId":"Libtmux.Environment.t","qualifiedName":"Libtmux.Environment.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":776,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":776,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment","doc":{"summary":"One captured environment table, in tmux order. `hidden` selects hidden variables exclusively. Session tables contain local entries, including removal markers; they do not merge the global environment."},"signatures":[{"raw":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-environment-t"},{"id":"Libtmux.Environment.t.entries","publicId":"Libtmux.Environment.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Environment.entries","slug":"libtmux-environment-t-entries"},{"id":"Libtmux.Environment.t.finished_at_ns","publicId":"Libtmux.Environment.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":782,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":782,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.finished_at_ns","slug":"libtmux-environment-t-finished_at_ns"},{"id":"Libtmux.Environment.t.hidden","publicId":"Libtmux.Environment.t.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":779,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":779,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.t","type":"bool","qualifiedName":"Libtmux.Environment.hidden","slug":"libtmux-environment-t-hidden"},{"id":"Libtmux.Environment.t.scope","publicId":"Libtmux.Environment.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":778,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":778,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.t","type":"scope","qualifiedName":"Libtmux.Environment.scope","slug":"libtmux-environment-t-scope"},{"id":"Libtmux.Environment.t.source","publicId":"Libtmux.Environment.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":777,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":777,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.t","type":"Source.t","qualifiedName":"Libtmux.Environment.source","slug":"libtmux-environment-t-source"},{"id":"Libtmux.Environment.t.started_at_ns","publicId":"Libtmux.Environment.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":781,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":781,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.started_at_ns","slug":"libtmux-environment-t-started_at_ns"},{"id":"Libtmux.Environment.value","publicId":"Libtmux.Environment.value","qualifiedName":"Libtmux.Environment.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Value of string | Removed","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type value = Value of string | Removed","params":[]}],"slug":"libtmux-environment-value"},{"id":"Libtmux.Environment.value.Removed","publicId":"Libtmux.Environment.value.Removed","name":"Removed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Removed","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.value","variant":"unit","qualifiedName":"Libtmux.Environment.Removed","slug":"libtmux-environment-value-removed"},{"id":"Libtmux.Environment.value.Value","publicId":"Libtmux.Environment.value.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Value of string","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Environment.value","variant":"tuple","qualifiedName":"Libtmux.Environment.Value","slug":"libtmux-environment-value-value"},{"id":"Libtmux.Error","publicId":"Libtmux.Error","qualifiedName":"Libtmux.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":52,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Expected input, capture, capability and transport failures. Cancellation\n belongs to the chosen backend and is not converted into an ordinary error.\n"],"declarations":[{"kind":"module","text":"module Error : sig\n type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":52,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Expected input, capture, capability and transport failures. Cancellation belongs to the chosen backend and is not converted into an ordinary error."},"slug":"libtmux-error"},{"id":"Libtmux.Error.pp","publicId":"Libtmux.Error.pp","qualifiedName":"Libtmux.Error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-error-pp"},{"id":"Libtmux.Error.t","publicId":"Libtmux.Error.t","qualifiedName":"Libtmux.Error.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":53,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":53,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error","signatures":[{"raw":"type t =\n Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string; }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int; }\n | Stale_target\n | No_such_entity of { kind : string; id : string; }\n | Command_failed of { command : string; message : string; }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","params":[]}],"slug":"libtmux-error-t"},{"id":"Libtmux.Error.t.Busy","publicId":"Libtmux.Error.t.Busy","name":"Busy","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Busy","source":{"file":"lib/libtmux.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Busy","slug":"libtmux-error-t-busy"},{"id":"Libtmux.Error.t.Capacity","publicId":"Libtmux.Error.t.Capacity","name":"Capacity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capacity of { resource : string; limit : int }","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Capacity","slug":"libtmux-error-t-capacity"},{"id":"Libtmux.Error.t.Capacity.limit","publicId":"Libtmux.Error.t.Capacity.limit","name":"limit","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"limit : int","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.Capacity","type":"int","qualifiedName":"Libtmux.Error.limit","slug":"libtmux-error-t-capacity-limit"},{"id":"Libtmux.Error.t.Capacity.resource","publicId":"Libtmux.Error.t.Capacity.resource","name":"resource","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"resource : string;","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.Capacity","type":"string","qualifiedName":"Libtmux.Error.resource","slug":"libtmux-error-t-capacity-resource"},{"id":"Libtmux.Error.t.Capture_raced","publicId":"Libtmux.Error.t.Capture_raced","name":"Capture_raced","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_raced of string","source":{"file":"lib/libtmux.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Capture_raced","slug":"libtmux-error-t-capture_raced"},{"id":"Libtmux.Error.t.Closed","publicId":"Libtmux.Error.t.Closed","name":"Closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Closed","source":{"file":"lib/libtmux.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Closed","slug":"libtmux-error-t-closed"},{"id":"Libtmux.Error.t.Command_failed","publicId":"Libtmux.Error.t.Command_failed","name":"Command_failed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command_failed of { command : string; message : string }","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Command_failed","slug":"libtmux-error-t-command_failed"},{"id":"Libtmux.Error.t.Command_failed.command","publicId":"Libtmux.Error.t.Command_failed.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : string;","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.command","slug":"libtmux-error-t-command_failed-command"},{"id":"Libtmux.Error.t.Command_failed.message","publicId":"Libtmux.Error.t.Command_failed.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-command_failed-message"},{"id":"Libtmux.Error.t.Deadline_exceeded","publicId":"Libtmux.Error.t.Deadline_exceeded","name":"Deadline_exceeded","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Deadline_exceeded","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Deadline_exceeded","slug":"libtmux-error-t-deadline_exceeded"},{"id":"Libtmux.Error.t.Disconnected","publicId":"Libtmux.Error.t.Disconnected","name":"Disconnected","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Disconnected of string","source":{"file":"lib/libtmux.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Disconnected","slug":"libtmux-error-t-disconnected"},{"id":"Libtmux.Error.t.Filesystem","publicId":"Libtmux.Error.t.Filesystem","name":"Filesystem","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Filesystem of { operation : string; message : string }","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Filesystem","slug":"libtmux-error-t-filesystem"},{"id":"Libtmux.Error.t.Filesystem.message","publicId":"Libtmux.Error.t.Filesystem.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-filesystem-message"},{"id":"Libtmux.Error.t.Filesystem.operation","publicId":"Libtmux.Error.t.Filesystem.operation","name":"operation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation : string;","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.operation","slug":"libtmux-error-t-filesystem-operation"},{"id":"Libtmux.Error.t.Invalid_input","publicId":"Libtmux.Error.t.Invalid_input","name":"Invalid_input","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":54,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Invalid_input of string","source":{"file":"lib/libtmux.mli","line":54,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Invalid_input","slug":"libtmux-error-t-invalid_input"},{"id":"Libtmux.Error.t.Malformed_data","publicId":"Libtmux.Error.t.Malformed_data","name":"Malformed_data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Malformed_data of string","source":{"file":"lib/libtmux.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Malformed_data","slug":"libtmux-error-t-malformed_data"},{"id":"Libtmux.Error.t.No_such_entity","publicId":"Libtmux.Error.t.No_such_entity","name":"No_such_entity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| No_such_entity of { kind : string; id : string }","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.No_such_entity","slug":"libtmux-error-t-no_such_entity"},{"id":"Libtmux.Error.t.No_such_entity.id","publicId":"Libtmux.Error.t.No_such_entity.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : string","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.id","slug":"libtmux-error-t-no_such_entity-id"},{"id":"Libtmux.Error.t.No_such_entity.kind","publicId":"Libtmux.Error.t.No_such_entity.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : string;","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.kind","slug":"libtmux-error-t-no_such_entity-kind"},{"id":"Libtmux.Error.t.Not_started","publicId":"Libtmux.Error.t.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"lib/libtmux.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Not_started","slug":"libtmux-error-t-not_started"},{"id":"Libtmux.Error.t.Outcome_unknown","publicId":"Libtmux.Error.t.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Outcome_unknown","slug":"libtmux-error-t-outcome_unknown"},{"id":"Libtmux.Error.t.Stale_target","publicId":"Libtmux.Error.t.Stale_target","name":"Stale_target","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale_target","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Stale_target","slug":"libtmux-error-t-stale_target"},{"id":"Libtmux.Error.t.Unsupported","publicId":"Libtmux.Error.t.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported of string","source":{"file":"lib/libtmux.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported","slug":"libtmux-error-t-unsupported"},{"id":"Libtmux.Error.t.Unsupported_binding","publicId":"Libtmux.Error.t.Unsupported_binding","name":"Unsupported_binding","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_binding of string","source":{"file":"lib/libtmux.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_binding","slug":"libtmux-error-t-unsupported_binding"},{"id":"Libtmux.Error.t.Unsupported_capture_hooks","publicId":"Libtmux.Error.t.Unsupported_capture_hooks","name":"Unsupported_capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_capture_hooks","source":{"file":"lib/libtmux.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Unsupported_capture_hooks","slug":"libtmux-error-t-unsupported_capture_hooks"},{"id":"Libtmux.Error.t.Unsupported_version","publicId":"Libtmux.Error.t.Unsupported_version","name":"Unsupported_version","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_version of string","source":{"file":"lib/libtmux.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_version","slug":"libtmux-error-t-unsupported_version"},{"id":"Libtmux.Error.t.Wrong_domain","publicId":"Libtmux.Error.t.Wrong_domain","name":"Wrong_domain","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_domain","source":{"file":"lib/libtmux.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Wrong_domain","slug":"libtmux-error-t-wrong_domain"},{"id":"Libtmux.Expr","publicId":"Libtmux.Expr","qualifiedName":"Libtmux.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Inspectable predicates whose entity and operand types are checked by the\n compiler. Combine native closures separately with [Seq.filter]. Evaluation\n follows captured relationships without acquisition or hidden caches. "],"declarations":[{"kind":"module","text":"module Expr : sig\n type 'entity t\n\n val all : 'a t list -> 'a t\n (** Boolean conjunction; the empty conjunction is true. *)\n\n val any : 'a t list -> 'a t\n (** Boolean disjunction; the empty disjunction is false. *)\n\n val not_ : 'a t -> 'a t\n\n module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end\n\n module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end\n\n module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end\n\n module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end\n\n val compile : 'a t -> 'a -> bool\n (** Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n *)\n\n val pp : Format.formatter -> 'a t -> unit\n val describe : 'a t -> string\n\n type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison\n\n type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view\n\n val view : 'a t -> 'a view\n (** Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. *)\nend","source":{"file":"lib/libtmux.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Inspectable predicates whose entity and operand types are checked by the compiler. Combine native closures separately with `Seq.filter`. Evaluation follows captured relationships without acquisition or hidden caches."},"slug":"libtmux-expr"},{"id":"Libtmux.Expr.Bool","publicId":"Libtmux.Expr.Bool","qualifiedName":"Libtmux.Expr.Bool","name":"Bool","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":563,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":563,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-bool"},{"id":"Libtmux.Expr.Bool.equal","publicId":"Libtmux.Expr.Bool.equal","qualifiedName":"Libtmux.Expr.Bool.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":564,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, bool) Field.t -> bool -> 'a t","source":{"file":"lib/libtmux.mli","line":564,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val equal : ('a, bool) Field.t -> bool -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"},{"name":"arg2","type":"bool"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-equal"},{"id":"Libtmux.Expr.Bool.is_false","publicId":"Libtmux.Expr.Bool.is_false","qualifiedName":"Libtmux.Expr.Bool.is_false","name":"is_false","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":566,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_false : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":566,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_false : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_false"},{"id":"Libtmux.Expr.Bool.is_true","publicId":"Libtmux.Expr.Bool.is_true","qualifiedName":"Libtmux.Expr.Bool.is_true","name":"is_true","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_true : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_true : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_true"},{"id":"Libtmux.Expr.Int","publicId":"Libtmux.Expr.Int","qualifiedName":"Libtmux.Expr.Int","name":"Int","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":569,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":569,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-int"},{"id":"Libtmux.Expr.Int.equal","publicId":"Libtmux.Expr.Int.equal","qualifiedName":"Libtmux.Expr.Int.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":570,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":570,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val equal : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-equal"},{"id":"Libtmux.Expr.Int.ge","publicId":"Libtmux.Expr.Int.ge","qualifiedName":"Libtmux.Expr.Int.ge","name":"ge","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":574,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ge : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":574,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val ge : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-ge"},{"id":"Libtmux.Expr.Int.gt","publicId":"Libtmux.Expr.Int.gt","qualifiedName":"Libtmux.Expr.Int.gt","name":"gt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":573,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val gt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":573,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val gt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-gt"},{"id":"Libtmux.Expr.Int.is_in","publicId":"Libtmux.Expr.Int.is_in","qualifiedName":"Libtmux.Expr.Int.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_in : ('a, int) Field.t -> int list -> 'a t","source":{"file":"lib/libtmux.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val is_in : ('a, int) Field.t -> int list -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int list"}],"returns":"'a t"}],"slug":"libtmux-expr-int-is_in"},{"id":"Libtmux.Expr.Int.le","publicId":"Libtmux.Expr.Int.le","qualifiedName":"Libtmux.Expr.Int.le","name":"le","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":572,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val le : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":572,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val le : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-le"},{"id":"Libtmux.Expr.Int.lt","publicId":"Libtmux.Expr.Int.lt","qualifiedName":"Libtmux.Expr.Int.lt","name":"lt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":571,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val lt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":571,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val lt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-lt"},{"id":"Libtmux.Expr.Rel","publicId":"Libtmux.Expr.Rel","qualifiedName":"Libtmux.Expr.Rel","name":"Rel","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":589,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":589,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-rel"},{"id":"Libtmux.Expr.Rel.all","publicId":"Libtmux.Expr.Rel.all","qualifiedName":"Libtmux.Expr.Rel.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":591,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":591,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-all"},{"id":"Libtmux.Expr.Rel.any","publicId":"Libtmux.Expr.Rel.any","qualifiedName":"Libtmux.Expr.Rel.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-any"},{"id":"Libtmux.Expr.Rel.exists","publicId":"Libtmux.Expr.Rel.exists","qualifiedName":"Libtmux.Expr.Rel.exists","name":"exists","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":598,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":598,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-exists"},{"id":"Libtmux.Expr.Rel.is","publicId":"Libtmux.Expr.Rel.is","qualifiedName":"Libtmux.Expr.Rel.is","name":"is","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.One.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is"},{"id":"Libtmux.Expr.Rel.is_absent","publicId":"Libtmux.Expr.Rel.is_absent","qualifiedName":"Libtmux.Expr.Rel.is_absent","name":"is_absent","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":599,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","source":{"file":"lib/libtmux.mli","line":599,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is_absent"},{"id":"Libtmux.Expr.Rel.none","publicId":"Libtmux.Expr.Rel.none","qualifiedName":"Libtmux.Expr.Rel.none","name":"none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":593,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. "],"declarations":[{"kind":"function","text":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":593,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Rel","doc":{"summary":"On empty relations, `any` is false; `all` and `none` are true. One child must satisfy the complete nested expression."},"signatures":[{"raw":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-none"},{"id":"Libtmux.Expr.Text","publicId":"Libtmux.Expr.Text","qualifiedName":"Libtmux.Expr.Text","name":"Text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":578,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end","source":{"file":"lib/libtmux.mli","line":578,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-text"},{"id":"Libtmux.Expr.Text.contains","publicId":"Libtmux.Expr.Text.contains","qualifiedName":"Libtmux.Expr.Text.contains","name":"contains","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":582,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val contains : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":582,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val contains : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-contains"},{"id":"Libtmux.Expr.Text.ends_with","publicId":"Libtmux.Expr.Text.ends_with","qualifiedName":"Libtmux.Expr.Text.ends_with","name":"ends_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ends_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val ends_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-ends_with"},{"id":"Libtmux.Expr.Text.equal","publicId":"Libtmux.Expr.Text.equal","qualifiedName":"Libtmux.Expr.Text.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":579,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":579,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val equal : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-equal"},{"id":"Libtmux.Expr.Text.is_in","publicId":"Libtmux.Expr.Text.is_in","qualifiedName":"Libtmux.Expr.Text.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":584,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. "],"declarations":[{"kind":"function","text":"val is_in : ('a, string) Field.t -> string list -> 'a t","source":{"file":"lib/libtmux.mli","line":584,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Text","doc":{"summary":"Comparisons use exact bytes, without case folding or normalization. The empty substring matches every string."},"signatures":[{"raw":"val is_in : ('a, string) Field.t -> string list -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string list"}],"returns":"'a t"}],"slug":"libtmux-expr-text-is_in"},{"id":"Libtmux.Expr.Text.starts_with","publicId":"Libtmux.Expr.Text.starts_with","qualifiedName":"Libtmux.Expr.Text.starts_with","name":"starts_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":580,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val starts_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":580,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val starts_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-starts_with"},{"id":"Libtmux.Expr.all","publicId":"Libtmux.Expr.all","qualifiedName":"Libtmux.Expr.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":555,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Boolean conjunction; the empty conjunction is true. "],"declarations":[{"kind":"function","text":"val all : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":555,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean conjunction; the empty conjunction is true."},"signatures":[{"raw":"val all : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-all"},{"id":"Libtmux.Expr.any","publicId":"Libtmux.Expr.any","qualifiedName":"Libtmux.Expr.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Boolean disjunction; the empty disjunction is false. "],"declarations":[{"kind":"function","text":"val any : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean disjunction; the empty disjunction is false."},"signatures":[{"raw":"val any : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-any"},{"id":"Libtmux.Expr.comparison","publicId":"Libtmux.Expr.comparison","qualifiedName":"Libtmux.Expr.comparison","name":"comparison","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":609,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":609,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type _ comparison =\n Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","params":[]}],"slug":"libtmux-expr-comparison"},{"id":"Libtmux.Expr.comparison.Bool_equal","publicId":"Libtmux.Expr.comparison.Bool_equal","name":"Bool_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":610,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool_equal : bool -> bool comparison","source":{"file":"lib/libtmux.mli","line":610,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Bool_equal","slug":"libtmux-expr-comparison-bool_equal"},{"id":"Libtmux.Expr.comparison.Int_equal","publicId":"Libtmux.Expr.comparison.Int_equal","name":"Int_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":611,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_equal : int -> int comparison","source":{"file":"lib/libtmux.mli","line":611,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_equal","slug":"libtmux-expr-comparison-int_equal"},{"id":"Libtmux.Expr.comparison.Int_ge","publicId":"Libtmux.Expr.comparison.Int_ge","name":"Int_ge","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":615,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_ge : int -> int comparison","source":{"file":"lib/libtmux.mli","line":615,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_ge","slug":"libtmux-expr-comparison-int_ge"},{"id":"Libtmux.Expr.comparison.Int_gt","publicId":"Libtmux.Expr.comparison.Int_gt","name":"Int_gt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":614,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_gt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":614,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_gt","slug":"libtmux-expr-comparison-int_gt"},{"id":"Libtmux.Expr.comparison.Int_in","publicId":"Libtmux.Expr.comparison.Int_in","name":"Int_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":616,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_in : int list -> int comparison","source":{"file":"lib/libtmux.mli","line":616,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_in","slug":"libtmux-expr-comparison-int_in"},{"id":"Libtmux.Expr.comparison.Int_le","publicId":"Libtmux.Expr.comparison.Int_le","name":"Int_le","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":613,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_le : int -> int comparison","source":{"file":"lib/libtmux.mli","line":613,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_le","slug":"libtmux-expr-comparison-int_le"},{"id":"Libtmux.Expr.comparison.Int_lt","publicId":"Libtmux.Expr.comparison.Int_lt","name":"Int_lt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_lt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_lt","slug":"libtmux-expr-comparison-int_lt"},{"id":"Libtmux.Expr.comparison.Text_contains","publicId":"Libtmux.Expr.comparison.Text_contains","name":"Text_contains","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_contains : string -> string comparison","source":{"file":"lib/libtmux.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_contains","slug":"libtmux-expr-comparison-text_contains"},{"id":"Libtmux.Expr.comparison.Text_ends_with","publicId":"Libtmux.Expr.comparison.Text_ends_with","name":"Text_ends_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":619,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_ends_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":619,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_ends_with","slug":"libtmux-expr-comparison-text_ends_with"},{"id":"Libtmux.Expr.comparison.Text_equal","publicId":"Libtmux.Expr.comparison.Text_equal","name":"Text_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":617,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_equal : string -> string comparison","source":{"file":"lib/libtmux.mli","line":617,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_equal","slug":"libtmux-expr-comparison-text_equal"},{"id":"Libtmux.Expr.comparison.Text_in","publicId":"Libtmux.Expr.comparison.Text_in","name":"Text_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_in","slug":"libtmux-expr-comparison-text_in"},{"id":"Libtmux.Expr.comparison.Text_starts_with","publicId":"Libtmux.Expr.comparison.Text_starts_with","name":"Text_starts_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":618,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_starts_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":618,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_starts_with","slug":"libtmux-expr-comparison-text_starts_with"},{"id":"Libtmux.Expr.compile","publicId":"Libtmux.Expr.compile","qualifiedName":"Libtmux.Expr.compile","name":"compile","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n "],"declarations":[{"kind":"function","text":"val compile : 'a t -> 'a -> bool","source":{"file":"lib/libtmux.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","doc":{"summary":"Prepare a reusable predicate. Compilation and evaluation perform no I/O."},"signatures":[{"raw":"val compile : 'a t -> 'a -> bool","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"'a"}],"returns":"bool"}],"slug":"libtmux-expr-compile"},{"id":"Libtmux.Expr.describe","publicId":"Libtmux.Expr.describe","qualifiedName":"Libtmux.Expr.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":607,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : 'a t -> string","source":{"file":"lib/libtmux.mli","line":607,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val describe : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-expr-describe"},{"id":"Libtmux.Expr.not_","publicId":"Libtmux.Expr.not_","qualifiedName":"Libtmux.Expr.not_","name":"not_","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":561,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val not_ : 'a t -> 'a t","source":{"file":"lib/libtmux.mli","line":561,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val not_ : 'a t -> 'a t","params":[{"name":"arg1","type":"'a t"}],"returns":"'a t"}],"slug":"libtmux-expr-not_"},{"id":"Libtmux.Expr.pp","publicId":"Libtmux.Expr.pp","qualifiedName":"Libtmux.Expr.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":606,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> 'a t -> unit","source":{"file":"lib/libtmux.mli","line":606,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val pp : Format.formatter -> 'a t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"'a t"}],"returns":"unit"}],"slug":"libtmux-expr-pp"},{"id":"Libtmux.Expr.t","publicId":"Libtmux.Expr.t","qualifiedName":"Libtmux.Expr.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":553,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'entity t","source":{"file":"lib/libtmux.mli","line":553,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'entity t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-expr-t"},{"id":"Libtmux.Expr.view","publicId":"Libtmux.Expr.view","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","doc":{"summary":"Typed read-only inspection for codecs and planners. A view cannot add custom accessors or closures to an expression."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-expr-view"},{"id":"Libtmux.Expr.view:type","publicId":"Libtmux.Expr.view:type","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":623,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":623,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'a view =\n Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","params":[]}],"slug":"libtmux-expr-view-type"},{"id":"Libtmux.Expr.view:type.Absent","publicId":"Libtmux.Expr.view:type.Absent","name":"Absent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Absent","slug":"libtmux-expr-view-type-absent"},{"id":"Libtmux.Expr.view:type.All","publicId":"Libtmux.Expr.view:type.All","name":"All","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":625,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| All of 'a t list","source":{"file":"lib/libtmux.mli","line":625,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.All","slug":"libtmux-expr-view-type-all"},{"id":"Libtmux.Expr.view:type.Any","publicId":"Libtmux.Expr.view:type.Any","name":"Any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":626,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Any of 'a t list","source":{"file":"lib/libtmux.mli","line":626,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Any","slug":"libtmux-expr-view-type-any"},{"id":"Libtmux.Expr.view:type.Compare","publicId":"Libtmux.Expr.view:type.Compare","name":"Compare","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Compare : ('a, 'v) Field.t * 'v comparison -> 'a view","source":{"file":"lib/libtmux.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Compare","slug":"libtmux-expr-view-type-compare"},{"id":"Libtmux.Expr.view:type.Not","publicId":"Libtmux.Expr.view:type.Not","name":"Not","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":627,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not of 'a t","source":{"file":"lib/libtmux.mli","line":627,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Not","slug":"libtmux-expr-view-type-not"},{"id":"Libtmux.Expr.view:type.Related_all","publicId":"Libtmux.Expr.view:type.Related_all","name":"Related_all","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_all","slug":"libtmux-expr-view-type-related_all"},{"id":"Libtmux.Expr.view:type.Related_any","publicId":"Libtmux.Expr.view:type.Related_any","name":"Related_any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":628,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":628,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_any","slug":"libtmux-expr-view-type-related_any"},{"id":"Libtmux.Expr.view:type.Related_none","publicId":"Libtmux.Expr.view:type.Related_none","name":"Related_none","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":630,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":630,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_none","slug":"libtmux-expr-view-type-related_none"},{"id":"Libtmux.Expr.view:type.Related_one","publicId":"Libtmux.Expr.view:type.Related_one","name":"Related_one","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":631,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":631,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_one","slug":"libtmux-expr-view-type-related_one"},{"id":"Libtmux.Expr.view:type.Related_optional","publicId":"Libtmux.Expr.view:type.Related_optional","name":"Related_optional","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":632,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":632,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_optional","slug":"libtmux-expr-view-type-related_optional"},{"id":"Libtmux.Field","publicId":"Libtmux.Field","qualifiedName":"Libtmux.Field","name":"Field","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Sealed scalar descriptors carrying entity and value types. Descriptors read\n captured data and provide trusted identities for {!Expr} values. Use\n {!Relation} for graph edges. "],"declarations":[{"kind":"module","text":"module Field : sig\n type _ kind = Bool : bool kind | Int : int kind | Text : string kind\n type ('entity, 'value) t\n type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed\n\n val name : ('entity, 'value) t -> string\n val kind : ('entity, 'value) t -> 'value kind\n\n val get : ('entity, 'value) t -> 'entity -> 'value\n (** Canonical descriptors are sealed. Accessing a field reads captured data.\n *)\nend","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Sealed scalar descriptors carrying entity and value types. Descriptors read captured data and provide trusted identities for {!Expr} values. Use {!Relation} for graph edges."},"slug":"libtmux-field"},{"id":"Libtmux.Field.get","publicId":"Libtmux.Field.get","qualifiedName":"Libtmux.Field.get","name":"get","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":142,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Canonical descriptors are sealed. Accessing a field reads captured data.\n "],"declarations":[{"kind":"function","text":"val get : ('entity, 'value) t -> 'entity -> 'value","source":{"file":"lib/libtmux.mli","line":142,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field","doc":{"summary":"Canonical descriptors are sealed. Accessing a field reads captured data."},"signatures":[{"raw":"val get : ('entity, 'value) t -> 'entity -> 'value","params":[{"name":"arg1","type":"('entity, 'value) t"},{"name":"arg2","type":"'entity"}],"returns":"'value"}],"slug":"libtmux-field-get"},{"id":"Libtmux.Field.kind","publicId":"Libtmux.Field.kind","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":140,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : ('entity, 'value) t -> 'value kind","source":{"file":"lib/libtmux.mli","line":140,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val kind : ('entity, 'value) t -> 'value kind","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"'value kind"}],"slug":"libtmux-field-kind"},{"id":"Libtmux.Field.kind:type","publicId":"Libtmux.Field.kind:type","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","params":[]}],"slug":"libtmux-field-kind-type"},{"id":"Libtmux.Field.kind:type.Bool","publicId":"Libtmux.Field.kind:type.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool : bool kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Bool","slug":"libtmux-field-kind-type-bool"},{"id":"Libtmux.Field.kind:type.Int","publicId":"Libtmux.Field.kind:type.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int : int kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Int","slug":"libtmux-field-kind-type-int"},{"id":"Libtmux.Field.kind:type.Text","publicId":"Libtmux.Field.kind:type.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text : string kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Text","slug":"libtmux-field-kind-type-text"},{"id":"Libtmux.Field.name","publicId":"Libtmux.Field.name","qualifiedName":"Libtmux.Field.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":139,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('entity, 'value) t -> string","source":{"file":"lib/libtmux.mli","line":139,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val name : ('entity, 'value) t -> string","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"string"}],"slug":"libtmux-field-name"},{"id":"Libtmux.Field.packed","publicId":"Libtmux.Field.packed","qualifiedName":"Libtmux.Field.packed","name":"packed","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","params":[]}],"slug":"libtmux-field-packed"},{"id":"Libtmux.Field.packed.Pack","publicId":"Libtmux.Field.packed.Pack","name":"Pack","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field.packed","variant":"tuple","qualifiedName":"Libtmux.Field.Pack","slug":"libtmux-field-packed-pack"},{"id":"Libtmux.Field.t","publicId":"Libtmux.Field.t","qualifiedName":"Libtmux.Field.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('entity, 'value) t","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type ('entity, 'value) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-field-t"},{"id":"Libtmux.Formats","publicId":"Libtmux.Formats","qualifiedName":"Libtmux.Formats","name":"Formats","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":473,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Formats : sig\n module Kind : sig\n type t = Text | Timestamp\n end\n\n module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }\n (** Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. *)\n\n type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t\n\n type scalar = Bool of bool | Int of int | Text of string\n\n type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported\n (** [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor option, Error.t) result\n\n val lookup :\n version:string -> observation -> string -> (state, Error.t) result\n (** No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. *)\nend","source":{"file":"lib/libtmux.mli","line":473,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-formats"},{"id":"Libtmux.Formats.Context","publicId":"Libtmux.Formats.Context","qualifiedName":"Libtmux.Formats.Context","name":"Context","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":478,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end","source":{"file":"lib/libtmux.mli","line":478,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-context"},{"id":"Libtmux.Formats.Context.t","publicId":"Libtmux.Formats.Context.t","qualifiedName":"Libtmux.Formats.Context.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":479,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","source":{"file":"lib/libtmux.mli","line":479,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context","signatures":[{"raw":"type t =\n Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","params":[]}],"slug":"libtmux-formats-context-t"},{"id":"Libtmux.Formats.Context.t.Buffer","publicId":"Libtmux.Formats.Context.t.Buffer","name":"Buffer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":487,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Buffer","source":{"file":"lib/libtmux.mli","line":487,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Buffer","slug":"libtmux-formats-context-t-buffer"},{"id":"Libtmux.Formats.Context.t.Client","publicId":"Libtmux.Formats.Context.t.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":486,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client","source":{"file":"lib/libtmux.mli","line":486,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Client","slug":"libtmux-formats-context-t-client"},{"id":"Libtmux.Formats.Context.t.Command","publicId":"Libtmux.Formats.Context.t.Command","name":"Command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":489,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command","source":{"file":"lib/libtmux.mli","line":489,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Command","slug":"libtmux-formats-context-t-command"},{"id":"Libtmux.Formats.Context.t.Connection","publicId":"Libtmux.Formats.Context.t.Connection","name":"Connection","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Connection","source":{"file":"lib/libtmux.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Connection","slug":"libtmux-formats-context-t-connection"},{"id":"Libtmux.Formats.Context.t.Mouse","publicId":"Libtmux.Formats.Context.t.Mouse","name":"Mouse","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":488,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mouse","source":{"file":"lib/libtmux.mli","line":488,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Mouse","slug":"libtmux-formats-context-t-mouse"},{"id":"Libtmux.Formats.Context.t.Pane","publicId":"Libtmux.Formats.Context.t.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane","source":{"file":"lib/libtmux.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Pane","slug":"libtmux-formats-context-t-pane"},{"id":"Libtmux.Formats.Context.t.Server","publicId":"Libtmux.Formats.Context.t.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":480,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":480,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Server","slug":"libtmux-formats-context-t-server"},{"id":"Libtmux.Formats.Context.t.Session","publicId":"Libtmux.Formats.Context.t.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":482,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session","source":{"file":"lib/libtmux.mli","line":482,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Session","slug":"libtmux-formats-context-t-session"},{"id":"Libtmux.Formats.Context.t.Window","publicId":"Libtmux.Formats.Context.t.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":483,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window","source":{"file":"lib/libtmux.mli","line":483,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window","slug":"libtmux-formats-context-t-window"},{"id":"Libtmux.Formats.Context.t.Window_link","publicId":"Libtmux.Formats.Context.t.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link","source":{"file":"lib/libtmux.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window_link","slug":"libtmux-formats-context-t-window_link"},{"id":"Libtmux.Formats.Kind","publicId":"Libtmux.Formats.Kind","qualifiedName":"Libtmux.Formats.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":474,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Timestamp\n end","source":{"file":"lib/libtmux.mli","line":474,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-kind"},{"id":"Libtmux.Formats.Kind.t","publicId":"Libtmux.Formats.Kind.t","qualifiedName":"Libtmux.Formats.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Timestamp","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Kind","signatures":[{"raw":"type t = Text | Timestamp","params":[]}],"slug":"libtmux-formats-kind-t"},{"id":"Libtmux.Formats.Kind.t.Text","publicId":"Libtmux.Formats.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Text","slug":"libtmux-formats-kind-t-text"},{"id":"Libtmux.Formats.Kind.t.Timestamp","publicId":"Libtmux.Formats.Kind.t.Timestamp","name":"Timestamp","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Timestamp","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Timestamp","slug":"libtmux-formats-kind-t-timestamp"},{"id":"Libtmux.Formats.catalog","publicId":"Libtmux.Formats.catalog","qualifiedName":"Libtmux.Formats.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":524,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":524,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-formats-catalog"},{"id":"Libtmux.Formats.describe","publicId":"Libtmux.Formats.describe","qualifiedName":"Libtmux.Formats.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor option, Error.t) result","source":{"file":"lib/libtmux.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val describe :\n version:string -> string -> (descriptor option, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor option, Error.t) result"}],"slug":"libtmux-formats-describe"},{"id":"Libtmux.Formats.descriptor","publicId":"Libtmux.Formats.descriptor","qualifiedName":"Libtmux.Formats.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":492,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":492,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","doc":{"summary":"Metadata generated from pinned tmux format callbacks. `contexts` lists direct context dependencies, not a promise that a value exists. Caller variables from hooks and menus are outside this built-in catalog."},"signatures":[{"raw":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n}","params":[]}],"slug":"libtmux-formats-descriptor"},{"id":"Libtmux.Formats.descriptor.contexts","publicId":"Libtmux.Formats.descriptor.contexts","name":"contexts","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"contexts : Context.t list;","source":{"file":"lib/libtmux.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.descriptor","type":"Context.t list","qualifiedName":"Libtmux.Formats.contexts","slug":"libtmux-formats-descriptor-contexts"},{"id":"Libtmux.Formats.descriptor.kind","publicId":"Libtmux.Formats.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":494,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":494,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Formats.kind","slug":"libtmux-formats-descriptor-kind"},{"id":"Libtmux.Formats.descriptor.name","publicId":"Libtmux.Formats.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":493,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":493,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.descriptor","type":"string","qualifiedName":"Libtmux.Formats.name","slug":"libtmux-formats-descriptor-name"},{"id":"Libtmux.Formats.descriptor.versions","publicId":"Libtmux.Formats.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":496,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":496,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.descriptor","type":"string list","qualifiedName":"Libtmux.Formats.versions","slug":"libtmux-formats-descriptor-versions"},{"id":"Libtmux.Formats.lookup","publicId":"Libtmux.Formats.lookup","qualifiedName":"Libtmux.Formats.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":527,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. "],"declarations":[{"kind":"function","text":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","source":{"file":"lib/libtmux.mli","line":527,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","doc":{"summary":"No I/O. Supply the version recorded by the acquiring client's `version` accessor. Unsupported catalog versions return an error. Native typed accessors remain the primary API; lookup does not acquire extra fields."},"signatures":[{"raw":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"observation"},{"name":"arg2","type":"string"}],"returns":"(state, Error.t) result"}],"slug":"libtmux-formats-lookup"},{"id":"Libtmux.Formats.observation","publicId":"Libtmux.Formats.observation","qualifiedName":"Libtmux.Formats.observation","name":"observation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type observation =\n Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","params":[]}],"slug":"libtmux-formats-observation"},{"id":"Libtmux.Formats.observation.Client","publicId":"Libtmux.Formats.observation.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":508,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":508,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Client","slug":"libtmux-formats-observation-client"},{"id":"Libtmux.Formats.observation.Pane","publicId":"Libtmux.Formats.observation.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":507,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.t","source":{"file":"lib/libtmux.mli","line":507,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Pane","slug":"libtmux-formats-observation-pane"},{"id":"Libtmux.Formats.observation.Session","publicId":"Libtmux.Formats.observation.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":504,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.t","source":{"file":"lib/libtmux.mli","line":504,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Session","slug":"libtmux-formats-observation-session"},{"id":"Libtmux.Formats.observation.Snapshot","publicId":"Libtmux.Formats.observation.Snapshot","name":"Snapshot","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Snapshot of Snapshot.t","source":{"file":"lib/libtmux.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Snapshot","slug":"libtmux-formats-observation-snapshot"},{"id":"Libtmux.Formats.observation.Window","publicId":"Libtmux.Formats.observation.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.t","source":{"file":"lib/libtmux.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window","slug":"libtmux-formats-observation-window"},{"id":"Libtmux.Formats.observation.Window_link","publicId":"Libtmux.Formats.observation.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":506,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link of Window_link.t","source":{"file":"lib/libtmux.mli","line":506,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window_link","slug":"libtmux-formats-observation-window_link"},{"id":"Libtmux.Formats.scalar","publicId":"Libtmux.Formats.scalar","qualifiedName":"Libtmux.Formats.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar = Bool of bool | Int of int | Text of string","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type scalar = Bool of bool | Int of int | Text of string","params":[]}],"slug":"libtmux-formats-scalar"},{"id":"Libtmux.Formats.scalar.Bool","publicId":"Libtmux.Formats.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool of bool","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Bool","slug":"libtmux-formats-scalar-bool"},{"id":"Libtmux.Formats.scalar.Int","publicId":"Libtmux.Formats.scalar.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int of int","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Int","slug":"libtmux-formats-scalar-int"},{"id":"Libtmux.Formats.scalar.Text","publicId":"Libtmux.Formats.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Text","slug":"libtmux-formats-scalar-text"},{"id":"Libtmux.Formats.state","publicId":"Libtmux.Formats.state","qualifiedName":"Libtmux.Formats.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported","source":{"file":"lib/libtmux.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type state = Value of scalar | Missing | Unacquired | Unsupported","params":[]}],"slug":"libtmux-formats-state"},{"id":"Libtmux.Formats.state.Missing","publicId":"Libtmux.Formats.state.Missing","name":"Missing","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":514,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing","source":{"file":"lib/libtmux.mli","line":514,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Missing","slug":"libtmux-formats-state-missing"},{"id":"Libtmux.Formats.state.Unacquired","publicId":"Libtmux.Formats.state.Unacquired","name":"Unacquired","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":515,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unacquired","source":{"file":"lib/libtmux.mli","line":515,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Unacquired","slug":"libtmux-formats-state-unacquired"},{"id":"Libtmux.Formats.state.Unsupported","publicId":"Libtmux.Formats.state.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":516,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. "],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"lib/libtmux.mli","line":516,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.state","doc":{"summary":"`Missing` is an absence explicitly recorded in the observation, such as a client without terminal height. `Unacquired` means no captured value for this observation, including ambiguous session context for a pane. `Unsupported` means the name is outside the selected release's catalog. `Value (Text \"\")` is a captured empty string, never inferred absence."},"variant":"unit","qualifiedName":"Libtmux.Formats.Unsupported","slug":"libtmux-formats-state-unsupported"},{"id":"Libtmux.Formats.state.Value","publicId":"Libtmux.Formats.state.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":513,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Value of scalar","source":{"file":"lib/libtmux.mli","line":513,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Formats.state","variant":"tuple","qualifiedName":"Libtmux.Formats.Value","slug":"libtmux-formats-state-value"},{"id":"Libtmux.Generation","publicId":"Libtmux.Generation","qualifiedName":"Libtmux.Generation","name":"Generation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A random connection-generation identifier. Reconnecting creates a new\n generation even when the socket and server PID are unchanged. "],"declarations":[{"kind":"module","text":"module Generation : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"A random connection-generation identifier. Reconnecting creates a new generation even when the socket and server PID are unchanged."},"slug":"libtmux-generation"},{"id":"Libtmux.Generation.equal","publicId":"Libtmux.Generation.equal","qualifiedName":"Libtmux.Generation.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":87,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":87,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-generation-equal"},{"id":"Libtmux.Generation.of_string","publicId":"Libtmux.Generation.of_string","qualifiedName":"Libtmux.Generation.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Generation","doc":{"summary":"Import a 256-bit connection nonce as 64 lowercase hexadecimal characters. Backends generate a fresh random nonce for each connection."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-generation-of_string"},{"id":"Libtmux.Generation.t","publicId":"Libtmux.Generation.t","qualifiedName":"Libtmux.Generation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-generation-t"},{"id":"Libtmux.Generation.to_string","publicId":"Libtmux.Generation.to_string","qualifiedName":"Libtmux.Generation.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-generation-to_string"},{"id":"Libtmux.Geometry","publicId":"Libtmux.Geometry","qualifiedName":"Libtmux.Geometry","name":"Geometry","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":740,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Geometry : sig\n type direction = Left | Right | Above | Below\n type size = Cells of int | Percent of int\nend","source":{"file":"lib/libtmux.mli","line":740,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-geometry"},{"id":"Libtmux.Geometry.direction","publicId":"Libtmux.Geometry.direction","qualifiedName":"Libtmux.Geometry.direction","name":"direction","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type direction = Left | Right | Above | Below","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type direction = Left | Right | Above | Below","params":[]}],"slug":"libtmux-geometry-direction"},{"id":"Libtmux.Geometry.direction.Above","publicId":"Libtmux.Geometry.direction.Above","name":"Above","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Above","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Above","slug":"libtmux-geometry-direction-above"},{"id":"Libtmux.Geometry.direction.Below","publicId":"Libtmux.Geometry.direction.Below","name":"Below","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Below","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Below","slug":"libtmux-geometry-direction-below"},{"id":"Libtmux.Geometry.direction.Left","publicId":"Libtmux.Geometry.direction.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Left","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Left","slug":"libtmux-geometry-direction-left"},{"id":"Libtmux.Geometry.direction.Right","publicId":"Libtmux.Geometry.direction.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Right","slug":"libtmux-geometry-direction-right"},{"id":"Libtmux.Geometry.size","publicId":"Libtmux.Geometry.size","qualifiedName":"Libtmux.Geometry.size","name":"size","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type size = Cells of int | Percent of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type size = Cells of int | Percent of int","params":[]}],"slug":"libtmux-geometry-size"},{"id":"Libtmux.Geometry.size.Cells","publicId":"Libtmux.Geometry.size.Cells","name":"Cells","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Cells of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Cells","slug":"libtmux-geometry-size-cells"},{"id":"Libtmux.Geometry.size.Percent","publicId":"Libtmux.Geometry.size.Percent","name":"Percent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Percent of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Percent","slug":"libtmux-geometry-size-percent"},{"id":"Libtmux.Hook","publicId":"Libtmux.Hook","qualifiedName":"Libtmux.Hook","name":"Hook","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Hook : sig\n type command = { name : string; arguments : string list }\n (** A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. *)\nend","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-hook"},{"id":"Libtmux.Hook.command","publicId":"Libtmux.Hook.command","qualifiedName":"Libtmux.Hook.command","name":"command","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. "],"declarations":[{"kind":"struct","text":"type command = { name : string; arguments : string list }","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Hook","doc":{"summary":"A tmux command and its distinct arguments. Setting a hook encodes these as command data; it does not concatenate arguments into shell code. Argument-specific tmux behavior, including format expansion, still applies when the hook runs."},"signatures":[{"raw":"type command = { name : string; arguments : string list; }","params":[]}],"slug":"libtmux-hook-command"},{"id":"Libtmux.Hook.command.arguments","publicId":"Libtmux.Hook.command.arguments","name":"arguments","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"arguments : string list","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Hook.command","type":"string list","qualifiedName":"Libtmux.Hook.arguments","slug":"libtmux-hook-command-arguments"},{"id":"Libtmux.Hook.command.name","publicId":"Libtmux.Hook.command.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Hook.command","type":"string","qualifiedName":"Libtmux.Hook.name","slug":"libtmux-hook-command-name"},{"id":"Libtmux.ID","publicId":"Libtmux.ID","qualifiedName":"Libtmux.ID","name":"ID","kind":"interface","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"interface","text":"module type ID = sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Accept a canonical prefixed decimal tmux ID in the uint32 range. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\n val compare : t -> t -> int\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-id"},{"id":"Libtmux.ID.compare","publicId":"Libtmux.ID.compare","qualifiedName":"Libtmux.ID.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-id-compare"},{"id":"Libtmux.ID.equal","publicId":"Libtmux.ID.equal","qualifiedName":"Libtmux.ID.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-id-equal"},{"id":"Libtmux.ID.of_string","publicId":"Libtmux.ID.of_string","qualifiedName":"Libtmux.ID.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.ID","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-id-of_string"},{"id":"Libtmux.ID.pp","publicId":"Libtmux.ID.pp","qualifiedName":"Libtmux.ID.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-id-pp"},{"id":"Libtmux.ID.t","publicId":"Libtmux.ID.t","qualifiedName":"Libtmux.ID.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.ID","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-id-t"},{"id":"Libtmux.ID.to_string","publicId":"Libtmux.ID.to_string","qualifiedName":"Libtmux.ID.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-id-to_string"},{"id":"Libtmux.Key","publicId":"Libtmux.Key","qualifiedName":"Libtmux.Key","name":"Key","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":702,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Key : sig\n type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char\nend","source":{"file":"lib/libtmux.mli","line":702,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-key"},{"id":"Libtmux.Key.t","publicId":"Libtmux.Key.t","qualifiedName":"Libtmux.Key.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":703,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","source":{"file":"lib/libtmux.mli","line":703,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key","signatures":[{"raw":"type t =\n Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","params":[]}],"slug":"libtmux-key-t"},{"id":"Libtmux.Key.t.Backspace","publicId":"Libtmux.Key.t.Backspace","name":"Backspace","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":707,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Backspace","source":{"file":"lib/libtmux.mli","line":707,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Backspace","slug":"libtmux-key-t-backspace"},{"id":"Libtmux.Key.t.Control","publicId":"Libtmux.Key.t.Control","name":"Control","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Control of char","source":{"file":"lib/libtmux.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"tuple","qualifiedName":"Libtmux.Key.Control","slug":"libtmux-key-t-control"},{"id":"Libtmux.Key.t.Down","publicId":"Libtmux.Key.t.Down","name":"Down","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":709,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Down","source":{"file":"lib/libtmux.mli","line":709,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Down","slug":"libtmux-key-t-down"},{"id":"Libtmux.Key.t.Enter","publicId":"Libtmux.Key.t.Enter","name":"Enter","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":704,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Enter","source":{"file":"lib/libtmux.mli","line":704,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Enter","slug":"libtmux-key-t-enter"},{"id":"Libtmux.Key.t.Escape","publicId":"Libtmux.Key.t.Escape","name":"Escape","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":706,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Escape","source":{"file":"lib/libtmux.mli","line":706,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Escape","slug":"libtmux-key-t-escape"},{"id":"Libtmux.Key.t.Left","publicId":"Libtmux.Key.t.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":710,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Left","source":{"file":"lib/libtmux.mli","line":710,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Left","slug":"libtmux-key-t-left"},{"id":"Libtmux.Key.t.Right","publicId":"Libtmux.Key.t.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":711,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":711,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Right","slug":"libtmux-key-t-right"},{"id":"Libtmux.Key.t.Tab","publicId":"Libtmux.Key.t.Tab","name":"Tab","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":705,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tab","source":{"file":"lib/libtmux.mli","line":705,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Tab","slug":"libtmux-key-t-tab"},{"id":"Libtmux.Key.t.Up","publicId":"Libtmux.Key.t.Up","name":"Up","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":708,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Up","source":{"file":"lib/libtmux.mli","line":708,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Up","slug":"libtmux-key-t-up"},{"id":"Libtmux.Layout","publicId":"Libtmux.Layout","qualifiedName":"Libtmux.Layout","name":"Layout","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":745,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Layout : sig\n type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string\nend","source":{"file":"lib/libtmux.mli","line":745,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","slug":"libtmux-layout"},{"id":"Libtmux.Layout.t","publicId":"Libtmux.Layout.t","qualifiedName":"Libtmux.Layout.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":746,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","source":{"file":"lib/libtmux.mli","line":746,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout","signatures":[{"raw":"type t =\n Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","params":[]}],"slug":"libtmux-layout-t"},{"id":"Libtmux.Layout.t.Custom","publicId":"Libtmux.Layout.t.Custom","name":"Custom","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":752,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Custom of string","source":{"file":"lib/libtmux.mli","line":752,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout.t","variant":"tuple","qualifiedName":"Libtmux.Layout.Custom","slug":"libtmux-layout-t-custom"},{"id":"Libtmux.Layout.t.Even_horizontal","publicId":"Libtmux.Layout.t.Even_horizontal","name":"Even_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":747,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_horizontal","source":{"file":"lib/libtmux.mli","line":747,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_horizontal","slug":"libtmux-layout-t-even_horizontal"},{"id":"Libtmux.Layout.t.Even_vertical","publicId":"Libtmux.Layout.t.Even_vertical","name":"Even_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":748,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_vertical","source":{"file":"lib/libtmux.mli","line":748,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_vertical","slug":"libtmux-layout-t-even_vertical"},{"id":"Libtmux.Layout.t.Main_horizontal","publicId":"Libtmux.Layout.t.Main_horizontal","name":"Main_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":749,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_horizontal","source":{"file":"lib/libtmux.mli","line":749,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_horizontal","slug":"libtmux-layout-t-main_horizontal"},{"id":"Libtmux.Layout.t.Main_vertical","publicId":"Libtmux.Layout.t.Main_vertical","name":"Main_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":750,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_vertical","source":{"file":"lib/libtmux.mli","line":750,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_vertical","slug":"libtmux-layout-t-main_vertical"},{"id":"Libtmux.Layout.t.Tiled","publicId":"Libtmux.Layout.t.Tiled","name":"Tiled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":751,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tiled","source":{"file":"lib/libtmux.mli","line":751,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Tiled","slug":"libtmux-layout-t-tiled"},{"id":"Libtmux.Model","publicId":"Libtmux.Model","qualifiedName":"Libtmux.Model","name":"Model","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":536,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Built-in model witnesses and canonical field lookup for typed codecs.\n Untrusted field names must resolve against the selected model. "],"declarations":[{"kind":"module","text":"module Model : sig\n type 'a t\n\n val session : Session.t t\n val window : Window.t t\n val window_link : Window_link.t t\n val pane : Pane.t t\n val client : Client_observation.t t\n val name : 'a t -> string\n val fields : 'a t -> 'a Field.packed list\n val find_field : 'a t -> string -> 'a Field.packed option\nend","source":{"file":"lib/libtmux.mli","line":536,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Built-in model witnesses and canonical field lookup for typed codecs. Untrusted field names must resolve against the selected model."},"slug":"libtmux-model"},{"id":"Libtmux.Model.client","publicId":"Libtmux.Model.client","qualifiedName":"Libtmux.Model.client","name":"client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":543,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val client : Client_observation.t t","source":{"file":"lib/libtmux.mli","line":543,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val client : Client_observation.t t","params":[],"returns":"Client_observation.t t"}],"slug":"libtmux-model-client"},{"id":"Libtmux.Model.fields","publicId":"Libtmux.Model.fields","qualifiedName":"Libtmux.Model.fields","name":"fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":545,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val fields : 'a t -> 'a Field.packed list","source":{"file":"lib/libtmux.mli","line":545,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val fields : 'a t -> 'a Field.packed list","params":[{"name":"arg1","type":"'a t"}],"returns":"'a Field.packed list"}],"slug":"libtmux-model-fields"},{"id":"Libtmux.Model.find_field","publicId":"Libtmux.Model.find_field","qualifiedName":"Libtmux.Model.find_field","name":"find_field","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_field : 'a t -> string -> 'a Field.packed option","source":{"file":"lib/libtmux.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val find_field : 'a t -> string -> 'a Field.packed option","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"string"}],"returns":"'a Field.packed option"}],"slug":"libtmux-model-find_field"},{"id":"Libtmux.Model.name","publicId":"Libtmux.Model.name","qualifiedName":"Libtmux.Model.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":544,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : 'a t -> string","source":{"file":"lib/libtmux.mli","line":544,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val name : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-model-name"},{"id":"Libtmux.Model.pane","publicId":"Libtmux.Model.pane","qualifiedName":"Libtmux.Model.pane","name":"pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pane : Pane.t t","source":{"file":"lib/libtmux.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val pane : Pane.t t","params":[],"returns":"Pane.t t"}],"slug":"libtmux-model-pane"},{"id":"Libtmux.Model.session","publicId":"Libtmux.Model.session","qualifiedName":"Libtmux.Model.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":539,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : Session.t t","source":{"file":"lib/libtmux.mli","line":539,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val session : Session.t t","params":[],"returns":"Session.t t"}],"slug":"libtmux-model-session"},{"id":"Libtmux.Model.t","publicId":"Libtmux.Model.t","qualifiedName":"Libtmux.Model.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-model-t"},{"id":"Libtmux.Model.window","publicId":"Libtmux.Model.window","qualifiedName":"Libtmux.Model.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":540,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : Window.t t","source":{"file":"lib/libtmux.mli","line":540,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window : Window.t t","params":[],"returns":"Window.t t"}],"slug":"libtmux-model-window"},{"id":"Libtmux.Model.window_link","publicId":"Libtmux.Model.window_link","qualifiedName":"Libtmux.Model.window_link","name":"window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":541,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_link : Window_link.t t","source":{"file":"lib/libtmux.mli","line":541,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window_link : Window_link.t t","params":[],"returns":"Window_link.t t"}],"slug":"libtmux-model-window_link"},{"id":"Libtmux.Operations","publicId":"Libtmux.Operations","qualifiedName":"Libtmux.Operations","name":"Operations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1051,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Construct typed tmux operations for a backend client. Observations are\n immutable, mutations use explicit targets, and no command retries a mutation\n against another connection generation. Construction performs no I/O; the\n descriptions below state what execution does. "],"declarations":[{"kind":"module","text":"module Operations : sig\n val capture : unit -> Snapshot.t Command.t\n (** Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. *)\n\n val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t\n (** Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. *)\n\n val rename_window : Window.target -> name:string -> unit Command.t\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session : Session.target -> name:string -> unit Command.t\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at : Client_name.t -> unit Command.t\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text : Pane.target -> text:string -> unit Command.t\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys : Pane.target -> Key.t list -> unit Command.t\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : string -> unit Command.t\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : string -> unit Command.t\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment : Environment.scope -> string -> unit Command.t\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment : Environment.scope -> string -> unit Command.t\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array : Options.scope -> string -> unit Command.t\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks : Options.scope -> Options.t Command.t\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. *)\n\n val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook : Options.scope -> string -> unit Command.t\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session : Session.target -> unit Command.t\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : Window.target -> unit Command.t\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : Pane.target -> unit Command.t\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at : Session.target -> index:int -> unit Command.t\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : Pane.target -> unit Command.t\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title : Pane.target -> title:string -> unit Command.t\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout : Window.target -> Layout.t -> unit Command.t\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes : Pane.target -> Pane.target -> unit Command.t\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : Pane.target -> unit Command.t\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : Pane.target -> unit Command.t\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\nend","source":{"file":"lib/libtmux.mli","line":1051,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Construct typed tmux operations for a backend client. Observations are immutable, mutations use explicit targets, and no command retries a mutation against another connection generation. Construction performs no I/O; the descriptions below state what execution does."},"slug":"libtmux-operations"},{"id":"Libtmux.Operations.break_pane","publicId":"Libtmux.Operations.break_pane","qualifiedName":"Libtmux.Operations.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1235,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n Pane.target -> session:Session.target -> index:int -> Created.t Command.t","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-break_pane"},{"id":"Libtmux.Operations.capture","publicId":"Libtmux.Operations.capture","qualifiedName":"Libtmux.Operations.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1052,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. "],"declarations":[{"kind":"function","text":"val capture : unit -> Snapshot.t Command.t","source":{"file":"lib/libtmux.mli","line":1052,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture and validate the complete session/window-link/pane graph. The result records an acquisition interval, not an atomic server instant."},"signatures":[{"raw":"val capture : unit -> Snapshot.t Command.t","params":[{"name":"arg1","type":"unit"}],"returns":"Snapshot.t Command.t"}],"slug":"libtmux-operations-capture"},{"id":"Libtmux.Operations.capture_environment","publicId":"Libtmux.Operations.capture_environment","qualifiedName":"Libtmux.Operations.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1110,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","source":{"file":"lib/libtmux.mli","line":1110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"}],"returns":"Environment.t Command.t"}],"slug":"libtmux-operations-capture_environment"},{"id":"Libtmux.Operations.capture_hooks","publicId":"Libtmux.Operations.capture_hooks","qualifiedName":"Libtmux.Operations.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1168,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks : Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks : Options.scope -> Options.t Command.t","params":[{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_hooks"},{"id":"Libtmux.Operations.capture_options","publicId":"Libtmux.Operations.capture_options","qualifiedName":"Libtmux.Operations.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1130,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_options"},{"id":"Libtmux.Operations.capture_text","publicId":"Libtmux.Operations.capture_text","qualifiedName":"Libtmux.Operations.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1056,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t","source":{"file":"lib/libtmux.mli","line":1056,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture inclusive visible rows through an operation-owned temporary file. Require `0 <= start <= end_ < Pane.height pane`; scrollback is excluded. Retained bytes survive client close. The scratch directory must share the daemon filesystem."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n Pane.t -> start:int -> end_:int -> Captured_text.t Command.t","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"Captured_text.t Command.t"}],"slug":"libtmux-operations-capture_text"},{"id":"Libtmux.Operations.clear_history","publicId":"Libtmux.Operations.clear_history","qualifiedName":"Libtmux.Operations.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1333,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_history"},{"id":"Libtmux.Operations.clear_option_array","publicId":"Libtmux.Operations.clear_option_array","qualifiedName":"Libtmux.Operations.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1165,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_option_array"},{"id":"Libtmux.Operations.create_session","publicId":"Libtmux.Operations.create_session","qualifiedName":"Libtmux.Operations.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1207,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int -> ?spawn:Spawn.t -> name:string -> unit -> Created.t Command.t","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_session"},{"id":"Libtmux.Operations.create_window","publicId":"Libtmux.Operations.create_window","qualifiedName":"Libtmux.Operations.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1217,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string -> ?spawn:Spawn.t -> Session.target -> Created.t Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_window"},{"id":"Libtmux.Operations.cycle_layout","publicId":"Libtmux.Operations.cycle_layout","qualifiedName":"Libtmux.Operations.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1303,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1303,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Next | `Previous ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-cycle_layout"},{"id":"Libtmux.Operations.kill_pane","publicId":"Libtmux.Operations.kill_pane","qualifiedName":"Libtmux.Operations.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1253,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_pane"},{"id":"Libtmux.Operations.kill_session","publicId":"Libtmux.Operations.kill_session","qualifiedName":"Libtmux.Operations.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1245,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session : Session.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session : Session.target -> unit Command.t","params":[{"name":"arg1","type":"Session.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_session"},{"id":"Libtmux.Operations.kill_window","publicId":"Libtmux.Operations.kill_window","qualifiedName":"Libtmux.Operations.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1249,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window : Window.target -> unit Command.t","params":[{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_window"},{"id":"Libtmux.Operations.link_window","publicId":"Libtmux.Operations.link_window","qualifiedName":"Libtmux.Operations.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1266,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-link_window"},{"id":"Libtmux.Operations.move_pane","publicId":"Libtmux.Operations.move_pane","qualifiedName":"Libtmux.Operations.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1306,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target -> direction:Geometry.direction -> unit Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"beside","type":"Pane.target","keywordOnly":true},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_pane"},{"id":"Libtmux.Operations.move_window_at","publicId":"Libtmux.Operations.move_window_at","qualifiedName":"Libtmux.Operations.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1271,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1271,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n Session.target ->\n from_index:int -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_window_at"},{"id":"Libtmux.Operations.read_hook","publicId":"Libtmux.Operations.read_hook","qualifiedName":"Libtmux.Operations.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1172,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_hook"},{"id":"Libtmux.Operations.read_option","publicId":"Libtmux.Operations.read_option","qualifiedName":"Libtmux.Operations.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1138,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1138,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_option"},{"id":"Libtmux.Operations.refresh_client_at","publicId":"Libtmux.Operations.refresh_client_at","qualifiedName":"Libtmux.Operations.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1089,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1089,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-refresh_client_at"},{"id":"Libtmux.Operations.remove_environment","publicId":"Libtmux.Operations.remove_environment","qualifiedName":"Libtmux.Operations.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1127,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_environment"},{"id":"Libtmux.Operations.remove_hook","publicId":"Libtmux.Operations.remove_hook","qualifiedName":"Libtmux.Operations.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1195,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_hook"},{"id":"Libtmux.Operations.rename_session","publicId":"Libtmux.Operations.rename_session","qualifiedName":"Libtmux.Operations.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1071,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session : Session.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1071,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session : Session.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_session"},{"id":"Libtmux.Operations.rename_window","publicId":"Libtmux.Operations.rename_window","qualifiedName":"Libtmux.Operations.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1067,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window : Window.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1067,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window : Window.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_window"},{"id":"Libtmux.Operations.request_detach_client_at","publicId":"Libtmux.Operations.request_detach_client_at","qualifiedName":"Libtmux.Operations.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1084,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at : Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1084,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at : Client_name.t -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-request_detach_client_at"},{"id":"Libtmux.Operations.resize_control_client_at","publicId":"Libtmux.Operations.resize_control_client_at","qualifiedName":"Libtmux.Operations.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1092,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1092,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_control_client_at"},{"id":"Libtmux.Operations.resize_pane","publicId":"Libtmux.Operations.resize_pane","qualifiedName":"Libtmux.Operations.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1288,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_pane"},{"id":"Libtmux.Operations.resize_window","publicId":"Libtmux.Operations.resize_window","qualifiedName":"Libtmux.Operations.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1293,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_window"},{"id":"Libtmux.Operations.respawn_pane","publicId":"Libtmux.Operations.respawn_pane","qualifiedName":"Libtmux.Operations.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1327,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Spawn.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-respawn_pane"},{"id":"Libtmux.Operations.rotate_panes","publicId":"Libtmux.Operations.rotate_panes","qualifiedName":"Libtmux.Operations.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1320,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n Window.target -> [ `Backward | `Forward ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Backward | `Forward ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rotate_panes"},{"id":"Libtmux.Operations.run_hook","publicId":"Libtmux.Operations.run_hook","qualifiedName":"Libtmux.Operations.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1199,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-run_hook"},{"id":"Libtmux.Operations.select_layout","publicId":"Libtmux.Operations.select_layout","qualifiedName":"Libtmux.Operations.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1299,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout : Window.target -> Layout.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout : Window.target -> Layout.t -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"Layout.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_layout"},{"id":"Libtmux.Operations.select_pane","publicId":"Libtmux.Operations.select_pane","qualifiedName":"Libtmux.Operations.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1280,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1280,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_pane"},{"id":"Libtmux.Operations.select_window_at","publicId":"Libtmux.Operations.select_window_at","qualifiedName":"Libtmux.Operations.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1257,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at : Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at : Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_window_at"},{"id":"Libtmux.Operations.send_keys","publicId":"Libtmux.Operations.send_keys","qualifiedName":"Libtmux.Operations.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1099,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys : Pane.target -> Key.t list -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1099,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys : Pane.target -> Key.t list -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Key.t list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_keys"},{"id":"Libtmux.Operations.send_text","publicId":"Libtmux.Operations.send_text","qualifiedName":"Libtmux.Operations.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1096,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text : Pane.target -> text:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1096,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text : Pane.target -> text:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_text"},{"id":"Libtmux.Operations.set_environment","publicId":"Libtmux.Operations.set_environment","qualifiedName":"Libtmux.Operations.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1117,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n Environment.scope -> name:string -> string -> unit Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_environment"},{"id":"Libtmux.Operations.set_hook","publicId":"Libtmux.Operations.set_hook","qualifiedName":"Libtmux.Operations.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1180,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1180,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Hook.command list -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Hook.command list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_hook"},{"id":"Libtmux.Operations.set_option","publicId":"Libtmux.Operations.set_option","qualifiedName":"Libtmux.Operations.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1148,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Options.scalar -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Options.scalar"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_option"},{"id":"Libtmux.Operations.set_pane_title","publicId":"Libtmux.Operations.set_pane_title","qualifiedName":"Libtmux.Operations.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1284,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title : Pane.target -> title:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1284,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title : Pane.target -> title:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_pane_title"},{"id":"Libtmux.Operations.signal","publicId":"Libtmux.Operations.signal","qualifiedName":"Libtmux.Operations.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1106,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-signal"},{"id":"Libtmux.Operations.split_pane","publicId":"Libtmux.Operations.split_pane","qualifiedName":"Libtmux.Operations.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1225,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target -> direction:Geometry.direction -> Created.t Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-split_pane"},{"id":"Libtmux.Operations.swap_panes","publicId":"Libtmux.Operations.swap_panes","qualifiedName":"Libtmux.Operations.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1316,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-swap_panes"},{"id":"Libtmux.Operations.switch_client_at","publicId":"Libtmux.Operations.switch_client_at","qualifiedName":"Libtmux.Operations.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1075,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1075,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t -> session:Session.target -> unit Command.t","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"},{"name":"session","type":"Session.target","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-switch_client_at"},{"id":"Libtmux.Operations.unlink_window_at","publicId":"Libtmux.Operations.unlink_window_at","qualifiedName":"Libtmux.Operations.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1261,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unlink_window_at"},{"id":"Libtmux.Operations.unset_environment","publicId":"Libtmux.Operations.unset_environment","qualifiedName":"Libtmux.Operations.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1123,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_environment"},{"id":"Libtmux.Operations.unset_option","publicId":"Libtmux.Operations.unset_option","qualifiedName":"Libtmux.Operations.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1161,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1161,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_option"},{"id":"Libtmux.Operations.wait_for","publicId":"Libtmux.Operations.wait_for","qualifiedName":"Libtmux.Operations.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1103,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-wait_for"},{"id":"Libtmux.Operations.zoom_pane","publicId":"Libtmux.Operations.zoom_pane","qualifiedName":"Libtmux.Operations.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1324,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Operations","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-zoom_pane"},{"id":"Libtmux.Options","publicId":"Libtmux.Options","qualifiedName":"Libtmux.Options","name":"Options","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Version-aware option descriptors and captured scoped values. Sparse array\n indexes and inherited entries retain their tmux meaning. "],"declarations":[{"kind":"module","text":"module Options : sig\n module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }\n (** Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. *)\n\n type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target\n\n type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string\n\n type value = Scalar of scalar | Array of (int * scalar) Iarray.t\n type entry = { descriptor : descriptor; value : value; inherited : bool }\n\n type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor, Error.t) result\n\n val lookup : t -> string -> entry option\n (** [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. *)\nend","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Version-aware option descriptors and captured scoped values. Sparse array indexes and inherited entries retain their tmux meaning."},"slug":"libtmux-options"},{"id":"Libtmux.Options.Kind","publicId":"Libtmux.Options.Kind","qualifiedName":"Libtmux.Options.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":797,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end","source":{"file":"lib/libtmux.mli","line":797,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","slug":"libtmux-options-kind"},{"id":"Libtmux.Options.Kind.t","publicId":"Libtmux.Options.Kind.t","qualifiedName":"Libtmux.Options.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind","signatures":[{"raw":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","params":[]}],"slug":"libtmux-options-kind-t"},{"id":"Libtmux.Options.Kind.t.Choice","publicId":"Libtmux.Options.Kind.t.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Choice","slug":"libtmux-options-kind-t-choice"},{"id":"Libtmux.Options.Kind.t.Colour","publicId":"Libtmux.Options.Kind.t.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Colour","slug":"libtmux-options-kind-t-colour"},{"id":"Libtmux.Options.Kind.t.Commands","publicId":"Libtmux.Options.Kind.t.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Commands","slug":"libtmux-options-kind-t-commands"},{"id":"Libtmux.Options.Kind.t.Flag","publicId":"Libtmux.Options.Kind.t.Flag","name":"Flag","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Flag","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Flag","slug":"libtmux-options-kind-t-flag"},{"id":"Libtmux.Options.Kind.t.Key","publicId":"Libtmux.Options.Kind.t.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Key","slug":"libtmux-options-kind-t-key"},{"id":"Libtmux.Options.Kind.t.Number","publicId":"Libtmux.Options.Kind.t.Number","name":"Number","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Number","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Number","slug":"libtmux-options-kind-t-number"},{"id":"Libtmux.Options.Kind.t.Text","publicId":"Libtmux.Options.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Text","slug":"libtmux-options-kind-t-text"},{"id":"Libtmux.Options.catalog","publicId":"Libtmux.Options.catalog","qualifiedName":"Libtmux.Options.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":843,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":843,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-options-catalog"},{"id":"Libtmux.Options.describe","publicId":"Libtmux.Options.describe","qualifiedName":"Libtmux.Options.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":844,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor, Error.t) result","source":{"file":"lib/libtmux.mli","line":844,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val describe : version:string -> string -> (descriptor, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor, Error.t) result"}],"slug":"libtmux-options-describe"},{"id":"Libtmux.Options.descriptor","publicId":"Libtmux.Options.descriptor","qualifiedName":"Libtmux.Options.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":801,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":801,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","doc":{"summary":"Generated upstream descriptors. `versions` lists qualified releases; user options have no built-in release history."},"signatures":[{"raw":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Pane | `Server | `Session | `Window ] list;\n versions : string list;\n}","params":[]}],"slug":"libtmux-options-descriptor"},{"id":"Libtmux.Options.descriptor.array","publicId":"Libtmux.Options.descriptor.array","name":"array","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":804,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"array : bool;","source":{"file":"lib/libtmux.mli","line":804,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.array","slug":"libtmux-options-descriptor-array"},{"id":"Libtmux.Options.descriptor.hook","publicId":"Libtmux.Options.descriptor.hook","name":"hook","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":805,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hook : bool;","source":{"file":"lib/libtmux.mli","line":805,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.hook","slug":"libtmux-options-descriptor-hook"},{"id":"Libtmux.Options.descriptor.kind","publicId":"Libtmux.Options.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":803,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":803,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Options.kind","slug":"libtmux-options-descriptor-kind"},{"id":"Libtmux.Options.descriptor.name","publicId":"Libtmux.Options.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":802,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":802,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.descriptor","type":"string","qualifiedName":"Libtmux.Options.name","slug":"libtmux-options-descriptor-name"},{"id":"Libtmux.Options.descriptor.scopes","publicId":"Libtmux.Options.descriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":806,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scopes : [ `Server | `Session | `Window | `Pane ] list;","source":{"file":"lib/libtmux.mli","line":806,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.descriptor","type":"[ `Pane | `Server | `Session | `Window ] list","qualifiedName":"Libtmux.Options.scopes","slug":"libtmux-options-descriptor-scopes"},{"id":"Libtmux.Options.descriptor.versions","publicId":"Libtmux.Options.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":807,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":807,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.descriptor","type":"string list","qualifiedName":"Libtmux.Options.versions","slug":"libtmux-options-descriptor-versions"},{"id":"Libtmux.Options.entry","publicId":"Libtmux.Options.entry","qualifiedName":"Libtmux.Options.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { descriptor : descriptor; value : value; inherited : bool }","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type entry = { descriptor : descriptor; value : value; inherited : bool; }","params":[]}],"slug":"libtmux-options-entry"},{"id":"Libtmux.Options.entry.descriptor","publicId":"Libtmux.Options.entry.descriptor","name":"descriptor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"descriptor : descriptor;","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.entry","type":"descriptor","qualifiedName":"Libtmux.Options.descriptor","slug":"libtmux-options-entry-descriptor"},{"id":"Libtmux.Options.entry.inherited","publicId":"Libtmux.Options.entry.inherited","name":"inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inherited : bool","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.entry","type":"bool","qualifiedName":"Libtmux.Options.inherited","slug":"libtmux-options-entry-inherited"},{"id":"Libtmux.Options.entry.value","publicId":"Libtmux.Options.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value;","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.entry","type":"value","qualifiedName":"Libtmux.Options.value","slug":"libtmux-options-entry-value"},{"id":"Libtmux.Options.lookup","publicId":"Libtmux.Options.lookup","qualifiedName":"Libtmux.Options.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":846,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> entry option","source":{"file":"lib/libtmux.mli","line":846,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","doc":{"summary":"`None` means absent from this capture's selected scope and inheritance policy. Use `describe` to distinguish an unsupported built-in name."},"signatures":[{"raw":"val lookup : t -> string -> entry option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"entry option"}],"slug":"libtmux-options-lookup"},{"id":"Libtmux.Options.scalar","publicId":"Libtmux.Options.scalar","qualifiedName":"Libtmux.Options.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scalar =\n Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","params":[]}],"slug":"libtmux-options-scalar"},{"id":"Libtmux.Options.scalar.Bool","publicId":"Libtmux.Options.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":823,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool of bool","source":{"file":"lib/libtmux.mli","line":823,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Bool","slug":"libtmux-options-scalar-bool"},{"id":"Libtmux.Options.scalar.Choice","publicId":"Libtmux.Options.scalar.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":824,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice of string","source":{"file":"lib/libtmux.mli","line":824,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Choice","slug":"libtmux-options-scalar-choice"},{"id":"Libtmux.Options.scalar.Colour","publicId":"Libtmux.Options.scalar.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":826,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour of string","source":{"file":"lib/libtmux.mli","line":826,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Colour","slug":"libtmux-options-scalar-colour"},{"id":"Libtmux.Options.scalar.Commands","publicId":"Libtmux.Options.scalar.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":827,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands of string","source":{"file":"lib/libtmux.mli","line":827,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Commands","slug":"libtmux-options-scalar-commands"},{"id":"Libtmux.Options.scalar.Integer","publicId":"Libtmux.Options.scalar.Integer","name":"Integer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":822,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Integer of int64","source":{"file":"lib/libtmux.mli","line":822,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Integer","slug":"libtmux-options-scalar-integer"},{"id":"Libtmux.Options.scalar.Key","publicId":"Libtmux.Options.scalar.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":825,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key of string","source":{"file":"lib/libtmux.mli","line":825,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Key","slug":"libtmux-options-scalar-key"},{"id":"Libtmux.Options.scalar.Text","publicId":"Libtmux.Options.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":821,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":821,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Text","slug":"libtmux-options-scalar-text"},{"id":"Libtmux.Options.scope","publicId":"Libtmux.Options.scope","qualifiedName":"Libtmux.Options.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":812,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":812,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scope =\n Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","params":[]}],"slug":"libtmux-options-scope"},{"id":"Libtmux.Options.scope.Global_sessions","publicId":"Libtmux.Options.scope.Global_sessions","name":"Global_sessions","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":814,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_sessions","source":{"file":"lib/libtmux.mli","line":814,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_sessions","slug":"libtmux-options-scope-global_sessions"},{"id":"Libtmux.Options.scope.Global_windows","publicId":"Libtmux.Options.scope.Global_windows","name":"Global_windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":815,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_windows","source":{"file":"lib/libtmux.mli","line":815,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_windows","slug":"libtmux-options-scope-global_windows"},{"id":"Libtmux.Options.scope.Pane","publicId":"Libtmux.Options.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":818,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":818,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Pane","slug":"libtmux-options-scope-pane"},{"id":"Libtmux.Options.scope.Server","publicId":"Libtmux.Options.scope.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":813,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":813,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Server","slug":"libtmux-options-scope-server"},{"id":"Libtmux.Options.scope.Session","publicId":"Libtmux.Options.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":816,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":816,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Session","slug":"libtmux-options-scope-session"},{"id":"Libtmux.Options.scope.Window","publicId":"Libtmux.Options.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":817,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.target","source":{"file":"lib/libtmux.mli","line":817,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Window","slug":"libtmux-options-scope-window"},{"id":"Libtmux.Options.t","publicId":"Libtmux.Options.t","qualifiedName":"Libtmux.Options.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":832,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":832,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","doc":{"summary":"Captured options in tmux order, with original array indexes. An empty array differs from an absent local entry. No accessor performs I/O."},"signatures":[{"raw":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-options-t"},{"id":"Libtmux.Options.t.entries","publicId":"Libtmux.Options.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":836,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":836,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Options.entries","slug":"libtmux-options-t-entries"},{"id":"Libtmux.Options.t.finished_at_ns","publicId":"Libtmux.Options.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":838,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":838,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.finished_at_ns","slug":"libtmux-options-t-finished_at_ns"},{"id":"Libtmux.Options.t.include_inherited","publicId":"Libtmux.Options.t.include_inherited","name":"include_inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":835,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"include_inherited : bool;","source":{"file":"lib/libtmux.mli","line":835,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.t","type":"bool","qualifiedName":"Libtmux.Options.include_inherited","slug":"libtmux-options-t-include_inherited"},{"id":"Libtmux.Options.t.scope","publicId":"Libtmux.Options.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":834,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":834,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.t","type":"scope","qualifiedName":"Libtmux.Options.scope","slug":"libtmux-options-t-scope"},{"id":"Libtmux.Options.t.source","publicId":"Libtmux.Options.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":833,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":833,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.t","type":"Source.t","qualifiedName":"Libtmux.Options.source","slug":"libtmux-options-t-source"},{"id":"Libtmux.Options.t.started_at_ns","publicId":"Libtmux.Options.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":837,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":837,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.started_at_ns","slug":"libtmux-options-t-started_at_ns"},{"id":"Libtmux.Options.value","publicId":"Libtmux.Options.value","qualifiedName":"Libtmux.Options.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","params":[]}],"slug":"libtmux-options-value"},{"id":"Libtmux.Options.value.Array","publicId":"Libtmux.Options.value.Array","name":"Array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Array","slug":"libtmux-options-value-array"},{"id":"Libtmux.Options.value.Scalar","publicId":"Libtmux.Options.value.Scalar","name":"Scalar","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Scalar of scalar","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Scalar","slug":"libtmux-options-value-scalar"},{"id":"Libtmux.Output","publicId":"Libtmux.Output","qualifiedName":"Libtmux.Output","name":"Output","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1012,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Future observed pane bytes, local cursors and explicit continuity loss.\n Output cursors are unrelated to snapshot times or server-side history. "],"declarations":[{"kind":"module","text":"module Output : sig\n type cursor = { generation : Generation.t; offset : int64 }\n (** [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. *)\n\n type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t\n\n type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason\n (** Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. *)\n\n val reason_pp : Format.formatter -> reason -> unit\n\n type wait_error =\n | Ended of reason\n | Failure of Error.t\n (** A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. *)\nend","source":{"file":"lib/libtmux.mli","line":1012,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Future observed pane bytes, local cursors and explicit continuity loss. Output cursors are unrelated to snapshot times or server-side history."},"slug":"libtmux-output"},{"id":"Libtmux.Output.cursor","publicId":"Libtmux.Output.cursor","qualifiedName":"Libtmux.Output.cursor","name":"cursor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. "],"declarations":[{"kind":"struct","text":"type cursor = { generation : Generation.t; offset : int64 }","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output","doc":{"summary":"`offset` is the number of observed bytes through the end of a Data event. Cursors from different subscription generations are unrelated. No cursor identifies a snapshot instant or a server-side historical position."},"signatures":[{"raw":"type cursor = { generation : Generation.t; offset : int64; }","params":[]}],"slug":"libtmux-output-cursor"},{"id":"Libtmux.Output.cursor.generation","publicId":"Libtmux.Output.cursor.generation","name":"generation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"generation : Generation.t;","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.cursor","type":"Generation.t","qualifiedName":"Libtmux.Output.generation","slug":"libtmux-output-cursor-generation"},{"id":"Libtmux.Output.cursor.offset","publicId":"Libtmux.Output.cursor.offset","name":"offset","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"offset : int64","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.cursor","type":"int64","qualifiedName":"Libtmux.Output.offset","slug":"libtmux-output-cursor-offset"},{"id":"Libtmux.Output.event","publicId":"Libtmux.Output.event","qualifiedName":"Libtmux.Output.event","name":"event","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1026,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason","source":{"file":"lib/libtmux.mli","line":1026,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type event =\n Data of { cursor : cursor; bytes : string; }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason;\n }\n | End of reason","params":[]}],"slug":"libtmux-output-event"},{"id":"Libtmux.Output.event.Data","publicId":"Libtmux.Output.event.Data","name":"Data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Data of { cursor : cursor; bytes : string }","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Data","slug":"libtmux-output-event-data"},{"id":"Libtmux.Output.event.Data.bytes","publicId":"Libtmux.Output.event.Data.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event.Data","type":"string","qualifiedName":"Libtmux.Output.bytes","slug":"libtmux-output-event-data-bytes"},{"id":"Libtmux.Output.event.Data.cursor","publicId":"Libtmux.Output.event.Data.cursor","name":"cursor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cursor : cursor;","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event.Data","type":"cursor","qualifiedName":"Libtmux.Output.cursor","slug":"libtmux-output-event-data-cursor"},{"id":"Libtmux.Output.event.End","publicId":"Libtmux.Output.event.End","name":"End","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1029,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. "],"declarations":[{"kind":"constant","text":"| End of reason","source":{"file":"lib/libtmux.mli","line":1029,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event","doc":{"summary":"Immutable event values. `Gap.after` is the last cursor delivered to the caller. Unknown loss is `None`. A gap ends continuity and is followed by End; recover with a fresh capture and a new subscription. Data preserves bytes, including NUL and invalid UTF-8. It is future observed output, not rendered text or historical reconstruction."},"variant":"tuple","qualifiedName":"Libtmux.Output.End","slug":"libtmux-output-event-end"},{"id":"Libtmux.Output.event.Gap","publicId":"Libtmux.Output.event.Gap","name":"Gap","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Gap of { after : cursor option; lost_bytes : int option; reason : reason }","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Gap","slug":"libtmux-output-event-gap"},{"id":"Libtmux.Output.event.Gap.after","publicId":"Libtmux.Output.event.Gap.after","name":"after","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"after : cursor option;","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event.Gap","type":"cursor option","qualifiedName":"Libtmux.Output.after","slug":"libtmux-output-event-gap-after"},{"id":"Libtmux.Output.event.Gap.lost_bytes","publicId":"Libtmux.Output.event.Gap.lost_bytes","name":"lost_bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"lost_bytes : int option;","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event.Gap","type":"int option","qualifiedName":"Libtmux.Output.lost_bytes","slug":"libtmux-output-event-gap-lost_bytes"},{"id":"Libtmux.Output.event.Gap.reason","publicId":"Libtmux.Output.event.Gap.reason","name":"reason","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"reason : reason","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.event.Gap","type":"reason","qualifiedName":"Libtmux.Output.reason","slug":"libtmux-output-event-gap-reason"},{"id":"Libtmux.Output.reason","publicId":"Libtmux.Output.reason","qualifiedName":"Libtmux.Output.reason","name":"reason","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1018,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1018,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type reason =\n Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","params":[]}],"slug":"libtmux-output-reason"},{"id":"Libtmux.Output.reason.Cancelled","publicId":"Libtmux.Output.reason.Cancelled","name":"Cancelled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1022,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancelled","source":{"file":"lib/libtmux.mli","line":1022,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Cancelled","slug":"libtmux-output-reason-cancelled"},{"id":"Libtmux.Output.reason.Client_closed","publicId":"Libtmux.Output.reason.Client_closed","name":"Client_closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1023,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client_closed","source":{"file":"lib/libtmux.mli","line":1023,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Client_closed","slug":"libtmux-output-reason-client_closed"},{"id":"Libtmux.Output.reason.Membership_changed","publicId":"Libtmux.Output.reason.Membership_changed","name":"Membership_changed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1020,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Membership_changed","source":{"file":"lib/libtmux.mli","line":1020,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Membership_changed","slug":"libtmux-output-reason-membership_changed"},{"id":"Libtmux.Output.reason.Overflow","publicId":"Libtmux.Output.reason.Overflow","name":"Overflow","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1019,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Overflow","source":{"file":"lib/libtmux.mli","line":1019,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Overflow","slug":"libtmux-output-reason-overflow"},{"id":"Libtmux.Output.reason.Server_paused","publicId":"Libtmux.Output.reason.Server_paused","name":"Server_paused","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1021,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server_paused","source":{"file":"lib/libtmux.mli","line":1021,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Server_paused","slug":"libtmux-output-reason-server_paused"},{"id":"Libtmux.Output.reason.Transport_error","publicId":"Libtmux.Output.reason.Transport_error","name":"Transport_error","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1024,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1024,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.reason","variant":"tuple","qualifiedName":"Libtmux.Output.Transport_error","slug":"libtmux-output-reason-transport_error"},{"id":"Libtmux.Output.reason_pp","publicId":"Libtmux.Output.reason_pp","qualifiedName":"Libtmux.Output.reason_pp","name":"reason_pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1037,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val reason_pp : Format.formatter -> reason -> unit","source":{"file":"lib/libtmux.mli","line":1037,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output","signatures":[{"raw":"val reason_pp : Format.formatter -> reason -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"reason"}],"returns":"unit"}],"slug":"libtmux-output-reason_pp"},{"id":"Libtmux.Output.wait_error","publicId":"Libtmux.Output.wait_error","qualifiedName":"Libtmux.Output.wait_error","name":"wait_error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1039,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type wait_error =\n | Ended of reason\n | Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1039,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type wait_error = Ended of reason | Failure of Error.t","params":[]}],"slug":"libtmux-output-wait_error"},{"id":"Libtmux.Output.wait_error.Ended","publicId":"Libtmux.Output.wait_error.Ended","name":"Ended","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1040,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Ended of reason","source":{"file":"lib/libtmux.mli","line":1040,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.wait_error","variant":"tuple","qualifiedName":"Libtmux.Output.Ended","slug":"libtmux-output-wait_error-ended"},{"id":"Libtmux.Output.wait_error.Failure","publicId":"Libtmux.Output.wait_error.Failure","name":"Failure","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1041,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. "],"declarations":[{"kind":"constant","text":"| Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1041,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Output.wait_error","doc":{"summary":"A future-byte wait either loses its subscription's continuity or fails an operation. Neither result establishes that the text was absent earlier."},"variant":"tuple","qualifiedName":"Libtmux.Output.Failure","slug":"libtmux-output-wait_error-failure"},{"id":"Libtmux.Pane","publicId":"Libtmux.Pane","qualifiedName":"Libtmux.Pane","name":"Pane","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":288,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A captured pane with local geometry, process metadata and a window\n relationship. Use {!Pane.val-target} for explicit actions; reading the\n observation never refreshes it. "],"declarations":[{"kind":"module","text":"and Pane : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end\n\n module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val index : t -> int\n val active : t -> bool\n val dead : t -> bool\n val title : t -> string\n val current_command : t -> string\n val current_path : t -> string\n\n val pid : t -> int option\n (** The captured process ID, absent when tmux reports no process. *)\n\n val width : t -> int\n val height : t -> int\n val left : t -> int\n val top : t -> int\n val window : t -> Window.t\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"A captured pane with local geometry, process metadata and a window relationship. Use {!Pane.val-target} for explicit actions; reading the observation never refreshes it."},"slug":"libtmux-pane"},{"id":"Libtmux.Pane.Fields","publicId":"Libtmux.Pane.Fields","qualifiedName":"Libtmux.Pane.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":291,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":291,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-fields"},{"id":"Libtmux.Pane.Fields.active","publicId":"Libtmux.Pane.Fields.active","qualifiedName":"Libtmux.Pane.Fields.active","name":"active","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val active : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val active : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-active"},{"id":"Libtmux.Pane.Fields.current_command","publicId":"Libtmux.Pane.Fields.current_command","qualifiedName":"Libtmux.Pane.Fields.current_command","name":"current_command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":297,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_command : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":297,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_command : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_command"},{"id":"Libtmux.Pane.Fields.current_path","publicId":"Libtmux.Pane.Fields.current_path","qualifiedName":"Libtmux.Pane.Fields.current_path","name":"current_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":298,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_path : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":298,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_path : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_path"},{"id":"Libtmux.Pane.Fields.dead","publicId":"Libtmux.Pane.Fields.dead","qualifiedName":"Libtmux.Pane.Fields.dead","name":"dead","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":295,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val dead : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":295,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val dead : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-dead"},{"id":"Libtmux.Pane.Fields.height","publicId":"Libtmux.Pane.Fields.height","qualifiedName":"Libtmux.Pane.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-height"},{"id":"Libtmux.Pane.Fields.id","publicId":"Libtmux.Pane.Fields.id","qualifiedName":"Libtmux.Pane.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":292,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":292,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-id"},{"id":"Libtmux.Pane.Fields.index","publicId":"Libtmux.Pane.Fields.index","qualifiedName":"Libtmux.Pane.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":293,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-index"},{"id":"Libtmux.Pane.Fields.left","publicId":"Libtmux.Pane.Fields.left","qualifiedName":"Libtmux.Pane.Fields.left","name":"left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":301,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val left : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":301,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val left : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-left"},{"id":"Libtmux.Pane.Fields.title","publicId":"Libtmux.Pane.Fields.title","qualifiedName":"Libtmux.Pane.Fields.title","name":"title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":296,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val title : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":296,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val title : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-title"},{"id":"Libtmux.Pane.Fields.top","publicId":"Libtmux.Pane.Fields.top","qualifiedName":"Libtmux.Pane.Fields.top","name":"top","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":302,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val top : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val top : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-top"},{"id":"Libtmux.Pane.Fields.width","publicId":"Libtmux.Pane.Fields.width","qualifiedName":"Libtmux.Pane.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":299,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-width"},{"id":"Libtmux.Pane.Id","publicId":"Libtmux.Pane.Id","qualifiedName":"Libtmux.Pane.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-id-16to"},{"id":"Libtmux.Pane.Id.compare","publicId":"Libtmux.Pane.Id.compare","qualifiedName":"Libtmux.Pane.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-id-compare"},{"id":"Libtmux.Pane.Id.equal","publicId":"Libtmux.Pane.Id.equal","qualifiedName":"Libtmux.Pane.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-id-equal"},{"id":"Libtmux.Pane.Id.of_string","publicId":"Libtmux.Pane.Id.of_string","qualifiedName":"Libtmux.Pane.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-pane-id-of_string"},{"id":"Libtmux.Pane.Id.pp","publicId":"Libtmux.Pane.Id.pp","qualifiedName":"Libtmux.Pane.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-pane-id-pp"},{"id":"Libtmux.Pane.Id.t","publicId":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux.Pane.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-id-t"},{"id":"Libtmux.Pane.Id.to_string","publicId":"Libtmux.Pane.Id.to_string","qualifiedName":"Libtmux.Pane.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-id-to_string"},{"id":"Libtmux.Pane.Relations","publicId":"Libtmux.Pane.Relations","qualifiedName":"Libtmux.Pane.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-relations"},{"id":"Libtmux.Pane.Relations.window","publicId":"Libtmux.Pane.Relations.window","qualifiedName":"Libtmux.Pane.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-pane-relations-window"},{"id":"Libtmux.Pane.Target","publicId":"Libtmux.Pane.Target","qualifiedName":"Libtmux.Pane.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":311,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":311,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-target-nx8w"},{"id":"Libtmux.Pane.Target.id","publicId":"Libtmux.Pane.Target.id","qualifiedName":"Libtmux.Pane.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":316,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-target-id"},{"id":"Libtmux.Pane.Target.of_id","publicId":"Libtmux.Pane.Target.of_id","qualifiedName":"Libtmux.Pane.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":314,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":314,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-pane-target-of_id"},{"id":"Libtmux.Pane.Target.source","publicId":"Libtmux.Pane.Target.source","qualifiedName":"Libtmux.Pane.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":315,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-target-source"},{"id":"Libtmux.Pane.Target.t","publicId":"Libtmux.Pane.Target.t","qualifiedName":"Libtmux.Pane.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":312,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":312,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-target-t"},{"id":"Libtmux.Pane.active","publicId":"Libtmux.Pane.active","qualifiedName":"Libtmux.Pane.active","name":"active","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":323,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val active : t -> bool","source":{"file":"lib/libtmux.mli","line":323,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val active : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-active"},{"id":"Libtmux.Pane.current_command","publicId":"Libtmux.Pane.current_command","qualifiedName":"Libtmux.Pane.current_command","name":"current_command","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":326,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_command : t -> string","source":{"file":"lib/libtmux.mli","line":326,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_command : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_command"},{"id":"Libtmux.Pane.current_path","publicId":"Libtmux.Pane.current_path","qualifiedName":"Libtmux.Pane.current_path","name":"current_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_path : t -> string","source":{"file":"lib/libtmux.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_path : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_path"},{"id":"Libtmux.Pane.dead","publicId":"Libtmux.Pane.dead","qualifiedName":"Libtmux.Pane.dead","name":"dead","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":324,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dead : t -> bool","source":{"file":"lib/libtmux.mli","line":324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val dead : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-dead"},{"id":"Libtmux.Pane.height","publicId":"Libtmux.Pane.height","qualifiedName":"Libtmux.Pane.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":333,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-height"},{"id":"Libtmux.Pane.id","publicId":"Libtmux.Pane.id","qualifiedName":"Libtmux.Pane.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":321,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":321,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-id-19ve"},{"id":"Libtmux.Pane.index","publicId":"Libtmux.Pane.index","qualifiedName":"Libtmux.Pane.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":322,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":322,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-index"},{"id":"Libtmux.Pane.left","publicId":"Libtmux.Pane.left","qualifiedName":"Libtmux.Pane.left","name":"left","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":334,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val left : t -> int","source":{"file":"lib/libtmux.mli","line":334,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val left : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-left"},{"id":"Libtmux.Pane.pid","publicId":"Libtmux.Pane.pid","qualifiedName":"Libtmux.Pane.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":329,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" The captured process ID, absent when tmux reports no process. "],"declarations":[{"kind":"function","text":"val pid : t -> int option","source":{"file":"lib/libtmux.mli","line":329,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","doc":{"summary":"The captured process ID, absent when tmux reports no process."},"signatures":[{"raw":"val pid : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-pane-pid"},{"id":"Libtmux.Pane.same_entity","publicId":"Libtmux.Pane.same_entity","qualifiedName":"Libtmux.Pane.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":339,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":339,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_entity"},{"id":"Libtmux.Pane.same_observation","publicId":"Libtmux.Pane.same_observation","qualifiedName":"Libtmux.Pane.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_observation"},{"id":"Libtmux.Pane.source","publicId":"Libtmux.Pane.source","qualifiedName":"Libtmux.Pane.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-source"},{"id":"Libtmux.Pane.t","publicId":"Libtmux.Pane.t","qualifiedName":"Libtmux.Pane.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":289,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":289,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-t"},{"id":"Libtmux.Pane.target","publicId":"Libtmux.Pane.target","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":338,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":338,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-pane-target-t3h1"},{"id":"Libtmux.Pane.target:type","publicId":"Libtmux.Pane.target:type","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-pane-target-type"},{"id":"Libtmux.Pane.title","publicId":"Libtmux.Pane.title","qualifiedName":"Libtmux.Pane.title","name":"title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":325,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val title : t -> string","source":{"file":"lib/libtmux.mli","line":325,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val title : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-title"},{"id":"Libtmux.Pane.top","publicId":"Libtmux.Pane.top","qualifiedName":"Libtmux.Pane.top","name":"top","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":335,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val top : t -> int","source":{"file":"lib/libtmux.mli","line":335,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val top : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-top"},{"id":"Libtmux.Pane.width","publicId":"Libtmux.Pane.width","qualifiedName":"Libtmux.Pane.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-width"},{"id":"Libtmux.Pane.window","publicId":"Libtmux.Pane.window","qualifiedName":"Libtmux.Pane.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":336,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":336,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-pane-window"},{"id":"Libtmux.Plan","publicId":"Libtmux.Plan","qualifiedName":"Libtmux.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":644,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Explicit source-filter planning for a new acquisition. A plan separates\n supported tmux predicates from residual local evaluation; it never changes\n the I/O-free contract of {!Query.matching}. Backend capture operations\n acquire a complete graph and do not consume these plans. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type pushdown = Auto | Never | Require_exact\n type t\n\n val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result\n (** Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. *)\n\n val source_filter : t -> string option\n val residual : t -> Pane.t Expr.t\n val required_fields : t -> string list\n val required_relations : t -> string list\n val explanation : t -> string\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":644,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Explicit source-filter planning for a new acquisition. A plan separates supported tmux predicates from residual local evaluation; it never changes the I/O-free contract of {!Query.matching}. Backend capture operations acquire a complete graph and do not consume these plans."},"slug":"libtmux-plan"},{"id":"Libtmux.Plan.explanation","publicId":"Libtmux.Plan.explanation","qualifiedName":"Libtmux.Plan.explanation","name":"explanation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":659,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val explanation : t -> string","source":{"file":"lib/libtmux.mli","line":659,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val explanation : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-plan-explanation"},{"id":"Libtmux.Plan.panes","publicId":"Libtmux.Plan.panes","qualifiedName":"Libtmux.Plan.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":648,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. "],"declarations":[{"kind":"function","text":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":648,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","doc":{"summary":"Plan without I/O. Exact lowering covers pane active/dead flags and complete Boolean combinations. Unsupported children prevent lowering the whole expression, including under OR and NOT. Relationships always stay local. `Require_exact` rejects an unsupported expression before acquisition."},"signatures":[{"raw":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","params":[{"name":"pushdown","type":"pushdown","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t Expr.t"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-plan-panes"},{"id":"Libtmux.Plan.pp","publicId":"Libtmux.Plan.pp","qualifiedName":"Libtmux.Plan.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":660,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":660,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-plan-pp"},{"id":"Libtmux.Plan.pushdown","publicId":"Libtmux.Plan.pushdown","qualifiedName":"Libtmux.Plan.pushdown","name":"pushdown","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type pushdown = Auto | Never | Require_exact","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type pushdown = Auto | Never | Require_exact","params":[]}],"slug":"libtmux-plan-pushdown"},{"id":"Libtmux.Plan.pushdown.Auto","publicId":"Libtmux.Plan.pushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Auto","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Auto","slug":"libtmux-plan-pushdown-auto"},{"id":"Libtmux.Plan.pushdown.Never","publicId":"Libtmux.Plan.pushdown.Never","name":"Never","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Never","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Never","slug":"libtmux-plan-pushdown-never"},{"id":"Libtmux.Plan.pushdown.Require_exact","publicId":"Libtmux.Plan.pushdown.Require_exact","name":"Require_exact","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_exact","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Require_exact","slug":"libtmux-plan-pushdown-require_exact"},{"id":"Libtmux.Plan.required_fields","publicId":"Libtmux.Plan.required_fields","qualifiedName":"Libtmux.Plan.required_fields","name":"required_fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":657,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_fields : t -> string list","source":{"file":"lib/libtmux.mli","line":657,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_fields : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_fields"},{"id":"Libtmux.Plan.required_relations","publicId":"Libtmux.Plan.required_relations","qualifiedName":"Libtmux.Plan.required_relations","name":"required_relations","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":658,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_relations : t -> string list","source":{"file":"lib/libtmux.mli","line":658,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_relations : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_relations"},{"id":"Libtmux.Plan.residual","publicId":"Libtmux.Plan.residual","qualifiedName":"Libtmux.Plan.residual","name":"residual","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":656,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val residual : t -> Pane.t Expr.t","source":{"file":"lib/libtmux.mli","line":656,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val residual : t -> Pane.t Expr.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Expr.t"}],"slug":"libtmux-plan-residual"},{"id":"Libtmux.Plan.source_filter","publicId":"Libtmux.Plan.source_filter","qualifiedName":"Libtmux.Plan.source_filter","name":"source_filter","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":655,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source_filter : t -> string option","source":{"file":"lib/libtmux.mli","line":655,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val source_filter : t -> string option","params":[{"name":"arg1","type":"t"}],"returns":"string option"}],"slug":"libtmux-plan-source_filter"},{"id":"Libtmux.Plan.t","publicId":"Libtmux.Plan.t","qualifiedName":"Libtmux.Plan.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":646,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":646,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-plan-t"},{"id":"Libtmux.Query","publicId":"Libtmux.Query","qualifiedName":"Libtmux.Query","name":"Query","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":672,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Sequence adapters and bounded cardinality checks over captured values.\n Matching preserves order and duplicates. Expected absence and ambiguity\n remain ordinary result values. "],"declarations":[{"kind":"module","text":"module Query : sig\n val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t\n (** [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. *)\n\n val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result\n (** Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. *)\n\n val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result\n (** As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n *)\nend","source":{"file":"lib/libtmux.mli","line":672,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Sequence adapters and bounded cardinality checks over captured values. Matching preserves order and duplicates. Expected absence and ambiguity remain ordinary result values."},"slug":"libtmux-query"},{"id":"Libtmux.Query.exactly_one","publicId":"Libtmux.Query.exactly_one","qualifiedName":"Libtmux.Query.exactly_one","name":"exactly_one","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":679,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. "],"declarations":[{"kind":"function","text":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":679,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Query","doc":{"summary":"Return the unique value. Stop when a second value is found; proving uniqueness requires exhausting the remaining sequence. The input's effects and exceptions propagate. This does not execute a mutation."},"signatures":[{"raw":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a, Cardinality.error) result"}],"slug":"libtmux-query-exactly_one"},{"id":"Libtmux.Query.matching","publicId":"Libtmux.Query.matching","qualifiedName":"Libtmux.Query.matching","name":"matching","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":673,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. "],"declarations":[{"kind":"function","text":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","source":{"file":"lib/libtmux.mli","line":673,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Query","doc":{"summary":"`matching expression` compiles once when the adapter is constructed. Filtering preserves order and duplicates. Snapshot-derived sequences replay captured values; arbitrary input sequences retain their effects, exceptions and replay semantics. No tmux acquisition occurs."},"signatures":[{"raw":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","params":[{"name":"arg1","type":"'a Expr.t"},{"name":"arg2","type":"'a Seq.t"}],"returns":"'a Seq.t"}],"slug":"libtmux-query-matching"},{"id":"Libtmux.Query.one_or_none","publicId":"Libtmux.Query.one_or_none","qualifiedName":"Libtmux.Query.one_or_none","name":"one_or_none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":684,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n "],"declarations":[{"kind":"function","text":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":684,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Query","doc":{"summary":"As {!exactly_one}, with `Ok None` for an empty sequence. Order and duplicate entries count toward cardinality; values are not deduplicated."},"signatures":[{"raw":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a option, Cardinality.error) result"}],"slug":"libtmux-query-one_or_none"},{"id":"Libtmux.Relation","publicId":"Libtmux.Relation","qualifiedName":"Libtmux.Relation","name":"Relation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Typed edges in a captured graph. Many, one and optional relations are\n distinct; an unacquired relationship is never represented as an empty one.\n"],"declarations":[{"kind":"module","text":"module Relation : sig\n module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\nend","source":{"file":"lib/libtmux.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Typed edges in a captured graph. Many, one and optional relations are distinct; an unacquired relationship is never represented as an empty one."},"slug":"libtmux-relation"},{"id":"Libtmux.Relation.Many","publicId":"Libtmux.Relation.Many","qualifiedName":"Libtmux.Relation.Many","name":"Many","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-many"},{"id":"Libtmux.Relation.Many.name","publicId":"Libtmux.Relation.Many.name","qualifiedName":"Libtmux.Relation.Many.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-many-name"},{"id":"Libtmux.Relation.Many.t","publicId":"Libtmux.Relation.Many.t","qualifiedName":"Libtmux.Relation.Many.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-many-t"},{"id":"Libtmux.Relation.One","publicId":"Libtmux.Relation.One","qualifiedName":"Libtmux.Relation.One","name":"One","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":157,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":157,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-one"},{"id":"Libtmux.Relation.One.name","publicId":"Libtmux.Relation.One.name","qualifiedName":"Libtmux.Relation.One.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":160,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-one-name"},{"id":"Libtmux.Relation.One.t","publicId":"Libtmux.Relation.One.t","qualifiedName":"Libtmux.Relation.One.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":158,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":158,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-one-t"},{"id":"Libtmux.Relation.Optional","publicId":"Libtmux.Relation.Optional","qualifiedName":"Libtmux.Relation.Optional","name":"Optional","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-optional"},{"id":"Libtmux.Relation.Optional.name","publicId":"Libtmux.Relation.Optional.name","qualifiedName":"Libtmux.Relation.Optional.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-optional-name"},{"id":"Libtmux.Relation.Optional.t","publicId":"Libtmux.Relation.Optional.t","qualifiedName":"Libtmux.Relation.Optional.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-optional-t"},{"id":"Libtmux.Session","publicId":"Libtmux.Session","qualifiedName":"Libtmux.Session","name":"Session","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A captured session and its ordered window-link contexts. A session can\n contain repeated links to the same global window. "],"declarations":[{"kind":"module","text":"module rec Session : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end\n\n module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val attached : t -> int\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\n\n val window_links : t -> Window_link.t Iarray.t\n (** All captured links, in capture order, including repeated windows. *)\n\n val windows : t -> Window.t Iarray.t\n (** Distinct windows in first-link order. All accesses are local. *)\nend","source":{"file":"lib/libtmux.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"A captured session and its ordered window-link contexts. A session can contain repeated links to the same global window."},"slug":"libtmux-session"},{"id":"Libtmux.Session.Fields","publicId":"Libtmux.Session.Fields","qualifiedName":"Libtmux.Session.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":175,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":175,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","slug":"libtmux-session-fields"},{"id":"Libtmux.Session.Fields.attached","publicId":"Libtmux.Session.Fields.attached","qualifiedName":"Libtmux.Session.Fields.attached","name":"attached","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val attached : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val attached : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-session-fields-attached"},{"id":"Libtmux.Session.Fields.id","publicId":"Libtmux.Session.Fields.id","qualifiedName":"Libtmux.Session.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":176,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":176,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-id"},{"id":"Libtmux.Session.Fields.name","publicId":"Libtmux.Session.Fields.name","qualifiedName":"Libtmux.Session.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-name"},{"id":"Libtmux.Session.Id","publicId":"Libtmux.Session.Id","qualifiedName":"Libtmux.Session.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","slug":"libtmux-session-id-12k2"},{"id":"Libtmux.Session.Id.compare","publicId":"Libtmux.Session.Id.compare","qualifiedName":"Libtmux.Session.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-session-id-compare"},{"id":"Libtmux.Session.Id.equal","publicId":"Libtmux.Session.Id.equal","qualifiedName":"Libtmux.Session.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-id-equal"},{"id":"Libtmux.Session.Id.of_string","publicId":"Libtmux.Session.Id.of_string","qualifiedName":"Libtmux.Session.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-session-id-of_string"},{"id":"Libtmux.Session.Id.pp","publicId":"Libtmux.Session.Id.pp","qualifiedName":"Libtmux.Session.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-session-id-pp"},{"id":"Libtmux.Session.Id.t","publicId":"Libtmux.Session.Id.t","qualifiedName":"Libtmux.Session.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-id-t"},{"id":"Libtmux.Session.Id.to_string","publicId":"Libtmux.Session.Id.to_string","qualifiedName":"Libtmux.Session.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-id-to_string"},{"id":"Libtmux.Session.Relations","publicId":"Libtmux.Session.Relations","qualifiedName":"Libtmux.Session.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","slug":"libtmux-session-relations"},{"id":"Libtmux.Session.Relations.window_links","publicId":"Libtmux.Session.Relations.window_links","qualifiedName":"Libtmux.Session.Relations.window_links","name":"window_links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val window_links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-session-relations-window_links"},{"id":"Libtmux.Session.Relations.windows","publicId":"Libtmux.Session.Relations.windows","qualifiedName":"Libtmux.Session.Relations.windows","name":"windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val windows : (t, Window.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val windows : (t, Window.t) Relation.Many.t","params":[],"returns":"(t, Window.t) Relation.Many.t"}],"slug":"libtmux-session-relations-windows"},{"id":"Libtmux.Session.Target","publicId":"Libtmux.Session.Target","qualifiedName":"Libtmux.Session.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","slug":"libtmux-session-target-5p2d"},{"id":"Libtmux.Session.Target.id","publicId":"Libtmux.Session.Target.id","qualifiedName":"Libtmux.Session.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":195,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-target-id"},{"id":"Libtmux.Session.Target.of_id","publicId":"Libtmux.Session.Target.of_id","qualifiedName":"Libtmux.Session.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Describe a target in an existing connection generation. No I/O. "],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Target","doc":{"summary":"Describe a target in an existing connection generation. No I/O."},"signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-session-target-of_id"},{"id":"Libtmux.Session.Target.source","publicId":"Libtmux.Session.Target.source","qualifiedName":"Libtmux.Session.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":194,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-target-source"},{"id":"Libtmux.Session.Target.t","publicId":"Libtmux.Session.Target.t","qualifiedName":"Libtmux.Session.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-target-t"},{"id":"Libtmux.Session.attached","publicId":"Libtmux.Session.attached","qualifiedName":"Libtmux.Session.attached","name":"attached","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val attached : t -> int","source":{"file":"lib/libtmux.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val attached : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-session-attached"},{"id":"Libtmux.Session.id","publicId":"Libtmux.Session.id","qualifiedName":"Libtmux.Session.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-id-12gy"},{"id":"Libtmux.Session.name","publicId":"Libtmux.Session.name","qualifiedName":"Libtmux.Session.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-name"},{"id":"Libtmux.Session.same_entity","publicId":"Libtmux.Session.same_entity","qualifiedName":"Libtmux.Session.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_entity"},{"id":"Libtmux.Session.same_observation","publicId":"Libtmux.Session.same_observation","qualifiedName":"Libtmux.Session.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_observation"},{"id":"Libtmux.Session.source","publicId":"Libtmux.Session.source","qualifiedName":"Libtmux.Session.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-source"},{"id":"Libtmux.Session.t","publicId":"Libtmux.Session.t","qualifiedName":"Libtmux.Session.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-t"},{"id":"Libtmux.Session.target","publicId":"Libtmux.Session.target","qualifiedName":"Libtmux.Session.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-session-target-iu8j"},{"id":"Libtmux.Session.target:type","publicId":"Libtmux.Session.target:type","qualifiedName":"Libtmux.Session.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-session-target-type"},{"id":"Libtmux.Session.window_links","publicId":"Libtmux.Session.window_links","qualifiedName":"Libtmux.Session.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" All captured links, in capture order, including repeated windows. "],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","doc":{"summary":"All captured links, in capture order, including repeated windows.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-session-window_links"},{"id":"Libtmux.Session.windows","publicId":"Libtmux.Session.windows","qualifiedName":"Libtmux.Session.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Distinct windows in first-link order. All accesses are local. "],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Session","doc":{"summary":"Distinct windows in first-link order. All accesses are local."},"signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-session-windows"},{"id":"Libtmux.Snapshot","publicId":"Libtmux.Snapshot","qualifiedName":"Libtmux.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A complete immutable graph captured over an acquisition interval.\n Collections are replayable immutable arrays. Capturing several tmux commands\n does not establish an atomic transaction. "],"declarations":[{"kind":"module","text":"module Snapshot : sig\n type t\n\n module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end\n\n module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end\n\n val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result\n (** Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. *)\n\n val id : t -> Id.t\n val source : t -> Source.t\n val started_at_ns : t -> int64\n val finished_at_ns : t -> int64\n val sessions : t -> Session.t Iarray.t\n val windows : t -> Window.t Iarray.t\n val window_links : t -> Window_link.t Iarray.t\n val panes : t -> Pane.t Iarray.t\n\n val clients : t -> Client_observation.t Iarray.t\n (** Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. *)\n\n val find_session : t -> Session.Id.t -> Session.t option\n val find_window : t -> Window.Id.t -> Window.t option\n val find_pane : t -> Pane.Id.t -> Pane.t option\nend","source":{"file":"lib/libtmux.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"A complete immutable graph captured over an acquisition interval. Collections are replayable immutable arrays. Capturing several tmux commands does not establish an atomic transaction."},"slug":"libtmux-snapshot"},{"id":"Libtmux.Snapshot.Id","publicId":"Libtmux.Snapshot.Id","qualifiedName":"Libtmux.Snapshot.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":384,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end","source":{"file":"lib/libtmux.mli","line":384,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-id-1y9h"},{"id":"Libtmux.Snapshot.Id.equal","publicId":"Libtmux.Snapshot.Id.equal","qualifiedName":"Libtmux.Snapshot.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":389,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":389,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-snapshot-id-equal"},{"id":"Libtmux.Snapshot.Id.of_string","publicId":"Libtmux.Snapshot.Id.of_string","qualifiedName":"Libtmux.Snapshot.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-id-of_string"},{"id":"Libtmux.Snapshot.Id.t","publicId":"Libtmux.Snapshot.Id.t","qualifiedName":"Libtmux.Snapshot.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":385,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":385,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-id-t"},{"id":"Libtmux.Snapshot.Id.to_string","publicId":"Libtmux.Snapshot.Id.to_string","qualifiedName":"Libtmux.Snapshot.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":388,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":388,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-snapshot-id-to_string"},{"id":"Libtmux.Snapshot.Input","publicId":"Libtmux.Snapshot.Input","qualifiedName":"Libtmux.Snapshot.Input","name":"Input","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":392,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end","source":{"file":"lib/libtmux.mli","line":392,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-input"},{"id":"Libtmux.Snapshot.Input.client","publicId":"Libtmux.Snapshot.Input.client","qualifiedName":"Libtmux.Snapshot.Input.client","name":"client","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }","source":{"file":"lib/libtmux.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n}","params":[]}],"slug":"libtmux-snapshot-input-client"},{"id":"Libtmux.Snapshot.Input.client.control_mode","publicId":"Libtmux.Snapshot.Input.client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":432,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"control_mode : bool;","source":{"file":"lib/libtmux.mli","line":432,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.client","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.control_mode","slug":"libtmux-snapshot-input-client-control_mode"},{"id":"Libtmux.Snapshot.Input.client.height","publicId":"Libtmux.Snapshot.Input.client.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":431,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":431,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-client-height"},{"id":"Libtmux.Snapshot.Input.client.name","publicId":"Libtmux.Snapshot.Input.client.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.client","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-client-name"},{"id":"Libtmux.Snapshot.Input.client.pid","publicId":"Libtmux.Snapshot.Input.client.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":429,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int;","source":{"file":"lib/libtmux.mli","line":429,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-client-pid"},{"id":"Libtmux.Snapshot.Input.client.session_id","publicId":"Libtmux.Snapshot.Input.client.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":428,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t option;","source":{"file":"lib/libtmux.mli","line":428,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.client","type":"Session.Id.t option","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-client-session_id"},{"id":"Libtmux.Snapshot.Input.client.width","publicId":"Libtmux.Snapshot.Input.client.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":430,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":430,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-client-width"},{"id":"Libtmux.Snapshot.Input.pane","publicId":"Libtmux.Snapshot.Input.pane","qualifiedName":"Libtmux.Snapshot.Input.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }","source":{"file":"lib/libtmux.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n}","params":[]}],"slug":"libtmux-snapshot-input-pane"},{"id":"Libtmux.Snapshot.Input.pane.active","publicId":"Libtmux.Snapshot.Input.pane.active","name":"active","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"active : bool;","source":{"file":"lib/libtmux.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.active","slug":"libtmux-snapshot-input-pane-active"},{"id":"Libtmux.Snapshot.Input.pane.current_command","publicId":"Libtmux.Snapshot.Input.pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_command : string;","source":{"file":"lib/libtmux.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_command","slug":"libtmux-snapshot-input-pane-current_command"},{"id":"Libtmux.Snapshot.Input.pane.current_path","publicId":"Libtmux.Snapshot.Input.pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":418,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_path : string;","source":{"file":"lib/libtmux.mli","line":418,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_path","slug":"libtmux-snapshot-input-pane-current_path"},{"id":"Libtmux.Snapshot.Input.pane.dead","publicId":"Libtmux.Snapshot.Input.pane.dead","name":"dead","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"dead : bool;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.dead","slug":"libtmux-snapshot-input-pane-dead"},{"id":"Libtmux.Snapshot.Input.pane.height","publicId":"Libtmux.Snapshot.Input.pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":421,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":421,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-pane-height"},{"id":"Libtmux.Snapshot.Input.pane.id","publicId":"Libtmux.Snapshot.Input.pane.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Pane.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-pane-id"},{"id":"Libtmux.Snapshot.Input.pane.index","publicId":"Libtmux.Snapshot.Input.pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":413,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":413,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-pane-index"},{"id":"Libtmux.Snapshot.Input.pane.left","publicId":"Libtmux.Snapshot.Input.pane.left","name":"left","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"left : int;","source":{"file":"lib/libtmux.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.left","slug":"libtmux-snapshot-input-pane-left"},{"id":"Libtmux.Snapshot.Input.pane.pid","publicId":"Libtmux.Snapshot.Input.pane.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":419,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int option;","source":{"file":"lib/libtmux.mli","line":419,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-pane-pid"},{"id":"Libtmux.Snapshot.Input.pane.title","publicId":"Libtmux.Snapshot.Input.pane.title","name":"title","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":416,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"title : string;","source":{"file":"lib/libtmux.mli","line":416,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.title","slug":"libtmux-snapshot-input-pane-title"},{"id":"Libtmux.Snapshot.Input.pane.top","publicId":"Libtmux.Snapshot.Input.pane.top","name":"top","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"top : int;","source":{"file":"lib/libtmux.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.top","slug":"libtmux-snapshot-input-pane-top"},{"id":"Libtmux.Snapshot.Input.pane.width","publicId":"Libtmux.Snapshot.Input.pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":420,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":420,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-pane-width"},{"id":"Libtmux.Snapshot.Input.pane.window_id","publicId":"Libtmux.Snapshot.Input.pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":412,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":412,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-pane-window_id"},{"id":"Libtmux.Snapshot.Input.session","publicId":"Libtmux.Snapshot.Input.session","qualifiedName":"Libtmux.Snapshot.Input.session","name":"session","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type session = { id : Session.Id.t; name : string; attached : int }","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type session = { id : Session.Id.t; name : string; attached : int; }","params":[]}],"slug":"libtmux-snapshot-input-session"},{"id":"Libtmux.Snapshot.Input.session.attached","publicId":"Libtmux.Snapshot.Input.session.attached","name":"attached","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"attached : int","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.session","type":"int","qualifiedName":"Libtmux.Snapshot.Input.attached","slug":"libtmux-snapshot-input-session-attached"},{"id":"Libtmux.Snapshot.Input.session.id","publicId":"Libtmux.Snapshot.Input.session.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.session","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-session-id"},{"id":"Libtmux.Snapshot.Input.session.name","publicId":"Libtmux.Snapshot.Input.session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.session","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-session-name"},{"id":"Libtmux.Snapshot.Input.window","publicId":"Libtmux.Snapshot.Input.window","qualifiedName":"Libtmux.Snapshot.Input.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":395,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }","source":{"file":"lib/libtmux.mli","line":395,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n}","params":[]}],"slug":"libtmux-snapshot-input-window"},{"id":"Libtmux.Snapshot.Input.window.height","publicId":"Libtmux.Snapshot.Input.window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":399,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":399,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-window-height"},{"id":"Libtmux.Snapshot.Input.window.id","publicId":"Libtmux.Snapshot.Input.window.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":396,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":396,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-window-id"},{"id":"Libtmux.Snapshot.Input.window.layout","publicId":"Libtmux.Snapshot.Input.window.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":400,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : string;","source":{"file":"lib/libtmux.mli","line":400,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.layout","slug":"libtmux-snapshot-input-window-layout"},{"id":"Libtmux.Snapshot.Input.window.name","publicId":"Libtmux.Snapshot.Input.window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-window-name"},{"id":"Libtmux.Snapshot.Input.window.width","publicId":"Libtmux.Snapshot.Input.window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":398,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":398,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-window-width"},{"id":"Libtmux.Snapshot.Input.window_link","publicId":"Libtmux.Snapshot.Input.window_link","qualifiedName":"Libtmux.Snapshot.Input.window_link","name":"window_link","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }","source":{"file":"lib/libtmux.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n}","params":[]}],"slug":"libtmux-snapshot-input-window_link"},{"id":"Libtmux.Snapshot.Input.window_link.index","publicId":"Libtmux.Snapshot.Input.window_link.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-window_link-index"},{"id":"Libtmux.Snapshot.Input.window_link.is_current","publicId":"Libtmux.Snapshot.Input.window_link.is_current","name":"is_current","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":407,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"is_current : bool;","source":{"file":"lib/libtmux.mli","line":407,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.is_current","slug":"libtmux-snapshot-input-window_link-is_current"},{"id":"Libtmux.Snapshot.Input.window_link.session_id","publicId":"Libtmux.Snapshot.Input.window_link.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":404,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":404,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-window_link-session_id"},{"id":"Libtmux.Snapshot.Input.window_link.window_id","publicId":"Libtmux.Snapshot.Input.window_link.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":405,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":405,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-window_link-window_id"},{"id":"Libtmux.Snapshot.clients","publicId":"Libtmux.Snapshot.clients","qualifiedName":"Libtmux.Snapshot.clients","name":"clients","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":464,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. "],"declarations":[{"kind":"function","text":"val clients : t -> Client_observation.t Iarray.t","source":{"file":"lib/libtmux.mli","line":464,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Collections and their contents are immutable. They retain capture order, are replayable and remain readable after the acquiring client closes."},"signatures":[{"raw":"val clients : t -> Client_observation.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_observation.t Iarray.t"}],"slug":"libtmux-snapshot-clients"},{"id":"Libtmux.Snapshot.create","publicId":"Libtmux.Snapshot.create","qualifiedName":"Libtmux.Snapshot.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":436,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. "],"declarations":[{"kind":"function","text":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":436,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Validate and materialize a complete captured graph without I/O. Equal duplicate global rows collapse in first-occurrence order; conflicting rows and dangling references return {!Error.Capture_raced}. Links at different indexes remain distinct, including within one session. At most 10,000 input rows are admitted. Each session needs one current link and each window one active pane. Capture spans an interval, not an atomic instant. Input strings are bytes; no Unicode normalization is performed."},"signatures":[{"raw":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list -> clients:Input.client list -> (t, Error.t) result","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"id","type":"Id.t","keywordOnly":true},{"name":"started_at_ns","type":"int64","keywordOnly":true},{"name":"finished_at_ns","type":"int64","keywordOnly":true},{"name":"sessions","type":"Input.session list","keywordOnly":true},{"name":"windows","type":"Input.window list","keywordOnly":true},{"name":"window_links","type":"Input.window_link list","keywordOnly":true},{"name":"panes","type":"Input.pane list","keywordOnly":true},{"name":"clients","type":"Input.client list","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-create"},{"id":"Libtmux.Snapshot.find_pane","publicId":"Libtmux.Snapshot.find_pane","qualifiedName":"Libtmux.Snapshot.find_pane","name":"find_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":470,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_pane : t -> Pane.Id.t -> Pane.t option","source":{"file":"lib/libtmux.mli","line":470,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_pane : t -> Pane.Id.t -> Pane.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Pane.Id.t"}],"returns":"Pane.t option"}],"slug":"libtmux-snapshot-find_pane"},{"id":"Libtmux.Snapshot.find_session","publicId":"Libtmux.Snapshot.find_session","qualifiedName":"Libtmux.Snapshot.find_session","name":"find_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":468,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_session : t -> Session.Id.t -> Session.t option","source":{"file":"lib/libtmux.mli","line":468,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_session : t -> Session.Id.t -> Session.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Session.Id.t"}],"returns":"Session.t option"}],"slug":"libtmux-snapshot-find_session"},{"id":"Libtmux.Snapshot.find_window","publicId":"Libtmux.Snapshot.find_window","qualifiedName":"Libtmux.Snapshot.find_window","name":"find_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":469,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_window : t -> Window.Id.t -> Window.t option","source":{"file":"lib/libtmux.mli","line":469,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_window : t -> Window.Id.t -> Window.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Window.Id.t"}],"returns":"Window.t option"}],"slug":"libtmux-snapshot-find_window"},{"id":"Libtmux.Snapshot.finished_at_ns","publicId":"Libtmux.Snapshot.finished_at_ns","qualifiedName":"Libtmux.Snapshot.finished_at_ns","name":"finished_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val finished_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val finished_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-finished_at_ns"},{"id":"Libtmux.Snapshot.id","publicId":"Libtmux.Snapshot.id","qualifiedName":"Libtmux.Snapshot.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":455,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":455,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-snapshot-id-1y6d"},{"id":"Libtmux.Snapshot.panes","publicId":"Libtmux.Snapshot.panes","qualifiedName":"Libtmux.Snapshot.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":462,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":462,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"slug":"libtmux-snapshot-panes"},{"id":"Libtmux.Snapshot.sessions","publicId":"Libtmux.Snapshot.sessions","qualifiedName":"Libtmux.Snapshot.sessions","name":"sessions","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":459,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val sessions : t -> Session.t Iarray.t","source":{"file":"lib/libtmux.mli","line":459,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val sessions : t -> Session.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-snapshot-sessions"},{"id":"Libtmux.Snapshot.source","publicId":"Libtmux.Snapshot.source","qualifiedName":"Libtmux.Snapshot.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":456,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":456,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-snapshot-source"},{"id":"Libtmux.Snapshot.started_at_ns","publicId":"Libtmux.Snapshot.started_at_ns","qualifiedName":"Libtmux.Snapshot.started_at_ns","name":"started_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":457,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val started_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":457,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val started_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-started_at_ns"},{"id":"Libtmux.Snapshot.t","publicId":"Libtmux.Snapshot.t","qualifiedName":"Libtmux.Snapshot.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":382,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":382,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-t"},{"id":"Libtmux.Snapshot.window_links","publicId":"Libtmux.Snapshot.window_links","qualifiedName":"Libtmux.Snapshot.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":461,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":461,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-snapshot-window_links"},{"id":"Libtmux.Snapshot.windows","publicId":"Libtmux.Snapshot.windows","qualifiedName":"Libtmux.Snapshot.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":460,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":460,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-snapshot-windows"},{"id":"Libtmux.Source","publicId":"Libtmux.Source","qualifiedName":"Libtmux.Source","name":"Source","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":92,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Endpoint and observed daemon identity for one connection generation.\n Constructing metadata alone does not establish a live binding. "],"declarations":[{"kind":"module","text":"module Source : sig\n type t\n\n val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result\n (** Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. *)\n\n val endpoint : t -> Endpoint.t\n val generation : t -> Generation.t\n val server_pid : t -> int\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":92,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"Endpoint and observed daemon identity for one connection generation. Constructing metadata alone does not establish a live binding."},"slug":"libtmux-source"},{"id":"Libtmux.Source.create","publicId":"Libtmux.Source.create","qualifiedName":"Libtmux.Source.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. "],"declarations":[{"kind":"function","text":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Source","doc":{"summary":"Pure metadata import for capture adapters. This neither establishes a connection nor verifies process identity. The backend must bind the generation to a live daemon before it admits operations."},"signatures":[{"raw":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t -> server_pid:int -> (t, Error.t) result","params":[{"name":"endpoint","type":"Endpoint.t","keywordOnly":true},{"name":"generation","type":"Generation.t","keywordOnly":true},{"name":"server_pid","type":"int","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-source-create"},{"id":"Libtmux.Source.endpoint","publicId":"Libtmux.Source.endpoint","qualifiedName":"Libtmux.Source.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Endpoint.t","source":{"file":"lib/libtmux.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val endpoint : t -> Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Endpoint.t"}],"slug":"libtmux-source-endpoint"},{"id":"Libtmux.Source.equal","publicId":"Libtmux.Source.equal","qualifiedName":"Libtmux.Source.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":107,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":107,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-source-equal"},{"id":"Libtmux.Source.generation","publicId":"Libtmux.Source.generation","qualifiedName":"Libtmux.Source.generation","name":"generation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":105,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val generation : t -> Generation.t","source":{"file":"lib/libtmux.mli","line":105,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val generation : t -> Generation.t","params":[{"name":"arg1","type":"t"}],"returns":"Generation.t"}],"slug":"libtmux-source-generation"},{"id":"Libtmux.Source.server_pid","publicId":"Libtmux.Source.server_pid","qualifiedName":"Libtmux.Source.server_pid","name":"server_pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val server_pid : t -> int","source":{"file":"lib/libtmux.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val server_pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-source-server_pid"},{"id":"Libtmux.Source.t","publicId":"Libtmux.Source.t","qualifiedName":"Libtmux.Source.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Source","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-source-t"},{"id":"Libtmux.Spawn","publicId":"Libtmux.Spawn","qualifiedName":"Libtmux.Spawn","name":"Spawn","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":717,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A process description with explicit argv or shell semantics, working\n directory and environment. Describing a process performs no I/O. "],"declarations":[{"kind":"module","text":"module Spawn : sig\n type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string\n\n type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }\n\n val make : ?cwd:string -> ?environment:(string * string) list -> command -> t\n (** Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. *)\n\n val default : t\nend","source":{"file":"lib/libtmux.mli","line":717,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"A process description with explicit argv or shell semantics, working directory and environment. Describing a process performs no I/O."},"slug":"libtmux-spawn"},{"id":"Libtmux.Spawn.command","publicId":"Libtmux.Spawn.command","qualifiedName":"Libtmux.Spawn.command","name":"command","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":718,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string","source":{"file":"lib/libtmux.mli","line":718,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type command =\n Default\n | Exec of { program : string; args : string list; }\n | Shell of string","params":[]}],"slug":"libtmux-spawn-command"},{"id":"Libtmux.Spawn.command.Default","publicId":"Libtmux.Spawn.command.Default","name":"Default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":719,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Default","source":{"file":"lib/libtmux.mli","line":719,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.command","variant":"unit","qualifiedName":"Libtmux.Spawn.Default","slug":"libtmux-spawn-command-default"},{"id":"Libtmux.Spawn.command.Exec","publicId":"Libtmux.Spawn.command.Exec","name":"Exec","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Exec of { program : string; args : string list }","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.command","variant":"struct","qualifiedName":"Libtmux.Spawn.Exec","slug":"libtmux-spawn-command-exec"},{"id":"Libtmux.Spawn.command.Exec.args","publicId":"Libtmux.Spawn.command.Exec.args","name":"args","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"args : string list","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string list","qualifiedName":"Libtmux.Spawn.args","slug":"libtmux-spawn-command-exec-args"},{"id":"Libtmux.Spawn.command.Exec.program","publicId":"Libtmux.Spawn.command.Exec.program","name":"program","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"program : string;","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string","qualifiedName":"Libtmux.Spawn.program","slug":"libtmux-spawn-command-exec-program"},{"id":"Libtmux.Spawn.command.Shell","publicId":"Libtmux.Spawn.command.Shell","name":"Shell","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Shell of string","source":{"file":"lib/libtmux.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.command","variant":"tuple","qualifiedName":"Libtmux.Spawn.Shell","slug":"libtmux-spawn-command-shell"},{"id":"Libtmux.Spawn.default","publicId":"Libtmux.Spawn.default","qualifiedName":"Libtmux.Spawn.default","name":"default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":737,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val default : t","source":{"file":"lib/libtmux.mli","line":737,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"val default : t","params":[],"returns":"t"}],"slug":"libtmux-spawn-default"},{"id":"Libtmux.Spawn.make","publicId":"Libtmux.Spawn.make","qualifiedName":"Libtmux.Spawn.make","name":"make","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. "],"declarations":[{"kind":"function","text":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","source":{"file":"lib/libtmux.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn","doc":{"summary":"Describe a program without I/O. `Exec` preserves argv; `Shell` explicitly requests the daemon's configured shell. `cwd` must be absolute. Validation occurs at admission. With no arguments, `Exec` uses a fixed `/bin/sh` trampoline because tmux treats a single argument as shell code. `Default` follows tmux defaults on creation and reuses the previous command on respawn."},"signatures":[{"raw":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"arg1","type":"command"}],"returns":"t"}],"slug":"libtmux-spawn-make"},{"id":"Libtmux.Spawn.t","publicId":"Libtmux.Spawn.t","qualifiedName":"Libtmux.Spawn.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":723,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }","source":{"file":"lib/libtmux.mli","line":723,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n}","params":[]}],"slug":"libtmux-spawn-t"},{"id":"Libtmux.Spawn.t.command","publicId":"Libtmux.Spawn.t.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : command;","source":{"file":"lib/libtmux.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.t","type":"command","qualifiedName":"Libtmux.Spawn.command","slug":"libtmux-spawn-t-command"},{"id":"Libtmux.Spawn.t.cwd","publicId":"Libtmux.Spawn.t.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":725,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"lib/libtmux.mli","line":725,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.t","type":"string option","qualifiedName":"Libtmux.Spawn.cwd","slug":"libtmux-spawn-t-cwd"},{"id":"Libtmux.Spawn.t.environment","publicId":"Libtmux.Spawn.t.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":726,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"lib/libtmux.mli","line":726,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Spawn.t","type":"(string * string) list","qualifiedName":"Libtmux.Spawn.environment","slug":"libtmux-spawn-t-environment"},{"id":"Libtmux.Window","publicId":"Libtmux.Window","qualifiedName":"Libtmux.Window","name":"Window","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A global window shared by its session links. Window index and current state\n belong to a link, while panes and geometry belong to the window. "],"declarations":[{"kind":"module","text":"and Window : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end\n\n module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val width : t -> int\n val height : t -> int\n val layout : t -> string\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\n val panes : t -> Pane.t Iarray.t\n val links : t -> Window_link.t Iarray.t\nend","source":{"file":"lib/libtmux.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"A global window shared by its session links. Window index and current state belong to a link, while panes and geometry belong to the window."},"slug":"libtmux-window"},{"id":"Libtmux.Window.Fields","publicId":"Libtmux.Window.Fields","qualifiedName":"Libtmux.Window.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end","source":{"file":"lib/libtmux.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","slug":"libtmux-window-fields"},{"id":"Libtmux.Window.Fields.height","publicId":"Libtmux.Window.Fields.height","qualifiedName":"Libtmux.Window.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-height"},{"id":"Libtmux.Window.Fields.id","publicId":"Libtmux.Window.Fields.id","qualifiedName":"Libtmux.Window.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-id"},{"id":"Libtmux.Window.Fields.layout","publicId":"Libtmux.Window.Fields.layout","qualifiedName":"Libtmux.Window.Fields.layout","name":"layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":225,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val layout : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val layout : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-layout"},{"id":"Libtmux.Window.Fields.name","publicId":"Libtmux.Window.Fields.name","qualifiedName":"Libtmux.Window.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-name"},{"id":"Libtmux.Window.Fields.width","publicId":"Libtmux.Window.Fields.width","qualifiedName":"Libtmux.Window.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-width"},{"id":"Libtmux.Window.Id","publicId":"Libtmux.Window.Id","qualifiedName":"Libtmux.Window.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","slug":"libtmux-window-id-1sgu"},{"id":"Libtmux.Window.Id.compare","publicId":"Libtmux.Window.Id.compare","qualifiedName":"Libtmux.Window.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-window-id-compare"},{"id":"Libtmux.Window.Id.equal","publicId":"Libtmux.Window.Id.equal","qualifiedName":"Libtmux.Window.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-id-equal"},{"id":"Libtmux.Window.Id.of_string","publicId":"Libtmux.Window.Id.of_string","qualifiedName":"Libtmux.Window.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-window-id-of_string"},{"id":"Libtmux.Window.Id.pp","publicId":"Libtmux.Window.Id.pp","qualifiedName":"Libtmux.Window.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-window-id-pp"},{"id":"Libtmux.Window.Id.t","publicId":"Libtmux.Window.Id.t","qualifiedName":"Libtmux.Window.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-id-t"},{"id":"Libtmux.Window.Id.to_string","publicId":"Libtmux.Window.Id.to_string","qualifiedName":"Libtmux.Window.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-id-to_string"},{"id":"Libtmux.Window.Relations","publicId":"Libtmux.Window.Relations","qualifiedName":"Libtmux.Window.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":228,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":228,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","slug":"libtmux-window-relations"},{"id":"Libtmux.Window.Relations.links","publicId":"Libtmux.Window.Relations.links","qualifiedName":"Libtmux.Window.Relations.links","name":"links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-window-relations-links"},{"id":"Libtmux.Window.Relations.panes","publicId":"Libtmux.Window.Relations.panes","qualifiedName":"Libtmux.Window.Relations.panes","name":"panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val panes : (t, Pane.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val panes : (t, Pane.t) Relation.Many.t","params":[],"returns":"(t, Pane.t) Relation.Many.t"}],"slug":"libtmux-window-relations-panes"},{"id":"Libtmux.Window.Target","publicId":"Libtmux.Window.Target","qualifiedName":"Libtmux.Window.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","slug":"libtmux-window-target-6ecc"},{"id":"Libtmux.Window.Target.id","publicId":"Libtmux.Window.Target.id","qualifiedName":"Libtmux.Window.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":240,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":240,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-target-id"},{"id":"Libtmux.Window.Target.of_id","publicId":"Libtmux.Window.Target.of_id","qualifiedName":"Libtmux.Window.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-window-target-of_id"},{"id":"Libtmux.Window.Target.source","publicId":"Libtmux.Window.Target.source","qualifiedName":"Libtmux.Window.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":239,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-target-source"},{"id":"Libtmux.Window.Target.t","publicId":"Libtmux.Window.Target.t","qualifiedName":"Libtmux.Window.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-target-t"},{"id":"Libtmux.Window.height","publicId":"Libtmux.Window.height","qualifiedName":"Libtmux.Window.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-height"},{"id":"Libtmux.Window.id","publicId":"Libtmux.Window.id","qualifiedName":"Libtmux.Window.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-id-1sjw"},{"id":"Libtmux.Window.layout","publicId":"Libtmux.Window.layout","qualifiedName":"Libtmux.Window.layout","name":"layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val layout : t -> string","source":{"file":"lib/libtmux.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val layout : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-layout"},{"id":"Libtmux.Window.links","publicId":"Libtmux.Window.links","qualifiedName":"Libtmux.Window.links","name":"links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":255,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":255,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-window-links"},{"id":"Libtmux.Window.name","publicId":"Libtmux.Window.name","qualifiedName":"Libtmux.Window.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-name"},{"id":"Libtmux.Window.panes","publicId":"Libtmux.Window.panes","qualifiedName":"Libtmux.Window.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":254,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":254,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-window-panes"},{"id":"Libtmux.Window.same_entity","publicId":"Libtmux.Window.same_entity","qualifiedName":"Libtmux.Window.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_entity"},{"id":"Libtmux.Window.same_observation","publicId":"Libtmux.Window.same_observation","qualifiedName":"Libtmux.Window.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_observation"},{"id":"Libtmux.Window.source","publicId":"Libtmux.Window.source","qualifiedName":"Libtmux.Window.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":250,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":250,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-source"},{"id":"Libtmux.Window.t","publicId":"Libtmux.Window.t","qualifiedName":"Libtmux.Window.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-t"},{"id":"Libtmux.Window.target","publicId":"Libtmux.Window.target","qualifiedName":"Libtmux.Window.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-window-target-1sbf"},{"id":"Libtmux.Window.target:type","publicId":"Libtmux.Window.target:type","qualifiedName":"Libtmux.Window.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":243,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":243,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-window-target-type"},{"id":"Libtmux.Window.width","publicId":"Libtmux.Window.width","qualifiedName":"Libtmux.Window.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":247,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":247,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-width"},{"id":"Libtmux.Window_link","publicId":"Libtmux.Window_link","qualifiedName":"Libtmux.Window_link","name":"Window_link","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" One captured session/index/window context. It is not a stable link\n incarnation across unlinking, movement or reindexing. "],"declarations":[{"kind":"module","text":"and Window_link : sig\n type t\n\n module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end\n\n val index : t -> int\n val is_current : t -> bool\n val session : t -> Session.t\n val window : t -> Window.t\n\n val same_context : t -> t -> bool\n (** Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. *)\n\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux","doc":{"summary":"One captured session/index/window context. It is not a stable link incarnation across unlinking, movement or reindexing."},"slug":"libtmux-window_link"},{"id":"Libtmux.Window_link.Fields","publicId":"Libtmux.Window_link.Fields","qualifiedName":"Libtmux.Window_link.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-fields"},{"id":"Libtmux.Window_link.Fields.index","publicId":"Libtmux.Window_link.Fields.index","qualifiedName":"Libtmux.Window_link.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window_link-fields-index"},{"id":"Libtmux.Window_link.Fields.is_current","publicId":"Libtmux.Window_link.Fields.is_current","qualifiedName":"Libtmux.Window_link.Fields.is_current","name":"is_current","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":265,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val is_current : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":265,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val is_current : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-window_link-fields-is_current"},{"id":"Libtmux.Window_link.Relations","publicId":"Libtmux.Window_link.Relations","qualifiedName":"Libtmux.Window_link.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":268,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":268,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-relations"},{"id":"Libtmux.Window_link.Relations.session","publicId":"Libtmux.Window_link.Relations.session","qualifiedName":"Libtmux.Window_link.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.One.t","params":[],"returns":"(t, Session.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-session"},{"id":"Libtmux.Window_link.Relations.window","publicId":"Libtmux.Window_link.Relations.window","qualifiedName":"Libtmux.Window_link.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":270,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":270,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-window"},{"id":"Libtmux.Window_link.index","publicId":"Libtmux.Window_link.index","qualifiedName":"Libtmux.Window_link.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window_link-index"},{"id":"Libtmux.Window_link.is_current","publicId":"Libtmux.Window_link.is_current","qualifiedName":"Libtmux.Window_link.is_current","name":"is_current","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_current : t -> bool","source":{"file":"lib/libtmux.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val is_current : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-is_current"},{"id":"Libtmux.Window_link.same_context","publicId":"Libtmux.Window_link.same_context","qualifiedName":"Libtmux.Window_link.same_context","name":"same_context","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":278,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. "],"declarations":[{"kind":"function","text":"val same_context : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":278,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","doc":{"summary":"Compare source, session, index and window. An equal context does not certify a stable link incarnation across reindexing or unlink/relink."},"signatures":[{"raw":"val same_context : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_context"},{"id":"Libtmux.Window_link.same_observation","publicId":"Libtmux.Window_link.same_observation","qualifiedName":"Libtmux.Window_link.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_observation"},{"id":"Libtmux.Window_link.session","publicId":"Libtmux.Window_link.session","qualifiedName":"Libtmux.Window_link.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":275,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> Session.t","source":{"file":"lib/libtmux.mli","line":275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val session : t -> Session.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t"}],"slug":"libtmux-window_link-session"},{"id":"Libtmux.Window_link.t","publicId":"Libtmux.Window_link.t","qualifiedName":"Libtmux.Window_link.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window_link-t"},{"id":"Libtmux.Window_link.window","publicId":"Libtmux.Window_link.window","qualifiedName":"Libtmux.Window_link.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":276,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":276,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-window_link-window"},{"id":"Libtmux_eio","publicId":"Libtmux_eio","qualifiedName":"Libtmux_eio","name":"Libtmux_eio","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Concurrent Linux tmux clients using the application's Eio scheduler.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md}streaming\n guide} demonstrates application-owned switches, cancellation and continuity\n gaps. "],"declarations":[{"kind":"module","text":"","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"doc":{"summary":"Concurrent Linux tmux clients using the application's Eio scheduler.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [streaming guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md) demonstrates application-owned switches, cancellation and continuity gaps."},"slug":"libtmux_eio"},{"id":"Libtmux_eio.Client","publicId":"Libtmux_eio.Client","qualifiedName":"Libtmux_eio.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. *)\n\n val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. No history/barrier guarantee. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve bounded capacity without I/O. *)\n\n val await : 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. *)\n\n val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result\n (** Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. *)\n\n val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. *)\n\n val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Retire the generation and close owned control clients and descriptors.\n tmux's [exit-unattached] and [exit-empty] policies can end the daemon\n after its clients or sessions disappear. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_eio-client"},{"id":"Libtmux_eio.Client.await","publicId":"Libtmux_eio.Client.await","qualifiedName":"Libtmux_eio.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. "],"declarations":[{"kind":"function","text":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Cancellation propagates as Eio cancellation. Store the handle outside the cancelled fiber: the client drains written work independently, and the eventual result remains inspectable."},"signatures":[{"raw":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-await"},{"id":"Libtmux_eio.Client.break_pane","publicId":"Libtmux_eio.Client.break_pane","qualifiedName":"Libtmux_eio.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-break_pane"},{"id":"Libtmux_eio.Client.capture","publicId":"Libtmux_eio.Client.capture","qualifiedName":"Libtmux_eio.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. "],"declarations":[{"kind":"function","text":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a complete immutable graph over an interval. Conflicting or disappearing entities fail capture; they do not become empty relations. The returned values remain readable after client closure."},"signatures":[{"raw":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture"},{"id":"Libtmux_eio.Client.capture_environment","publicId":"Libtmux_eio.Client.capture_environment","qualifiedName":"Libtmux_eio.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_environment"},{"id":"Libtmux_eio.Client.capture_hooks","publicId":"Libtmux_eio.Client.capture_hooks","qualifiedName":"Libtmux_eio.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_hooks"},{"id":"Libtmux_eio.Client.capture_options","publicId":"Libtmux_eio.Client.capture_options","qualifiedName":"Libtmux_eio.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":283,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_options"},{"id":"Libtmux_eio.Client.capture_text","publicId":"Libtmux_eio.Client.capture_text","qualifiedName":"Libtmux_eio.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Inclusive ordinary screen rows, using a bounded private file transfer. Qualified local scratch storage must be shared with the daemon."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_text"},{"id":"Libtmux_eio.Client.clear_history","publicId":"Libtmux_eio.Client.clear_history","qualifiedName":"Libtmux_eio.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_history"},{"id":"Libtmux_eio.Client.clear_option_array","publicId":"Libtmux_eio.Client.clear_option_array","qualifiedName":"Libtmux_eio.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_option_array"},{"id":"Libtmux_eio.Client.close","publicId":"Libtmux_eio.Client.close","qualifiedName":"Libtmux_eio.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Retire the generation and close owned control clients and descriptors.\n tmux's [exit-unattached] and [exit-empty] policies can end the daemon\n after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Retire the generation and close owned control clients and descriptors. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-close"},{"id":"Libtmux_eio.Client.connect","publicId":"Libtmux_eio.Client.connect","qualifiedName":"Libtmux_eio.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n "],"declarations":[{"kind":"function","text":"val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Attach to an existing local Linux daemon in the same PID namespace and shared filesystem. Requires pidfd support. Default exchange timeout: one second. All client calls belong to the connecting OCaml domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-connect"},{"id":"Libtmux_eio.Client.create_session","publicId":"Libtmux_eio.Client.create_session","qualifiedName":"Libtmux_eio.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":380,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":380,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_session"},{"id":"Libtmux_eio.Client.create_window","publicId":"Libtmux_eio.Client.create_window","qualifiedName":"Libtmux_eio.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":391,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":391,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_window"},{"id":"Libtmux_eio.Client.cycle_layout","publicId":"Libtmux_eio.Client.cycle_layout","qualifiedName":"Libtmux_eio.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-cycle_layout"},{"id":"Libtmux_eio.Client.kill_pane","publicId":"Libtmux_eio.Client.kill_pane","qualifiedName":"Libtmux_eio.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":431,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":431,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_pane"},{"id":"Libtmux_eio.Client.kill_session","publicId":"Libtmux_eio.Client.kill_session","qualifiedName":"Libtmux_eio.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_session"},{"id":"Libtmux_eio.Client.kill_window","publicId":"Libtmux_eio.Client.kill_window","qualifiedName":"Libtmux_eio.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_window"},{"id":"Libtmux_eio.Client.link_window","publicId":"Libtmux_eio.Client.link_window","qualifiedName":"Libtmux_eio.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-link_window"},{"id":"Libtmux_eio.Client.move_pane","publicId":"Libtmux_eio.Client.move_pane","qualifiedName":"Libtmux_eio.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_pane"},{"id":"Libtmux_eio.Client.move_window_at","publicId":"Libtmux_eio.Client.move_window_at","qualifiedName":"Libtmux_eio.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_window_at"},{"id":"Libtmux_eio.Client.read_hook","publicId":"Libtmux_eio.Client.read_hook","qualifiedName":"Libtmux_eio.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_hook"},{"id":"Libtmux_eio.Client.read_option","publicId":"Libtmux_eio.Client.read_option","qualifiedName":"Libtmux_eio.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_option"},{"id":"Libtmux_eio.Client.refresh_client_at","publicId":"Libtmux_eio.Client.refresh_client_at","qualifiedName":"Libtmux_eio.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-refresh_client_at"},{"id":"Libtmux_eio.Client.remove_environment","publicId":"Libtmux_eio.Client.remove_environment","qualifiedName":"Libtmux_eio.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_environment"},{"id":"Libtmux_eio.Client.remove_hook","publicId":"Libtmux_eio.Client.remove_hook","qualifiedName":"Libtmux_eio.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":362,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":362,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_hook"},{"id":"Libtmux_eio.Client.rename_session","publicId":"Libtmux_eio.Client.rename_session","qualifiedName":"Libtmux_eio.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_session"},{"id":"Libtmux_eio.Client.rename_window","publicId":"Libtmux_eio.Client.rename_window","qualifiedName":"Libtmux_eio.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":193,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":193,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_window"},{"id":"Libtmux_eio.Client.request_detach_client_at","publicId":"Libtmux_eio.Client.request_detach_client_at","qualifiedName":"Libtmux_eio.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-request_detach_client_at"},{"id":"Libtmux_eio.Client.resize_control_client_at","publicId":"Libtmux_eio.Client.resize_control_client_at","qualifiedName":"Libtmux_eio.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_control_client_at"},{"id":"Libtmux_eio.Client.resize_pane","publicId":"Libtmux_eio.Client.resize_pane","qualifiedName":"Libtmux_eio.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":477,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":477,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_pane"},{"id":"Libtmux_eio.Client.resize_window","publicId":"Libtmux_eio.Client.resize_window","qualifiedName":"Libtmux_eio.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":487,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":487,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_window"},{"id":"Libtmux_eio.Client.respawn_pane","publicId":"Libtmux_eio.Client.respawn_pane","qualifiedName":"Libtmux_eio.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-respawn_pane"},{"id":"Libtmux_eio.Client.rotate_panes","publicId":"Libtmux_eio.Client.rotate_panes","qualifiedName":"Libtmux_eio.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rotate_panes"},{"id":"Libtmux_eio.Client.run","publicId":"Libtmux_eio.Client.run","qualifiedName":"Libtmux_eio.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. "],"declarations":[{"kind":"function","text":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Submit and await an explicit command. Retain a separate submitted handle when the outcome must remain inspectable after caller cancellation."},"signatures":[{"raw":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run"},{"id":"Libtmux_eio.Client.run_hook","publicId":"Libtmux_eio.Client.run_hook","qualifiedName":"Libtmux_eio.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":371,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":371,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run_hook"},{"id":"Libtmux_eio.Client.select_layout","publicId":"Libtmux_eio.Client.select_layout","qualifiedName":"Libtmux_eio.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout :\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_layout"},{"id":"Libtmux_eio.Client.select_pane","publicId":"Libtmux_eio.Client.select_pane","qualifiedName":"Libtmux_eio.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":468,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":468,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_pane"},{"id":"Libtmux_eio.Client.select_window_at","publicId":"Libtmux_eio.Client.select_window_at","qualifiedName":"Libtmux_eio.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":435,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":435,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_window_at"},{"id":"Libtmux_eio.Client.send_keys","publicId":"Libtmux_eio.Client.send_keys","qualifiedName":"Libtmux_eio.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys :\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_keys"},{"id":"Libtmux_eio.Client.send_text","publicId":"Libtmux_eio.Client.send_text","qualifiedName":"Libtmux_eio.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_text"},{"id":"Libtmux_eio.Client.set_environment","publicId":"Libtmux_eio.Client.set_environment","qualifiedName":"Libtmux_eio.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_environment"},{"id":"Libtmux_eio.Client.set_hook","publicId":"Libtmux_eio.Client.set_hook","qualifiedName":"Libtmux_eio.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":346,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_hook"},{"id":"Libtmux_eio.Client.set_option","publicId":"Libtmux_eio.Client.set_option","qualifiedName":"Libtmux_eio.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_option"},{"id":"Libtmux_eio.Client.set_pane_title","publicId":"Libtmux_eio.Client.set_pane_title","qualifiedName":"Libtmux_eio.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_pane_title"},{"id":"Libtmux_eio.Client.signal","publicId":"Libtmux_eio.Client.signal","qualifiedName":"Libtmux_eio.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-signal"},{"id":"Libtmux_eio.Client.source","publicId":"Libtmux_eio.Client.source","qualifiedName":"Libtmux_eio.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_eio-client-source"},{"id":"Libtmux_eio.Client.split_pane","publicId":"Libtmux_eio.Client.split_pane","qualifiedName":"Libtmux_eio.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":400,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":400,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-split_pane"},{"id":"Libtmux_eio.Client.submit","publicId":"Libtmux_eio.Client.submit","qualifiedName":"Libtmux_eio.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate and reserve bounded capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate and reserve bounded capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-submit"},{"id":"Libtmux_eio.Client.subscribe","publicId":"Libtmux_eio.Client.subscribe","qualifiedName":"Libtmux_eio.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire verified coverage through one shared lane per session; choose the least observed session ID unless supplied. A client-owned reader delivers future bytes without application callbacks. Default queue bounds are 1 MiB/1024 events; max 16 subscribers and eight total client lanes, sharing the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap then End. Data starts after admission's marker, with no snapshot/history barrier, automatic reconnect or silent cursor reuse.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-subscribe"},{"id":"Libtmux_eio.Client.swap_panes","publicId":"Libtmux_eio.Client.swap_panes","qualifiedName":"Libtmux_eio.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-swap_panes"},{"id":"Libtmux_eio.Client.switch_client_at","publicId":"Libtmux_eio.Client.switch_client_at","qualifiedName":"Libtmux_eio.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-switch_client_at"},{"id":"Libtmux_eio.Client.t","publicId":"Libtmux_eio.Client.t","qualifiedName":"Libtmux_eio.Client.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-client-t"},{"id":"Libtmux_eio.Client.unlink_window_at","publicId":"Libtmux_eio.Client.unlink_window_at","qualifiedName":"Libtmux_eio.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unlink_window_at"},{"id":"Libtmux_eio.Client.unset_environment","publicId":"Libtmux_eio.Client.unset_environment","qualifiedName":"Libtmux_eio.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_environment"},{"id":"Libtmux_eio.Client.unset_option","publicId":"Libtmux_eio.Client.unset_option","qualifiedName":"Libtmux_eio.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_option"},{"id":"Libtmux_eio.Client.version","publicId":"Libtmux_eio.Client.version","qualifiedName":"Libtmux_eio.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":132,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"eio/libtmux_eio.mli","line":132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_eio-client-version"},{"id":"Libtmux_eio.Client.wait_for","publicId":"Libtmux_eio.Client.wait_for","qualifiedName":"Libtmux_eio.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for"},{"id":"Libtmux_eio.Client.wait_for_text","publicId":"Libtmux_eio.Client.wait_for_text","qualifiedName":"Libtmux_eio.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. No history/barrier guarantee. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Subscribe and capture the screen immediately, then recapture on output. Membership/overflow gaps establish fresh coverage in the same binding. Maximum pattern: 64 KiB. Return captured rendered text containing it; transient text may be missed. Deadlines are checked between bounded acquisitions, whose I/O retains the client exchange timeout. Cancellation propagates and releases the subscription. No history/barrier guarantee."},"signatures":[{"raw":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for_text"},{"id":"Libtmux_eio.Client.zoom_pane","publicId":"Libtmux_eio.Client.zoom_pane","qualifiedName":"Libtmux_eio.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":539,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":539,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-zoom_pane"},{"id":"Libtmux_eio.Operation","publicId":"Libtmux_eio.Operation","qualifiedName":"Libtmux_eio.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":45,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** Read without I/O, including after client closure. Owning domain only. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove unsent work. A written request remains owned and drained by the\n client. *)\n\n val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result\n (** Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":45,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_eio-operation"},{"id":"Libtmux_eio.Operation.await_stage","publicId":"Libtmux_eio.Operation.await_stage","qualifiedName":"Libtmux_eio.Operation.await_stage","name":"await_stage","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n "],"declarations":[{"kind":"function","text":"val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Wait for the named stage or a terminal state. Acknowledgement does not establish completion. Cancelling this observer leaves the operation alone."},"signatures":[{"raw":"val await_stage :\n 'a t -> [ `Acknowledged | `Written ] -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"[ `Acknowledged | `Written ]"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-await_stage"},{"id":"Libtmux_eio.Operation.cancel","publicId":"Libtmux_eio.Operation.cancel","qualifiedName":"Libtmux_eio.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove unsent work. A written request remains owned and drained by the\n client. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Remove unsent work. A written request remains owned and drained by the client."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-cancel"},{"id":"Libtmux_eio.Operation.cleanup_receipt","publicId":"Libtmux_eio.Operation.cleanup_receipt","qualifiedName":"Libtmux_eio.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":48,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"eio/libtmux_eio.mli","line":48,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n}","params":[]}],"slug":"libtmux_eio-operation-cleanup_receipt"},{"id":"Libtmux_eio.Operation.cleanup_receipt.cause","publicId":"Libtmux_eio.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"eio/libtmux_eio.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_eio.Operation.cause","slug":"libtmux_eio-operation-cleanup_receipt-cause"},{"id":"Libtmux_eio.Operation.cleanup_receipt.created","publicId":"Libtmux_eio.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"eio/libtmux_eio.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_eio.Operation.created","slug":"libtmux_eio-operation-cleanup_receipt-created"},{"id":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"eio/libtmux_eio.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_eio.Operation.owned_buffers","slug":"libtmux_eio-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_eio.Operation.id","publicId":"Libtmux_eio.Operation.id","qualifiedName":"Libtmux_eio.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"eio/libtmux_eio.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_eio-operation-id"},{"id":"Libtmux_eio.Operation.inspect","publicId":"Libtmux_eio.Operation.inspect","qualifiedName":"Libtmux_eio.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read without I/O, including after client closure. Owning domain only. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Read without I/O, including after client closure. Owning domain only."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-inspect"},{"id":"Libtmux_eio.Operation.state","publicId":"Libtmux_eio.Operation.state","qualifiedName":"Libtmux_eio.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a state =\n Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","params":[]}],"slug":"libtmux_eio-operation-state"},{"id":"Libtmux_eio.Operation.state.Acknowledged","publicId":"Libtmux_eio.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Acknowledged","slug":"libtmux_eio-operation-state-acknowledged"},{"id":"Libtmux_eio.Operation.state.Finished","publicId":"Libtmux_eio.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Finished","slug":"libtmux_eio-operation-state-finished"},{"id":"Libtmux_eio.Operation.state.Not_started","publicId":"Libtmux_eio.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Not_started","slug":"libtmux_eio-operation-state-not_started"},{"id":"Libtmux_eio.Operation.state.Outcome_unknown","publicId":"Libtmux_eio.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Outcome_unknown","slug":"libtmux_eio-operation-state-outcome_unknown"},{"id":"Libtmux_eio.Operation.state.Queued","publicId":"Libtmux_eio.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"eio/libtmux_eio.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Queued","slug":"libtmux_eio-operation-state-queued"},{"id":"Libtmux_eio.Operation.state.Written","publicId":"Libtmux_eio.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Written","slug":"libtmux_eio-operation-state-written"},{"id":"Libtmux_eio.Operation.t","publicId":"Libtmux_eio.Operation.t","qualifiedName":"Libtmux_eio.Operation.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":46,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"eio/libtmux_eio.mli","line":46,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-operation-t"},{"id":"Libtmux_eio.Rendered","publicId":"Libtmux_eio.Rendered","qualifiedName":"Libtmux_eio.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio","exportedFrom":"Libtmux.Captured_text","slug":"libtmux_eio-rendered"},{"id":"Libtmux_eio.Subscription","publicId":"Libtmux_eio.Subscription","qualifiedName":"Libtmux_eio.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O, on the owning domain. *)\n\n val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Discard pending data and retain End Cancelled. Borrowed clients and the\n daemon remain alive. *)\n\n val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_eio-subscription"},{"id":"Libtmux_eio.Subscription.close","publicId":"Libtmux_eio.Subscription.close","qualifiedName":"Libtmux_eio.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Discard pending data and retain End Cancelled. Borrowed clients and the\n daemon remain alive. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Discard pending data and retain End Cancelled. Borrowed clients and the daemon remain alive."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-close"},{"id":"Libtmux_eio.Subscription.next","publicId":"Libtmux_eio.Subscription.next","qualifiedName":"Libtmux_eio.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":88,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. "],"declarations":[{"kind":"function","text":"val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":88,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Await one event, defaulting to a one-second deadline. `None` follows a consumed End. A deadline keeps the subscription active. Eio cancellation closes it, releases its lane when unused, and propagates."},"signatures":[{"raw":"val next :\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-next"},{"id":"Libtmux_eio.Subscription.poll","publicId":"Libtmux_eio.Subscription.poll","qualifiedName":"Libtmux_eio.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":85,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove a queued event without I/O, on the owning domain. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":85,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Remove a queued event without I/O, on the owning domain."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-poll"},{"id":"Libtmux_eio.Subscription.t","publicId":"Libtmux_eio.Subscription.t","qualifiedName":"Libtmux_eio.Subscription.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-subscription-t"},{"id":"Libtmux_eio.Subscription.wait_for_bytes","publicId":"Libtmux_eio.Subscription.wait_for_bytes","qualifiedName":"Libtmux_eio.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Consume future observed bytes through a match, with a maximum 64 KiB nonempty pattern. Match across Data boundaries and return its end cursor. Gaps end matching. This searches neither rendered text nor history. A deadline leaves the subscription active; cancellation closes it.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_eio-subscription-wait_for_bytes"},{"id":"Libtmux_eio.Terminal","publicId":"Libtmux_eio.Terminal","qualifiedName":"Libtmux_eio.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_eio-terminal"},{"id":"Libtmux_eio.Terminal.attach_current","publicId":"Libtmux_eio.Terminal.attach_current","qualifiedName":"Libtmux_eio.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Terminal","doc":{"summary":"Run an interactive terminal client until exit, using the application's process manager and standard streams unless explicit flows are supplied. `stdin` must be backed by a terminal descriptor; a pipe-backed flow is rejected by tmux. Select the exact ID on the daemon currently listening at `endpoint`, without a captured target, binding, retry or daemon startup.","body":"Environment updates and read-only mode default to false. Clear inherited `TMUX` and `TMUX_PANE`. Cancellation propagates after terminating and reaping this client; it does not stop the daemon. Success proves terminal client exit. Diagnostics go to `stderr`; borrowed flows stay open."},"signatures":[{"raw":"val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:[> Eio.Flow.source_ty ] Eio.Flow.source ->\n ?stdout:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n ?stderr:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"[> Eio.Flow.source_ty ] Eio.Flow.source","optional":true,"keywordOnly":true},{"name":"stdout","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"stderr","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-terminal-attach_current"},{"id":"Libtmux_eio.Workspace","publicId":"Libtmux_eio.Workspace","qualifiedName":"Libtmux_eio.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":567,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Apply workspace plans through Eio while retaining journals across caller\n cancellation. Handles belong to the creating domain; the application owns\n the scheduler and switch. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. *)\n\n val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. *)\n\n val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Read a journal copy without I/O, including any late retained outcome. *)\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":567,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio","doc":{"summary":"Apply workspace plans through Eio while retaining journals across caller cancellation. Handles belong to the creating domain; the application owns the scheduler and switch."},"slug":"libtmux_eio-workspace"},{"id":"Libtmux_eio.Workspace.await","publicId":"Libtmux_eio.Workspace.await","qualifiedName":"Libtmux_eio.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. "],"declarations":[{"kind":"function","text":"val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Apply once. Expected failures return a retained journal. Eio cancellation propagates after progress is recorded and at most 500 ms of protected compensation. Admitted commands can still complete under client ownership; inspect the receipt before attempting manual recovery."},"signatures":[{"raw":"val await :\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-await"},{"id":"Libtmux_eio.Workspace.client","publicId":"Libtmux_eio.Workspace.client","qualifiedName":"Libtmux_eio.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_eio-workspace-client"},{"id":"Libtmux_eio.Workspace.close","publicId":"Libtmux_eio.Workspace.close","qualifiedName":"Libtmux_eio.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Closing is idempotent; completed journals remain readable."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-close"},{"id":"Libtmux_eio.Workspace.inspect","publicId":"Libtmux_eio.Workspace.inspect","qualifiedName":"Libtmux_eio.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read a journal copy without I/O, including any late retained outcome. "],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Read a journal copy without I/O, including any late retained outcome."},"signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-inspect"},{"id":"Libtmux_eio.Workspace.submit","publicId":"Libtmux_eio.Workspace.submit","qualifiedName":"Libtmux_eio.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":570,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":570,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a generation-bound handle without I/O. The supplied client is borrowed; closing the handle leaves it open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit"},{"id":"Libtmux_eio.Workspace.submit_bootstrap","publicId":"Libtmux_eio.Workspace.submit_bootstrap","qualifiedName":"Libtmux_eio.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a missing-endpoint execution without I/O. Await starts control new-session and binds that same connection. The handle owns its new client within `sw`; it never owns the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit_bootstrap"},{"id":"Libtmux_eio.Workspace.t","publicId":"Libtmux_eio.Workspace.t","qualifiedName":"Libtmux_eio.Workspace.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_eio.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-workspace-t"},{"id":"Libtmux_json","publicId":"Libtmux_json","qualifiedName":"Libtmux_json","name":"Libtmux_json","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Pure, bounded query and workspace JSON interchange.\n\n {!Expr} validates portable queries and {!Workspace} decodes configurations\n and encodes plans and receipts. Both return {!Decode_error.t} on invalid\n data. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} and\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for complete programs. "],"declarations":[{"kind":"module","text":"","source":{"file":"json/libtmux_json.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"doc":{"summary":"Pure, bounded query and workspace JSON interchange.","body":"{!Expr} validates portable queries and {!Workspace} decodes configurations and encodes plans and receipts. Both return {!Decode_error.t} on invalid data. See the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) and [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for complete programs."},"slug":"libtmux_json"},{"id":"Libtmux_json.Decode_error","publicId":"Libtmux_json.Decode_error","qualifiedName":"Libtmux_json.Decode_error","name":"Decode_error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Decode_error : sig\n type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported\n\n type t = { pointer : string; category : category; message : string }\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"json/libtmux_json.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json","slug":"libtmux_json-decode_error"},{"id":"Libtmux_json.Decode_error.category","publicId":"Libtmux_json.Decode_error.category","qualifiedName":"Libtmux_json.Decode_error.category","name":"category","kind":"enum","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":12,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","source":{"file":"json/libtmux_json.mli","line":12,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type category =\n Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","params":[]}],"slug":"libtmux_json-decode_error-category"},{"id":"Libtmux_json.Decode_error.category.Limit","publicId":"Libtmux_json.Decode_error.category.Limit","name":"Limit","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Limit","source":{"file":"json/libtmux_json.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Limit","slug":"libtmux_json-decode_error-category-limit"},{"id":"Libtmux_json.Decode_error.category.Out_of_range","publicId":"Libtmux_json.Decode_error.category.Out_of_range","name":"Out_of_range","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Out_of_range","source":{"file":"json/libtmux_json.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Out_of_range","slug":"libtmux_json-decode_error-category-out_of_range"},{"id":"Libtmux_json.Decode_error.category.Syntax","publicId":"Libtmux_json.Decode_error.category.Syntax","name":"Syntax","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Syntax","source":{"file":"json/libtmux_json.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Syntax","slug":"libtmux_json-decode_error-category-syntax"},{"id":"Libtmux_json.Decode_error.category.Unknown","publicId":"Libtmux_json.Decode_error.category.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"json/libtmux_json.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unknown","slug":"libtmux_json-decode_error-category-unknown"},{"id":"Libtmux_json.Decode_error.category.Unsupported","publicId":"Libtmux_json.Decode_error.category.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"json/libtmux_json.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unsupported","slug":"libtmux_json-decode_error-category-unsupported"},{"id":"Libtmux_json.Decode_error.category.Wrong_type","publicId":"Libtmux_json.Decode_error.category.Wrong_type","name":"Wrong_type","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_type","source":{"file":"json/libtmux_json.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Wrong_type","slug":"libtmux_json-decode_error-category-wrong_type"},{"id":"Libtmux_json.Decode_error.pp","publicId":"Libtmux_json.Decode_error.pp","qualifiedName":"Libtmux_json.Decode_error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"json/libtmux_json.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux_json-decode_error-pp"},{"id":"Libtmux_json.Decode_error.t","publicId":"Libtmux_json.Decode_error.t","qualifiedName":"Libtmux_json.Decode_error.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = { pointer : string; category : category; message : string }","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type t = { pointer : string; category : category; message : string; }","params":[]}],"slug":"libtmux_json-decode_error-t"},{"id":"Libtmux_json.Decode_error.t.category","publicId":"Libtmux_json.Decode_error.t.category","name":"category","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"category : category;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.t","type":"category","qualifiedName":"Libtmux_json.Decode_error.category","slug":"libtmux_json-decode_error-t-category"},{"id":"Libtmux_json.Decode_error.t.message","publicId":"Libtmux_json.Decode_error.t.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.message","slug":"libtmux_json-decode_error-t-message"},{"id":"Libtmux_json.Decode_error.t.pointer","publicId":"Libtmux_json.Decode_error.t.pointer","name":"pointer","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pointer : string;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.pointer","slug":"libtmux_json-decode_error-t-pointer"},{"id":"Libtmux_json.Error","publicId":"Libtmux_json.Error","qualifiedName":"Libtmux_json.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Structured native failures for JSON consumers. "],"declarations":[{"kind":"module","text":"module Error : sig\n val encode : Libtmux.Error.t -> Yojson.Safe.t\n (** Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json","doc":{"summary":"Structured native failures for JSON consumers."},"slug":"libtmux_json-error"},{"id":"Libtmux_json.Error.encode","publicId":"Libtmux_json.Error.encode","qualifiedName":"Libtmux_json.Error.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. "],"declarations":[{"kind":"function","text":"val encode : Libtmux.Error.t -> Yojson.Safe.t","source":{"file":"json/libtmux_json.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Error","doc":{"summary":"Return a stable `code`, bounded `message`, `message_truncated` flag and relevant operation, resource or target metadata. Messages and text attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex representation described by {!Workspace.encode_receipt}. No I/O."},"signatures":[{"raw":"val encode : Libtmux.Error.t -> Yojson.Safe.t","params":[{"name":"arg1","type":"Libtmux.Error.t"}],"returns":"Yojson.Safe.t"}],"slug":"libtmux_json-error-encode"},{"id":"Libtmux_json.Expr","publicId":"Libtmux_json.Expr","qualifiedName":"Libtmux_json.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Expr : sig\n val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result\n (** Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. *)\n\n val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result\n (** Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. *)\n\n val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result\n\n val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result\n (** Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json","slug":"libtmux_json-expr"},{"id":"Libtmux_json.Expr.decode","publicId":"Libtmux_json.Expr.decode","qualifiedName":"Libtmux_json.Expr.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. "],"declarations":[{"kind":"function","text":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Validate the supplied tree, including duplicate properties, before typed construction. Only the shared scalar pane registry and Boolean composition are accepted. Java regex, relationships and native extension fields return `Unsupported`. Numbers must fit signed 32-bit integers."},"signatures":[{"raw":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"Yojson.Safe.t"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-decode"},{"id":"Libtmux_json.Expr.encode","publicId":"Libtmux_json.Expr.encode","qualifiedName":"Libtmux_json.Expr.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Expr","signatures":[{"raw":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-encode"},{"id":"Libtmux_json.Expr.of_string","publicId":"Libtmux_json.Expr.of_string","qualifiedName":"Libtmux_json.Expr.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. "],"declarations":[{"kind":"function","text":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at most 256 values. Errors include a JSON pointer, never the whole input."},"signatures":[{"raw":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"string"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-of_string"},{"id":"Libtmux_json.Expr.to_string","publicId":"Libtmux_json.Expr.to_string","qualifiedName":"Libtmux_json.Expr.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. "],"declarations":[{"kind":"function","text":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Apply the same bounds and subset when encoding. Text with invalid UTF-8 has no representation in this schema. These functions perform no I/O."},"signatures":[{"raw":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(string, Decode_error.t) result"}],"slug":"libtmux_json-expr-to_string"},{"id":"Libtmux_json.Workspace","publicId":"Libtmux_json.Workspace","qualifiedName":"Libtmux_json.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Validate workspace documents and describe plans and retained execution.\n Preview output never supplies executable targets. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n\n val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n (** Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. *)\n\n val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. *)\n\n val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. *)\nend","source":{"file":"json/libtmux_json.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json","doc":{"summary":"Validate workspace documents and describe plans and retained execution. Preview output never supplies executable targets."},"slug":"libtmux_json-workspace"},{"id":"Libtmux_json.Workspace.decode","publicId":"Libtmux_json.Workspace.decode","qualifiedName":"Libtmux_json.Workspace.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Workspace","signatures":[{"raw":"val decode :\n directory:string ->\n Yojson.Safe.t -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"Yojson.Safe.t"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-decode"},{"id":"Libtmux_json.Workspace.encode_plan","publicId":"Libtmux_json.Workspace.encode_plan","qualifiedName":"Libtmux_json.Workspace.encode_plan","name":"encode_plan","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. "],"declarations":[{"kind":"function","text":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-plan/1` without I/O. The advisory preview contains command argv, cwd and environment names, excluding environment values, option values and startup text. It is not an execution script."},"signatures":[{"raw":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_plan"},{"id":"Libtmux_json.Workspace.encode_receipt","publicId":"Libtmux_json.Workspace.encode_receipt","qualifiedName":"Libtmux_json.Workspace.encode_receipt","name":"encode_receipt","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. "],"declarations":[{"kind":"function","text":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-receipt/1` with ordered steps, outcome index lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic messages are limited to 4096 bytes with an explicit truncation flag; command payloads are omitted.","body":"Both output schemas have a 4 MiB bound. Invalid UTF-8 values use `{\"encoding\":\"hex\",\"bytes\":\"...\"}` instead of losing bytes. Imported IDs and hints never establish a connection binding."},"signatures":[{"raw":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Execution.receipt"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_receipt"},{"id":"Libtmux_json.Workspace.of_string","publicId":"Libtmux_json.Workspace.of_string","qualifiedName":"Libtmux_json.Workspace.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":42,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. "],"declarations":[{"kind":"function","text":"val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":42,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Decode `libtmux.workspace/1` with the query codec's 64 KiB, UTF-8 and 32-level JSON bounds. Reject duplicate and unknown properties, invalid argv/shell combinations and configuration errors. `directory` is the absolute document directory; these functions perform no filesystem I/O."},"signatures":[{"raw":"val of_string :\n directory:string ->\n string -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-of_string"},{"id":"Libtmux_unix","publicId":"Libtmux_unix","qualifiedName":"Libtmux_unix","name":"Libtmux_unix","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Blocking Linux tmux clients with explicit scoped cancellation.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md}control\n guide} explains binding, completion and recovery. "],"declarations":[{"kind":"module","text":"","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"doc":{"summary":"Blocking Linux tmux clients with explicit scoped cancellation.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [control guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md) explains binding, completion and recovery."},"slug":"libtmux_unix"},{"id":"Libtmux_unix.Cancellation","publicId":"Libtmux_unix.Cancellation","qualifiedName":"Libtmux_unix.Cancellation","name":"Cancellation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cancellation : sig\n type t\n\n exception Cancelled\n\n val with_ : (t -> 'a) -> 'a\n (** Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. *)\n\n val cancel : t -> unit\n (** Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","slug":"libtmux_unix-cancellation"},{"id":"Libtmux_unix.Cancellation.Cancelled","publicId":"Libtmux_unix.Cancellation.Cancelled","qualifiedName":"Libtmux_unix.Cancellation.Cancelled","name":"Cancelled","kind":"exception","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"exception","text":"exception Cancelled","source":{"file":"unix/libtmux_unix.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type exn += Cancelled","params":[]}],"slug":"libtmux_unix-cancellation-cancelled"},{"id":"Libtmux_unix.Cancellation.cancel","publicId":"Libtmux_unix.Cancellation.cancel","qualifiedName":"Libtmux_unix.Cancellation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. "],"declarations":[{"kind":"function","text":"val cancel : t -> unit","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Wake waiters. Safe from another domain or systhread, but not from a signal handler. Repeated calls and calls after scope exit have no effect."},"signatures":[{"raw":"val cancel : t -> unit","params":[{"name":"arg1","type":"t"}],"returns":"unit"}],"slug":"libtmux_unix-cancellation-cancel"},{"id":"Libtmux_unix.Cancellation.t","publicId":"Libtmux_unix.Cancellation.t","qualifiedName":"Libtmux_unix.Cancellation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-cancellation-t"},{"id":"Libtmux_unix.Cancellation.with_","publicId":"Libtmux_unix.Cancellation.with_","qualifiedName":"Libtmux_unix.Cancellation.with_","name":"with_","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. "],"declarations":[{"kind":"function","text":"val with_ : (t -> 'a) -> 'a","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Own a cancellation token for the callback's lifetime. Leaving the scope cancels outstanding waiters and releases its descriptors after they finish. An escaped token is cancelled and cannot be reused."},"signatures":[{"raw":"val with_ : (t -> 'a) -> 'a","params":[{"name":"arg1","type":"t -> 'a"}],"returns":"'a"}],"slug":"libtmux_unix-cancellation-with_"},{"id":"Libtmux_unix.Client","publicId":"Libtmux_unix.Client","qualifiedName":"Libtmux_unix.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. *)\n\n val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. No capture/stream barrier exists.\n *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve queue capacity without I/O. *)\n\n val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O must also finish. No background\n scheduler or worker is started. *)\n\n val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result\n (** Submit and await. Use the two calls separately to retain an operation\n handle. *)\n\n val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. *)\n\n val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Close owned control clients and descriptors. Idempotent on the owning\n domain. tmux's [exit-unattached] and [exit-empty] policies can end the\n daemon after its clients or sessions disappear. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_unix-client"},{"id":"Libtmux_unix.Client.await","publicId":"Libtmux_unix.Client.await","qualifiedName":"Libtmux_unix.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O must also finish. No background\n scheduler or worker is started. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Pump admitted work until this operation is finished. Only one blocking caller may own the client at a time. Cancellation removes queued work or drains admitted work before raising `Cancellation.Cancelled`. The handle retains its outcome. Draining has at most one exchange timeout from detection; local scratch filesystem I/O must also finish. No background scheduler or worker is started."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-await"},{"id":"Libtmux_unix.Client.break_pane","publicId":"Libtmux_unix.Client.break_pane","qualifiedName":"Libtmux_unix.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-break_pane"},{"id":"Libtmux_unix.Client.capture","publicId":"Libtmux_unix.Client.capture","qualifiedName":"Libtmux_unix.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. "],"declarations":[{"kind":"function","text":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a complete graph over a recorded interval, with a fixed number of listing commands. Races fail validation. Access to returned values performs no I/O, including after closing the client.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture"},{"id":"Libtmux_unix.Client.capture_environment","publicId":"Libtmux_unix.Client.capture_environment","qualifiedName":"Libtmux_unix.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":308,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":308,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_environment"},{"id":"Libtmux_unix.Client.capture_hooks","publicId":"Libtmux_unix.Client.capture_hooks","qualifiedName":"Libtmux_unix.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":405,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":405,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_hooks"},{"id":"Libtmux_unix.Client.capture_options","publicId":"Libtmux_unix.Client.capture_options","qualifiedName":"Libtmux_unix.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":348,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":348,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_options"},{"id":"Libtmux_unix.Client.capture_text","publicId":"Libtmux_unix.Client.capture_text","qualifiedName":"Libtmux_unix.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture ordinary rendered screen rows, inclusively, via an owned paste buffer and private file. Reject applicable capture/save hooks. The scratch directory defaults to `/tmp` and must be local storage shared with the daemon. Pending and alternate-screen byte modes are unsupported. This observes an interval and establishes no stream continuity barrier."},"signatures":[{"raw":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_text"},{"id":"Libtmux_unix.Client.clear_history","publicId":"Libtmux_unix.Client.clear_history","qualifiedName":"Libtmux_unix.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":677,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":677,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_history"},{"id":"Libtmux_unix.Client.clear_option_array","publicId":"Libtmux_unix.Client.clear_option_array","qualifiedName":"Libtmux_unix.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_option_array"},{"id":"Libtmux_unix.Client.close","publicId":"Libtmux_unix.Client.close","qualifiedName":"Libtmux_unix.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":687,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Close owned control clients and descriptors. Idempotent on the owning\n domain. tmux's [exit-unattached] and [exit-empty] policies can end the\n daemon after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":687,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Close owned control clients and descriptors. Idempotent on the owning domain. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-close"},{"id":"Libtmux_unix.Client.connect","publicId":"Libtmux_unix.Client.connect","qualifiedName":"Libtmux_unix.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":132,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. "],"declarations":[{"kind":"function","text":"val connect :\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Attach to an existing local daemon with at least one session. The caller and daemon must share the PID namespace and filesystem. A local socket pathname alone does not establish these preconditions. `timeout` is the maximum seconds per control exchange, defaulting to one second. Requires Linux pidfd support. The client belongs to the current domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?binary:string ->\n ?timeout:float -> Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-connect"},{"id":"Libtmux_unix.Client.create_session","publicId":"Libtmux_unix.Client.create_session","qualifiedName":"Libtmux_unix.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":463,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":463,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_session"},{"id":"Libtmux_unix.Client.create_window","publicId":"Libtmux_unix.Client.create_window","qualifiedName":"Libtmux_unix.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_create_window.ml","intro":"Create a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"created: logs\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_window"},{"id":"Libtmux_unix.Client.cycle_layout","publicId":"Libtmux_unix.Client.cycle_layout","qualifiedName":"Libtmux_unix.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-cycle_layout"},{"id":"Libtmux_unix.Client.kill_pane","publicId":"Libtmux_unix.Client.kill_pane","qualifiedName":"Libtmux_unix.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_pane"},{"id":"Libtmux_unix.Client.kill_session","publicId":"Libtmux_unix.Client.kill_session","qualifiedName":"Libtmux_unix.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":509,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":509,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_session"},{"id":"Libtmux_unix.Client.kill_window","publicId":"Libtmux_unix.Client.kill_window","qualifiedName":"Libtmux_unix.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":517,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":517,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_window"},{"id":"Libtmux_unix.Client.link_window","publicId":"Libtmux_unix.Client.link_window","qualifiedName":"Libtmux_unix.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-link_window"},{"id":"Libtmux_unix.Client.move_pane","publicId":"Libtmux_unix.Client.move_pane","qualifiedName":"Libtmux_unix.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_pane"},{"id":"Libtmux_unix.Client.move_window_at","publicId":"Libtmux_unix.Client.move_window_at","qualifiedName":"Libtmux_unix.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_move_window.ml","intro":"Move a window between sessions. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"moved: build at 7\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_window_at"},{"id":"Libtmux_unix.Client.read_hook","publicId":"Libtmux_unix.Client.read_hook","qualifiedName":"Libtmux_unix.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":413,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":413,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_hook"},{"id":"Libtmux_unix.Client.read_option","publicId":"Libtmux_unix.Client.read_option","qualifiedName":"Libtmux_unix.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":360,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":360,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_option"},{"id":"Libtmux_unix.Client.refresh_client_at","publicId":"Libtmux_unix.Client.refresh_client_at","qualifiedName":"Libtmux_unix.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":265,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":265,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-refresh_client_at"},{"id":"Libtmux_unix.Client.remove_environment","publicId":"Libtmux_unix.Client.remove_environment","qualifiedName":"Libtmux_unix.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_environment"},{"id":"Libtmux_unix.Client.remove_hook","publicId":"Libtmux_unix.Client.remove_hook","qualifiedName":"Libtmux_unix.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_hook"},{"id":"Libtmux_unix.Client.rename_session","publicId":"Libtmux_unix.Client.rename_session","qualifiedName":"Libtmux_unix.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_session"},{"id":"Libtmux_unix.Client.rename_window","publicId":"Libtmux_unix.Client.rename_window","qualifiedName":"Libtmux_unix.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_rename_window.ml","intro":"Rename a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"renamed: editor-main\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val rename_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_window"},{"id":"Libtmux_unix.Client.request_detach_client_at","publicId":"Libtmux_unix.Client.request_detach_client_at","qualifiedName":"Libtmux_unix.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":256,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":256,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-request_detach_client_at"},{"id":"Libtmux_unix.Client.resize_control_client_at","publicId":"Libtmux_unix.Client.resize_control_client_at","qualifiedName":"Libtmux_unix.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_control_client_at"},{"id":"Libtmux_unix.Client.resize_pane","publicId":"Libtmux_unix.Client.resize_pane","qualifiedName":"Libtmux_unix.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_pane"},{"id":"Libtmux_unix.Client.resize_window","publicId":"Libtmux_unix.Client.resize_window","qualifiedName":"Libtmux_unix.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_window"},{"id":"Libtmux_unix.Client.respawn_pane","publicId":"Libtmux_unix.Client.respawn_pane","qualifiedName":"Libtmux_unix.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-respawn_pane"},{"id":"Libtmux_unix.Client.rotate_panes","publicId":"Libtmux_unix.Client.rotate_panes","qualifiedName":"Libtmux_unix.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":650,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":650,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rotate_panes"},{"id":"Libtmux_unix.Client.run","publicId":"Libtmux_unix.Client.run","qualifiedName":"Libtmux_unix.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Submit and await. Use the two calls separately to retain an operation\n handle. "],"declarations":[{"kind":"function","text":"val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Submit and await. Use the two calls separately to retain an operation handle."},"signatures":[{"raw":"val run :\n ?cancel:Cancellation.t ->\n t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run"},{"id":"Libtmux_unix.Client.run_hook","publicId":"Libtmux_unix.Client.run_hook","qualifiedName":"Libtmux_unix.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run_hook"},{"id":"Libtmux_unix.Client.select_layout","publicId":"Libtmux_unix.Client.select_layout","qualifiedName":"Libtmux_unix.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_layout.ml","intro":"Apply a layout. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"layout: 3 horizontal panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_layout"},{"id":"Libtmux_unix.Client.select_pane","publicId":"Libtmux_unix.Client.select_pane","qualifiedName":"Libtmux_unix.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":573,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":573,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_pane"},{"id":"Libtmux_unix.Client.select_window_at","publicId":"Libtmux_unix.Client.select_window_at","qualifiedName":"Libtmux_unix.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":533,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":533,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_window_at"},{"id":"Libtmux_unix.Client.send_keys","publicId":"Libtmux_unix.Client.send_keys","qualifiedName":"Libtmux_unix.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":290,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":290,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_keys"},{"id":"Libtmux_unix.Client.send_text","publicId":"Libtmux_unix.Client.send_text","qualifiedName":"Libtmux_unix.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/a111168bceee2085f0cee5efe784d8f446011ba1/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_text :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_text"},{"id":"Libtmux_unix.Client.set_environment","publicId":"Libtmux_unix.Client.set_environment","qualifiedName":"Libtmux_unix.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_environment"},{"id":"Libtmux_unix.Client.set_hook","publicId":"Libtmux_unix.Client.set_hook","qualifiedName":"Libtmux_unix.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_hook"},{"id":"Libtmux_unix.Client.set_option","publicId":"Libtmux_unix.Client.set_option","qualifiedName":"Libtmux_unix.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_option"},{"id":"Libtmux_unix.Client.set_pane_title","publicId":"Libtmux_unix.Client.set_pane_title","qualifiedName":"Libtmux_unix.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_pane_title"},{"id":"Libtmux_unix.Client.signal","publicId":"Libtmux_unix.Client.signal","qualifiedName":"Libtmux_unix.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":303,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":303,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-signal"},{"id":"Libtmux_unix.Client.source","publicId":"Libtmux_unix.Client.source","qualifiedName":"Libtmux_unix.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"unix/libtmux_unix.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_unix-client-source"},{"id":"Libtmux_unix.Client.split_pane","publicId":"Libtmux_unix.Client.split_pane","qualifiedName":"Libtmux_unix.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-split_pane"},{"id":"Libtmux_unix.Client.submit","publicId":"Libtmux_unix.Client.submit","qualifiedName":"Libtmux_unix.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Validate and reserve queue capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate and reserve queue capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-submit"},{"id":"Libtmux_unix.Client.subscribe","publicId":"Libtmux_unix.Client.subscribe","qualifiedName":"Libtmux_unix.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire verified coverage of the pane's observed session/window. Choose the least session ID unless explicitly supplied. Reuse one lane per session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16 subscribers and eight client lanes including commands. Reserve payload against the shared 32 MiB budget before admission.","body":"Data starts after admission's marker. Layout/membership changes end continuity conservatively. Overflow emits Gap then End, without blocking another subscriber. Blocking delivery advances during Subscription.next. There is no snapshot/history barrier or automatic recovery."},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-subscribe"},{"id":"Libtmux_unix.Client.swap_panes","publicId":"Libtmux_unix.Client.swap_panes","qualifiedName":"Libtmux_unix.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-swap_panes"},{"id":"Libtmux_unix.Client.switch_client_at","publicId":"Libtmux_unix.Client.switch_client_at","qualifiedName":"Libtmux_unix.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-switch_client_at"},{"id":"Libtmux_unix.Client.t","publicId":"Libtmux_unix.Client.t","qualifiedName":"Libtmux_unix.Client.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-client-t"},{"id":"Libtmux_unix.Client.unlink_window_at","publicId":"Libtmux_unix.Client.unlink_window_at","qualifiedName":"Libtmux_unix.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unlink_window_at"},{"id":"Libtmux_unix.Client.unset_environment","publicId":"Libtmux_unix.Client.unset_environment","qualifiedName":"Libtmux_unix.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":331,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":331,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_environment"},{"id":"Libtmux_unix.Client.unset_option","publicId":"Libtmux_unix.Client.unset_option","qualifiedName":"Libtmux_unix.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_option"},{"id":"Libtmux_unix.Client.version","publicId":"Libtmux_unix.Client.version","qualifiedName":"Libtmux_unix.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"unix/libtmux_unix.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_unix-client-version"},{"id":"Libtmux_unix.Client.wait_for","publicId":"Libtmux_unix.Client.wait_for","qualifiedName":"Libtmux_unix.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":299,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for"},{"id":"Libtmux_unix.Client.wait_for_text","publicId":"Libtmux_unix.Client.wait_for_text","qualifiedName":"Libtmux_unix.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. No capture/stream barrier exists.\n "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Subscribe, capture the ordinary screen immediately, and recapture after output. Membership/overflow gaps trigger explicit fresh capture and new coverage in the same binding. Maximum pattern: 64 KiB. Success returns a capture that contains the text. Transient text between captures may be missed. Check the deadline between bounded acquisitions; in-flight I/O retains the client's exchange timeout. No capture/stream barrier exists."},"signatures":[{"raw":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for_text"},{"id":"Libtmux_unix.Client.zoom_pane","publicId":"Libtmux_unix.Client.zoom_pane","qualifiedName":"Libtmux_unix.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":659,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":659,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-zoom_pane"},{"id":"Libtmux_unix.Operation","publicId":"Libtmux_unix.Operation","qualifiedName":"Libtmux_unix.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** No I/O. Results remain inspectable after client closure, on the owning\n domain. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_unix-operation"},{"id":"Libtmux_unix.Operation.cancel","publicId":"Libtmux_unix.Operation.cancel","qualifiedName":"Libtmux_unix.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"Remove queued work before it is written. Admitted commands retain their owner and are drained by {!Client.await}; cancellation does not undo effects. Returns `Busy` while another blocking caller owns the client; use a {!Cancellation.t} token to interrupt that caller."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-cancel"},{"id":"Libtmux_unix.Operation.cleanup_receipt","publicId":"Libtmux_unix.Operation.cleanup_receipt","qualifiedName":"Libtmux_unix.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n}","params":[]}],"slug":"libtmux_unix-operation-cleanup_receipt"},{"id":"Libtmux_unix.Operation.cleanup_receipt.cause","publicId":"Libtmux_unix.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"unix/libtmux_unix.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_unix.Operation.cause","slug":"libtmux_unix-operation-cleanup_receipt-cause"},{"id":"Libtmux_unix.Operation.cleanup_receipt.created","publicId":"Libtmux_unix.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"unix/libtmux_unix.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_unix.Operation.created","slug":"libtmux_unix-operation-cleanup_receipt-created"},{"id":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_unix.Operation.owned_buffers","slug":"libtmux_unix-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_unix.Operation.id","publicId":"Libtmux_unix.Operation.id","qualifiedName":"Libtmux_unix.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"unix/libtmux_unix.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_unix-operation-id"},{"id":"Libtmux_unix.Operation.inspect","publicId":"Libtmux_unix.Operation.inspect","qualifiedName":"Libtmux_unix.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" No I/O. Results remain inspectable after client closure, on the owning\n domain. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"No I/O. Results remain inspectable after client closure, on the owning domain."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-inspect"},{"id":"Libtmux_unix.Operation.state","publicId":"Libtmux_unix.Operation.state","qualifiedName":"Libtmux_unix.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a state =\n Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","params":[]}],"slug":"libtmux_unix-operation-state"},{"id":"Libtmux_unix.Operation.state.Acknowledged","publicId":"Libtmux_unix.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"unix/libtmux_unix.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Acknowledged","slug":"libtmux_unix-operation-state-acknowledged"},{"id":"Libtmux_unix.Operation.state.Finished","publicId":"Libtmux_unix.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":77,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":77,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Finished","slug":"libtmux_unix-operation-state-finished"},{"id":"Libtmux_unix.Operation.state.Not_started","publicId":"Libtmux_unix.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"unix/libtmux_unix.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Not_started","slug":"libtmux_unix-operation-state-not_started"},{"id":"Libtmux_unix.Operation.state.Outcome_unknown","publicId":"Libtmux_unix.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":78,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":78,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Outcome_unknown","slug":"libtmux_unix-operation-state-outcome_unknown"},{"id":"Libtmux_unix.Operation.state.Queued","publicId":"Libtmux_unix.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Queued","slug":"libtmux_unix-operation-state-queued"},{"id":"Libtmux_unix.Operation.state.Written","publicId":"Libtmux_unix.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"unix/libtmux_unix.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Written","slug":"libtmux_unix-operation-state-written"},{"id":"Libtmux_unix.Operation.t","publicId":"Libtmux_unix.Operation.t","qualifiedName":"Libtmux_unix.Operation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"unix/libtmux_unix.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-operation-t"},{"id":"Libtmux_unix.Rendered","publicId":"Libtmux_unix.Rendered","qualifiedName":"Libtmux_unix.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Blocking native Linux transport. No Eio scheduler is started. "],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"unix/libtmux_unix.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","doc":{"summary":"Blocking native Linux transport. No Eio scheduler is started."},"exportedFrom":"Libtmux.Captured_text","slug":"libtmux_unix-rendered"},{"id":"Libtmux_unix.Subscription","publicId":"Libtmux_unix.Subscription","qualifiedName":"Libtmux_unix.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. *)\n\n val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Discard pending data and retain End Cancelled. Release an unused lane.\n Does not stop the daemon. *)\n\n val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_unix-subscription"},{"id":"Libtmux_unix.Subscription.close","publicId":"Libtmux_unix.Subscription.close","qualifiedName":"Libtmux_unix.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Discard pending data and retain End Cancelled. Release an unused lane.\n Does not stop the daemon. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Discard pending data and retain End Cancelled. Release an unused lane. Does not stop the daemon."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-close"},{"id":"Libtmux_unix.Subscription.next","publicId":"Libtmux_unix.Subscription.next","qualifiedName":"Libtmux_unix.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. "],"declarations":[{"kind":"function","text":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Pump all subscription lanes until one event is available. Default deadline is one second. `None` follows a consumed End. A deadline keeps the subscription active; cancellation closes it and raises Cancelled."},"signatures":[{"raw":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-next"},{"id":"Libtmux_unix.Subscription.poll","publicId":"Libtmux_unix.Subscription.poll","qualifiedName":"Libtmux_unix.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Remove a queued event without I/O. Owning domain only, including after client closure. `None` means no queued event, not proof of continuity."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-poll"},{"id":"Libtmux_unix.Subscription.t","publicId":"Libtmux_unix.Subscription.t","qualifiedName":"Libtmux_unix.Subscription.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-subscription-t"},{"id":"Libtmux_unix.Subscription.wait_for_bytes","publicId":"Libtmux_unix.Subscription.wait_for_bytes","qualifiedName":"Libtmux_unix.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Consume future bytes until the nonempty pattern matches, including across Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's end within its consumed event. Gaps stop matching; no rendered or earlier output is searched. Timeout leaves the subscription active."},"signatures":[{"raw":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_unix-subscription-wait_for_bytes"},{"id":"Libtmux_unix.Terminal","publicId":"Libtmux_unix.Terminal","qualifiedName":"Libtmux_unix.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises [Cancellation.Cancelled]. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_unix-terminal"},{"id":"Libtmux_unix.Terminal.attach_current","publicId":"Libtmux_unix.Terminal.attach_current","qualifiedName":"Libtmux_unix.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises [Cancellation.Cancelled]. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Terminal","doc":{"summary":"Run an interactive terminal client until it exits. Select the exact session ID on the daemon currently listening at `endpoint`; this is explicitly unbound and accepts no captured target. No retry or daemon startup occurs. A successful result proves client exit, not continued attachment. Diagnostics go to `stderr`.","body":"Descriptors default to the application's standard streams and remain caller-owned. `stdin` must be a terminal. Environment updates and read-only mode are disabled by default; inherited `TMUX` and `TMUX_PANE` are removed. Cancellation terminates and reaps this terminal client, leaves the daemon running, then raises `Cancellation.Cancelled`."},"signatures":[{"raw":"val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stdout","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stderr","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-terminal-attach_current"},{"id":"Libtmux_unix.Workspace","publicId":"Libtmux_unix.Workspace","qualifiedName":"Libtmux_unix.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":696,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Apply validated plans with blocking I/O and scoped cancellation tokens.\n Execution handles retain journals and borrow existing clients; bootstrap\n handles own their newly bound clients without owning the daemon. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. *)\n\n val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. *)\n\n val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":696,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix","doc":{"summary":"Apply validated plans with blocking I/O and scoped cancellation tokens. Execution handles retain journals and borrow existing clients; bootstrap handles own their newly bound clients without owning the daemon."},"slug":"libtmux_unix-workspace"},{"id":"Libtmux_unix.Workspace.await","publicId":"Libtmux_unix.Workspace.await","qualifiedName":"Libtmux_unix.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":713,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":713,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Expected apply failures are retained receipts. Cancellation propagates after recording progress and at most 500 ms of protected compensation."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-await"},{"id":"Libtmux_unix.Workspace.client","publicId":"Libtmux_unix.Workspace.client","qualifiedName":"Libtmux_unix.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"unix/libtmux_unix.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_unix-workspace-client"},{"id":"Libtmux_unix.Workspace.close","publicId":"Libtmux_unix.Workspace.close","qualifiedName":"Libtmux_unix.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Completed journals remain readable after close."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-close"},{"id":"Libtmux_unix.Workspace.inspect","publicId":"Libtmux_unix.Workspace.inspect","qualifiedName":"Libtmux_unix.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-inspect"},{"id":"Libtmux_unix.Workspace.submit","publicId":"Libtmux_unix.Workspace.submit","qualifiedName":"Libtmux_unix.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":699,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":699,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a generation-bound execution handle without I/O. The caller owns the supplied client; closing this handle leaves that client open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit"},{"id":"Libtmux_unix.Workspace.submit_bootstrap","publicId":"Libtmux_unix.Workspace.submit_bootstrap","qualifiedName":"Libtmux_unix.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":704,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":704,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a handle for a missing-endpoint plan. Awaiting it starts control new-session and binds the same connection. The handle owns its new client; it never acquires ownership of the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit_bootstrap"},{"id":"Libtmux_unix.Workspace.t","publicId":"Libtmux_unix.Workspace.t","qualifiedName":"Libtmux_unix.Workspace.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-workspace-t"},{"id":"Libtmux_workspace","publicId":"Libtmux_workspace","qualifiedName":"Libtmux_workspace","name":"Libtmux_workspace","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" {!Config} validates workspace descriptions and {!Plan} previews their\n actions without I/O. {!Execution} delegates effects to an explicit executor\n and retains a recovery journal. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for JSON loading, preview, apply and receipt inspection. "],"declarations":[{"kind":"module","text":"","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"doc":{"summary":"{!Config} validates workspace descriptions and {!Plan} previews their actions without I/O. {!Execution} delegates effects to an explicit executor and retains a recovery journal. See the [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for JSON loading, preview, apply and receipt inspection."},"slug":"libtmux_workspace"},{"id":"Libtmux_workspace.Config","publicId":"Libtmux_workspace.Config","qualifiedName":"Libtmux_workspace.Config","name":"Config","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Validate native workspace values without contacting tmux or reading the\n filesystem. Relative directories resolve against the document directory;\n only declared variables participate in expansion. "],"declarations":[{"kind":"module","text":"module Config : sig\n type error = { path : string; message : string }\n\n val pp_error : Format.formatter -> error -> unit\n\n type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }\n\n type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n\n type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }\n\n type t\n\n val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane\n\n val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window\n (** Builders are unchecked descriptions; {!make} validates the whole document.\n *)\n\n val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result\n (** Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. *)\n\n val session : t -> string\n val windows : t -> window Iarray.t\n val environment : t -> (string * string) list\n val options : t -> setting list\n val dimensions : t -> int * int\nend","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace","doc":{"summary":"Validate native workspace values without contacting tmux or reading the filesystem. Relative directories resolve against the document directory; only declared variables participate in expansion."},"slug":"libtmux_workspace-config"},{"id":"Libtmux_workspace.Config.dimensions","publicId":"Libtmux_workspace.Config.dimensions","qualifiedName":"Libtmux_workspace.Config.dimensions","name":"dimensions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dimensions : t -> int * int","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val dimensions : t -> int * int","params":[{"name":"arg1","type":"t"}],"returns":"int * int"}],"slug":"libtmux_workspace-config-dimensions"},{"id":"Libtmux_workspace.Config.environment","publicId":"Libtmux_workspace.Config.environment","qualifiedName":"Libtmux_workspace.Config.environment","name":"environment","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val environment : t -> (string * string) list","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val environment : t -> (string * string) list","params":[{"name":"arg1","type":"t"}],"returns":"(string * string) list"}],"slug":"libtmux_workspace-config-environment"},{"id":"Libtmux_workspace.Config.error","publicId":"Libtmux_workspace.Config.error","qualifiedName":"Libtmux_workspace.Config.error","name":"error","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type error = { path : string; message : string }","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type error = { path : string; message : string; }","params":[]}],"slug":"libtmux_workspace-config-error"},{"id":"Libtmux_workspace.Config.error.message","publicId":"Libtmux_workspace.Config.error.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.message","slug":"libtmux_workspace-config-error-message"},{"id":"Libtmux_workspace.Config.error.path","publicId":"Libtmux_workspace.Config.error.path","name":"path","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"path : string;","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.path","slug":"libtmux_workspace-config-error-path"},{"id":"Libtmux_workspace.Config.make","publicId":"Libtmux_workspace.Config.make","qualifiedName":"Libtmux_workspace.Config.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. "],"declarations":[{"kind":"function","text":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Resolve relative working directories against the absolute document directory. Explicit variables expand `${NAME}` in directories only; they never read the process environment. Cycles and unknown names fail. Command arguments, shell code, startup text and environment values remain literal.","body":"At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names and settings must be unique in their scope. No filesystem is consulted."},"signatures":[{"raw":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string -> session:string -> window list -> (t, error) result","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"variables","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"directory","type":"string","keywordOnly":true},{"name":"session","type":"string","keywordOnly":true},{"name":"arg1","type":"window list"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-config-make"},{"id":"Libtmux_workspace.Config.options","publicId":"Libtmux_workspace.Config.options","qualifiedName":"Libtmux_workspace.Config.options","name":"options","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val options : t -> setting list","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val options : t -> setting list","params":[{"name":"arg1","type":"t"}],"returns":"setting list"}],"slug":"libtmux_workspace-config-options"},{"id":"Libtmux_workspace.Config.pane","publicId":"Libtmux_workspace.Config.pane","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size -> unit -> pane","params":[{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"startup","type":"string list","optional":true,"keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"pane"}],"slug":"libtmux_workspace-config-pane"},{"id":"Libtmux_workspace.Config.pane:type","publicId":"Libtmux_workspace.Config.pane:type","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n}","params":[]}],"slug":"libtmux_workspace-config-pane-type"},{"id":"Libtmux_workspace.Config.pane:type.direction","publicId":"Libtmux_workspace.Config.pane:type.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Config.direction","slug":"libtmux_workspace-config-pane-type-direction"},{"id":"Libtmux_workspace.Config.pane:type.options","publicId":"Libtmux_workspace.Config.pane:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-pane-type-options"},{"id":"Libtmux_workspace.Config.pane:type.size","publicId":"Libtmux_workspace.Config.pane:type.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Config.size","slug":"libtmux_workspace-config-pane-type-size"},{"id":"Libtmux_workspace.Config.pane:type.spawn","publicId":"Libtmux_workspace.Config.pane:type.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Config.spawn","slug":"libtmux_workspace-config-pane-type-spawn"},{"id":"Libtmux_workspace.Config.pane:type.startup","publicId":"Libtmux_workspace.Config.pane:type.startup","name":"startup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"startup : string list;","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"string list","qualifiedName":"Libtmux_workspace.Config.startup","slug":"libtmux_workspace-config-pane-type-startup"},{"id":"Libtmux_workspace.Config.pp_error","publicId":"Libtmux_workspace.Config.pp_error","qualifiedName":"Libtmux_workspace.Config.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-config-pp_error"},{"id":"Libtmux_workspace.Config.session","publicId":"Libtmux_workspace.Config.session","qualifiedName":"Libtmux_workspace.Config.session","name":"session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> string","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val session : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_workspace-config-session"},{"id":"Libtmux_workspace.Config.setting","publicId":"Libtmux_workspace.Config.setting","qualifiedName":"Libtmux_workspace.Config.setting","name":"setting","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n}","params":[]}],"slug":"libtmux_workspace-config-setting"},{"id":"Libtmux_workspace.Config.setting.index","publicId":"Libtmux_workspace.Config.setting.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.setting","type":"int option","qualifiedName":"Libtmux_workspace.Config.index","slug":"libtmux_workspace-config-setting-index"},{"id":"Libtmux_workspace.Config.setting.name","publicId":"Libtmux_workspace.Config.setting.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.setting","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-setting-name"},{"id":"Libtmux_workspace.Config.setting.value","publicId":"Libtmux_workspace.Config.setting.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Libtmux.Options.scalar;","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.setting","type":"Libtmux.Options.scalar","qualifiedName":"Libtmux_workspace.Config.value","slug":"libtmux_workspace-config-setting-value"},{"id":"Libtmux_workspace.Config.t","publicId":"Libtmux_workspace.Config.t","qualifiedName":"Libtmux_workspace.Config.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-config-t"},{"id":"Libtmux_workspace.Config.window","publicId":"Libtmux_workspace.Config.window","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Builders are unchecked descriptions; {!make} validates the whole document.\n "],"declarations":[{"kind":"function","text":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Builders are unchecked descriptions; {!make} validates the whole document."},"signatures":[{"raw":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t -> name:string -> pane list -> window","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"layout","type":"Libtmux.Layout.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"pane list"}],"returns":"window"}],"slug":"libtmux_workspace-config-window"},{"id":"Libtmux_workspace.Config.window:type","publicId":"Libtmux_workspace.Config.window:type","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n}","params":[]}],"slug":"libtmux_workspace-config-window-type"},{"id":"Libtmux_workspace.Config.window:type.cwd","publicId":"Libtmux_workspace.Config.window:type.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string option","qualifiedName":"Libtmux_workspace.Config.cwd","slug":"libtmux_workspace-config-window-type-cwd"},{"id":"Libtmux_workspace.Config.window:type.environment","publicId":"Libtmux_workspace.Config.window:type.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.window:type","type":"(string * string) list","qualifiedName":"Libtmux_workspace.Config.environment","slug":"libtmux_workspace-config-window-type-environment"},{"id":"Libtmux_workspace.Config.window:type.layout","publicId":"Libtmux_workspace.Config.window:type.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : Libtmux.Layout.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.window:type","type":"Libtmux.Layout.t option","qualifiedName":"Libtmux_workspace.Config.layout","slug":"libtmux_workspace-config-window-type-layout"},{"id":"Libtmux_workspace.Config.window:type.name","publicId":"Libtmux_workspace.Config.window:type.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-window-type-name"},{"id":"Libtmux_workspace.Config.window:type.options","publicId":"Libtmux_workspace.Config.window:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.window:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-window-type-options"},{"id":"Libtmux_workspace.Config.window:type.panes","publicId":"Libtmux_workspace.Config.window:type.panes","name":"panes","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"panes : pane list;","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config.window:type","type":"pane list","qualifiedName":"Libtmux_workspace.Config.panes","slug":"libtmux_workspace-config-window-type-panes"},{"id":"Libtmux_workspace.Config.windows","publicId":"Libtmux_workspace.Config.windows","qualifiedName":"Libtmux_workspace.Config.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> window Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val windows : t -> window Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"window Iarray.t"}],"slug":"libtmux_workspace-config-windows"},{"id":"Libtmux_workspace.Execution","publicId":"Libtmux_workspace.Execution","qualifiedName":"Libtmux_workspace.Execution","name":"Execution","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":162,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Apply a plan once and retain an immutable journal of effects, uncertainty\n and cleanup. Ordinary applications use their backend's Workspace module;\n executors below integrate another transport. "],"declarations":[{"kind":"module","text":"module Execution : sig\n type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }\n (** A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. *)\n\n type certainty = Not_started | Applied | Unknown\n\n type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }\n (** Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. *)\n\n type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t\n\n type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }\n\n type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t\n\n type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }\n\n type t\n\n val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. *)\n\n val inspect : t -> receipt\n (** Return an immutable copy of the retained journal without I/O. *)\n\n val await : ?compensate_on_failure:bool -> t -> receipt\n (** Execute once, rechecking generation and captured preconditions first.\n Expected failures return a partial journal. Exceptions, including native\n cancellation, propagate after recording progress and bounded compensation.\n Subsequent calls only return the retained receipt; mutations never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":162,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace","doc":{"summary":"Apply a plan once and retain an immutable journal of effects, uncertainty and cleanup. Ordinary applications use their backend's Workspace module; executors below integrate another transport."},"slug":"libtmux_workspace-execution"},{"id":"Libtmux_workspace.Execution.await","publicId":"Libtmux_workspace.Execution.await","qualifiedName":"Libtmux_workspace.Execution.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Execute once, rechecking generation and captured preconditions first.\n Expected failures return a partial journal. Exceptions, including native\n cancellation, propagate after recording progress and bounded compensation.\n Subsequent calls only return the retained receipt; mutations never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. "],"declarations":[{"kind":"function","text":"val await : ?compensate_on_failure:bool -> t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Execute once, rechecking generation and captured preconditions first. Expected failures return a partial journal. Exceptions, including native cancellation, propagate after recording progress and bounded compensation. Subsequent calls only return the retained receipt; mutations never retry.","body":"Compensation kills only panes reported by completed creation commands, in reverse creation order. tmux removes windows and sessions that become empty. Containers with foreign panes or window links remain; adding a borrowed pane never makes it eligible for cleanup. Cleanup failures have separate outcomes."},"signatures":[{"raw":"val await : ?compensate_on_failure:bool -> t -> receipt","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-await"},{"id":"Libtmux_workspace.Execution.certainty","publicId":"Libtmux_workspace.Execution.certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","name":"certainty","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type certainty = Not_started | Applied | Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type certainty = Not_started | Applied | Unknown","params":[]}],"slug":"libtmux_workspace-execution-certainty"},{"id":"Libtmux_workspace.Execution.certainty.Applied","publicId":"Libtmux_workspace.Execution.certainty.Applied","name":"Applied","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applied","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applied","slug":"libtmux_workspace-execution-certainty-applied"},{"id":"Libtmux_workspace.Execution.certainty.Not_started","publicId":"Libtmux_workspace.Execution.certainty.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Not_started","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Not_started","slug":"libtmux_workspace-execution-certainty-not_started"},{"id":"Libtmux_workspace.Execution.certainty.Unknown","publicId":"Libtmux_workspace.Execution.certainty.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Unknown","slug":"libtmux_workspace-execution-certainty-unknown"},{"id":"Libtmux_workspace.Execution.cleanup","publicId":"Libtmux_workspace.Execution.cleanup","qualifiedName":"Libtmux_workspace.Execution.cleanup","name":"cleanup","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n}","params":[]}],"slug":"libtmux_workspace-execution-cleanup"},{"id":"Libtmux_workspace.Execution.cleanup.outcome","publicId":"Libtmux_workspace.Execution.cleanup.outcome","name":"outcome","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":214,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"outcome : (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":214,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"(unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.outcome","slug":"libtmux_workspace-execution-cleanup-outcome"},{"id":"Libtmux_workspace.Execution.cleanup.pane","publicId":"Libtmux_workspace.Execution.cleanup.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.target;","source":{"file":"workspace/libtmux_workspace.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"Libtmux.Pane.target","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-cleanup-pane"},{"id":"Libtmux_workspace.Execution.create","publicId":"Libtmux_workspace.Execution.create","qualifiedName":"Libtmux_workspace.Execution.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":237,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. "],"declarations":[{"kind":"function","text":"val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"workspace/libtmux_workspace.mli","line":237,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Allocate a retained handle without I/O. IDs have 1..64 ASCII letters, digits, underscores or hyphens."},"signatures":[{"raw":"val create :\n operation_id:string ->\n executor:executor -> Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"operation_id","type":"string","keywordOnly":true},{"name":"executor","type":"executor","keywordOnly":true},{"name":"arg1","type":"Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_workspace-execution-create"},{"id":"Libtmux_workspace.Execution.executor","publicId":"Libtmux_workspace.Execution.executor","qualifiedName":"Libtmux_workspace.Execution.executor","name":"executor","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. "],"declarations":[{"kind":"struct","text":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Backend integration: `inspect` returns a callback tied to the latest operation, reading only its retained state even after later submissions. `protect` bounds compensation and shields it from caller cancellation, reporting expected failures as `Error`. Ordinary callers use their backend's Workspace API."},"signatures":[{"raw":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n}","params":[]}],"slug":"libtmux_workspace-execution-executor"},{"id":"Libtmux_workspace.Execution.executor.bootstrap","publicId":"Libtmux_workspace.Execution.executor.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.executor","type":"Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.bootstrap","slug":"libtmux_workspace-execution-executor-bootstrap"},{"id":"Libtmux_workspace.Execution.executor.capture","publicId":"Libtmux_workspace.Execution.executor.capture","name":"capture","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":184,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":184,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.capture","slug":"libtmux_workspace-execution-executor-capture"},{"id":"Libtmux_workspace.Execution.executor.inspect","publicId":"Libtmux_workspace.Execution.executor.inspect","name":"inspect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inspect : unit -> unit -> observation;","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> unit -> observation","qualifiedName":"Libtmux_workspace.Execution.inspect","slug":"libtmux_workspace-execution-executor-inspect"},{"id":"Libtmux_workspace.Execution.executor.protect","publicId":"Libtmux_workspace.Execution.executor.protect","name":"protect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.executor","type":"(unit -> unit) -> (unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.protect","slug":"libtmux_workspace-execution-executor-protect"},{"id":"Libtmux_workspace.Execution.executor.run","publicId":"Libtmux_workspace.Execution.executor.run","name":"run","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.executor","type":"'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.run","slug":"libtmux_workspace-execution-executor-run"},{"id":"Libtmux_workspace.Execution.executor.source","publicId":"Libtmux_workspace.Execution.executor.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : unit -> Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-executor-source"},{"id":"Libtmux_workspace.Execution.hint","publicId":"Libtmux_workspace.Execution.hint","qualifiedName":"Libtmux_workspace.Execution.hint","name":"hint","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. "],"declarations":[{"kind":"struct","text":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"A creation row received before daemon binding finished. Hints are not operational targets and are never eligible for automatic compensation."},"signatures":[{"raw":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n}","params":[]}],"slug":"libtmux_workspace-execution-hint"},{"id":"Libtmux_workspace.Execution.hint.pane","publicId":"Libtmux_workspace.Execution.hint.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-hint-pane"},{"id":"Libtmux_workspace.Execution.hint.pane_index","publicId":"Libtmux_workspace.Execution.hint.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.pane_index","slug":"libtmux_workspace-execution-hint-pane_index"},{"id":"Libtmux_workspace.Execution.hint.server_pid","publicId":"Libtmux_workspace.Execution.hint.server_pid","name":"server_pid","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"server_pid : int;","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.server_pid","slug":"libtmux_workspace-execution-hint-server_pid"},{"id":"Libtmux_workspace.Execution.hint.session","publicId":"Libtmux_workspace.Execution.hint.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Libtmux.Session.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Session.Id.t","qualifiedName":"Libtmux_workspace.Execution.session","slug":"libtmux_workspace-execution-hint-session"},{"id":"Libtmux_workspace.Execution.hint.window","publicId":"Libtmux_workspace.Execution.hint.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Libtmux.Window.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Window.Id.t","qualifiedName":"Libtmux_workspace.Execution.window","slug":"libtmux_workspace-execution-hint-window"},{"id":"Libtmux_workspace.Execution.hint.window_index","publicId":"Libtmux_workspace.Execution.hint.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.window_index","slug":"libtmux_workspace-execution-hint-window_index"},{"id":"Libtmux_workspace.Execution.inspect","publicId":"Libtmux_workspace.Execution.inspect","qualifiedName":"Libtmux_workspace.Execution.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Return an immutable copy of the retained journal without I/O. "],"declarations":[{"kind":"function","text":"val inspect : t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Return an immutable copy of the retained journal without I/O."},"signatures":[{"raw":"val inspect : t -> receipt","params":[{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-inspect"},{"id":"Libtmux_workspace.Execution.observation","publicId":"Libtmux_workspace.Execution.observation","qualifiedName":"Libtmux_workspace.Execution.observation","name":"observation","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":176,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":176,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n}","params":[]}],"slug":"libtmux_workspace-execution-observation"},{"id":"Libtmux_workspace.Execution.observation.certainty","publicId":"Libtmux_workspace.Execution.observation.certainty","name":"certainty","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"certainty : certainty;","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.observation","type":"certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","slug":"libtmux_workspace-execution-observation-certainty"},{"id":"Libtmux_workspace.Execution.observation.created","publicId":"Libtmux_workspace.Execution.observation.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.observation","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-observation-created"},{"id":"Libtmux_workspace.Execution.observation.unbound","publicId":"Libtmux_workspace.Execution.observation.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.observation","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-observation-unbound"},{"id":"Libtmux_workspace.Execution.receipt","publicId":"Libtmux_workspace.Execution.receipt","qualifiedName":"Libtmux_workspace.Execution.receipt","name":"receipt","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n}","params":[]}],"slug":"libtmux_workspace-execution-receipt"},{"id":"Libtmux_workspace.Execution.receipt.cleanup","publicId":"Libtmux_workspace.Execution.receipt.cleanup","name":"cleanup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup : cleanup Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"cleanup Iarray.t","qualifiedName":"Libtmux_workspace.Execution.cleanup","slug":"libtmux_workspace-execution-receipt-cleanup"},{"id":"Libtmux_workspace.Execution.receipt.cleanup_error","publicId":"Libtmux_workspace.Execution.receipt.cleanup_error","name":"cleanup_error","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup_error : Libtmux.Error.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_workspace.Execution.cleanup_error","slug":"libtmux_workspace-execution-receipt-cleanup_error"},{"id":"Libtmux_workspace.Execution.receipt.operation_id","publicId":"Libtmux_workspace.Execution.receipt.operation_id","name":"operation_id","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation_id : string;","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"string","qualifiedName":"Libtmux_workspace.Execution.operation_id","slug":"libtmux_workspace-execution-receipt-operation_id"},{"id":"Libtmux_workspace.Execution.receipt.source","publicId":"Libtmux_workspace.Execution.receipt.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":228,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":228,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-receipt-source"},{"id":"Libtmux_workspace.Execution.receipt.status","publicId":"Libtmux_workspace.Execution.receipt.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : status;","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-receipt-status"},{"id":"Libtmux_workspace.Execution.receipt.steps","publicId":"Libtmux_workspace.Execution.receipt.steps","name":"steps","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"steps : step Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"step Iarray.t","qualifiedName":"Libtmux_workspace.Execution.steps","slug":"libtmux_workspace-execution-receipt-steps"},{"id":"Libtmux_workspace.Execution.status","publicId":"Libtmux_workspace.Execution.status","qualifiedName":"Libtmux_workspace.Execution.status","name":"status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type status =\n Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","params":[]}],"slug":"libtmux_workspace-execution-status"},{"id":"Libtmux_workspace.Execution.status.Applying","publicId":"Libtmux_workspace.Execution.status.Applying","name":"Applying","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applying","source":{"file":"workspace/libtmux_workspace.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applying","slug":"libtmux_workspace-execution-status-applying"},{"id":"Libtmux_workspace.Execution.status.Interrupted","publicId":"Libtmux_workspace.Execution.status.Interrupted","name":"Interrupted","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Interrupted","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Interrupted","slug":"libtmux_workspace-execution-status-interrupted"},{"id":"Libtmux_workspace.Execution.status.Partial","publicId":"Libtmux_workspace.Execution.status.Partial","name":"Partial","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Partial","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Partial","slug":"libtmux_workspace-execution-status-partial"},{"id":"Libtmux_workspace.Execution.status.Queued","publicId":"Libtmux_workspace.Execution.status.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"workspace/libtmux_workspace.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Queued","slug":"libtmux_workspace-execution-status-queued"},{"id":"Libtmux_workspace.Execution.status.Rejected","publicId":"Libtmux_workspace.Execution.status.Rejected","name":"Rejected","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rejected of Plan.error","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Rejected","slug":"libtmux_workspace-execution-status-rejected"},{"id":"Libtmux_workspace.Execution.status.Succeeded","publicId":"Libtmux_workspace.Execution.status.Succeeded","name":"Succeeded","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Succeeded","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Succeeded","slug":"libtmux_workspace-execution-status-succeeded"},{"id":"Libtmux_workspace.Execution.status.Unavailable","publicId":"Libtmux_workspace.Execution.status.Unavailable","name":"Unavailable","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Unavailable","slug":"libtmux_workspace-execution-status-unavailable"},{"id":"Libtmux_workspace.Execution.step","publicId":"Libtmux_workspace.Execution.step","qualifiedName":"Libtmux_workspace.Execution.step","name":"step","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n}","params":[]}],"slug":"libtmux_workspace-execution-step"},{"id":"Libtmux_workspace.Execution.step.action","publicId":"Libtmux_workspace.Execution.step.action","name":"action","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"action : Plan.action;","source":{"file":"workspace/libtmux_workspace.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step","type":"Plan.action","qualifiedName":"Libtmux_workspace.Execution.action","slug":"libtmux_workspace-execution-step-action"},{"id":"Libtmux_workspace.Execution.step.created","publicId":"Libtmux_workspace.Execution.step.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-step-created"},{"id":"Libtmux_workspace.Execution.step.index","publicId":"Libtmux_workspace.Execution.step.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step","type":"int","qualifiedName":"Libtmux_workspace.Execution.index","slug":"libtmux_workspace-execution-step-index"},{"id":"Libtmux_workspace.Execution.step.status","publicId":"Libtmux_workspace.Execution.step.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : step_status;","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step","type":"step_status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-step-status"},{"id":"Libtmux_workspace.Execution.step.unbound","publicId":"Libtmux_workspace.Execution.step.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-step-unbound"},{"id":"Libtmux_workspace.Execution.step_status","publicId":"Libtmux_workspace.Execution.step_status","qualifiedName":"Libtmux_workspace.Execution.step_status","name":"step_status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":196,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":196,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step_status =\n Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","params":[]}],"slug":"libtmux_workspace-execution-step_status"},{"id":"Libtmux_workspace.Execution.step_status.Completed","publicId":"Libtmux_workspace.Execution.step_status.Completed","name":"Completed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Completed","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Completed","slug":"libtmux_workspace-execution-step_status-completed"},{"id":"Libtmux_workspace.Execution.step_status.Failed","publicId":"Libtmux_workspace.Execution.step_status.Failed","name":"Failed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Failed of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Failed","slug":"libtmux_workspace-execution-step_status-failed"},{"id":"Libtmux_workspace.Execution.step_status.Pending","publicId":"Libtmux_workspace.Execution.step_status.Pending","name":"Pending","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":197,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pending","source":{"file":"workspace/libtmux_workspace.mli","line":197,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Pending","slug":"libtmux_workspace-execution-step_status-pending"},{"id":"Libtmux_workspace.Execution.step_status.Running","publicId":"Libtmux_workspace.Execution.step_status.Running","name":"Running","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Running","source":{"file":"workspace/libtmux_workspace.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Running","slug":"libtmux_workspace-execution-step_status-running"},{"id":"Libtmux_workspace.Execution.step_status.Skipped","publicId":"Libtmux_workspace.Execution.step_status.Skipped","name":"Skipped","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Skipped","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Skipped","slug":"libtmux_workspace-execution-step_status-skipped"},{"id":"Libtmux_workspace.Execution.step_status.Uncertain","publicId":"Libtmux_workspace.Execution.step_status.Uncertain","name":"Uncertain","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Uncertain","slug":"libtmux_workspace-execution-step_status-uncertain"},{"id":"Libtmux_workspace.Execution.t","publicId":"Libtmux_workspace.Execution.t","qualifiedName":"Libtmux_workspace.Execution.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-execution-t"},{"id":"Libtmux_workspace.Plan","publicId":"Libtmux_workspace.Plan","qualifiedName":"Libtmux_workspace.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[" Preview ordered workspace actions against one observed daemon generation. A\n plan retains collision policy and bound targets; it is not a portable\n command script. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type server_policy = Create_if_missing | Require_existing_server\n type window_collision = Reject\n\n type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }\n\n type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale\n\n val pp_error : Format.formatter -> error -> unit\n\n type scope = Session | Window of int | Pane of { window : int; pane : int }\n\n type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t\n\n type t\n\n val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result\n (** [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. *)\n\n val endpoint : t -> Libtmux.Endpoint.t\n val source : t -> Libtmux.Source.t option\n val existing_session : t -> Libtmux.Session.target option\n val actions : t -> action Iarray.t\n val config : t -> Config.t\n\n val check_source : t -> Libtmux.Source.t option -> (unit, error) result\n (** Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace","doc":{"summary":"Preview ordered workspace actions against one observed daemon generation. A plan retains collision policy and bound targets; it is not a portable command script."},"slug":"libtmux_workspace-plan"},{"id":"Libtmux_workspace.Plan.action","publicId":"Libtmux_workspace.Plan.action","qualifiedName":"Libtmux_workspace.Plan.action","name":"action","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type action =\n Create_session of { bootstrap : bool; name : string;\n window_name : string; spawn : Libtmux.Spawn.t; width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t;\n }\n | Split_pane of { window : int; pane : int; spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string; }\n | Send_enter of { window : int; pane : int; }\n | Select_layout of int * Libtmux.Layout.t","params":[]}],"slug":"libtmux_workspace-plan-action"},{"id":"Libtmux_workspace.Plan.action.Create_session","publicId":"Libtmux_workspace.Plan.action.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_session","slug":"libtmux_workspace-plan-action-create_session"},{"id":"Libtmux_workspace.Plan.action.Create_session.bootstrap","publicId":"Libtmux_workspace.Plan.action.Create_session.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : bool;","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"bool","qualifiedName":"Libtmux_workspace.Plan.bootstrap","slug":"libtmux_workspace-plan-action-create_session-bootstrap"},{"id":"Libtmux_workspace.Plan.action.Create_session.height","publicId":"Libtmux_workspace.Plan.action.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.height","slug":"libtmux_workspace-plan-action-create_session-height"},{"id":"Libtmux_workspace.Plan.action.Create_session.name","publicId":"Libtmux_workspace.Plan.action.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_session-name"},{"id":"Libtmux_workspace.Plan.action.Create_session.spawn","publicId":"Libtmux_workspace.Plan.action.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_session-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_session.width","publicId":"Libtmux_workspace.Plan.action.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.width","slug":"libtmux_workspace-plan-action-create_session-width"},{"id":"Libtmux_workspace.Plan.action.Create_session.window_name","publicId":"Libtmux_workspace.Plan.action.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.window_name","slug":"libtmux_workspace-plan-action-create_session-window_name"},{"id":"Libtmux_workspace.Plan.action.Create_window","publicId":"Libtmux_workspace.Plan.action.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_window","slug":"libtmux_workspace-plan-action-create_window"},{"id":"Libtmux_workspace.Plan.action.Create_window.name","publicId":"Libtmux_workspace.Plan.action.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_window-name"},{"id":"Libtmux_workspace.Plan.action.Create_window.spawn","publicId":"Libtmux_workspace.Plan.action.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_window-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_window.window","publicId":"Libtmux_workspace.Plan.action.Create_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-create_window-window"},{"id":"Libtmux_workspace.Plan.action.Select_layout","publicId":"Libtmux_workspace.Plan.action.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Select_layout","slug":"libtmux_workspace-plan-action-select_layout"},{"id":"Libtmux_workspace.Plan.action.Send_enter","publicId":"Libtmux_workspace.Plan.action.Send_enter","name":"Send_enter","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_enter of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_enter","slug":"libtmux_workspace-plan-action-send_enter"},{"id":"Libtmux_workspace.Plan.action.Send_enter.pane","publicId":"Libtmux_workspace.Plan.action.Send_enter.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_enter-pane"},{"id":"Libtmux_workspace.Plan.action.Send_enter.window","publicId":"Libtmux_workspace.Plan.action.Send_enter.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_enter-window"},{"id":"Libtmux_workspace.Plan.action.Send_text","publicId":"Libtmux_workspace.Plan.action.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text of { window : int; pane : int; text : string }","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_text","slug":"libtmux_workspace-plan-action-send_text"},{"id":"Libtmux_workspace.Plan.action.Send_text.pane","publicId":"Libtmux_workspace.Plan.action.Send_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_text-pane"},{"id":"Libtmux_workspace.Plan.action.Send_text.text","publicId":"Libtmux_workspace.Plan.action.Send_text.text","name":"text","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"text : string","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"string","qualifiedName":"Libtmux_workspace.Plan.text","slug":"libtmux_workspace-plan-action-send_text-text"},{"id":"Libtmux_workspace.Plan.action.Send_text.window","publicId":"Libtmux_workspace.Plan.action.Send_text.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_text-window"},{"id":"Libtmux_workspace.Plan.action.Set_environment","publicId":"Libtmux_workspace.Plan.action.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of string * string","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_environment","slug":"libtmux_workspace-plan-action-set_environment"},{"id":"Libtmux_workspace.Plan.action.Set_option","publicId":"Libtmux_workspace.Plan.action.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of scope * Config.setting","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_option","slug":"libtmux_workspace-plan-action-set_option"},{"id":"Libtmux_workspace.Plan.action.Split_pane","publicId":"Libtmux_workspace.Plan.action.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Split_pane","slug":"libtmux_workspace-plan-action-split_pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.direction","publicId":"Libtmux_workspace.Plan.action.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Plan.direction","slug":"libtmux_workspace-plan-action-split_pane-direction"},{"id":"Libtmux_workspace.Plan.action.Split_pane.pane","publicId":"Libtmux_workspace.Plan.action.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-split_pane-pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.size","publicId":"Libtmux_workspace.Plan.action.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Plan.size","slug":"libtmux_workspace-plan-action-split_pane-size"},{"id":"Libtmux_workspace.Plan.action.Split_pane.spawn","publicId":"Libtmux_workspace.Plan.action.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-split_pane-spawn"},{"id":"Libtmux_workspace.Plan.action.Split_pane.window","publicId":"Libtmux_workspace.Plan.action.Split_pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-split_pane-window"},{"id":"Libtmux_workspace.Plan.actions","publicId":"Libtmux_workspace.Plan.actions","qualifiedName":"Libtmux_workspace.Plan.actions","name":"actions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val actions : t -> action Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val actions : t -> action Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"action Iarray.t"}],"slug":"libtmux_workspace-plan-actions"},{"id":"Libtmux_workspace.Plan.check_source","publicId":"Libtmux_workspace.Plan.check_source","qualifiedName":"Libtmux_workspace.Plan.check_source","name":"check_source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. "],"declarations":[{"kind":"function","text":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"Operational plans are ephemeral and bound to one connection generation. A printed or serialized preview cannot supply operational targets."},"signatures":[{"raw":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Source.t option"}],"returns":"(unit, error) result"}],"slug":"libtmux_workspace-plan-check_source"},{"id":"Libtmux_workspace.Plan.collision_policy","publicId":"Libtmux_workspace.Plan.collision_policy","qualifiedName":"Libtmux_workspace.Plan.collision_policy","name":"collision_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type collision_policy =\n Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision; }","params":[]}],"slug":"libtmux_workspace-plan-collision_policy"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","name":"Append_new_windows","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Append_new_windows","slug":"libtmux_workspace-plan-collision_policy-append_new_windows"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","name":"window_collision","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_collision : window_collision","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","type":"window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","slug":"libtmux_workspace-plan-collision_policy-append_new_windows-window_collision"},{"id":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","publicId":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","name":"Fail_if_session_exists","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Fail_if_session_exists","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Fail_if_session_exists","slug":"libtmux_workspace-plan-collision_policy-fail_if_session_exists"},{"id":"Libtmux_workspace.Plan.config","publicId":"Libtmux_workspace.Plan.config","qualifiedName":"Libtmux_workspace.Plan.config","name":"config","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val config : t -> Config.t","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val config : t -> Config.t","params":[{"name":"arg1","type":"t"}],"returns":"Config.t"}],"slug":"libtmux_workspace-plan-config"},{"id":"Libtmux_workspace.Plan.endpoint","publicId":"Libtmux_workspace.Plan.endpoint","qualifiedName":"Libtmux_workspace.Plan.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Libtmux.Endpoint.t","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val endpoint : t -> Libtmux.Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Endpoint.t"}],"slug":"libtmux_workspace-plan-endpoint"},{"id":"Libtmux_workspace.Plan.error","publicId":"Libtmux_workspace.Plan.error","qualifiedName":"Libtmux_workspace.Plan.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type error =\n Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","params":[]}],"slug":"libtmux_workspace-plan-error"},{"id":"Libtmux_workspace.Plan.error.Append_session_options","publicId":"Libtmux_workspace.Plan.error.Append_session_options","name":"Append_session_options","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_session_options","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Append_session_options","slug":"libtmux_workspace-plan-error-append_session_options"},{"id":"Libtmux_workspace.Plan.error.Missing_endpoint","publicId":"Libtmux_workspace.Plan.error.Missing_endpoint","name":"Missing_endpoint","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing_endpoint","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Missing_endpoint","slug":"libtmux_workspace-plan-error-missing_endpoint"},{"id":"Libtmux_workspace.Plan.error.Session_conflict","publicId":"Libtmux_workspace.Plan.error.Session_conflict","name":"Session_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Session_conflict","slug":"libtmux_workspace-plan-error-session_conflict"},{"id":"Libtmux_workspace.Plan.error.Stale","publicId":"Libtmux_workspace.Plan.error.Stale","name":"Stale","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Stale","slug":"libtmux_workspace-plan-error-stale"},{"id":"Libtmux_workspace.Plan.error.Too_many_steps","publicId":"Libtmux_workspace.Plan.error.Too_many_steps","name":"Too_many_steps","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Too_many_steps","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Too_many_steps","slug":"libtmux_workspace-plan-error-too_many_steps"},{"id":"Libtmux_workspace.Plan.error.Unsupported_setting","publicId":"Libtmux_workspace.Plan.error.Unsupported_setting","name":"Unsupported_setting","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_setting of Config.error","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Unsupported_setting","slug":"libtmux_workspace-plan-error-unsupported_setting"},{"id":"Libtmux_workspace.Plan.error.Window_conflict","publicId":"Libtmux_workspace.Plan.error.Window_conflict","name":"Window_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window_conflict","slug":"libtmux_workspace-plan-error-window_conflict"},{"id":"Libtmux_workspace.Plan.existing_session","publicId":"Libtmux_workspace.Plan.existing_session","qualifiedName":"Libtmux_workspace.Plan.existing_session","name":"existing_session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val existing_session : t -> Libtmux.Session.target option","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val existing_session : t -> Libtmux.Session.target option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Session.target option"}],"slug":"libtmux_workspace-plan-existing_session"},{"id":"Libtmux_workspace.Plan.make","publicId":"Libtmux_workspace.Plan.make","qualifiedName":"Libtmux_workspace.Plan.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[" [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. "],"declarations":[{"kind":"function","text":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"`None` means an explicitly observed missing endpoint. It is not an empty successful snapshot. A plan does not start a server. Append rejects any existing requested window name and never changes session options. `version` selects the generated option catalog."},"signatures":[{"raw":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option -> Config.t -> (t, error) result","params":[{"name":"server_policy","type":"server_policy","optional":true,"keywordOnly":true},{"name":"collision_policy","type":"collision_policy","optional":true,"keywordOnly":true},{"name":"endpoint","type":"Libtmux.Endpoint.t","keywordOnly":true},{"name":"version","type":"string","keywordOnly":true},{"name":"observed","type":"Libtmux.Snapshot.t option","keywordOnly":true},{"name":"arg1","type":"Config.t"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-plan-make"},{"id":"Libtmux_workspace.Plan.pp_error","publicId":"Libtmux_workspace.Plan.pp_error","qualifiedName":"Libtmux_workspace.Plan.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-plan-pp_error"},{"id":"Libtmux_workspace.Plan.scope","publicId":"Libtmux_workspace.Plan.scope","qualifiedName":"Libtmux_workspace.Plan.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Session | Window of int | Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type scope = Session | Window of int | Pane of { window : int; pane : int; }","params":[]}],"slug":"libtmux_workspace-plan-scope"},{"id":"Libtmux_workspace.Plan.scope.Pane","publicId":"Libtmux_workspace.Plan.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Pane","slug":"libtmux_workspace-plan-scope-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.pane","publicId":"Libtmux_workspace.Plan.scope.Pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-scope-pane-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.window","publicId":"Libtmux_workspace.Plan.scope.Pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-scope-pane-window"},{"id":"Libtmux_workspace.Plan.scope.Session","publicId":"Libtmux_workspace.Plan.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Session","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Session","slug":"libtmux_workspace-plan-scope-session"},{"id":"Libtmux_workspace.Plan.scope.Window","publicId":"Libtmux_workspace.Plan.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window","slug":"libtmux_workspace-plan-scope-window"},{"id":"Libtmux_workspace.Plan.server_policy","publicId":"Libtmux_workspace.Plan.server_policy","qualifiedName":"Libtmux_workspace.Plan.server_policy","name":"server_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type server_policy = Create_if_missing | Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type server_policy = Create_if_missing | Require_existing_server","params":[]}],"slug":"libtmux_workspace-plan-server_policy"},{"id":"Libtmux_workspace.Plan.server_policy.Create_if_missing","publicId":"Libtmux_workspace.Plan.server_policy.Create_if_missing","name":"Create_if_missing","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Create_if_missing","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Create_if_missing","slug":"libtmux_workspace-plan-server_policy-create_if_missing"},{"id":"Libtmux_workspace.Plan.server_policy.Require_existing_server","publicId":"Libtmux_workspace.Plan.server_policy.Require_existing_server","name":"Require_existing_server","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Require_existing_server","slug":"libtmux_workspace-plan-server_policy-require_existing_server"},{"id":"Libtmux_workspace.Plan.source","publicId":"Libtmux_workspace.Plan.source","qualifiedName":"Libtmux_workspace.Plan.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t option","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val source : t -> Libtmux.Source.t option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t option"}],"slug":"libtmux_workspace-plan-source"},{"id":"Libtmux_workspace.Plan.t","publicId":"Libtmux_workspace.Plan.t","qualifiedName":"Libtmux_workspace.Plan.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-plan-t"},{"id":"Libtmux_workspace.Plan.window_collision","publicId":"Libtmux_workspace.Plan.window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","name":"window_collision","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type window_collision = Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type window_collision = Reject","params":[]}],"slug":"libtmux_workspace-plan-window_collision"},{"id":"Libtmux_workspace.Plan.window_collision.Reject","publicId":"Libtmux_workspace.Plan.window_collision.Reject","name":"Reject","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","extractedRevision":"a111168bceee2085f0cee5efe784d8f446011ba1"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1"}}],"parent":"Libtmux_workspace.Plan.window_collision","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Reject","slug":"libtmux_workspace-plan-window_collision-reject"}]} +{"port":"ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","repo":"libtmux/libtmux-ocaml","sources":[{"product":"core","package":"libtmux","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"core","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"workspace","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"core","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"workspace","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"core","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"workspace","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}],"extractor":"OCaml 5.5.2 compiler-libs .cmti + odoc-parser 3.2.2","nativeProvenance":{"files":[{"path":"lib/libtmux.mli","sha256":"eb15691c82da743bb49170e408ca50500b38d21aeb248bb41a171e1e0352bc8e"},{"path":"_build/install/default/lib/libtmux/libtmux.cmti","sha256":"2e9a977a5a36625b0d0e8499051a36d13deab0f4a59bd699f2ab430975fed851"},{"path":"workspace/libtmux_workspace.mli","sha256":"10c5cadc58269906f16550a7bb703a8e05bee163d9b1716bf2be994ec8ebbeed"},{"path":"_build/install/default/lib/libtmux-workspace/libtmux_workspace.cmti","sha256":"dac59166f00e4c248fb2fe84787faef28f4e838a8db7b2b17768f9f0cffcfaf2"},{"path":"json/libtmux_json.mli","sha256":"ae672cc3b970fbd3fe9f68bb8703bb961e8d5968d9920b2626cddbffeb85c94b"},{"path":"_build/install/default/lib/libtmux-json/libtmux_json.cmti","sha256":"1574d45efd30dffc97a5775dc90f55a6aa935593dad025b98e9027325f06c78d"},{"path":"unix/libtmux_unix.mli","sha256":"638e260745952dc3db2ec4cd4cd28733326fdb74d65668b46fe29398526a9421"},{"path":"_build/install/default/lib/libtmux-unix/libtmux_unix.cmti","sha256":"cf23cb48ff8f22a9d7ce5c606f9cf8117db1d9cbc9286f87987c279b156a0e36"},{"path":"eio/libtmux_eio.mli","sha256":"f4b35be04f35f5e6fe99c139f1f8bbaacf4ed82e1faa55ad0f73bdd9803d4386"},{"path":"_build/install/default/lib/libtmux-eio/libtmux_eio.cmti","sha256":"62e866a1e8c8c9789a8261ac7420c078c73d069d31e900f6f40dc82b262a56d9"}],"exporter":{"revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","baseRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","files":[{"path":"tools/api_export.ml","sha256":"403353de9340f32586cb522a827be03a9693142eeec01c891175c4e76b069a5d"},{"path":"tools/api_doc.ml","sha256":"94d9b4dff3f86d570a31161019e06cea250926200b8cc4562f7d14f9f3cd0d59"},{"path":"tools/export_api.py","sha256":"5188348adc7e3ea577889e144de30da6204ec14ec6fc1577f86a732bc7625973"},{"path":"tools/api_modules.json","sha256":"233ef409440fa5015f522a11933e74f059a301aecbce5ab5126f14e8a35614cf"},{"path":"tools/dune","sha256":"777e122d729870f9f8dc6fc13485ce0eea29f0e741b9bb22cb0245d433ff9442"}],"compiler":"5.5.2","schema":"libtmux.ocaml-api/1","publicManifest":"tools/api_modules.json"}},"symbols":[{"id":"Libtmux","publicId":"Libtmux","qualifiedName":"Libtmux","name":"Libtmux","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Native captured values, typed queries and explicit command descriptions.\n\n A {!Snapshot.t} owns immutable observations. Entity accessors and query\n evaluation perform no I/O, preserve captured order and remain usable after\n client closure. Use [Libtmux_unix.Client] or [Libtmux_eio.Client] to acquire\n or mutate state.\n\n {1 Typical flow}\n\n Capture explicitly, traverse {!Session.window_links} and {!Window.panes},\n filter with [Seq.filter] or {!Query.matching}, establish cardinality with\n {!Query.exactly_one}, then submit a command with a bound target.\n\n The core depends only on the standard library. Its abstract observations are\n safe to share; live clients and subscriptions belong to their backend.\n\n See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md}graph\n guide} for window links and the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} for native predicates and typed expressions. "],"declarations":[{"kind":"module","text":"","source":{"file":"lib/libtmux.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"doc":{"summary":"Native captured values, typed queries and explicit command descriptions.","body":"A {!Snapshot.t} owns immutable observations. Entity accessors and query evaluation perform no I/O, preserve captured order and remain usable after client closure. Use `Libtmux_unix.Client` or `Libtmux_eio.Client` to acquire or mutate state.\n\n## Typical flow\n\nCapture explicitly, traverse {!Session.window_links} and {!Window.panes}, filter with `Seq.filter` or {!Query.matching}, establish cardinality with {!Query.exactly_one}, then submit a command with a bound target.\n\nThe core depends only on the standard library. Its abstract observations are safe to share; live clients and subscriptions belong to their backend.\n\nSee the [graph guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md) for window links and the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) for native predicates and typed expressions."},"slug":"libtmux"},{"id":"Libtmux.Captured_text","publicId":"Libtmux.Captured_text","qualifiedName":"Libtmux.Captured_text","name":"Captured_text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":690,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Captured_text : sig\n type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. *)\nend","source":{"file":"lib/libtmux.mli","line":690,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-captured_text"},{"id":"Libtmux.Captured_text.t","publicId":"Libtmux.Captured_text.t","qualifiedName":"Libtmux.Captured_text.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":691,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. "],"declarations":[{"kind":"struct","text":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":691,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Captured_text","doc":{"summary":"Ordinary rendered rows captured over an interval. This value has no implied relationship to a subscription cursor."},"signatures":[{"raw":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-captured_text-t"},{"id":"Libtmux.Captured_text.t.bytes","publicId":"Libtmux.Captured_text.t.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":692,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string;","source":{"file":"lib/libtmux.mli","line":692,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Captured_text.t","type":"string","qualifiedName":"Libtmux.Captured_text.bytes","slug":"libtmux-captured_text-t-bytes"},{"id":"Libtmux.Captured_text.t.finished_at_ns","publicId":"Libtmux.Captured_text.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":696,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":696,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.finished_at_ns","slug":"libtmux-captured_text-t-finished_at_ns"},{"id":"Libtmux.Captured_text.t.pane","publicId":"Libtmux.Captured_text.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":694,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":694,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Captured_text.t","type":"Pane.Id.t","qualifiedName":"Libtmux.Captured_text.pane","slug":"libtmux-captured_text-t-pane"},{"id":"Libtmux.Captured_text.t.source","publicId":"Libtmux.Captured_text.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":693,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":693,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Captured_text.t","type":"Source.t","qualifiedName":"Libtmux.Captured_text.source","slug":"libtmux-captured_text-t-source"},{"id":"Libtmux.Captured_text.t.started_at_ns","publicId":"Libtmux.Captured_text.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":695,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":695,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.started_at_ns","slug":"libtmux-captured_text-t-started_at_ns"},{"id":"Libtmux.Cardinality","publicId":"Libtmux.Cardinality","qualifiedName":"Libtmux.Cardinality","name":"Cardinality","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":663,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cardinality : sig\n type error = No_match | Multiple_matches of { at_least : int }\n\n val pp_error : Format.formatter -> error -> unit\nend","source":{"file":"lib/libtmux.mli","line":663,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-cardinality"},{"id":"Libtmux.Cardinality.error","publicId":"Libtmux.Cardinality.error","qualifiedName":"Libtmux.Cardinality.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error = No_match | Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"type error = No_match | Multiple_matches of { at_least : int; }","params":[]}],"slug":"libtmux-cardinality-error"},{"id":"Libtmux.Cardinality.error.Multiple_matches","publicId":"Libtmux.Cardinality.error.Multiple_matches","name":"Multiple_matches","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Cardinality.error","variant":"struct","qualifiedName":"Libtmux.Cardinality.Multiple_matches","slug":"libtmux-cardinality-error-multiple_matches"},{"id":"Libtmux.Cardinality.error.Multiple_matches.at_least","publicId":"Libtmux.Cardinality.error.Multiple_matches.at_least","name":"at_least","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"at_least : int","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Cardinality.error.Multiple_matches","type":"int","qualifiedName":"Libtmux.Cardinality.at_least","slug":"libtmux-cardinality-error-multiple_matches-at_least"},{"id":"Libtmux.Cardinality.error.No_match","publicId":"Libtmux.Cardinality.error.No_match","name":"No_match","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"No_match","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Cardinality.error","variant":"unit","qualifiedName":"Libtmux.Cardinality.No_match","slug":"libtmux-cardinality-error-no_match"},{"id":"Libtmux.Cardinality.pp_error","publicId":"Libtmux.Cardinality.pp_error","qualifiedName":"Libtmux.Cardinality.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"lib/libtmux.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux-cardinality-pp_error"},{"id":"Libtmux.Client_name","publicId":"Libtmux.Client_name","qualifiedName":"Libtmux.Client_name","name":"Client_name","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Client_name : sig\n type t\n (** A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. *)\n\n val source : t -> Source.t\n val to_string : t -> string\nend","source":{"file":"lib/libtmux.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-client_name"},{"id":"Libtmux.Client_name.source","publicId":"Libtmux.Client_name.source","qualifiedName":"Libtmux.Client_name.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_name-source"},{"id":"Libtmux.Client_name.t","publicId":"Libtmux.Client_name.t","qualifiedName":"Libtmux.Client_name.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_name","doc":{"summary":"A name in one connection generation, with current-name semantics. It does not identify a stable client incarnation; tmux may reuse client names."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_name-t"},{"id":"Libtmux.Client_name.to_string","publicId":"Libtmux.Client_name.to_string","qualifiedName":"Libtmux.Client_name.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_name-to_string"},{"id":"Libtmux.Client_observation","publicId":"Libtmux.Client_observation","qualifiedName":"Libtmux.Client_observation","name":"Client_observation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":343,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"and Client_observation : sig\n type t\n\n module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end\n\n val name : t -> string\n val pid : t -> int\n val width : t -> int\n\n val height : t -> int option\n (** No height is reported until the client has a started terminal. *)\n\n val control_mode : t -> bool\n val source : t -> Source.t\n\n val current_name : t -> Client_name.t\n (** Address whichever client has this name when a command executes. *)\n\n val session : t -> Session.t option\n (** [None] means the captured client has no attached session. *)\n\n val same_observation : t -> t -> bool\n (** Client names may be reused. No cross-snapshot entity equality is offered.\n *)\nend","source":{"file":"lib/libtmux.mli","line":343,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-client_observation"},{"id":"Libtmux.Client_observation.Fields","publicId":"Libtmux.Client_observation.Fields","qualifiedName":"Libtmux.Client_observation.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":346,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-fields"},{"id":"Libtmux.Client_observation.Fields.control_mode","publicId":"Libtmux.Client_observation.Fields.control_mode","qualifiedName":"Libtmux.Client_observation.Fields.control_mode","name":"control_mode","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":350,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val control_mode : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":350,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val control_mode : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-client_observation-fields-control_mode"},{"id":"Libtmux.Client_observation.Fields.name","publicId":"Libtmux.Client_observation.Fields.name","qualifiedName":"Libtmux.Client_observation.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":347,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":347,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-client_observation-fields-name"},{"id":"Libtmux.Client_observation.Fields.pid","publicId":"Libtmux.Client_observation.Fields.pid","qualifiedName":"Libtmux.Client_observation.Fields.pid","name":"pid","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":348,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pid : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":348,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val pid : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-pid"},{"id":"Libtmux.Client_observation.Fields.width","publicId":"Libtmux.Client_observation.Fields.width","qualifiedName":"Libtmux.Client_observation.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":349,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":349,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-width"},{"id":"Libtmux.Client_observation.Relations","publicId":"Libtmux.Client_observation.Relations","qualifiedName":"Libtmux.Client_observation.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":353,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end","source":{"file":"lib/libtmux.mli","line":353,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-relations"},{"id":"Libtmux.Client_observation.Relations.session","publicId":"Libtmux.Client_observation.Relations.session","qualifiedName":"Libtmux.Client_observation.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.Optional.t","source":{"file":"lib/libtmux.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.Optional.t","params":[],"returns":"(t, Session.t) Relation.Optional.t"}],"slug":"libtmux-client_observation-relations-session"},{"id":"Libtmux.Client_observation.control_mode","publicId":"Libtmux.Client_observation.control_mode","qualifiedName":"Libtmux.Client_observation.control_mode","name":"control_mode","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":364,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val control_mode : t -> bool","source":{"file":"lib/libtmux.mli","line":364,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val control_mode : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-control_mode"},{"id":"Libtmux.Client_observation.current_name","publicId":"Libtmux.Client_observation.current_name","qualifiedName":"Libtmux.Client_observation.current_name","name":"current_name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":367,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Address whichever client has this name when a command executes. "],"declarations":[{"kind":"function","text":"val current_name : t -> Client_name.t","source":{"file":"lib/libtmux.mli","line":367,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Address whichever client has this name when a command executes."},"signatures":[{"raw":"val current_name : t -> Client_name.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_name.t"}],"slug":"libtmux-client_observation-current_name"},{"id":"Libtmux.Client_observation.height","publicId":"Libtmux.Client_observation.height","qualifiedName":"Libtmux.Client_observation.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" No height is reported until the client has a started terminal. "],"declarations":[{"kind":"function","text":"val height : t -> int option","source":{"file":"lib/libtmux.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"No height is reported until the client has a started terminal."},"signatures":[{"raw":"val height : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-client_observation-height"},{"id":"Libtmux.Client_observation.name","publicId":"Libtmux.Client_observation.name","qualifiedName":"Libtmux.Client_observation.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":357,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":357,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_observation-name"},{"id":"Libtmux.Client_observation.pid","publicId":"Libtmux.Client_observation.pid","qualifiedName":"Libtmux.Client_observation.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pid : t -> int","source":{"file":"lib/libtmux.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-pid"},{"id":"Libtmux.Client_observation.same_observation","publicId":"Libtmux.Client_observation.same_observation","qualifiedName":"Libtmux.Client_observation.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":373,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Client names may be reused. No cross-snapshot entity equality is offered.\n "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":373,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Client names may be reused. No cross-snapshot entity equality is offered."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-same_observation"},{"id":"Libtmux.Client_observation.session","publicId":"Libtmux.Client_observation.session","qualifiedName":"Libtmux.Client_observation.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [None] means the captured client has no attached session. "],"declarations":[{"kind":"function","text":"val session : t -> Session.t option","source":{"file":"lib/libtmux.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"`None` means the captured client has no attached session."},"signatures":[{"raw":"val session : t -> Session.t option","params":[{"name":"arg1","type":"t"}],"returns":"Session.t option"}],"slug":"libtmux-client_observation-session"},{"id":"Libtmux.Client_observation.source","publicId":"Libtmux.Client_observation.source","qualifiedName":"Libtmux.Client_observation.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_observation-source"},{"id":"Libtmux.Client_observation.t","publicId":"Libtmux.Client_observation.t","qualifiedName":"Libtmux.Client_observation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_observation-t"},{"id":"Libtmux.Client_observation.width","publicId":"Libtmux.Client_observation.width","qualifiedName":"Libtmux.Client_observation.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":359,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":359,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-width"},{"id":"Libtmux.Command","publicId":"Libtmux.Command","qualifiedName":"Libtmux.Command","name":"Command","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":861,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Typed descriptions of explicit acquisition and mutation operations.\n Construction performs no I/O; a backend validates and admits the command. "],"declarations":[{"kind":"module","text":"module Command : sig\n type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }\n\n type 'a t\n (** An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. *)\n\n type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view\n\n val view : 'a t -> 'a view\n (** Read-only inspection for transport adapters. *)\nend","source":{"file":"lib/libtmux.mli","line":861,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Typed descriptions of explicit acquisition and mutation operations. Construction performs no I/O; a backend validates and admits the command."},"slug":"libtmux-command"},{"id":"Libtmux.Command.mutation","publicId":"Libtmux.Command.mutation","qualifiedName":"Libtmux.Command.mutation","name":"mutation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":862,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":862,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type mutation =\n Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of { session : Session.target; index : int;\n allow_kill : bool;\n }\n | Link_window of { window : Window.target; session : Session.target;\n index : int;\n }\n | Move_window_at of { from_session : Session.target; from_index : int;\n session : Session.target; index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of { pane : Pane.target; width : int option;\n height : int option;\n }\n | Resize_window of { window : Window.target; width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of { pane : Pane.target; beside : Pane.target;\n direction : Geometry.direction; size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Backward | `Forward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of { pane : Pane.target; spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of { scope : Environment.scope; name : string;\n value : string; hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of { scope : Options.scope; name : string; index : int option;\n value : Options.scalar; append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of { scope : Options.scope; name : string; index : int option;\n commands : Hook.command list; append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of { client : Client_name.t; session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of { client : Client_name.t; width : int;\n height : int;\n }","params":[]}],"slug":"libtmux-command-mutation"},{"id":"Libtmux.Command.mutation.Clear_history","publicId":"Libtmux.Command.mutation.Clear_history","name":"Clear_history","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":911,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_history of Pane.target","source":{"file":"lib/libtmux.mli","line":911,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_history","slug":"libtmux-command-mutation-clear_history"},{"id":"Libtmux.Command.mutation.Clear_option_array","publicId":"Libtmux.Command.mutation.Clear_option_array","name":"Clear_option_array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":928,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_option_array of Options.scope * string","source":{"file":"lib/libtmux.mli","line":928,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_option_array","slug":"libtmux-command-mutation-clear_option_array"},{"id":"Libtmux.Command.mutation.Cycle_layout","publicId":"Libtmux.Command.mutation.Cycle_layout","name":"Cycle_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":896,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cycle_layout of Window.target * [ `Next | `Previous ]","source":{"file":"lib/libtmux.mli","line":896,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Cycle_layout","slug":"libtmux-command-mutation-cycle_layout"},{"id":"Libtmux.Command.mutation.Kill_pane","publicId":"Libtmux.Command.mutation.Kill_pane","name":"Kill_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":865,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":865,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_pane","slug":"libtmux-command-mutation-kill_pane"},{"id":"Libtmux.Command.mutation.Kill_session","publicId":"Libtmux.Command.mutation.Kill_session","name":"Kill_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":863,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_session of Session.target","source":{"file":"lib/libtmux.mli","line":863,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_session","slug":"libtmux-command-mutation-kill_session"},{"id":"Libtmux.Command.mutation.Kill_window","publicId":"Libtmux.Command.mutation.Kill_window","name":"Kill_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":864,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_window of Window.target","source":{"file":"lib/libtmux.mli","line":864,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_window","slug":"libtmux-command-mutation-kill_window"},{"id":"Libtmux.Command.mutation.Link_window","publicId":"Libtmux.Command.mutation.Link_window","name":"Link_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":872,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":872,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Link_window","slug":"libtmux-command-mutation-link_window"},{"id":"Libtmux.Command.mutation.Link_window.index","publicId":"Libtmux.Command.mutation.Link_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":875,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":875,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-link_window-index"},{"id":"Libtmux.Command.mutation.Link_window.session","publicId":"Libtmux.Command.mutation.Link_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-link_window-session"},{"id":"Libtmux.Command.mutation.Link_window.window","publicId":"Libtmux.Command.mutation.Link_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":873,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":873,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-link_window-window"},{"id":"Libtmux.Command.mutation.Move_pane","publicId":"Libtmux.Command.mutation.Move_pane","name":"Move_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":897,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }","source":{"file":"lib/libtmux.mli","line":897,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_pane","slug":"libtmux-command-mutation-move_pane"},{"id":"Libtmux.Command.mutation.Move_pane.beside","publicId":"Libtmux.Command.mutation.Move_pane.beside","name":"beside","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":899,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"beside : Pane.target;","source":{"file":"lib/libtmux.mli","line":899,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.beside","slug":"libtmux-command-mutation-move_pane-beside"},{"id":"Libtmux.Command.mutation.Move_pane.direction","publicId":"Libtmux.Command.mutation.Move_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":900,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":900,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-mutation-move_pane-direction"},{"id":"Libtmux.Command.mutation.Move_pane.pane","publicId":"Libtmux.Command.mutation.Move_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":898,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":898,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-move_pane-pane"},{"id":"Libtmux.Command.mutation.Move_pane.size","publicId":"Libtmux.Command.mutation.Move_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":901,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":901,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-mutation-move_pane-size"},{"id":"Libtmux.Command.mutation.Move_window_at","publicId":"Libtmux.Command.mutation.Move_window_at","name":"Move_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":877,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":877,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_window_at","slug":"libtmux-command-mutation-move_window_at"},{"id":"Libtmux.Command.mutation.Move_window_at.from_index","publicId":"Libtmux.Command.mutation.Move_window_at.from_index","name":"from_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":879,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_index : int;","source":{"file":"lib/libtmux.mli","line":879,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.from_index","slug":"libtmux-command-mutation-move_window_at-from_index"},{"id":"Libtmux.Command.mutation.Move_window_at.from_session","publicId":"Libtmux.Command.mutation.Move_window_at.from_session","name":"from_session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":878,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_session : Session.target;","source":{"file":"lib/libtmux.mli","line":878,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.from_session","slug":"libtmux-command-mutation-move_window_at-from_session"},{"id":"Libtmux.Command.mutation.Move_window_at.index","publicId":"Libtmux.Command.mutation.Move_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":881,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":881,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-move_window_at-index"},{"id":"Libtmux.Command.mutation.Move_window_at.session","publicId":"Libtmux.Command.mutation.Move_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":880,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":880,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-move_window_at-session"},{"id":"Libtmux.Command.mutation.Refresh_client_at","publicId":"Libtmux.Command.mutation.Refresh_client_at","name":"Refresh_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":944,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Refresh_client_at of Client_name.t * bool","source":{"file":"lib/libtmux.mli","line":944,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Refresh_client_at","slug":"libtmux-command-mutation-refresh_client_at"},{"id":"Libtmux.Command.mutation.Remove_environment","publicId":"Libtmux.Command.mutation.Remove_environment","name":"Remove_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":919,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":919,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_environment","slug":"libtmux-command-mutation-remove_environment"},{"id":"Libtmux.Command.mutation.Remove_hook","publicId":"Libtmux.Command.mutation.Remove_hook","name":"Remove_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":936,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_hook of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":936,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_hook","slug":"libtmux-command-mutation-remove_hook"},{"id":"Libtmux.Command.mutation.Request_detach_client_at","publicId":"Libtmux.Command.mutation.Request_detach_client_at","name":"Request_detach_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":943,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Request_detach_client_at of Client_name.t","source":{"file":"lib/libtmux.mli","line":943,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Request_detach_client_at","slug":"libtmux-command-mutation-request_detach_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at","publicId":"Libtmux.Command.mutation.Resize_control_client_at","name":"Resize_control_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":945,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":945,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_control_client_at","slug":"libtmux-command-mutation-resize_control_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.client","publicId":"Libtmux.Command.mutation.Resize_control_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":946,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":946,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-resize_control_client_at-client"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.height","publicId":"Libtmux.Command.mutation.Resize_control_client_at.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":948,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":948,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_control_client_at-height"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.width","publicId":"Libtmux.Command.mutation.Resize_control_client_at.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":947,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":947,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_control_client_at-width"},{"id":"Libtmux.Command.mutation.Resize_pane","publicId":"Libtmux.Command.mutation.Resize_pane","name":"Resize_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":885,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":885,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_pane","slug":"libtmux-command-mutation-resize_pane"},{"id":"Libtmux.Command.mutation.Resize_pane.height","publicId":"Libtmux.Command.mutation.Resize_pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":888,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":888,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_pane-height"},{"id":"Libtmux.Command.mutation.Resize_pane.pane","publicId":"Libtmux.Command.mutation.Resize_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":886,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":886,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-resize_pane-pane"},{"id":"Libtmux.Command.mutation.Resize_pane.width","publicId":"Libtmux.Command.mutation.Resize_pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":887,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":887,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_pane-width"},{"id":"Libtmux.Command.mutation.Resize_window","publicId":"Libtmux.Command.mutation.Resize_window","name":"Resize_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":890,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":890,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_window","slug":"libtmux-command-mutation-resize_window"},{"id":"Libtmux.Command.mutation.Resize_window.height","publicId":"Libtmux.Command.mutation.Resize_window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":893,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":893,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_window-height"},{"id":"Libtmux.Command.mutation.Resize_window.width","publicId":"Libtmux.Command.mutation.Resize_window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":892,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":892,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_window-width"},{"id":"Libtmux.Command.mutation.Resize_window.window","publicId":"Libtmux.Command.mutation.Resize_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":891,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":891,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-resize_window-window"},{"id":"Libtmux.Command.mutation.Respawn_pane","publicId":"Libtmux.Command.mutation.Respawn_pane","name":"Respawn_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":906,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }","source":{"file":"lib/libtmux.mli","line":906,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Respawn_pane","slug":"libtmux-command-mutation-respawn_pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.kill_running","publicId":"Libtmux.Command.mutation.Respawn_pane.kill_running","name":"kill_running","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":909,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kill_running : bool;","source":{"file":"lib/libtmux.mli","line":909,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"bool","qualifiedName":"Libtmux.Command.kill_running","slug":"libtmux-command-mutation-respawn_pane-kill_running"},{"id":"Libtmux.Command.mutation.Respawn_pane.pane","publicId":"Libtmux.Command.mutation.Respawn_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":907,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":907,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-respawn_pane-pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.spawn","publicId":"Libtmux.Command.mutation.Respawn_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":908,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":908,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-mutation-respawn_pane-spawn"},{"id":"Libtmux.Command.mutation.Rotate_panes","publicId":"Libtmux.Command.mutation.Rotate_panes","name":"Rotate_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":904,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rotate_panes of Window.target * [ `Forward | `Backward ]","source":{"file":"lib/libtmux.mli","line":904,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Rotate_panes","slug":"libtmux-command-mutation-rotate_panes"},{"id":"Libtmux.Command.mutation.Run_hook","publicId":"Libtmux.Command.mutation.Run_hook","name":"Run_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":937,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Run_hook of Options.scope * string","source":{"file":"lib/libtmux.mli","line":937,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Run_hook","slug":"libtmux-command-mutation-run_hook"},{"id":"Libtmux.Command.mutation.Select_layout","publicId":"Libtmux.Command.mutation.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":895,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of Window.target * Layout.t","source":{"file":"lib/libtmux.mli","line":895,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_layout","slug":"libtmux-command-mutation-select_layout"},{"id":"Libtmux.Command.mutation.Select_pane","publicId":"Libtmux.Command.mutation.Select_pane","name":"Select_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":883,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":883,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_pane","slug":"libtmux-command-mutation-select_pane"},{"id":"Libtmux.Command.mutation.Select_window_at","publicId":"Libtmux.Command.mutation.Select_window_at","name":"Select_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":866,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_window_at of Session.target * int","source":{"file":"lib/libtmux.mli","line":866,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_window_at","slug":"libtmux-command-mutation-select_window_at"},{"id":"Libtmux.Command.mutation.Set_environment","publicId":"Libtmux.Command.mutation.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":912,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }","source":{"file":"lib/libtmux.mli","line":912,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_environment","slug":"libtmux-command-mutation-set_environment"},{"id":"Libtmux.Command.mutation.Set_environment.hidden","publicId":"Libtmux.Command.mutation.Set_environment.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":916,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":916,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"bool","qualifiedName":"Libtmux.Command.hidden","slug":"libtmux-command-mutation-set_environment-hidden"},{"id":"Libtmux.Command.mutation.Set_environment.name","publicId":"Libtmux.Command.mutation.Set_environment.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":914,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":914,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_environment-name"},{"id":"Libtmux.Command.mutation.Set_environment.scope","publicId":"Libtmux.Command.mutation.Set_environment.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":913,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Environment.scope;","source":{"file":"lib/libtmux.mli","line":913,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"Environment.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_environment-scope"},{"id":"Libtmux.Command.mutation.Set_environment.value","publicId":"Libtmux.Command.mutation.Set_environment.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":915,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : string;","source":{"file":"lib/libtmux.mli","line":915,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_environment-value"},{"id":"Libtmux.Command.mutation.Set_hook","publicId":"Libtmux.Command.mutation.Set_hook","name":"Set_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":929,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":929,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_hook","slug":"libtmux-command-mutation-set_hook"},{"id":"Libtmux.Command.mutation.Set_hook.append","publicId":"Libtmux.Command.mutation.Set_hook.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":934,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":934,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_hook-append"},{"id":"Libtmux.Command.mutation.Set_hook.commands","publicId":"Libtmux.Command.mutation.Set_hook.commands","name":"commands","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":933,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"commands : Hook.command list;","source":{"file":"lib/libtmux.mli","line":933,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Hook.command list","qualifiedName":"Libtmux.Command.commands","slug":"libtmux-command-mutation-set_hook-commands"},{"id":"Libtmux.Command.mutation.Set_hook.index","publicId":"Libtmux.Command.mutation.Set_hook.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":932,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":932,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_hook-index"},{"id":"Libtmux.Command.mutation.Set_hook.name","publicId":"Libtmux.Command.mutation.Set_hook.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":931,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":931,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_hook-name"},{"id":"Libtmux.Command.mutation.Set_hook.scope","publicId":"Libtmux.Command.mutation.Set_hook.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":930,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":930,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_hook-scope"},{"id":"Libtmux.Command.mutation.Set_option","publicId":"Libtmux.Command.mutation.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":920,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":920,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_option","slug":"libtmux-command-mutation-set_option"},{"id":"Libtmux.Command.mutation.Set_option.append","publicId":"Libtmux.Command.mutation.Set_option.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":925,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":925,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_option-append"},{"id":"Libtmux.Command.mutation.Set_option.index","publicId":"Libtmux.Command.mutation.Set_option.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":923,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":923,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_option-index"},{"id":"Libtmux.Command.mutation.Set_option.name","publicId":"Libtmux.Command.mutation.Set_option.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":922,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":922,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_option-name"},{"id":"Libtmux.Command.mutation.Set_option.scope","publicId":"Libtmux.Command.mutation.Set_option.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":921,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":921,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_option-scope"},{"id":"Libtmux.Command.mutation.Set_option.value","publicId":"Libtmux.Command.mutation.Set_option.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":924,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Options.scalar;","source":{"file":"lib/libtmux.mli","line":924,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scalar","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_option-value"},{"id":"Libtmux.Command.mutation.Set_pane_title","publicId":"Libtmux.Command.mutation.Set_pane_title","name":"Set_pane_title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":884,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_pane_title of Pane.target * string","source":{"file":"lib/libtmux.mli","line":884,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Set_pane_title","slug":"libtmux-command-mutation-set_pane_title"},{"id":"Libtmux.Command.mutation.Swap_panes","publicId":"Libtmux.Command.mutation.Swap_panes","name":"Swap_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":903,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Swap_panes of Pane.target * Pane.target","source":{"file":"lib/libtmux.mli","line":903,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Swap_panes","slug":"libtmux-command-mutation-swap_panes"},{"id":"Libtmux.Command.mutation.Switch_client_at","publicId":"Libtmux.Command.mutation.Switch_client_at","name":"Switch_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":938,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }","source":{"file":"lib/libtmux.mli","line":938,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Switch_client_at","slug":"libtmux-command-mutation-switch_client_at"},{"id":"Libtmux.Command.mutation.Switch_client_at.client","publicId":"Libtmux.Command.mutation.Switch_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":939,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":939,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-switch_client_at-client"},{"id":"Libtmux.Command.mutation.Switch_client_at.session","publicId":"Libtmux.Command.mutation.Switch_client_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":940,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":940,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-switch_client_at-session"},{"id":"Libtmux.Command.mutation.Switch_client_at.update_environment","publicId":"Libtmux.Command.mutation.Switch_client_at.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":941,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"update_environment : bool;","source":{"file":"lib/libtmux.mli","line":941,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"bool","qualifiedName":"Libtmux.Command.update_environment","slug":"libtmux-command-mutation-switch_client_at-update_environment"},{"id":"Libtmux.Command.mutation.Unlink_window_at","publicId":"Libtmux.Command.mutation.Unlink_window_at","name":"Unlink_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":867,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }","source":{"file":"lib/libtmux.mli","line":867,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Unlink_window_at","slug":"libtmux-command-mutation-unlink_window_at"},{"id":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","publicId":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","name":"allow_kill","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":870,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"allow_kill : bool;","source":{"file":"lib/libtmux.mli","line":870,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"bool","qualifiedName":"Libtmux.Command.allow_kill","slug":"libtmux-command-mutation-unlink_window_at-allow_kill"},{"id":"Libtmux.Command.mutation.Unlink_window_at.index","publicId":"Libtmux.Command.mutation.Unlink_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":869,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":869,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-unlink_window_at-index"},{"id":"Libtmux.Command.mutation.Unlink_window_at.session","publicId":"Libtmux.Command.mutation.Unlink_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":868,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":868,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-unlink_window_at-session"},{"id":"Libtmux.Command.mutation.Unset_environment","publicId":"Libtmux.Command.mutation.Unset_environment","name":"Unset_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":918,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":918,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_environment","slug":"libtmux-command-mutation-unset_environment"},{"id":"Libtmux.Command.mutation.Unset_option","publicId":"Libtmux.Command.mutation.Unset_option","name":"Unset_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":927,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_option of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":927,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_option","slug":"libtmux-command-mutation-unset_option"},{"id":"Libtmux.Command.mutation.Zoom_pane","publicId":"Libtmux.Command.mutation.Zoom_pane","name":"Zoom_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":905,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Zoom_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":905,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Zoom_pane","slug":"libtmux-command-mutation-zoom_pane"},{"id":"Libtmux.Command.t","publicId":"Libtmux.Command.t","qualifiedName":"Libtmux.Command.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":951,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. "],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":951,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command","doc":{"summary":"An immutable description, validated by a backend before admission. Constructing or inspecting it performs no I/O."},"signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-command-t"},{"id":"Libtmux.Command.view","publicId":"Libtmux.Command.view","qualifiedName":"Libtmux.Command.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1006,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read-only inspection for transport adapters. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":1006,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command","doc":{"summary":"Read-only inspection for transport adapters."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-command-view"},{"id":"Libtmux.Command.view:type","publicId":"Libtmux.Command.view:type","qualifiedName":"Libtmux.Command.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":955,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":955,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type _ view =\n Capture : Snapshot.t view\n | Capture_text : { pane : Pane.t; start : int; end_ : int;\n scratch_dir : string;\n } -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : { name : string; window_name : string option;\n width : int; height : int; spawn : Spawn.t;\n } -> Created.t view\n | Create_window : { session : Session.target; index : int option;\n name : string option; spawn : Spawn.t;\n } -> Created.t view\n | Split_pane : { pane : Pane.target; direction : Geometry.direction;\n size : Geometry.size option; spawn : Spawn.t;\n } -> Created.t view\n | Break_pane : { pane : Pane.target; session : Session.target; index : int;\n name : string option;\n } -> Created.t view","params":[]}],"slug":"libtmux-command-view-type"},{"id":"Libtmux.Command.view:type.Break_pane","publicId":"Libtmux.Command.view:type.Break_pane","name":"Break_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":998,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":998,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Break_pane","slug":"libtmux-command-view-type-break_pane"},{"id":"Libtmux.Command.view:type.Break_pane.index","publicId":"Libtmux.Command.view:type.Break_pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1001,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":1001,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-break_pane-index"},{"id":"Libtmux.Command.view:type.Break_pane.name","publicId":"Libtmux.Command.view:type.Break_pane.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1002,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1002,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-break_pane-name"},{"id":"Libtmux.Command.view:type.Break_pane.pane","publicId":"Libtmux.Command.view:type.Break_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":999,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":999,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-break_pane-pane"},{"id":"Libtmux.Command.view:type.Break_pane.session","publicId":"Libtmux.Command.view:type.Break_pane.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1000,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1000,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-break_pane-session"},{"id":"Libtmux.Command.view:type.Capture","publicId":"Libtmux.Command.view:type.Capture","name":"Capture","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":956,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture : Snapshot.t view","source":{"file":"lib/libtmux.mli","line":956,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"unit","qualifiedName":"Libtmux.Command.Capture","slug":"libtmux-command-view-type-capture"},{"id":"Libtmux.Command.view:type.Capture_environment","publicId":"Libtmux.Command.view:type.Capture_environment","name":"Capture_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":970,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_environment : Environment.scope * bool -> Environment.t view","source":{"file":"lib/libtmux.mli","line":970,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_environment","slug":"libtmux-command-view-type-capture_environment"},{"id":"Libtmux.Command.view:type.Capture_hooks","publicId":"Libtmux.Command.view:type.Capture_hooks","name":"Capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":973,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_hooks : Options.scope -> Options.t view","source":{"file":"lib/libtmux.mli","line":973,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_hooks","slug":"libtmux-command-view-type-capture_hooks"},{"id":"Libtmux.Command.view:type.Capture_options","publicId":"Libtmux.Command.view:type.Capture_options","name":"Capture_options","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":971,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_options : Options.scope * bool -> Options.t view","source":{"file":"lib/libtmux.mli","line":971,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_options","slug":"libtmux-command-view-type-capture_options"},{"id":"Libtmux.Command.view:type.Capture_text","publicId":"Libtmux.Command.view:type.Capture_text","name":"Capture_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":957,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view","source":{"file":"lib/libtmux.mli","line":957,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Capture_text","slug":"libtmux-command-view-type-capture_text"},{"id":"Libtmux.Command.view:type.Capture_text.end_","publicId":"Libtmux.Command.view:type.Capture_text.end_","name":"end_","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":960,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"end_ : int;","source":{"file":"lib/libtmux.mli","line":960,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.end_","slug":"libtmux-command-view-type-capture_text-end_"},{"id":"Libtmux.Command.view:type.Capture_text.pane","publicId":"Libtmux.Command.view:type.Capture_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":958,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.t;","source":{"file":"lib/libtmux.mli","line":958,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"Pane.t","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-capture_text-pane"},{"id":"Libtmux.Command.view:type.Capture_text.scratch_dir","publicId":"Libtmux.Command.view:type.Capture_text.scratch_dir","name":"scratch_dir","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":961,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scratch_dir : string;","source":{"file":"lib/libtmux.mli","line":961,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"string","qualifiedName":"Libtmux.Command.scratch_dir","slug":"libtmux-command-view-type-capture_text-scratch_dir"},{"id":"Libtmux.Command.view:type.Capture_text.start","publicId":"Libtmux.Command.view:type.Capture_text.start","name":"start","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":959,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"start : int;","source":{"file":"lib/libtmux.mli","line":959,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.start","slug":"libtmux-command-view-type-capture_text-start"},{"id":"Libtmux.Command.view:type.Create_session","publicId":"Libtmux.Command.view:type.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":976,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":976,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_session","slug":"libtmux-command-view-type-create_session"},{"id":"Libtmux.Command.view:type.Create_session.height","publicId":"Libtmux.Command.view:type.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":980,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":980,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-view-type-create_session-height"},{"id":"Libtmux.Command.view:type.Create_session.name","publicId":"Libtmux.Command.view:type.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":977,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":977,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_session-name"},{"id":"Libtmux.Command.view:type.Create_session.spawn","publicId":"Libtmux.Command.view:type.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":981,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":981,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_session-spawn"},{"id":"Libtmux.Command.view:type.Create_session.width","publicId":"Libtmux.Command.view:type.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":979,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":979,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-view-type-create_session-width"},{"id":"Libtmux.Command.view:type.Create_session.window_name","publicId":"Libtmux.Command.view:type.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":978,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string option;","source":{"file":"lib/libtmux.mli","line":978,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string option","qualifiedName":"Libtmux.Command.window_name","slug":"libtmux-command-view-type-create_session-window_name"},{"id":"Libtmux.Command.view:type.Create_window","publicId":"Libtmux.Command.view:type.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":984,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":984,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_window","slug":"libtmux-command-view-type-create_window"},{"id":"Libtmux.Command.view:type.Create_window.index","publicId":"Libtmux.Command.view:type.Create_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":986,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":986,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-create_window-index"},{"id":"Libtmux.Command.view:type.Create_window.name","publicId":"Libtmux.Command.view:type.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":987,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":987,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_window-name"},{"id":"Libtmux.Command.view:type.Create_window.session","publicId":"Libtmux.Command.view:type.Create_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":985,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":985,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-create_window-session"},{"id":"Libtmux.Command.view:type.Create_window.spawn","publicId":"Libtmux.Command.view:type.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":988,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":988,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_window-spawn"},{"id":"Libtmux.Command.view:type.Mutate","publicId":"Libtmux.Command.view:type.Mutate","name":"Mutate","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":975,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mutate : mutation -> unit view","source":{"file":"lib/libtmux.mli","line":975,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Mutate","slug":"libtmux-command-view-type-mutate"},{"id":"Libtmux.Command.view:type.Read_hook","publicId":"Libtmux.Command.view:type.Read_hook","name":"Read_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":974,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_hook : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":974,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_hook","slug":"libtmux-command-view-type-read_hook"},{"id":"Libtmux.Command.view:type.Read_option","publicId":"Libtmux.Command.view:type.Read_option","name":"Read_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":972,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_option : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":972,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_option","slug":"libtmux-command-view-type-read_option"},{"id":"Libtmux.Command.view:type.Rename_session","publicId":"Libtmux.Command.view:type.Rename_session","name":"Rename_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":965,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_session : Session.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":965,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_session","slug":"libtmux-command-view-type-rename_session"},{"id":"Libtmux.Command.view:type.Rename_window","publicId":"Libtmux.Command.view:type.Rename_window","name":"Rename_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":964,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_window : Window.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":964,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_window","slug":"libtmux-command-view-type-rename_window"},{"id":"Libtmux.Command.view:type.Send_keys","publicId":"Libtmux.Command.view:type.Send_keys","name":"Send_keys","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":967,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_keys : Pane.target * Key.t list -> unit view","source":{"file":"lib/libtmux.mli","line":967,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_keys","slug":"libtmux-command-view-type-send_keys"},{"id":"Libtmux.Command.view:type.Send_text","publicId":"Libtmux.Command.view:type.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":966,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text : Pane.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":966,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_text","slug":"libtmux-command-view-type-send_text"},{"id":"Libtmux.Command.view:type.Signal","publicId":"Libtmux.Command.view:type.Signal","name":"Signal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":969,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Signal : string -> unit view","source":{"file":"lib/libtmux.mli","line":969,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Signal","slug":"libtmux-command-view-type-signal"},{"id":"Libtmux.Command.view:type.Split_pane","publicId":"Libtmux.Command.view:type.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":991,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":991,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Split_pane","slug":"libtmux-command-view-type-split_pane"},{"id":"Libtmux.Command.view:type.Split_pane.direction","publicId":"Libtmux.Command.view:type.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":993,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":993,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-view-type-split_pane-direction"},{"id":"Libtmux.Command.view:type.Split_pane.pane","publicId":"Libtmux.Command.view:type.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":992,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":992,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-split_pane-pane"},{"id":"Libtmux.Command.view:type.Split_pane.size","publicId":"Libtmux.Command.view:type.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":994,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":994,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-view-type-split_pane-size"},{"id":"Libtmux.Command.view:type.Split_pane.spawn","publicId":"Libtmux.Command.view:type.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":995,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":995,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-split_pane-spawn"},{"id":"Libtmux.Command.view:type.Wait_for","publicId":"Libtmux.Command.view:type.Wait_for","name":"Wait_for","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":968,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wait_for : string -> unit view","source":{"file":"lib/libtmux.mli","line":968,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Wait_for","slug":"libtmux-command-view-type-wait_for"},{"id":"Libtmux.Created","publicId":"Libtmux.Created","qualifiedName":"Libtmux.Created","name":"Created","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":757,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" IDs reported by a successful creation reply. Only the requested kind is\n newly created; the other fields can describe existing containers. "],"declarations":[{"kind":"module","text":"module Created : sig\n type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }\n (** IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. *)\nend","source":{"file":"lib/libtmux.mli","line":757,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"IDs reported by a successful creation reply. Only the requested kind is newly created; the other fields can describe existing containers."},"slug":"libtmux-created"},{"id":"Libtmux.Created.t","publicId":"Libtmux.Created.t","qualifiedName":"Libtmux.Created.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":758,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. "],"declarations":[{"kind":"struct","text":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }","source":{"file":"lib/libtmux.mli","line":758,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Created","doc":{"summary":"IDs returned by the creation command, without a second capture. Indexes describe the creation response and may change afterward. Only the resource requested by the command is newly created: splitting a pane does not create the reported session or window."},"signatures":[{"raw":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n}","params":[]}],"slug":"libtmux-created-t"},{"id":"Libtmux.Created.t.pane","publicId":"Libtmux.Created.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":761,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":761,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Created.t","type":"Pane.target","qualifiedName":"Libtmux.Created.pane","slug":"libtmux-created-t-pane"},{"id":"Libtmux.Created.t.pane_index","publicId":"Libtmux.Created.t.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.pane_index","slug":"libtmux-created-t-pane_index"},{"id":"Libtmux.Created.t.session","publicId":"Libtmux.Created.t.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":759,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":759,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Created.t","type":"Session.target","qualifiedName":"Libtmux.Created.session","slug":"libtmux-created-t-session"},{"id":"Libtmux.Created.t.window","publicId":"Libtmux.Created.t.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":760,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":760,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Created.t","type":"Window.target","qualifiedName":"Libtmux.Created.window","slug":"libtmux-created-t-window"},{"id":"Libtmux.Created.t.window_index","publicId":"Libtmux.Created.t.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"lib/libtmux.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.window_index","slug":"libtmux-created-t-window_index"},{"id":"Libtmux.Endpoint","publicId":"Libtmux.Endpoint","qualifiedName":"Libtmux.Endpoint","name":"Endpoint","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" An explicit socket description. Constructing an endpoint neither reads the\n environment nor starts a daemon. {!Source.t} adds the observed daemon and\n connection generation. "],"declarations":[{"kind":"module","text":"module Endpoint : sig\n type t\n (** An explicit socket description, independent of the environment. *)\n\n type kind = Named_socket of string | Socket_path of string\n\n val named_socket : string -> t\n (** [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. *)\n\n val socket_path : string -> t\n (** [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. *)\n\n val kind : t -> kind\n\n val equal : t -> t -> bool\n (** Equality compares descriptions, not server instances or resolved paths. *)\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"An explicit socket description. Constructing an endpoint neither reads the environment nor starts a daemon. {!Source.t} adds the observed daemon and connection generation."},"slug":"libtmux-endpoint"},{"id":"Libtmux.Endpoint.equal","publicId":"Libtmux.Endpoint.equal","qualifiedName":"Libtmux.Endpoint.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":43,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Equality compares descriptions, not server instances or resolved paths. "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":43,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"Equality compares descriptions, not server instances or resolved paths."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-endpoint-equal"},{"id":"Libtmux.Endpoint.kind","publicId":"Libtmux.Endpoint.kind","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":41,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : t -> kind","source":{"file":"lib/libtmux.mli","line":41,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val kind : t -> kind","params":[{"name":"arg1","type":"t"}],"returns":"kind"}],"slug":"libtmux-endpoint-kind"},{"id":"Libtmux.Endpoint.kind:type","publicId":"Libtmux.Endpoint.kind:type","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type kind = Named_socket of string | Socket_path of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"type kind = Named_socket of string | Socket_path of string","params":[]}],"slug":"libtmux-endpoint-kind-type"},{"id":"Libtmux.Endpoint.kind:type.Named_socket","publicId":"Libtmux.Endpoint.kind:type.Named_socket","name":"Named_socket","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Named_socket of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Named_socket","slug":"libtmux-endpoint-kind-type-named_socket"},{"id":"Libtmux.Endpoint.kind:type.Socket_path","publicId":"Libtmux.Endpoint.kind:type.Socket_path","name":"Socket_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Socket_path of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Socket_path","slug":"libtmux-endpoint-kind-type-socket_path"},{"id":"Libtmux.Endpoint.named_socket","publicId":"Libtmux.Endpoint.named_socket","qualifiedName":"Libtmux.Endpoint.named_socket","name":"named_socket","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. "],"declarations":[{"kind":"function","text":"val named_socket : string -> t","source":{"file":"lib/libtmux.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`named_socket name` describes tmux's `-L name` endpoint. Raises `Invalid_argument` if `name` is empty or contains NUL or `/`."},"signatures":[{"raw":"val named_socket : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-named_socket"},{"id":"Libtmux.Endpoint.pp","publicId":"Libtmux.Endpoint.pp","qualifiedName":"Libtmux.Endpoint.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":46,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":46,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-endpoint-pp"},{"id":"Libtmux.Endpoint.socket_path","publicId":"Libtmux.Endpoint.socket_path","qualifiedName":"Libtmux.Endpoint.socket_path","name":"socket_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. "],"declarations":[{"kind":"function","text":"val socket_path : string -> t","source":{"file":"lib/libtmux.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`socket_path path` describes an absolute `-S path` endpoint. It does not check existence or resolve symbolic links. Raises `Invalid_argument` if `path` is relative, empty or contains NUL."},"signatures":[{"raw":"val socket_path : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-socket_path"},{"id":"Libtmux.Endpoint.t","publicId":"Libtmux.Endpoint.t","qualifiedName":"Libtmux.Endpoint.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" An explicit socket description, independent of the environment. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"An explicit socket description, independent of the environment."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-endpoint-t"},{"id":"Libtmux.Environment","publicId":"Libtmux.Environment","qualifiedName":"Libtmux.Environment","name":"Environment","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":771,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Environment : sig\n type scope = Global | Session of Session.target\n type value = Value of string | Removed\n type entry = { name : string; value : value }\n\n type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. *)\n\n val lookup : t -> string -> value option\n (** No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. *)\nend","source":{"file":"lib/libtmux.mli","line":771,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-environment"},{"id":"Libtmux.Environment.entry","publicId":"Libtmux.Environment.entry","qualifiedName":"Libtmux.Environment.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { name : string; value : value }","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type entry = { name : string; value : value; }","params":[]}],"slug":"libtmux-environment-entry"},{"id":"Libtmux.Environment.entry.name","publicId":"Libtmux.Environment.entry.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.entry","type":"string","qualifiedName":"Libtmux.Environment.name","slug":"libtmux-environment-entry-name"},{"id":"Libtmux.Environment.entry.value","publicId":"Libtmux.Environment.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.entry","type":"value","qualifiedName":"Libtmux.Environment.value","slug":"libtmux-environment-entry-value"},{"id":"Libtmux.Environment.lookup","publicId":"Libtmux.Environment.lookup","qualifiedName":"Libtmux.Environment.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":788,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> value option","source":{"file":"lib/libtmux.mli","line":788,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment","doc":{"summary":"No I/O. `None` means absent from the selected table and visibility. `Removed` masks a global value; `Value \"\"` is an explicitly empty value. Names must be ASCII identifiers; values preserve non-NUL bytes."},"signatures":[{"raw":"val lookup : t -> string -> value option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"value option"}],"slug":"libtmux-environment-lookup"},{"id":"Libtmux.Environment.scope","publicId":"Libtmux.Environment.scope","qualifiedName":"Libtmux.Environment.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Global | Session of Session.target","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type scope = Global | Session of Session.target","params":[]}],"slug":"libtmux-environment-scope"},{"id":"Libtmux.Environment.scope.Global","publicId":"Libtmux.Environment.scope.Global","name":"Global","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Global","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.scope","variant":"unit","qualifiedName":"Libtmux.Environment.Global","slug":"libtmux-environment-scope-global"},{"id":"Libtmux.Environment.scope.Session","publicId":"Libtmux.Environment.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.scope","variant":"tuple","qualifiedName":"Libtmux.Environment.Session","slug":"libtmux-environment-scope-session"},{"id":"Libtmux.Environment.t","publicId":"Libtmux.Environment.t","qualifiedName":"Libtmux.Environment.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":776,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":776,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment","doc":{"summary":"One captured environment table, in tmux order. `hidden` selects hidden variables exclusively. Session tables contain local entries, including removal markers; they do not merge the global environment."},"signatures":[{"raw":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-environment-t"},{"id":"Libtmux.Environment.t.entries","publicId":"Libtmux.Environment.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Environment.entries","slug":"libtmux-environment-t-entries"},{"id":"Libtmux.Environment.t.finished_at_ns","publicId":"Libtmux.Environment.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":782,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":782,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.finished_at_ns","slug":"libtmux-environment-t-finished_at_ns"},{"id":"Libtmux.Environment.t.hidden","publicId":"Libtmux.Environment.t.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":779,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":779,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.t","type":"bool","qualifiedName":"Libtmux.Environment.hidden","slug":"libtmux-environment-t-hidden"},{"id":"Libtmux.Environment.t.scope","publicId":"Libtmux.Environment.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":778,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":778,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.t","type":"scope","qualifiedName":"Libtmux.Environment.scope","slug":"libtmux-environment-t-scope"},{"id":"Libtmux.Environment.t.source","publicId":"Libtmux.Environment.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":777,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":777,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.t","type":"Source.t","qualifiedName":"Libtmux.Environment.source","slug":"libtmux-environment-t-source"},{"id":"Libtmux.Environment.t.started_at_ns","publicId":"Libtmux.Environment.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":781,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":781,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.started_at_ns","slug":"libtmux-environment-t-started_at_ns"},{"id":"Libtmux.Environment.value","publicId":"Libtmux.Environment.value","qualifiedName":"Libtmux.Environment.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Value of string | Removed","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type value = Value of string | Removed","params":[]}],"slug":"libtmux-environment-value"},{"id":"Libtmux.Environment.value.Removed","publicId":"Libtmux.Environment.value.Removed","name":"Removed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Removed","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.value","variant":"unit","qualifiedName":"Libtmux.Environment.Removed","slug":"libtmux-environment-value-removed"},{"id":"Libtmux.Environment.value.Value","publicId":"Libtmux.Environment.value.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Value of string","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.value","variant":"tuple","qualifiedName":"Libtmux.Environment.Value","slug":"libtmux-environment-value-value"},{"id":"Libtmux.Error","publicId":"Libtmux.Error","qualifiedName":"Libtmux.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":52,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Expected input, capture, capability and transport failures. Cancellation\n belongs to the chosen backend and is not converted into an ordinary error.\n"],"declarations":[{"kind":"module","text":"module Error : sig\n type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":52,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Expected input, capture, capability and transport failures. Cancellation belongs to the chosen backend and is not converted into an ordinary error."},"slug":"libtmux-error"},{"id":"Libtmux.Error.pp","publicId":"Libtmux.Error.pp","qualifiedName":"Libtmux.Error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-error-pp"},{"id":"Libtmux.Error.t","publicId":"Libtmux.Error.t","qualifiedName":"Libtmux.Error.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":53,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":53,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error","signatures":[{"raw":"type t =\n Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string; }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int; }\n | Stale_target\n | No_such_entity of { kind : string; id : string; }\n | Command_failed of { command : string; message : string; }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","params":[]}],"slug":"libtmux-error-t"},{"id":"Libtmux.Error.t.Busy","publicId":"Libtmux.Error.t.Busy","name":"Busy","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Busy","source":{"file":"lib/libtmux.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Busy","slug":"libtmux-error-t-busy"},{"id":"Libtmux.Error.t.Capacity","publicId":"Libtmux.Error.t.Capacity","name":"Capacity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capacity of { resource : string; limit : int }","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Capacity","slug":"libtmux-error-t-capacity"},{"id":"Libtmux.Error.t.Capacity.limit","publicId":"Libtmux.Error.t.Capacity.limit","name":"limit","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"limit : int","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.Capacity","type":"int","qualifiedName":"Libtmux.Error.limit","slug":"libtmux-error-t-capacity-limit"},{"id":"Libtmux.Error.t.Capacity.resource","publicId":"Libtmux.Error.t.Capacity.resource","name":"resource","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"resource : string;","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.Capacity","type":"string","qualifiedName":"Libtmux.Error.resource","slug":"libtmux-error-t-capacity-resource"},{"id":"Libtmux.Error.t.Capture_raced","publicId":"Libtmux.Error.t.Capture_raced","name":"Capture_raced","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_raced of string","source":{"file":"lib/libtmux.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Capture_raced","slug":"libtmux-error-t-capture_raced"},{"id":"Libtmux.Error.t.Closed","publicId":"Libtmux.Error.t.Closed","name":"Closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Closed","source":{"file":"lib/libtmux.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Closed","slug":"libtmux-error-t-closed"},{"id":"Libtmux.Error.t.Command_failed","publicId":"Libtmux.Error.t.Command_failed","name":"Command_failed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command_failed of { command : string; message : string }","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Command_failed","slug":"libtmux-error-t-command_failed"},{"id":"Libtmux.Error.t.Command_failed.command","publicId":"Libtmux.Error.t.Command_failed.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : string;","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.command","slug":"libtmux-error-t-command_failed-command"},{"id":"Libtmux.Error.t.Command_failed.message","publicId":"Libtmux.Error.t.Command_failed.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-command_failed-message"},{"id":"Libtmux.Error.t.Deadline_exceeded","publicId":"Libtmux.Error.t.Deadline_exceeded","name":"Deadline_exceeded","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Deadline_exceeded","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Deadline_exceeded","slug":"libtmux-error-t-deadline_exceeded"},{"id":"Libtmux.Error.t.Disconnected","publicId":"Libtmux.Error.t.Disconnected","name":"Disconnected","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Disconnected of string","source":{"file":"lib/libtmux.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Disconnected","slug":"libtmux-error-t-disconnected"},{"id":"Libtmux.Error.t.Filesystem","publicId":"Libtmux.Error.t.Filesystem","name":"Filesystem","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Filesystem of { operation : string; message : string }","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Filesystem","slug":"libtmux-error-t-filesystem"},{"id":"Libtmux.Error.t.Filesystem.message","publicId":"Libtmux.Error.t.Filesystem.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-filesystem-message"},{"id":"Libtmux.Error.t.Filesystem.operation","publicId":"Libtmux.Error.t.Filesystem.operation","name":"operation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation : string;","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.operation","slug":"libtmux-error-t-filesystem-operation"},{"id":"Libtmux.Error.t.Invalid_input","publicId":"Libtmux.Error.t.Invalid_input","name":"Invalid_input","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":54,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Invalid_input of string","source":{"file":"lib/libtmux.mli","line":54,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Invalid_input","slug":"libtmux-error-t-invalid_input"},{"id":"Libtmux.Error.t.Malformed_data","publicId":"Libtmux.Error.t.Malformed_data","name":"Malformed_data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Malformed_data of string","source":{"file":"lib/libtmux.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Malformed_data","slug":"libtmux-error-t-malformed_data"},{"id":"Libtmux.Error.t.No_such_entity","publicId":"Libtmux.Error.t.No_such_entity","name":"No_such_entity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| No_such_entity of { kind : string; id : string }","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.No_such_entity","slug":"libtmux-error-t-no_such_entity"},{"id":"Libtmux.Error.t.No_such_entity.id","publicId":"Libtmux.Error.t.No_such_entity.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : string","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.id","slug":"libtmux-error-t-no_such_entity-id"},{"id":"Libtmux.Error.t.No_such_entity.kind","publicId":"Libtmux.Error.t.No_such_entity.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : string;","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.kind","slug":"libtmux-error-t-no_such_entity-kind"},{"id":"Libtmux.Error.t.Not_started","publicId":"Libtmux.Error.t.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"lib/libtmux.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Not_started","slug":"libtmux-error-t-not_started"},{"id":"Libtmux.Error.t.Outcome_unknown","publicId":"Libtmux.Error.t.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Outcome_unknown","slug":"libtmux-error-t-outcome_unknown"},{"id":"Libtmux.Error.t.Stale_target","publicId":"Libtmux.Error.t.Stale_target","name":"Stale_target","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale_target","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Stale_target","slug":"libtmux-error-t-stale_target"},{"id":"Libtmux.Error.t.Unsupported","publicId":"Libtmux.Error.t.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported of string","source":{"file":"lib/libtmux.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported","slug":"libtmux-error-t-unsupported"},{"id":"Libtmux.Error.t.Unsupported_binding","publicId":"Libtmux.Error.t.Unsupported_binding","name":"Unsupported_binding","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_binding of string","source":{"file":"lib/libtmux.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_binding","slug":"libtmux-error-t-unsupported_binding"},{"id":"Libtmux.Error.t.Unsupported_capture_hooks","publicId":"Libtmux.Error.t.Unsupported_capture_hooks","name":"Unsupported_capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_capture_hooks","source":{"file":"lib/libtmux.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Unsupported_capture_hooks","slug":"libtmux-error-t-unsupported_capture_hooks"},{"id":"Libtmux.Error.t.Unsupported_version","publicId":"Libtmux.Error.t.Unsupported_version","name":"Unsupported_version","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_version of string","source":{"file":"lib/libtmux.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_version","slug":"libtmux-error-t-unsupported_version"},{"id":"Libtmux.Error.t.Wrong_domain","publicId":"Libtmux.Error.t.Wrong_domain","name":"Wrong_domain","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_domain","source":{"file":"lib/libtmux.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Wrong_domain","slug":"libtmux-error-t-wrong_domain"},{"id":"Libtmux.Expr","publicId":"Libtmux.Expr","qualifiedName":"Libtmux.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Inspectable predicates whose entity and operand types are checked by the\n compiler. Combine native closures separately with [Seq.filter]. Evaluation\n follows captured relationships without acquisition or hidden caches. "],"declarations":[{"kind":"module","text":"module Expr : sig\n type 'entity t\n\n val all : 'a t list -> 'a t\n (** Boolean conjunction; the empty conjunction is true. *)\n\n val any : 'a t list -> 'a t\n (** Boolean disjunction; the empty disjunction is false. *)\n\n val not_ : 'a t -> 'a t\n\n module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end\n\n module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end\n\n module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end\n\n module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end\n\n val compile : 'a t -> 'a -> bool\n (** Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n *)\n\n val pp : Format.formatter -> 'a t -> unit\n val describe : 'a t -> string\n\n type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison\n\n type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view\n\n val view : 'a t -> 'a view\n (** Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. *)\nend","source":{"file":"lib/libtmux.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Inspectable predicates whose entity and operand types are checked by the compiler. Combine native closures separately with `Seq.filter`. Evaluation follows captured relationships without acquisition or hidden caches."},"slug":"libtmux-expr"},{"id":"Libtmux.Expr.Bool","publicId":"Libtmux.Expr.Bool","qualifiedName":"Libtmux.Expr.Bool","name":"Bool","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":563,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":563,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-bool"},{"id":"Libtmux.Expr.Bool.equal","publicId":"Libtmux.Expr.Bool.equal","qualifiedName":"Libtmux.Expr.Bool.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":564,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, bool) Field.t -> bool -> 'a t","source":{"file":"lib/libtmux.mli","line":564,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val equal : ('a, bool) Field.t -> bool -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"},{"name":"arg2","type":"bool"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-equal"},{"id":"Libtmux.Expr.Bool.is_false","publicId":"Libtmux.Expr.Bool.is_false","qualifiedName":"Libtmux.Expr.Bool.is_false","name":"is_false","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":566,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_false : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":566,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_false : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_false"},{"id":"Libtmux.Expr.Bool.is_true","publicId":"Libtmux.Expr.Bool.is_true","qualifiedName":"Libtmux.Expr.Bool.is_true","name":"is_true","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_true : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_true : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_true"},{"id":"Libtmux.Expr.Int","publicId":"Libtmux.Expr.Int","qualifiedName":"Libtmux.Expr.Int","name":"Int","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":569,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":569,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-int"},{"id":"Libtmux.Expr.Int.equal","publicId":"Libtmux.Expr.Int.equal","qualifiedName":"Libtmux.Expr.Int.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":570,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":570,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val equal : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-equal"},{"id":"Libtmux.Expr.Int.ge","publicId":"Libtmux.Expr.Int.ge","qualifiedName":"Libtmux.Expr.Int.ge","name":"ge","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":574,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ge : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":574,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val ge : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-ge"},{"id":"Libtmux.Expr.Int.gt","publicId":"Libtmux.Expr.Int.gt","qualifiedName":"Libtmux.Expr.Int.gt","name":"gt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":573,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val gt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":573,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val gt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-gt"},{"id":"Libtmux.Expr.Int.is_in","publicId":"Libtmux.Expr.Int.is_in","qualifiedName":"Libtmux.Expr.Int.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_in : ('a, int) Field.t -> int list -> 'a t","source":{"file":"lib/libtmux.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val is_in : ('a, int) Field.t -> int list -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int list"}],"returns":"'a t"}],"slug":"libtmux-expr-int-is_in"},{"id":"Libtmux.Expr.Int.le","publicId":"Libtmux.Expr.Int.le","qualifiedName":"Libtmux.Expr.Int.le","name":"le","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":572,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val le : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":572,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val le : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-le"},{"id":"Libtmux.Expr.Int.lt","publicId":"Libtmux.Expr.Int.lt","qualifiedName":"Libtmux.Expr.Int.lt","name":"lt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":571,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val lt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":571,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val lt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-lt"},{"id":"Libtmux.Expr.Rel","publicId":"Libtmux.Expr.Rel","qualifiedName":"Libtmux.Expr.Rel","name":"Rel","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":589,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":589,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-rel"},{"id":"Libtmux.Expr.Rel.all","publicId":"Libtmux.Expr.Rel.all","qualifiedName":"Libtmux.Expr.Rel.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":591,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":591,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-all"},{"id":"Libtmux.Expr.Rel.any","publicId":"Libtmux.Expr.Rel.any","qualifiedName":"Libtmux.Expr.Rel.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-any"},{"id":"Libtmux.Expr.Rel.exists","publicId":"Libtmux.Expr.Rel.exists","qualifiedName":"Libtmux.Expr.Rel.exists","name":"exists","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":598,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":598,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-exists"},{"id":"Libtmux.Expr.Rel.is","publicId":"Libtmux.Expr.Rel.is","qualifiedName":"Libtmux.Expr.Rel.is","name":"is","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.One.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is"},{"id":"Libtmux.Expr.Rel.is_absent","publicId":"Libtmux.Expr.Rel.is_absent","qualifiedName":"Libtmux.Expr.Rel.is_absent","name":"is_absent","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":599,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","source":{"file":"lib/libtmux.mli","line":599,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is_absent"},{"id":"Libtmux.Expr.Rel.none","publicId":"Libtmux.Expr.Rel.none","qualifiedName":"Libtmux.Expr.Rel.none","name":"none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":593,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. "],"declarations":[{"kind":"function","text":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":593,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Rel","doc":{"summary":"On empty relations, `any` is false; `all` and `none` are true. One child must satisfy the complete nested expression."},"signatures":[{"raw":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-none"},{"id":"Libtmux.Expr.Text","publicId":"Libtmux.Expr.Text","qualifiedName":"Libtmux.Expr.Text","name":"Text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":578,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end","source":{"file":"lib/libtmux.mli","line":578,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-text"},{"id":"Libtmux.Expr.Text.contains","publicId":"Libtmux.Expr.Text.contains","qualifiedName":"Libtmux.Expr.Text.contains","name":"contains","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":582,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val contains : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":582,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val contains : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-contains"},{"id":"Libtmux.Expr.Text.ends_with","publicId":"Libtmux.Expr.Text.ends_with","qualifiedName":"Libtmux.Expr.Text.ends_with","name":"ends_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ends_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val ends_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-ends_with"},{"id":"Libtmux.Expr.Text.equal","publicId":"Libtmux.Expr.Text.equal","qualifiedName":"Libtmux.Expr.Text.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":579,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":579,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val equal : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-equal"},{"id":"Libtmux.Expr.Text.is_in","publicId":"Libtmux.Expr.Text.is_in","qualifiedName":"Libtmux.Expr.Text.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":584,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. "],"declarations":[{"kind":"function","text":"val is_in : ('a, string) Field.t -> string list -> 'a t","source":{"file":"lib/libtmux.mli","line":584,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Text","doc":{"summary":"Comparisons use exact bytes, without case folding or normalization. The empty substring matches every string."},"signatures":[{"raw":"val is_in : ('a, string) Field.t -> string list -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string list"}],"returns":"'a t"}],"slug":"libtmux-expr-text-is_in"},{"id":"Libtmux.Expr.Text.starts_with","publicId":"Libtmux.Expr.Text.starts_with","qualifiedName":"Libtmux.Expr.Text.starts_with","name":"starts_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":580,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val starts_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":580,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val starts_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-starts_with"},{"id":"Libtmux.Expr.all","publicId":"Libtmux.Expr.all","qualifiedName":"Libtmux.Expr.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":555,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Boolean conjunction; the empty conjunction is true. "],"declarations":[{"kind":"function","text":"val all : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":555,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean conjunction; the empty conjunction is true."},"signatures":[{"raw":"val all : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-all"},{"id":"Libtmux.Expr.any","publicId":"Libtmux.Expr.any","qualifiedName":"Libtmux.Expr.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Boolean disjunction; the empty disjunction is false. "],"declarations":[{"kind":"function","text":"val any : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean disjunction; the empty disjunction is false."},"signatures":[{"raw":"val any : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-any"},{"id":"Libtmux.Expr.comparison","publicId":"Libtmux.Expr.comparison","qualifiedName":"Libtmux.Expr.comparison","name":"comparison","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":609,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":609,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type _ comparison =\n Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","params":[]}],"slug":"libtmux-expr-comparison"},{"id":"Libtmux.Expr.comparison.Bool_equal","publicId":"Libtmux.Expr.comparison.Bool_equal","name":"Bool_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":610,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool_equal : bool -> bool comparison","source":{"file":"lib/libtmux.mli","line":610,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Bool_equal","slug":"libtmux-expr-comparison-bool_equal"},{"id":"Libtmux.Expr.comparison.Int_equal","publicId":"Libtmux.Expr.comparison.Int_equal","name":"Int_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":611,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_equal : int -> int comparison","source":{"file":"lib/libtmux.mli","line":611,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_equal","slug":"libtmux-expr-comparison-int_equal"},{"id":"Libtmux.Expr.comparison.Int_ge","publicId":"Libtmux.Expr.comparison.Int_ge","name":"Int_ge","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":615,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_ge : int -> int comparison","source":{"file":"lib/libtmux.mli","line":615,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_ge","slug":"libtmux-expr-comparison-int_ge"},{"id":"Libtmux.Expr.comparison.Int_gt","publicId":"Libtmux.Expr.comparison.Int_gt","name":"Int_gt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":614,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_gt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":614,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_gt","slug":"libtmux-expr-comparison-int_gt"},{"id":"Libtmux.Expr.comparison.Int_in","publicId":"Libtmux.Expr.comparison.Int_in","name":"Int_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":616,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_in : int list -> int comparison","source":{"file":"lib/libtmux.mli","line":616,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_in","slug":"libtmux-expr-comparison-int_in"},{"id":"Libtmux.Expr.comparison.Int_le","publicId":"Libtmux.Expr.comparison.Int_le","name":"Int_le","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":613,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_le : int -> int comparison","source":{"file":"lib/libtmux.mli","line":613,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_le","slug":"libtmux-expr-comparison-int_le"},{"id":"Libtmux.Expr.comparison.Int_lt","publicId":"Libtmux.Expr.comparison.Int_lt","name":"Int_lt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_lt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_lt","slug":"libtmux-expr-comparison-int_lt"},{"id":"Libtmux.Expr.comparison.Text_contains","publicId":"Libtmux.Expr.comparison.Text_contains","name":"Text_contains","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_contains : string -> string comparison","source":{"file":"lib/libtmux.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_contains","slug":"libtmux-expr-comparison-text_contains"},{"id":"Libtmux.Expr.comparison.Text_ends_with","publicId":"Libtmux.Expr.comparison.Text_ends_with","name":"Text_ends_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":619,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_ends_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":619,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_ends_with","slug":"libtmux-expr-comparison-text_ends_with"},{"id":"Libtmux.Expr.comparison.Text_equal","publicId":"Libtmux.Expr.comparison.Text_equal","name":"Text_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":617,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_equal : string -> string comparison","source":{"file":"lib/libtmux.mli","line":617,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_equal","slug":"libtmux-expr-comparison-text_equal"},{"id":"Libtmux.Expr.comparison.Text_in","publicId":"Libtmux.Expr.comparison.Text_in","name":"Text_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_in","slug":"libtmux-expr-comparison-text_in"},{"id":"Libtmux.Expr.comparison.Text_starts_with","publicId":"Libtmux.Expr.comparison.Text_starts_with","name":"Text_starts_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":618,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_starts_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":618,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_starts_with","slug":"libtmux-expr-comparison-text_starts_with"},{"id":"Libtmux.Expr.compile","publicId":"Libtmux.Expr.compile","qualifiedName":"Libtmux.Expr.compile","name":"compile","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n "],"declarations":[{"kind":"function","text":"val compile : 'a t -> 'a -> bool","source":{"file":"lib/libtmux.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","doc":{"summary":"Prepare a reusable predicate. Compilation and evaluation perform no I/O."},"signatures":[{"raw":"val compile : 'a t -> 'a -> bool","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"'a"}],"returns":"bool"}],"slug":"libtmux-expr-compile"},{"id":"Libtmux.Expr.describe","publicId":"Libtmux.Expr.describe","qualifiedName":"Libtmux.Expr.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":607,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : 'a t -> string","source":{"file":"lib/libtmux.mli","line":607,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val describe : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-expr-describe"},{"id":"Libtmux.Expr.not_","publicId":"Libtmux.Expr.not_","qualifiedName":"Libtmux.Expr.not_","name":"not_","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":561,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val not_ : 'a t -> 'a t","source":{"file":"lib/libtmux.mli","line":561,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val not_ : 'a t -> 'a t","params":[{"name":"arg1","type":"'a t"}],"returns":"'a t"}],"slug":"libtmux-expr-not_"},{"id":"Libtmux.Expr.pp","publicId":"Libtmux.Expr.pp","qualifiedName":"Libtmux.Expr.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":606,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> 'a t -> unit","source":{"file":"lib/libtmux.mli","line":606,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val pp : Format.formatter -> 'a t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"'a t"}],"returns":"unit"}],"slug":"libtmux-expr-pp"},{"id":"Libtmux.Expr.t","publicId":"Libtmux.Expr.t","qualifiedName":"Libtmux.Expr.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":553,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'entity t","source":{"file":"lib/libtmux.mli","line":553,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'entity t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-expr-t"},{"id":"Libtmux.Expr.view","publicId":"Libtmux.Expr.view","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","doc":{"summary":"Typed read-only inspection for codecs and planners. A view cannot add custom accessors or closures to an expression."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-expr-view"},{"id":"Libtmux.Expr.view:type","publicId":"Libtmux.Expr.view:type","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":623,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":623,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'a view =\n Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","params":[]}],"slug":"libtmux-expr-view-type"},{"id":"Libtmux.Expr.view:type.Absent","publicId":"Libtmux.Expr.view:type.Absent","name":"Absent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Absent","slug":"libtmux-expr-view-type-absent"},{"id":"Libtmux.Expr.view:type.All","publicId":"Libtmux.Expr.view:type.All","name":"All","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":625,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| All of 'a t list","source":{"file":"lib/libtmux.mli","line":625,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.All","slug":"libtmux-expr-view-type-all"},{"id":"Libtmux.Expr.view:type.Any","publicId":"Libtmux.Expr.view:type.Any","name":"Any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":626,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Any of 'a t list","source":{"file":"lib/libtmux.mli","line":626,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Any","slug":"libtmux-expr-view-type-any"},{"id":"Libtmux.Expr.view:type.Compare","publicId":"Libtmux.Expr.view:type.Compare","name":"Compare","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Compare : ('a, 'v) Field.t * 'v comparison -> 'a view","source":{"file":"lib/libtmux.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Compare","slug":"libtmux-expr-view-type-compare"},{"id":"Libtmux.Expr.view:type.Not","publicId":"Libtmux.Expr.view:type.Not","name":"Not","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":627,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not of 'a t","source":{"file":"lib/libtmux.mli","line":627,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Not","slug":"libtmux-expr-view-type-not"},{"id":"Libtmux.Expr.view:type.Related_all","publicId":"Libtmux.Expr.view:type.Related_all","name":"Related_all","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_all","slug":"libtmux-expr-view-type-related_all"},{"id":"Libtmux.Expr.view:type.Related_any","publicId":"Libtmux.Expr.view:type.Related_any","name":"Related_any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":628,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":628,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_any","slug":"libtmux-expr-view-type-related_any"},{"id":"Libtmux.Expr.view:type.Related_none","publicId":"Libtmux.Expr.view:type.Related_none","name":"Related_none","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":630,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":630,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_none","slug":"libtmux-expr-view-type-related_none"},{"id":"Libtmux.Expr.view:type.Related_one","publicId":"Libtmux.Expr.view:type.Related_one","name":"Related_one","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":631,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":631,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_one","slug":"libtmux-expr-view-type-related_one"},{"id":"Libtmux.Expr.view:type.Related_optional","publicId":"Libtmux.Expr.view:type.Related_optional","name":"Related_optional","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":632,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":632,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_optional","slug":"libtmux-expr-view-type-related_optional"},{"id":"Libtmux.Field","publicId":"Libtmux.Field","qualifiedName":"Libtmux.Field","name":"Field","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Sealed scalar descriptors carrying entity and value types. Descriptors read\n captured data and provide trusted identities for {!Expr} values. Use\n {!Relation} for graph edges. "],"declarations":[{"kind":"module","text":"module Field : sig\n type _ kind = Bool : bool kind | Int : int kind | Text : string kind\n type ('entity, 'value) t\n type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed\n\n val name : ('entity, 'value) t -> string\n val kind : ('entity, 'value) t -> 'value kind\n\n val get : ('entity, 'value) t -> 'entity -> 'value\n (** Canonical descriptors are sealed. Accessing a field reads captured data.\n *)\nend","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Sealed scalar descriptors carrying entity and value types. Descriptors read captured data and provide trusted identities for {!Expr} values. Use {!Relation} for graph edges."},"slug":"libtmux-field"},{"id":"Libtmux.Field.get","publicId":"Libtmux.Field.get","qualifiedName":"Libtmux.Field.get","name":"get","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":142,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Canonical descriptors are sealed. Accessing a field reads captured data.\n "],"declarations":[{"kind":"function","text":"val get : ('entity, 'value) t -> 'entity -> 'value","source":{"file":"lib/libtmux.mli","line":142,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field","doc":{"summary":"Canonical descriptors are sealed. Accessing a field reads captured data."},"signatures":[{"raw":"val get : ('entity, 'value) t -> 'entity -> 'value","params":[{"name":"arg1","type":"('entity, 'value) t"},{"name":"arg2","type":"'entity"}],"returns":"'value"}],"slug":"libtmux-field-get"},{"id":"Libtmux.Field.kind","publicId":"Libtmux.Field.kind","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":140,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : ('entity, 'value) t -> 'value kind","source":{"file":"lib/libtmux.mli","line":140,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val kind : ('entity, 'value) t -> 'value kind","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"'value kind"}],"slug":"libtmux-field-kind"},{"id":"Libtmux.Field.kind:type","publicId":"Libtmux.Field.kind:type","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","params":[]}],"slug":"libtmux-field-kind-type"},{"id":"Libtmux.Field.kind:type.Bool","publicId":"Libtmux.Field.kind:type.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool : bool kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Bool","slug":"libtmux-field-kind-type-bool"},{"id":"Libtmux.Field.kind:type.Int","publicId":"Libtmux.Field.kind:type.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int : int kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Int","slug":"libtmux-field-kind-type-int"},{"id":"Libtmux.Field.kind:type.Text","publicId":"Libtmux.Field.kind:type.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text : string kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Text","slug":"libtmux-field-kind-type-text"},{"id":"Libtmux.Field.name","publicId":"Libtmux.Field.name","qualifiedName":"Libtmux.Field.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":139,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('entity, 'value) t -> string","source":{"file":"lib/libtmux.mli","line":139,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val name : ('entity, 'value) t -> string","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"string"}],"slug":"libtmux-field-name"},{"id":"Libtmux.Field.packed","publicId":"Libtmux.Field.packed","qualifiedName":"Libtmux.Field.packed","name":"packed","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","params":[]}],"slug":"libtmux-field-packed"},{"id":"Libtmux.Field.packed.Pack","publicId":"Libtmux.Field.packed.Pack","name":"Pack","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field.packed","variant":"tuple","qualifiedName":"Libtmux.Field.Pack","slug":"libtmux-field-packed-pack"},{"id":"Libtmux.Field.t","publicId":"Libtmux.Field.t","qualifiedName":"Libtmux.Field.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('entity, 'value) t","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type ('entity, 'value) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-field-t"},{"id":"Libtmux.Formats","publicId":"Libtmux.Formats","qualifiedName":"Libtmux.Formats","name":"Formats","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":473,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Formats : sig\n module Kind : sig\n type t = Text | Timestamp\n end\n\n module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }\n (** Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. *)\n\n type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t\n\n type scalar = Bool of bool | Int of int | Text of string\n\n type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported\n (** [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor option, Error.t) result\n\n val lookup :\n version:string -> observation -> string -> (state, Error.t) result\n (** No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. *)\nend","source":{"file":"lib/libtmux.mli","line":473,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-formats"},{"id":"Libtmux.Formats.Context","publicId":"Libtmux.Formats.Context","qualifiedName":"Libtmux.Formats.Context","name":"Context","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":478,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end","source":{"file":"lib/libtmux.mli","line":478,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-context"},{"id":"Libtmux.Formats.Context.t","publicId":"Libtmux.Formats.Context.t","qualifiedName":"Libtmux.Formats.Context.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":479,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","source":{"file":"lib/libtmux.mli","line":479,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context","signatures":[{"raw":"type t =\n Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","params":[]}],"slug":"libtmux-formats-context-t"},{"id":"Libtmux.Formats.Context.t.Buffer","publicId":"Libtmux.Formats.Context.t.Buffer","name":"Buffer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":487,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Buffer","source":{"file":"lib/libtmux.mli","line":487,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Buffer","slug":"libtmux-formats-context-t-buffer"},{"id":"Libtmux.Formats.Context.t.Client","publicId":"Libtmux.Formats.Context.t.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":486,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client","source":{"file":"lib/libtmux.mli","line":486,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Client","slug":"libtmux-formats-context-t-client"},{"id":"Libtmux.Formats.Context.t.Command","publicId":"Libtmux.Formats.Context.t.Command","name":"Command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":489,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command","source":{"file":"lib/libtmux.mli","line":489,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Command","slug":"libtmux-formats-context-t-command"},{"id":"Libtmux.Formats.Context.t.Connection","publicId":"Libtmux.Formats.Context.t.Connection","name":"Connection","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Connection","source":{"file":"lib/libtmux.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Connection","slug":"libtmux-formats-context-t-connection"},{"id":"Libtmux.Formats.Context.t.Mouse","publicId":"Libtmux.Formats.Context.t.Mouse","name":"Mouse","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":488,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mouse","source":{"file":"lib/libtmux.mli","line":488,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Mouse","slug":"libtmux-formats-context-t-mouse"},{"id":"Libtmux.Formats.Context.t.Pane","publicId":"Libtmux.Formats.Context.t.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane","source":{"file":"lib/libtmux.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Pane","slug":"libtmux-formats-context-t-pane"},{"id":"Libtmux.Formats.Context.t.Server","publicId":"Libtmux.Formats.Context.t.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":480,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":480,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Server","slug":"libtmux-formats-context-t-server"},{"id":"Libtmux.Formats.Context.t.Session","publicId":"Libtmux.Formats.Context.t.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":482,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session","source":{"file":"lib/libtmux.mli","line":482,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Session","slug":"libtmux-formats-context-t-session"},{"id":"Libtmux.Formats.Context.t.Window","publicId":"Libtmux.Formats.Context.t.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":483,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window","source":{"file":"lib/libtmux.mli","line":483,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window","slug":"libtmux-formats-context-t-window"},{"id":"Libtmux.Formats.Context.t.Window_link","publicId":"Libtmux.Formats.Context.t.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link","source":{"file":"lib/libtmux.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window_link","slug":"libtmux-formats-context-t-window_link"},{"id":"Libtmux.Formats.Kind","publicId":"Libtmux.Formats.Kind","qualifiedName":"Libtmux.Formats.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":474,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Timestamp\n end","source":{"file":"lib/libtmux.mli","line":474,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-kind"},{"id":"Libtmux.Formats.Kind.t","publicId":"Libtmux.Formats.Kind.t","qualifiedName":"Libtmux.Formats.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Timestamp","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Kind","signatures":[{"raw":"type t = Text | Timestamp","params":[]}],"slug":"libtmux-formats-kind-t"},{"id":"Libtmux.Formats.Kind.t.Text","publicId":"Libtmux.Formats.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Text","slug":"libtmux-formats-kind-t-text"},{"id":"Libtmux.Formats.Kind.t.Timestamp","publicId":"Libtmux.Formats.Kind.t.Timestamp","name":"Timestamp","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Timestamp","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Timestamp","slug":"libtmux-formats-kind-t-timestamp"},{"id":"Libtmux.Formats.catalog","publicId":"Libtmux.Formats.catalog","qualifiedName":"Libtmux.Formats.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":524,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":524,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-formats-catalog"},{"id":"Libtmux.Formats.describe","publicId":"Libtmux.Formats.describe","qualifiedName":"Libtmux.Formats.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor option, Error.t) result","source":{"file":"lib/libtmux.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val describe :\n version:string -> string -> (descriptor option, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor option, Error.t) result"}],"slug":"libtmux-formats-describe"},{"id":"Libtmux.Formats.descriptor","publicId":"Libtmux.Formats.descriptor","qualifiedName":"Libtmux.Formats.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":492,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":492,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","doc":{"summary":"Metadata generated from pinned tmux format callbacks. `contexts` lists direct context dependencies, not a promise that a value exists. Caller variables from hooks and menus are outside this built-in catalog."},"signatures":[{"raw":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n}","params":[]}],"slug":"libtmux-formats-descriptor"},{"id":"Libtmux.Formats.descriptor.contexts","publicId":"Libtmux.Formats.descriptor.contexts","name":"contexts","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"contexts : Context.t list;","source":{"file":"lib/libtmux.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.descriptor","type":"Context.t list","qualifiedName":"Libtmux.Formats.contexts","slug":"libtmux-formats-descriptor-contexts"},{"id":"Libtmux.Formats.descriptor.kind","publicId":"Libtmux.Formats.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":494,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":494,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Formats.kind","slug":"libtmux-formats-descriptor-kind"},{"id":"Libtmux.Formats.descriptor.name","publicId":"Libtmux.Formats.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":493,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":493,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.descriptor","type":"string","qualifiedName":"Libtmux.Formats.name","slug":"libtmux-formats-descriptor-name"},{"id":"Libtmux.Formats.descriptor.versions","publicId":"Libtmux.Formats.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":496,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":496,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.descriptor","type":"string list","qualifiedName":"Libtmux.Formats.versions","slug":"libtmux-formats-descriptor-versions"},{"id":"Libtmux.Formats.lookup","publicId":"Libtmux.Formats.lookup","qualifiedName":"Libtmux.Formats.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":527,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. "],"declarations":[{"kind":"function","text":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","source":{"file":"lib/libtmux.mli","line":527,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","doc":{"summary":"No I/O. Supply the version recorded by the acquiring client's `version` accessor. Unsupported catalog versions return an error. Native typed accessors remain the primary API; lookup does not acquire extra fields."},"signatures":[{"raw":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"observation"},{"name":"arg2","type":"string"}],"returns":"(state, Error.t) result"}],"slug":"libtmux-formats-lookup"},{"id":"Libtmux.Formats.observation","publicId":"Libtmux.Formats.observation","qualifiedName":"Libtmux.Formats.observation","name":"observation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type observation =\n Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","params":[]}],"slug":"libtmux-formats-observation"},{"id":"Libtmux.Formats.observation.Client","publicId":"Libtmux.Formats.observation.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":508,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":508,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Client","slug":"libtmux-formats-observation-client"},{"id":"Libtmux.Formats.observation.Pane","publicId":"Libtmux.Formats.observation.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":507,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.t","source":{"file":"lib/libtmux.mli","line":507,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Pane","slug":"libtmux-formats-observation-pane"},{"id":"Libtmux.Formats.observation.Session","publicId":"Libtmux.Formats.observation.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":504,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.t","source":{"file":"lib/libtmux.mli","line":504,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Session","slug":"libtmux-formats-observation-session"},{"id":"Libtmux.Formats.observation.Snapshot","publicId":"Libtmux.Formats.observation.Snapshot","name":"Snapshot","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Snapshot of Snapshot.t","source":{"file":"lib/libtmux.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Snapshot","slug":"libtmux-formats-observation-snapshot"},{"id":"Libtmux.Formats.observation.Window","publicId":"Libtmux.Formats.observation.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.t","source":{"file":"lib/libtmux.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window","slug":"libtmux-formats-observation-window"},{"id":"Libtmux.Formats.observation.Window_link","publicId":"Libtmux.Formats.observation.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":506,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link of Window_link.t","source":{"file":"lib/libtmux.mli","line":506,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window_link","slug":"libtmux-formats-observation-window_link"},{"id":"Libtmux.Formats.scalar","publicId":"Libtmux.Formats.scalar","qualifiedName":"Libtmux.Formats.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar = Bool of bool | Int of int | Text of string","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type scalar = Bool of bool | Int of int | Text of string","params":[]}],"slug":"libtmux-formats-scalar"},{"id":"Libtmux.Formats.scalar.Bool","publicId":"Libtmux.Formats.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool of bool","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Bool","slug":"libtmux-formats-scalar-bool"},{"id":"Libtmux.Formats.scalar.Int","publicId":"Libtmux.Formats.scalar.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int of int","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Int","slug":"libtmux-formats-scalar-int"},{"id":"Libtmux.Formats.scalar.Text","publicId":"Libtmux.Formats.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Text","slug":"libtmux-formats-scalar-text"},{"id":"Libtmux.Formats.state","publicId":"Libtmux.Formats.state","qualifiedName":"Libtmux.Formats.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported","source":{"file":"lib/libtmux.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type state = Value of scalar | Missing | Unacquired | Unsupported","params":[]}],"slug":"libtmux-formats-state"},{"id":"Libtmux.Formats.state.Missing","publicId":"Libtmux.Formats.state.Missing","name":"Missing","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":514,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing","source":{"file":"lib/libtmux.mli","line":514,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Missing","slug":"libtmux-formats-state-missing"},{"id":"Libtmux.Formats.state.Unacquired","publicId":"Libtmux.Formats.state.Unacquired","name":"Unacquired","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":515,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unacquired","source":{"file":"lib/libtmux.mli","line":515,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Unacquired","slug":"libtmux-formats-state-unacquired"},{"id":"Libtmux.Formats.state.Unsupported","publicId":"Libtmux.Formats.state.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":516,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. "],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"lib/libtmux.mli","line":516,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.state","doc":{"summary":"`Missing` is an absence explicitly recorded in the observation, such as a client without terminal height. `Unacquired` means no captured value for this observation, including ambiguous session context for a pane. `Unsupported` means the name is outside the selected release's catalog. `Value (Text \"\")` is a captured empty string, never inferred absence."},"variant":"unit","qualifiedName":"Libtmux.Formats.Unsupported","slug":"libtmux-formats-state-unsupported"},{"id":"Libtmux.Formats.state.Value","publicId":"Libtmux.Formats.state.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":513,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Value of scalar","source":{"file":"lib/libtmux.mli","line":513,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.state","variant":"tuple","qualifiedName":"Libtmux.Formats.Value","slug":"libtmux-formats-state-value"},{"id":"Libtmux.Generation","publicId":"Libtmux.Generation","qualifiedName":"Libtmux.Generation","name":"Generation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A random connection-generation identifier. Reconnecting creates a new\n generation even when the socket and server PID are unchanged. "],"declarations":[{"kind":"module","text":"module Generation : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"A random connection-generation identifier. Reconnecting creates a new generation even when the socket and server PID are unchanged."},"slug":"libtmux-generation"},{"id":"Libtmux.Generation.equal","publicId":"Libtmux.Generation.equal","qualifiedName":"Libtmux.Generation.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":87,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":87,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-generation-equal"},{"id":"Libtmux.Generation.of_string","publicId":"Libtmux.Generation.of_string","qualifiedName":"Libtmux.Generation.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Generation","doc":{"summary":"Import a 256-bit connection nonce as 64 lowercase hexadecimal characters. Backends generate a fresh random nonce for each connection."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-generation-of_string"},{"id":"Libtmux.Generation.t","publicId":"Libtmux.Generation.t","qualifiedName":"Libtmux.Generation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-generation-t"},{"id":"Libtmux.Generation.to_string","publicId":"Libtmux.Generation.to_string","qualifiedName":"Libtmux.Generation.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-generation-to_string"},{"id":"Libtmux.Geometry","publicId":"Libtmux.Geometry","qualifiedName":"Libtmux.Geometry","name":"Geometry","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":740,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Geometry : sig\n type direction = Left | Right | Above | Below\n type size = Cells of int | Percent of int\nend","source":{"file":"lib/libtmux.mli","line":740,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-geometry"},{"id":"Libtmux.Geometry.direction","publicId":"Libtmux.Geometry.direction","qualifiedName":"Libtmux.Geometry.direction","name":"direction","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type direction = Left | Right | Above | Below","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type direction = Left | Right | Above | Below","params":[]}],"slug":"libtmux-geometry-direction"},{"id":"Libtmux.Geometry.direction.Above","publicId":"Libtmux.Geometry.direction.Above","name":"Above","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Above","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Above","slug":"libtmux-geometry-direction-above"},{"id":"Libtmux.Geometry.direction.Below","publicId":"Libtmux.Geometry.direction.Below","name":"Below","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Below","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Below","slug":"libtmux-geometry-direction-below"},{"id":"Libtmux.Geometry.direction.Left","publicId":"Libtmux.Geometry.direction.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Left","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Left","slug":"libtmux-geometry-direction-left"},{"id":"Libtmux.Geometry.direction.Right","publicId":"Libtmux.Geometry.direction.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Right","slug":"libtmux-geometry-direction-right"},{"id":"Libtmux.Geometry.size","publicId":"Libtmux.Geometry.size","qualifiedName":"Libtmux.Geometry.size","name":"size","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type size = Cells of int | Percent of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type size = Cells of int | Percent of int","params":[]}],"slug":"libtmux-geometry-size"},{"id":"Libtmux.Geometry.size.Cells","publicId":"Libtmux.Geometry.size.Cells","name":"Cells","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Cells of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Cells","slug":"libtmux-geometry-size-cells"},{"id":"Libtmux.Geometry.size.Percent","publicId":"Libtmux.Geometry.size.Percent","name":"Percent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Percent of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Percent","slug":"libtmux-geometry-size-percent"},{"id":"Libtmux.Hook","publicId":"Libtmux.Hook","qualifiedName":"Libtmux.Hook","name":"Hook","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Hook : sig\n type command = { name : string; arguments : string list }\n (** A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. *)\nend","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-hook"},{"id":"Libtmux.Hook.command","publicId":"Libtmux.Hook.command","qualifiedName":"Libtmux.Hook.command","name":"command","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. "],"declarations":[{"kind":"struct","text":"type command = { name : string; arguments : string list }","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Hook","doc":{"summary":"A tmux command and its distinct arguments. Setting a hook encodes these as command data; it does not concatenate arguments into shell code. Argument-specific tmux behavior, including format expansion, still applies when the hook runs."},"signatures":[{"raw":"type command = { name : string; arguments : string list; }","params":[]}],"slug":"libtmux-hook-command"},{"id":"Libtmux.Hook.command.arguments","publicId":"Libtmux.Hook.command.arguments","name":"arguments","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"arguments : string list","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Hook.command","type":"string list","qualifiedName":"Libtmux.Hook.arguments","slug":"libtmux-hook-command-arguments"},{"id":"Libtmux.Hook.command.name","publicId":"Libtmux.Hook.command.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Hook.command","type":"string","qualifiedName":"Libtmux.Hook.name","slug":"libtmux-hook-command-name"},{"id":"Libtmux.ID","publicId":"Libtmux.ID","qualifiedName":"Libtmux.ID","name":"ID","kind":"interface","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"interface","text":"module type ID = sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Accept a canonical prefixed decimal tmux ID in the uint32 range. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\n val compare : t -> t -> int\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-id"},{"id":"Libtmux.ID.compare","publicId":"Libtmux.ID.compare","qualifiedName":"Libtmux.ID.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-id-compare"},{"id":"Libtmux.ID.equal","publicId":"Libtmux.ID.equal","qualifiedName":"Libtmux.ID.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-id-equal"},{"id":"Libtmux.ID.of_string","publicId":"Libtmux.ID.of_string","qualifiedName":"Libtmux.ID.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.ID","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-id-of_string"},{"id":"Libtmux.ID.pp","publicId":"Libtmux.ID.pp","qualifiedName":"Libtmux.ID.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-id-pp"},{"id":"Libtmux.ID.t","publicId":"Libtmux.ID.t","qualifiedName":"Libtmux.ID.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.ID","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-id-t"},{"id":"Libtmux.ID.to_string","publicId":"Libtmux.ID.to_string","qualifiedName":"Libtmux.ID.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-id-to_string"},{"id":"Libtmux.Key","publicId":"Libtmux.Key","qualifiedName":"Libtmux.Key","name":"Key","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":702,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Key : sig\n type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char\nend","source":{"file":"lib/libtmux.mli","line":702,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-key"},{"id":"Libtmux.Key.t","publicId":"Libtmux.Key.t","qualifiedName":"Libtmux.Key.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":703,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","source":{"file":"lib/libtmux.mli","line":703,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key","signatures":[{"raw":"type t =\n Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","params":[]}],"slug":"libtmux-key-t"},{"id":"Libtmux.Key.t.Backspace","publicId":"Libtmux.Key.t.Backspace","name":"Backspace","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":707,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Backspace","source":{"file":"lib/libtmux.mli","line":707,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Backspace","slug":"libtmux-key-t-backspace"},{"id":"Libtmux.Key.t.Control","publicId":"Libtmux.Key.t.Control","name":"Control","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Control of char","source":{"file":"lib/libtmux.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"tuple","qualifiedName":"Libtmux.Key.Control","slug":"libtmux-key-t-control"},{"id":"Libtmux.Key.t.Down","publicId":"Libtmux.Key.t.Down","name":"Down","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":709,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Down","source":{"file":"lib/libtmux.mli","line":709,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Down","slug":"libtmux-key-t-down"},{"id":"Libtmux.Key.t.Enter","publicId":"Libtmux.Key.t.Enter","name":"Enter","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":704,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Enter","source":{"file":"lib/libtmux.mli","line":704,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Enter","slug":"libtmux-key-t-enter"},{"id":"Libtmux.Key.t.Escape","publicId":"Libtmux.Key.t.Escape","name":"Escape","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":706,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Escape","source":{"file":"lib/libtmux.mli","line":706,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Escape","slug":"libtmux-key-t-escape"},{"id":"Libtmux.Key.t.Left","publicId":"Libtmux.Key.t.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":710,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Left","source":{"file":"lib/libtmux.mli","line":710,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Left","slug":"libtmux-key-t-left"},{"id":"Libtmux.Key.t.Right","publicId":"Libtmux.Key.t.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":711,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":711,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Right","slug":"libtmux-key-t-right"},{"id":"Libtmux.Key.t.Tab","publicId":"Libtmux.Key.t.Tab","name":"Tab","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":705,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tab","source":{"file":"lib/libtmux.mli","line":705,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Tab","slug":"libtmux-key-t-tab"},{"id":"Libtmux.Key.t.Up","publicId":"Libtmux.Key.t.Up","name":"Up","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":708,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Up","source":{"file":"lib/libtmux.mli","line":708,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Up","slug":"libtmux-key-t-up"},{"id":"Libtmux.Layout","publicId":"Libtmux.Layout","qualifiedName":"Libtmux.Layout","name":"Layout","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":745,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Layout : sig\n type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string\nend","source":{"file":"lib/libtmux.mli","line":745,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-layout"},{"id":"Libtmux.Layout.t","publicId":"Libtmux.Layout.t","qualifiedName":"Libtmux.Layout.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":746,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","source":{"file":"lib/libtmux.mli","line":746,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout","signatures":[{"raw":"type t =\n Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","params":[]}],"slug":"libtmux-layout-t"},{"id":"Libtmux.Layout.t.Custom","publicId":"Libtmux.Layout.t.Custom","name":"Custom","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":752,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Custom of string","source":{"file":"lib/libtmux.mli","line":752,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout.t","variant":"tuple","qualifiedName":"Libtmux.Layout.Custom","slug":"libtmux-layout-t-custom"},{"id":"Libtmux.Layout.t.Even_horizontal","publicId":"Libtmux.Layout.t.Even_horizontal","name":"Even_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":747,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_horizontal","source":{"file":"lib/libtmux.mli","line":747,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_horizontal","slug":"libtmux-layout-t-even_horizontal"},{"id":"Libtmux.Layout.t.Even_vertical","publicId":"Libtmux.Layout.t.Even_vertical","name":"Even_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":748,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_vertical","source":{"file":"lib/libtmux.mli","line":748,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_vertical","slug":"libtmux-layout-t-even_vertical"},{"id":"Libtmux.Layout.t.Main_horizontal","publicId":"Libtmux.Layout.t.Main_horizontal","name":"Main_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":749,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_horizontal","source":{"file":"lib/libtmux.mli","line":749,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_horizontal","slug":"libtmux-layout-t-main_horizontal"},{"id":"Libtmux.Layout.t.Main_vertical","publicId":"Libtmux.Layout.t.Main_vertical","name":"Main_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":750,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_vertical","source":{"file":"lib/libtmux.mli","line":750,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_vertical","slug":"libtmux-layout-t-main_vertical"},{"id":"Libtmux.Layout.t.Tiled","publicId":"Libtmux.Layout.t.Tiled","name":"Tiled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":751,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tiled","source":{"file":"lib/libtmux.mli","line":751,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Tiled","slug":"libtmux-layout-t-tiled"},{"id":"Libtmux.Model","publicId":"Libtmux.Model","qualifiedName":"Libtmux.Model","name":"Model","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":536,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Built-in model witnesses and canonical field lookup for typed codecs.\n Untrusted field names must resolve against the selected model. "],"declarations":[{"kind":"module","text":"module Model : sig\n type 'a t\n\n val session : Session.t t\n val window : Window.t t\n val window_link : Window_link.t t\n val pane : Pane.t t\n val client : Client_observation.t t\n val name : 'a t -> string\n val fields : 'a t -> 'a Field.packed list\n val find_field : 'a t -> string -> 'a Field.packed option\nend","source":{"file":"lib/libtmux.mli","line":536,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Built-in model witnesses and canonical field lookup for typed codecs. Untrusted field names must resolve against the selected model."},"slug":"libtmux-model"},{"id":"Libtmux.Model.client","publicId":"Libtmux.Model.client","qualifiedName":"Libtmux.Model.client","name":"client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":543,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val client : Client_observation.t t","source":{"file":"lib/libtmux.mli","line":543,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val client : Client_observation.t t","params":[],"returns":"Client_observation.t t"}],"slug":"libtmux-model-client"},{"id":"Libtmux.Model.fields","publicId":"Libtmux.Model.fields","qualifiedName":"Libtmux.Model.fields","name":"fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":545,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val fields : 'a t -> 'a Field.packed list","source":{"file":"lib/libtmux.mli","line":545,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val fields : 'a t -> 'a Field.packed list","params":[{"name":"arg1","type":"'a t"}],"returns":"'a Field.packed list"}],"slug":"libtmux-model-fields"},{"id":"Libtmux.Model.find_field","publicId":"Libtmux.Model.find_field","qualifiedName":"Libtmux.Model.find_field","name":"find_field","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_field : 'a t -> string -> 'a Field.packed option","source":{"file":"lib/libtmux.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val find_field : 'a t -> string -> 'a Field.packed option","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"string"}],"returns":"'a Field.packed option"}],"slug":"libtmux-model-find_field"},{"id":"Libtmux.Model.name","publicId":"Libtmux.Model.name","qualifiedName":"Libtmux.Model.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":544,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : 'a t -> string","source":{"file":"lib/libtmux.mli","line":544,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val name : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-model-name"},{"id":"Libtmux.Model.pane","publicId":"Libtmux.Model.pane","qualifiedName":"Libtmux.Model.pane","name":"pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pane : Pane.t t","source":{"file":"lib/libtmux.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val pane : Pane.t t","params":[],"returns":"Pane.t t"}],"slug":"libtmux-model-pane"},{"id":"Libtmux.Model.session","publicId":"Libtmux.Model.session","qualifiedName":"Libtmux.Model.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":539,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : Session.t t","source":{"file":"lib/libtmux.mli","line":539,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val session : Session.t t","params":[],"returns":"Session.t t"}],"slug":"libtmux-model-session"},{"id":"Libtmux.Model.t","publicId":"Libtmux.Model.t","qualifiedName":"Libtmux.Model.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-model-t"},{"id":"Libtmux.Model.window","publicId":"Libtmux.Model.window","qualifiedName":"Libtmux.Model.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":540,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : Window.t t","source":{"file":"lib/libtmux.mli","line":540,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window : Window.t t","params":[],"returns":"Window.t t"}],"slug":"libtmux-model-window"},{"id":"Libtmux.Model.window_link","publicId":"Libtmux.Model.window_link","qualifiedName":"Libtmux.Model.window_link","name":"window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":541,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_link : Window_link.t t","source":{"file":"lib/libtmux.mli","line":541,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window_link : Window_link.t t","params":[],"returns":"Window_link.t t"}],"slug":"libtmux-model-window_link"},{"id":"Libtmux.Operations","publicId":"Libtmux.Operations","qualifiedName":"Libtmux.Operations","name":"Operations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1051,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Construct typed tmux operations for a backend client. Observations are\n immutable, mutations use explicit targets, and no command retries a mutation\n against another connection generation. Construction performs no I/O; the\n descriptions below state what execution does. "],"declarations":[{"kind":"module","text":"module Operations : sig\n val capture : unit -> Snapshot.t Command.t\n (** Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. *)\n\n val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t\n (** Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. *)\n\n val rename_window : Window.target -> name:string -> unit Command.t\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session : Session.target -> name:string -> unit Command.t\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at : Client_name.t -> unit Command.t\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text : Pane.target -> text:string -> unit Command.t\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys : Pane.target -> Key.t list -> unit Command.t\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : string -> unit Command.t\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : string -> unit Command.t\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment : Environment.scope -> string -> unit Command.t\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment : Environment.scope -> string -> unit Command.t\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array : Options.scope -> string -> unit Command.t\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks : Options.scope -> Options.t Command.t\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. *)\n\n val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook : Options.scope -> string -> unit Command.t\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session : Session.target -> unit Command.t\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : Window.target -> unit Command.t\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : Pane.target -> unit Command.t\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at : Session.target -> index:int -> unit Command.t\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : Pane.target -> unit Command.t\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title : Pane.target -> title:string -> unit Command.t\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout : Window.target -> Layout.t -> unit Command.t\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes : Pane.target -> Pane.target -> unit Command.t\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : Pane.target -> unit Command.t\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : Pane.target -> unit Command.t\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\nend","source":{"file":"lib/libtmux.mli","line":1051,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Construct typed tmux operations for a backend client. Observations are immutable, mutations use explicit targets, and no command retries a mutation against another connection generation. Construction performs no I/O; the descriptions below state what execution does."},"slug":"libtmux-operations"},{"id":"Libtmux.Operations.break_pane","publicId":"Libtmux.Operations.break_pane","qualifiedName":"Libtmux.Operations.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1235,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n Pane.target -> session:Session.target -> index:int -> Created.t Command.t","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-break_pane"},{"id":"Libtmux.Operations.capture","publicId":"Libtmux.Operations.capture","qualifiedName":"Libtmux.Operations.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1052,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. "],"declarations":[{"kind":"function","text":"val capture : unit -> Snapshot.t Command.t","source":{"file":"lib/libtmux.mli","line":1052,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture and validate the complete session/window-link/pane graph. The result records an acquisition interval, not an atomic server instant."},"signatures":[{"raw":"val capture : unit -> Snapshot.t Command.t","params":[{"name":"arg1","type":"unit"}],"returns":"Snapshot.t Command.t"}],"slug":"libtmux-operations-capture"},{"id":"Libtmux.Operations.capture_environment","publicId":"Libtmux.Operations.capture_environment","qualifiedName":"Libtmux.Operations.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1110,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","source":{"file":"lib/libtmux.mli","line":1110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"}],"returns":"Environment.t Command.t"}],"slug":"libtmux-operations-capture_environment"},{"id":"Libtmux.Operations.capture_hooks","publicId":"Libtmux.Operations.capture_hooks","qualifiedName":"Libtmux.Operations.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1168,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks : Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks : Options.scope -> Options.t Command.t","params":[{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_hooks"},{"id":"Libtmux.Operations.capture_options","publicId":"Libtmux.Operations.capture_options","qualifiedName":"Libtmux.Operations.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1130,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_options"},{"id":"Libtmux.Operations.capture_text","publicId":"Libtmux.Operations.capture_text","qualifiedName":"Libtmux.Operations.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1056,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t","source":{"file":"lib/libtmux.mli","line":1056,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture inclusive visible rows through an operation-owned temporary file. Require `0 <= start <= end_ < Pane.height pane`; scrollback is excluded. Retained bytes survive client close. The scratch directory must share the daemon filesystem."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n Pane.t -> start:int -> end_:int -> Captured_text.t Command.t","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"Captured_text.t Command.t"}],"slug":"libtmux-operations-capture_text"},{"id":"Libtmux.Operations.clear_history","publicId":"Libtmux.Operations.clear_history","qualifiedName":"Libtmux.Operations.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1333,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_history"},{"id":"Libtmux.Operations.clear_option_array","publicId":"Libtmux.Operations.clear_option_array","qualifiedName":"Libtmux.Operations.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1165,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_option_array"},{"id":"Libtmux.Operations.create_session","publicId":"Libtmux.Operations.create_session","qualifiedName":"Libtmux.Operations.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1207,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int -> ?spawn:Spawn.t -> name:string -> unit -> Created.t Command.t","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_session"},{"id":"Libtmux.Operations.create_window","publicId":"Libtmux.Operations.create_window","qualifiedName":"Libtmux.Operations.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1217,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string -> ?spawn:Spawn.t -> Session.target -> Created.t Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_window"},{"id":"Libtmux.Operations.cycle_layout","publicId":"Libtmux.Operations.cycle_layout","qualifiedName":"Libtmux.Operations.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1303,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1303,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Next | `Previous ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-cycle_layout"},{"id":"Libtmux.Operations.kill_pane","publicId":"Libtmux.Operations.kill_pane","qualifiedName":"Libtmux.Operations.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1253,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_pane"},{"id":"Libtmux.Operations.kill_session","publicId":"Libtmux.Operations.kill_session","qualifiedName":"Libtmux.Operations.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1245,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session : Session.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session : Session.target -> unit Command.t","params":[{"name":"arg1","type":"Session.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_session"},{"id":"Libtmux.Operations.kill_window","publicId":"Libtmux.Operations.kill_window","qualifiedName":"Libtmux.Operations.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1249,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window : Window.target -> unit Command.t","params":[{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_window"},{"id":"Libtmux.Operations.link_window","publicId":"Libtmux.Operations.link_window","qualifiedName":"Libtmux.Operations.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1266,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-link_window"},{"id":"Libtmux.Operations.move_pane","publicId":"Libtmux.Operations.move_pane","qualifiedName":"Libtmux.Operations.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1306,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target -> direction:Geometry.direction -> unit Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"beside","type":"Pane.target","keywordOnly":true},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_pane"},{"id":"Libtmux.Operations.move_window_at","publicId":"Libtmux.Operations.move_window_at","qualifiedName":"Libtmux.Operations.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1271,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1271,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n Session.target ->\n from_index:int -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_window_at"},{"id":"Libtmux.Operations.read_hook","publicId":"Libtmux.Operations.read_hook","qualifiedName":"Libtmux.Operations.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1172,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_hook"},{"id":"Libtmux.Operations.read_option","publicId":"Libtmux.Operations.read_option","qualifiedName":"Libtmux.Operations.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1138,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1138,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_option"},{"id":"Libtmux.Operations.refresh_client_at","publicId":"Libtmux.Operations.refresh_client_at","qualifiedName":"Libtmux.Operations.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1089,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1089,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-refresh_client_at"},{"id":"Libtmux.Operations.remove_environment","publicId":"Libtmux.Operations.remove_environment","qualifiedName":"Libtmux.Operations.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1127,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_environment"},{"id":"Libtmux.Operations.remove_hook","publicId":"Libtmux.Operations.remove_hook","qualifiedName":"Libtmux.Operations.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1195,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_hook"},{"id":"Libtmux.Operations.rename_session","publicId":"Libtmux.Operations.rename_session","qualifiedName":"Libtmux.Operations.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1071,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session : Session.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1071,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session : Session.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_session"},{"id":"Libtmux.Operations.rename_window","publicId":"Libtmux.Operations.rename_window","qualifiedName":"Libtmux.Operations.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1067,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window : Window.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1067,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window : Window.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_window"},{"id":"Libtmux.Operations.request_detach_client_at","publicId":"Libtmux.Operations.request_detach_client_at","qualifiedName":"Libtmux.Operations.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1084,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at : Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1084,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at : Client_name.t -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-request_detach_client_at"},{"id":"Libtmux.Operations.resize_control_client_at","publicId":"Libtmux.Operations.resize_control_client_at","qualifiedName":"Libtmux.Operations.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1092,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1092,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_control_client_at"},{"id":"Libtmux.Operations.resize_pane","publicId":"Libtmux.Operations.resize_pane","qualifiedName":"Libtmux.Operations.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1288,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_pane"},{"id":"Libtmux.Operations.resize_window","publicId":"Libtmux.Operations.resize_window","qualifiedName":"Libtmux.Operations.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1293,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_window"},{"id":"Libtmux.Operations.respawn_pane","publicId":"Libtmux.Operations.respawn_pane","qualifiedName":"Libtmux.Operations.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1327,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Spawn.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-respawn_pane"},{"id":"Libtmux.Operations.rotate_panes","publicId":"Libtmux.Operations.rotate_panes","qualifiedName":"Libtmux.Operations.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1320,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n Window.target -> [ `Backward | `Forward ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Backward | `Forward ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rotate_panes"},{"id":"Libtmux.Operations.run_hook","publicId":"Libtmux.Operations.run_hook","qualifiedName":"Libtmux.Operations.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1199,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-run_hook"},{"id":"Libtmux.Operations.select_layout","publicId":"Libtmux.Operations.select_layout","qualifiedName":"Libtmux.Operations.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1299,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout : Window.target -> Layout.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout : Window.target -> Layout.t -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"Layout.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_layout"},{"id":"Libtmux.Operations.select_pane","publicId":"Libtmux.Operations.select_pane","qualifiedName":"Libtmux.Operations.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1280,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1280,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_pane"},{"id":"Libtmux.Operations.select_window_at","publicId":"Libtmux.Operations.select_window_at","qualifiedName":"Libtmux.Operations.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1257,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at : Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at : Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_window_at"},{"id":"Libtmux.Operations.send_keys","publicId":"Libtmux.Operations.send_keys","qualifiedName":"Libtmux.Operations.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1099,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys : Pane.target -> Key.t list -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1099,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys : Pane.target -> Key.t list -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Key.t list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_keys"},{"id":"Libtmux.Operations.send_text","publicId":"Libtmux.Operations.send_text","qualifiedName":"Libtmux.Operations.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1096,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text : Pane.target -> text:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1096,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text : Pane.target -> text:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_text"},{"id":"Libtmux.Operations.set_environment","publicId":"Libtmux.Operations.set_environment","qualifiedName":"Libtmux.Operations.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1117,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n Environment.scope -> name:string -> string -> unit Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_environment"},{"id":"Libtmux.Operations.set_hook","publicId":"Libtmux.Operations.set_hook","qualifiedName":"Libtmux.Operations.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1180,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1180,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Hook.command list -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Hook.command list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_hook"},{"id":"Libtmux.Operations.set_option","publicId":"Libtmux.Operations.set_option","qualifiedName":"Libtmux.Operations.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1148,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Options.scalar -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Options.scalar"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_option"},{"id":"Libtmux.Operations.set_pane_title","publicId":"Libtmux.Operations.set_pane_title","qualifiedName":"Libtmux.Operations.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1284,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title : Pane.target -> title:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1284,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title : Pane.target -> title:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_pane_title"},{"id":"Libtmux.Operations.signal","publicId":"Libtmux.Operations.signal","qualifiedName":"Libtmux.Operations.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1106,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-signal"},{"id":"Libtmux.Operations.split_pane","publicId":"Libtmux.Operations.split_pane","qualifiedName":"Libtmux.Operations.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1225,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target -> direction:Geometry.direction -> Created.t Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-split_pane"},{"id":"Libtmux.Operations.swap_panes","publicId":"Libtmux.Operations.swap_panes","qualifiedName":"Libtmux.Operations.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1316,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-swap_panes"},{"id":"Libtmux.Operations.switch_client_at","publicId":"Libtmux.Operations.switch_client_at","qualifiedName":"Libtmux.Operations.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1075,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1075,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t -> session:Session.target -> unit Command.t","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"},{"name":"session","type":"Session.target","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-switch_client_at"},{"id":"Libtmux.Operations.unlink_window_at","publicId":"Libtmux.Operations.unlink_window_at","qualifiedName":"Libtmux.Operations.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1261,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unlink_window_at"},{"id":"Libtmux.Operations.unset_environment","publicId":"Libtmux.Operations.unset_environment","qualifiedName":"Libtmux.Operations.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1123,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_environment"},{"id":"Libtmux.Operations.unset_option","publicId":"Libtmux.Operations.unset_option","qualifiedName":"Libtmux.Operations.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1161,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1161,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_option"},{"id":"Libtmux.Operations.wait_for","publicId":"Libtmux.Operations.wait_for","qualifiedName":"Libtmux.Operations.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1103,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-wait_for"},{"id":"Libtmux.Operations.zoom_pane","publicId":"Libtmux.Operations.zoom_pane","qualifiedName":"Libtmux.Operations.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1324,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-zoom_pane"},{"id":"Libtmux.Options","publicId":"Libtmux.Options","qualifiedName":"Libtmux.Options","name":"Options","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Version-aware option descriptors and captured scoped values. Sparse array\n indexes and inherited entries retain their tmux meaning. "],"declarations":[{"kind":"module","text":"module Options : sig\n module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }\n (** Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. *)\n\n type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target\n\n type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string\n\n type value = Scalar of scalar | Array of (int * scalar) Iarray.t\n type entry = { descriptor : descriptor; value : value; inherited : bool }\n\n type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor, Error.t) result\n\n val lookup : t -> string -> entry option\n (** [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. *)\nend","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Version-aware option descriptors and captured scoped values. Sparse array indexes and inherited entries retain their tmux meaning."},"slug":"libtmux-options"},{"id":"Libtmux.Options.Kind","publicId":"Libtmux.Options.Kind","qualifiedName":"Libtmux.Options.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":797,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end","source":{"file":"lib/libtmux.mli","line":797,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","slug":"libtmux-options-kind"},{"id":"Libtmux.Options.Kind.t","publicId":"Libtmux.Options.Kind.t","qualifiedName":"Libtmux.Options.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind","signatures":[{"raw":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","params":[]}],"slug":"libtmux-options-kind-t"},{"id":"Libtmux.Options.Kind.t.Choice","publicId":"Libtmux.Options.Kind.t.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Choice","slug":"libtmux-options-kind-t-choice"},{"id":"Libtmux.Options.Kind.t.Colour","publicId":"Libtmux.Options.Kind.t.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Colour","slug":"libtmux-options-kind-t-colour"},{"id":"Libtmux.Options.Kind.t.Commands","publicId":"Libtmux.Options.Kind.t.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Commands","slug":"libtmux-options-kind-t-commands"},{"id":"Libtmux.Options.Kind.t.Flag","publicId":"Libtmux.Options.Kind.t.Flag","name":"Flag","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Flag","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Flag","slug":"libtmux-options-kind-t-flag"},{"id":"Libtmux.Options.Kind.t.Key","publicId":"Libtmux.Options.Kind.t.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Key","slug":"libtmux-options-kind-t-key"},{"id":"Libtmux.Options.Kind.t.Number","publicId":"Libtmux.Options.Kind.t.Number","name":"Number","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Number","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Number","slug":"libtmux-options-kind-t-number"},{"id":"Libtmux.Options.Kind.t.Text","publicId":"Libtmux.Options.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Text","slug":"libtmux-options-kind-t-text"},{"id":"Libtmux.Options.catalog","publicId":"Libtmux.Options.catalog","qualifiedName":"Libtmux.Options.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":843,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":843,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-options-catalog"},{"id":"Libtmux.Options.describe","publicId":"Libtmux.Options.describe","qualifiedName":"Libtmux.Options.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":844,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor, Error.t) result","source":{"file":"lib/libtmux.mli","line":844,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val describe : version:string -> string -> (descriptor, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor, Error.t) result"}],"slug":"libtmux-options-describe"},{"id":"Libtmux.Options.descriptor","publicId":"Libtmux.Options.descriptor","qualifiedName":"Libtmux.Options.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":801,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":801,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","doc":{"summary":"Generated upstream descriptors. `versions` lists qualified releases; user options have no built-in release history."},"signatures":[{"raw":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Pane | `Server | `Session | `Window ] list;\n versions : string list;\n}","params":[]}],"slug":"libtmux-options-descriptor"},{"id":"Libtmux.Options.descriptor.array","publicId":"Libtmux.Options.descriptor.array","name":"array","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":804,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"array : bool;","source":{"file":"lib/libtmux.mli","line":804,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.array","slug":"libtmux-options-descriptor-array"},{"id":"Libtmux.Options.descriptor.hook","publicId":"Libtmux.Options.descriptor.hook","name":"hook","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":805,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hook : bool;","source":{"file":"lib/libtmux.mli","line":805,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.hook","slug":"libtmux-options-descriptor-hook"},{"id":"Libtmux.Options.descriptor.kind","publicId":"Libtmux.Options.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":803,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":803,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Options.kind","slug":"libtmux-options-descriptor-kind"},{"id":"Libtmux.Options.descriptor.name","publicId":"Libtmux.Options.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":802,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":802,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.descriptor","type":"string","qualifiedName":"Libtmux.Options.name","slug":"libtmux-options-descriptor-name"},{"id":"Libtmux.Options.descriptor.scopes","publicId":"Libtmux.Options.descriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":806,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scopes : [ `Server | `Session | `Window | `Pane ] list;","source":{"file":"lib/libtmux.mli","line":806,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.descriptor","type":"[ `Pane | `Server | `Session | `Window ] list","qualifiedName":"Libtmux.Options.scopes","slug":"libtmux-options-descriptor-scopes"},{"id":"Libtmux.Options.descriptor.versions","publicId":"Libtmux.Options.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":807,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":807,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.descriptor","type":"string list","qualifiedName":"Libtmux.Options.versions","slug":"libtmux-options-descriptor-versions"},{"id":"Libtmux.Options.entry","publicId":"Libtmux.Options.entry","qualifiedName":"Libtmux.Options.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { descriptor : descriptor; value : value; inherited : bool }","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type entry = { descriptor : descriptor; value : value; inherited : bool; }","params":[]}],"slug":"libtmux-options-entry"},{"id":"Libtmux.Options.entry.descriptor","publicId":"Libtmux.Options.entry.descriptor","name":"descriptor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"descriptor : descriptor;","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.entry","type":"descriptor","qualifiedName":"Libtmux.Options.descriptor","slug":"libtmux-options-entry-descriptor"},{"id":"Libtmux.Options.entry.inherited","publicId":"Libtmux.Options.entry.inherited","name":"inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inherited : bool","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.entry","type":"bool","qualifiedName":"Libtmux.Options.inherited","slug":"libtmux-options-entry-inherited"},{"id":"Libtmux.Options.entry.value","publicId":"Libtmux.Options.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value;","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.entry","type":"value","qualifiedName":"Libtmux.Options.value","slug":"libtmux-options-entry-value"},{"id":"Libtmux.Options.lookup","publicId":"Libtmux.Options.lookup","qualifiedName":"Libtmux.Options.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":846,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> entry option","source":{"file":"lib/libtmux.mli","line":846,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","doc":{"summary":"`None` means absent from this capture's selected scope and inheritance policy. Use `describe` to distinguish an unsupported built-in name."},"signatures":[{"raw":"val lookup : t -> string -> entry option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"entry option"}],"slug":"libtmux-options-lookup"},{"id":"Libtmux.Options.scalar","publicId":"Libtmux.Options.scalar","qualifiedName":"Libtmux.Options.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scalar =\n Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","params":[]}],"slug":"libtmux-options-scalar"},{"id":"Libtmux.Options.scalar.Bool","publicId":"Libtmux.Options.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":823,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool of bool","source":{"file":"lib/libtmux.mli","line":823,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Bool","slug":"libtmux-options-scalar-bool"},{"id":"Libtmux.Options.scalar.Choice","publicId":"Libtmux.Options.scalar.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":824,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice of string","source":{"file":"lib/libtmux.mli","line":824,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Choice","slug":"libtmux-options-scalar-choice"},{"id":"Libtmux.Options.scalar.Colour","publicId":"Libtmux.Options.scalar.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":826,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour of string","source":{"file":"lib/libtmux.mli","line":826,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Colour","slug":"libtmux-options-scalar-colour"},{"id":"Libtmux.Options.scalar.Commands","publicId":"Libtmux.Options.scalar.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":827,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands of string","source":{"file":"lib/libtmux.mli","line":827,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Commands","slug":"libtmux-options-scalar-commands"},{"id":"Libtmux.Options.scalar.Integer","publicId":"Libtmux.Options.scalar.Integer","name":"Integer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":822,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Integer of int64","source":{"file":"lib/libtmux.mli","line":822,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Integer","slug":"libtmux-options-scalar-integer"},{"id":"Libtmux.Options.scalar.Key","publicId":"Libtmux.Options.scalar.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":825,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key of string","source":{"file":"lib/libtmux.mli","line":825,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Key","slug":"libtmux-options-scalar-key"},{"id":"Libtmux.Options.scalar.Text","publicId":"Libtmux.Options.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":821,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":821,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Text","slug":"libtmux-options-scalar-text"},{"id":"Libtmux.Options.scope","publicId":"Libtmux.Options.scope","qualifiedName":"Libtmux.Options.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":812,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":812,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scope =\n Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","params":[]}],"slug":"libtmux-options-scope"},{"id":"Libtmux.Options.scope.Global_sessions","publicId":"Libtmux.Options.scope.Global_sessions","name":"Global_sessions","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":814,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_sessions","source":{"file":"lib/libtmux.mli","line":814,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_sessions","slug":"libtmux-options-scope-global_sessions"},{"id":"Libtmux.Options.scope.Global_windows","publicId":"Libtmux.Options.scope.Global_windows","name":"Global_windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":815,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_windows","source":{"file":"lib/libtmux.mli","line":815,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_windows","slug":"libtmux-options-scope-global_windows"},{"id":"Libtmux.Options.scope.Pane","publicId":"Libtmux.Options.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":818,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":818,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Pane","slug":"libtmux-options-scope-pane"},{"id":"Libtmux.Options.scope.Server","publicId":"Libtmux.Options.scope.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":813,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":813,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Server","slug":"libtmux-options-scope-server"},{"id":"Libtmux.Options.scope.Session","publicId":"Libtmux.Options.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":816,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":816,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Session","slug":"libtmux-options-scope-session"},{"id":"Libtmux.Options.scope.Window","publicId":"Libtmux.Options.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":817,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.target","source":{"file":"lib/libtmux.mli","line":817,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Window","slug":"libtmux-options-scope-window"},{"id":"Libtmux.Options.t","publicId":"Libtmux.Options.t","qualifiedName":"Libtmux.Options.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":832,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":832,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","doc":{"summary":"Captured options in tmux order, with original array indexes. An empty array differs from an absent local entry. No accessor performs I/O."},"signatures":[{"raw":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-options-t"},{"id":"Libtmux.Options.t.entries","publicId":"Libtmux.Options.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":836,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":836,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Options.entries","slug":"libtmux-options-t-entries"},{"id":"Libtmux.Options.t.finished_at_ns","publicId":"Libtmux.Options.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":838,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":838,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.finished_at_ns","slug":"libtmux-options-t-finished_at_ns"},{"id":"Libtmux.Options.t.include_inherited","publicId":"Libtmux.Options.t.include_inherited","name":"include_inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":835,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"include_inherited : bool;","source":{"file":"lib/libtmux.mli","line":835,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.t","type":"bool","qualifiedName":"Libtmux.Options.include_inherited","slug":"libtmux-options-t-include_inherited"},{"id":"Libtmux.Options.t.scope","publicId":"Libtmux.Options.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":834,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":834,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.t","type":"scope","qualifiedName":"Libtmux.Options.scope","slug":"libtmux-options-t-scope"},{"id":"Libtmux.Options.t.source","publicId":"Libtmux.Options.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":833,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":833,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.t","type":"Source.t","qualifiedName":"Libtmux.Options.source","slug":"libtmux-options-t-source"},{"id":"Libtmux.Options.t.started_at_ns","publicId":"Libtmux.Options.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":837,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":837,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.started_at_ns","slug":"libtmux-options-t-started_at_ns"},{"id":"Libtmux.Options.value","publicId":"Libtmux.Options.value","qualifiedName":"Libtmux.Options.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","params":[]}],"slug":"libtmux-options-value"},{"id":"Libtmux.Options.value.Array","publicId":"Libtmux.Options.value.Array","name":"Array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Array","slug":"libtmux-options-value-array"},{"id":"Libtmux.Options.value.Scalar","publicId":"Libtmux.Options.value.Scalar","name":"Scalar","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Scalar of scalar","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Scalar","slug":"libtmux-options-value-scalar"},{"id":"Libtmux.Output","publicId":"Libtmux.Output","qualifiedName":"Libtmux.Output","name":"Output","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1012,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Future observed pane bytes, local cursors and explicit continuity loss.\n Output cursors are unrelated to snapshot times or server-side history. "],"declarations":[{"kind":"module","text":"module Output : sig\n type cursor = { generation : Generation.t; offset : int64 }\n (** [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. *)\n\n type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t\n\n type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason\n (** Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. *)\n\n val reason_pp : Format.formatter -> reason -> unit\n\n type wait_error =\n | Ended of reason\n | Failure of Error.t\n (** A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. *)\nend","source":{"file":"lib/libtmux.mli","line":1012,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Future observed pane bytes, local cursors and explicit continuity loss. Output cursors are unrelated to snapshot times or server-side history."},"slug":"libtmux-output"},{"id":"Libtmux.Output.cursor","publicId":"Libtmux.Output.cursor","qualifiedName":"Libtmux.Output.cursor","name":"cursor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. "],"declarations":[{"kind":"struct","text":"type cursor = { generation : Generation.t; offset : int64 }","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output","doc":{"summary":"`offset` is the number of observed bytes through the end of a Data event. Cursors from different subscription generations are unrelated. No cursor identifies a snapshot instant or a server-side historical position."},"signatures":[{"raw":"type cursor = { generation : Generation.t; offset : int64; }","params":[]}],"slug":"libtmux-output-cursor"},{"id":"Libtmux.Output.cursor.generation","publicId":"Libtmux.Output.cursor.generation","name":"generation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"generation : Generation.t;","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.cursor","type":"Generation.t","qualifiedName":"Libtmux.Output.generation","slug":"libtmux-output-cursor-generation"},{"id":"Libtmux.Output.cursor.offset","publicId":"Libtmux.Output.cursor.offset","name":"offset","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"offset : int64","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.cursor","type":"int64","qualifiedName":"Libtmux.Output.offset","slug":"libtmux-output-cursor-offset"},{"id":"Libtmux.Output.event","publicId":"Libtmux.Output.event","qualifiedName":"Libtmux.Output.event","name":"event","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1026,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason","source":{"file":"lib/libtmux.mli","line":1026,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type event =\n Data of { cursor : cursor; bytes : string; }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason;\n }\n | End of reason","params":[]}],"slug":"libtmux-output-event"},{"id":"Libtmux.Output.event.Data","publicId":"Libtmux.Output.event.Data","name":"Data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Data of { cursor : cursor; bytes : string }","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Data","slug":"libtmux-output-event-data"},{"id":"Libtmux.Output.event.Data.bytes","publicId":"Libtmux.Output.event.Data.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event.Data","type":"string","qualifiedName":"Libtmux.Output.bytes","slug":"libtmux-output-event-data-bytes"},{"id":"Libtmux.Output.event.Data.cursor","publicId":"Libtmux.Output.event.Data.cursor","name":"cursor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cursor : cursor;","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event.Data","type":"cursor","qualifiedName":"Libtmux.Output.cursor","slug":"libtmux-output-event-data-cursor"},{"id":"Libtmux.Output.event.End","publicId":"Libtmux.Output.event.End","name":"End","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1029,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. "],"declarations":[{"kind":"constant","text":"| End of reason","source":{"file":"lib/libtmux.mli","line":1029,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event","doc":{"summary":"Immutable event values. `Gap.after` is the last cursor delivered to the caller. Unknown loss is `None`. A gap ends continuity and is followed by End; recover with a fresh capture and a new subscription. Data preserves bytes, including NUL and invalid UTF-8. It is future observed output, not rendered text or historical reconstruction."},"variant":"tuple","qualifiedName":"Libtmux.Output.End","slug":"libtmux-output-event-end"},{"id":"Libtmux.Output.event.Gap","publicId":"Libtmux.Output.event.Gap","name":"Gap","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Gap of { after : cursor option; lost_bytes : int option; reason : reason }","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Gap","slug":"libtmux-output-event-gap"},{"id":"Libtmux.Output.event.Gap.after","publicId":"Libtmux.Output.event.Gap.after","name":"after","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"after : cursor option;","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event.Gap","type":"cursor option","qualifiedName":"Libtmux.Output.after","slug":"libtmux-output-event-gap-after"},{"id":"Libtmux.Output.event.Gap.lost_bytes","publicId":"Libtmux.Output.event.Gap.lost_bytes","name":"lost_bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"lost_bytes : int option;","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event.Gap","type":"int option","qualifiedName":"Libtmux.Output.lost_bytes","slug":"libtmux-output-event-gap-lost_bytes"},{"id":"Libtmux.Output.event.Gap.reason","publicId":"Libtmux.Output.event.Gap.reason","name":"reason","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"reason : reason","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event.Gap","type":"reason","qualifiedName":"Libtmux.Output.reason","slug":"libtmux-output-event-gap-reason"},{"id":"Libtmux.Output.reason","publicId":"Libtmux.Output.reason","qualifiedName":"Libtmux.Output.reason","name":"reason","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1018,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1018,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type reason =\n Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","params":[]}],"slug":"libtmux-output-reason"},{"id":"Libtmux.Output.reason.Cancelled","publicId":"Libtmux.Output.reason.Cancelled","name":"Cancelled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1022,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancelled","source":{"file":"lib/libtmux.mli","line":1022,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Cancelled","slug":"libtmux-output-reason-cancelled"},{"id":"Libtmux.Output.reason.Client_closed","publicId":"Libtmux.Output.reason.Client_closed","name":"Client_closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1023,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client_closed","source":{"file":"lib/libtmux.mli","line":1023,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Client_closed","slug":"libtmux-output-reason-client_closed"},{"id":"Libtmux.Output.reason.Membership_changed","publicId":"Libtmux.Output.reason.Membership_changed","name":"Membership_changed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1020,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Membership_changed","source":{"file":"lib/libtmux.mli","line":1020,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Membership_changed","slug":"libtmux-output-reason-membership_changed"},{"id":"Libtmux.Output.reason.Overflow","publicId":"Libtmux.Output.reason.Overflow","name":"Overflow","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1019,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Overflow","source":{"file":"lib/libtmux.mli","line":1019,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Overflow","slug":"libtmux-output-reason-overflow"},{"id":"Libtmux.Output.reason.Server_paused","publicId":"Libtmux.Output.reason.Server_paused","name":"Server_paused","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1021,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server_paused","source":{"file":"lib/libtmux.mli","line":1021,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Server_paused","slug":"libtmux-output-reason-server_paused"},{"id":"Libtmux.Output.reason.Transport_error","publicId":"Libtmux.Output.reason.Transport_error","name":"Transport_error","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1024,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1024,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.reason","variant":"tuple","qualifiedName":"Libtmux.Output.Transport_error","slug":"libtmux-output-reason-transport_error"},{"id":"Libtmux.Output.reason_pp","publicId":"Libtmux.Output.reason_pp","qualifiedName":"Libtmux.Output.reason_pp","name":"reason_pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1037,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val reason_pp : Format.formatter -> reason -> unit","source":{"file":"lib/libtmux.mli","line":1037,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output","signatures":[{"raw":"val reason_pp : Format.formatter -> reason -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"reason"}],"returns":"unit"}],"slug":"libtmux-output-reason_pp"},{"id":"Libtmux.Output.wait_error","publicId":"Libtmux.Output.wait_error","qualifiedName":"Libtmux.Output.wait_error","name":"wait_error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1039,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type wait_error =\n | Ended of reason\n | Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1039,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type wait_error = Ended of reason | Failure of Error.t","params":[]}],"slug":"libtmux-output-wait_error"},{"id":"Libtmux.Output.wait_error.Ended","publicId":"Libtmux.Output.wait_error.Ended","name":"Ended","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1040,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Ended of reason","source":{"file":"lib/libtmux.mli","line":1040,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.wait_error","variant":"tuple","qualifiedName":"Libtmux.Output.Ended","slug":"libtmux-output-wait_error-ended"},{"id":"Libtmux.Output.wait_error.Failure","publicId":"Libtmux.Output.wait_error.Failure","name":"Failure","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1041,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. "],"declarations":[{"kind":"constant","text":"| Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1041,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.wait_error","doc":{"summary":"A future-byte wait either loses its subscription's continuity or fails an operation. Neither result establishes that the text was absent earlier."},"variant":"tuple","qualifiedName":"Libtmux.Output.Failure","slug":"libtmux-output-wait_error-failure"},{"id":"Libtmux.Pane","publicId":"Libtmux.Pane","qualifiedName":"Libtmux.Pane","name":"Pane","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":288,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A captured pane with local geometry, process metadata and a window\n relationship. Use {!Pane.val-target} for explicit actions; reading the\n observation never refreshes it. "],"declarations":[{"kind":"module","text":"and Pane : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end\n\n module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val index : t -> int\n val active : t -> bool\n val dead : t -> bool\n val title : t -> string\n val current_command : t -> string\n val current_path : t -> string\n\n val pid : t -> int option\n (** The captured process ID, absent when tmux reports no process. *)\n\n val width : t -> int\n val height : t -> int\n val left : t -> int\n val top : t -> int\n val window : t -> Window.t\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"A captured pane with local geometry, process metadata and a window relationship. Use {!Pane.val-target} for explicit actions; reading the observation never refreshes it."},"slug":"libtmux-pane"},{"id":"Libtmux.Pane.Fields","publicId":"Libtmux.Pane.Fields","qualifiedName":"Libtmux.Pane.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":291,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":291,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-fields"},{"id":"Libtmux.Pane.Fields.active","publicId":"Libtmux.Pane.Fields.active","qualifiedName":"Libtmux.Pane.Fields.active","name":"active","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val active : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val active : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-active"},{"id":"Libtmux.Pane.Fields.current_command","publicId":"Libtmux.Pane.Fields.current_command","qualifiedName":"Libtmux.Pane.Fields.current_command","name":"current_command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":297,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_command : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":297,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_command : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_command"},{"id":"Libtmux.Pane.Fields.current_path","publicId":"Libtmux.Pane.Fields.current_path","qualifiedName":"Libtmux.Pane.Fields.current_path","name":"current_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":298,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_path : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":298,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_path : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_path"},{"id":"Libtmux.Pane.Fields.dead","publicId":"Libtmux.Pane.Fields.dead","qualifiedName":"Libtmux.Pane.Fields.dead","name":"dead","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":295,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val dead : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":295,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val dead : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-dead"},{"id":"Libtmux.Pane.Fields.height","publicId":"Libtmux.Pane.Fields.height","qualifiedName":"Libtmux.Pane.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-height"},{"id":"Libtmux.Pane.Fields.id","publicId":"Libtmux.Pane.Fields.id","qualifiedName":"Libtmux.Pane.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":292,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":292,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-id"},{"id":"Libtmux.Pane.Fields.index","publicId":"Libtmux.Pane.Fields.index","qualifiedName":"Libtmux.Pane.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":293,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-index"},{"id":"Libtmux.Pane.Fields.left","publicId":"Libtmux.Pane.Fields.left","qualifiedName":"Libtmux.Pane.Fields.left","name":"left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":301,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val left : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":301,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val left : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-left"},{"id":"Libtmux.Pane.Fields.title","publicId":"Libtmux.Pane.Fields.title","qualifiedName":"Libtmux.Pane.Fields.title","name":"title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":296,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val title : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":296,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val title : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-title"},{"id":"Libtmux.Pane.Fields.top","publicId":"Libtmux.Pane.Fields.top","qualifiedName":"Libtmux.Pane.Fields.top","name":"top","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":302,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val top : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val top : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-top"},{"id":"Libtmux.Pane.Fields.width","publicId":"Libtmux.Pane.Fields.width","qualifiedName":"Libtmux.Pane.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":299,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-width"},{"id":"Libtmux.Pane.Id","publicId":"Libtmux.Pane.Id","qualifiedName":"Libtmux.Pane.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-id-16to"},{"id":"Libtmux.Pane.Id.compare","publicId":"Libtmux.Pane.Id.compare","qualifiedName":"Libtmux.Pane.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-id-compare"},{"id":"Libtmux.Pane.Id.equal","publicId":"Libtmux.Pane.Id.equal","qualifiedName":"Libtmux.Pane.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-id-equal"},{"id":"Libtmux.Pane.Id.of_string","publicId":"Libtmux.Pane.Id.of_string","qualifiedName":"Libtmux.Pane.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-pane-id-of_string"},{"id":"Libtmux.Pane.Id.pp","publicId":"Libtmux.Pane.Id.pp","qualifiedName":"Libtmux.Pane.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-pane-id-pp"},{"id":"Libtmux.Pane.Id.t","publicId":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux.Pane.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-id-t"},{"id":"Libtmux.Pane.Id.to_string","publicId":"Libtmux.Pane.Id.to_string","qualifiedName":"Libtmux.Pane.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-id-to_string"},{"id":"Libtmux.Pane.Relations","publicId":"Libtmux.Pane.Relations","qualifiedName":"Libtmux.Pane.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-relations"},{"id":"Libtmux.Pane.Relations.window","publicId":"Libtmux.Pane.Relations.window","qualifiedName":"Libtmux.Pane.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-pane-relations-window"},{"id":"Libtmux.Pane.Target","publicId":"Libtmux.Pane.Target","qualifiedName":"Libtmux.Pane.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":311,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":311,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-target-nx8w"},{"id":"Libtmux.Pane.Target.id","publicId":"Libtmux.Pane.Target.id","qualifiedName":"Libtmux.Pane.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":316,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-target-id"},{"id":"Libtmux.Pane.Target.of_id","publicId":"Libtmux.Pane.Target.of_id","qualifiedName":"Libtmux.Pane.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":314,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":314,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-pane-target-of_id"},{"id":"Libtmux.Pane.Target.source","publicId":"Libtmux.Pane.Target.source","qualifiedName":"Libtmux.Pane.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":315,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-target-source"},{"id":"Libtmux.Pane.Target.t","publicId":"Libtmux.Pane.Target.t","qualifiedName":"Libtmux.Pane.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":312,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":312,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-target-t"},{"id":"Libtmux.Pane.active","publicId":"Libtmux.Pane.active","qualifiedName":"Libtmux.Pane.active","name":"active","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":323,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val active : t -> bool","source":{"file":"lib/libtmux.mli","line":323,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val active : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-active"},{"id":"Libtmux.Pane.current_command","publicId":"Libtmux.Pane.current_command","qualifiedName":"Libtmux.Pane.current_command","name":"current_command","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":326,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_command : t -> string","source":{"file":"lib/libtmux.mli","line":326,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_command : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_command"},{"id":"Libtmux.Pane.current_path","publicId":"Libtmux.Pane.current_path","qualifiedName":"Libtmux.Pane.current_path","name":"current_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_path : t -> string","source":{"file":"lib/libtmux.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_path : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_path"},{"id":"Libtmux.Pane.dead","publicId":"Libtmux.Pane.dead","qualifiedName":"Libtmux.Pane.dead","name":"dead","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":324,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dead : t -> bool","source":{"file":"lib/libtmux.mli","line":324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val dead : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-dead"},{"id":"Libtmux.Pane.height","publicId":"Libtmux.Pane.height","qualifiedName":"Libtmux.Pane.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":333,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-height"},{"id":"Libtmux.Pane.id","publicId":"Libtmux.Pane.id","qualifiedName":"Libtmux.Pane.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":321,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":321,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-id-19ve"},{"id":"Libtmux.Pane.index","publicId":"Libtmux.Pane.index","qualifiedName":"Libtmux.Pane.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":322,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":322,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-index"},{"id":"Libtmux.Pane.left","publicId":"Libtmux.Pane.left","qualifiedName":"Libtmux.Pane.left","name":"left","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":334,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val left : t -> int","source":{"file":"lib/libtmux.mli","line":334,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val left : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-left"},{"id":"Libtmux.Pane.pid","publicId":"Libtmux.Pane.pid","qualifiedName":"Libtmux.Pane.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":329,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" The captured process ID, absent when tmux reports no process. "],"declarations":[{"kind":"function","text":"val pid : t -> int option","source":{"file":"lib/libtmux.mli","line":329,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","doc":{"summary":"The captured process ID, absent when tmux reports no process."},"signatures":[{"raw":"val pid : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-pane-pid"},{"id":"Libtmux.Pane.same_entity","publicId":"Libtmux.Pane.same_entity","qualifiedName":"Libtmux.Pane.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":339,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":339,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_entity"},{"id":"Libtmux.Pane.same_observation","publicId":"Libtmux.Pane.same_observation","qualifiedName":"Libtmux.Pane.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_observation"},{"id":"Libtmux.Pane.source","publicId":"Libtmux.Pane.source","qualifiedName":"Libtmux.Pane.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-source"},{"id":"Libtmux.Pane.t","publicId":"Libtmux.Pane.t","qualifiedName":"Libtmux.Pane.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":289,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":289,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-t"},{"id":"Libtmux.Pane.target","publicId":"Libtmux.Pane.target","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":338,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":338,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-pane-target-t3h1"},{"id":"Libtmux.Pane.target:type","publicId":"Libtmux.Pane.target:type","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-pane-target-type"},{"id":"Libtmux.Pane.title","publicId":"Libtmux.Pane.title","qualifiedName":"Libtmux.Pane.title","name":"title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":325,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val title : t -> string","source":{"file":"lib/libtmux.mli","line":325,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val title : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-title"},{"id":"Libtmux.Pane.top","publicId":"Libtmux.Pane.top","qualifiedName":"Libtmux.Pane.top","name":"top","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":335,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val top : t -> int","source":{"file":"lib/libtmux.mli","line":335,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val top : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-top"},{"id":"Libtmux.Pane.width","publicId":"Libtmux.Pane.width","qualifiedName":"Libtmux.Pane.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-width"},{"id":"Libtmux.Pane.window","publicId":"Libtmux.Pane.window","qualifiedName":"Libtmux.Pane.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":336,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":336,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-pane-window"},{"id":"Libtmux.Plan","publicId":"Libtmux.Plan","qualifiedName":"Libtmux.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":644,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Explicit source-filter planning for a new acquisition. A plan separates\n supported tmux predicates from residual local evaluation; it never changes\n the I/O-free contract of {!Query.matching}. Backend capture operations\n acquire a complete graph and do not consume these plans. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type pushdown = Auto | Never | Require_exact\n type t\n\n val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result\n (** Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. *)\n\n val source_filter : t -> string option\n val residual : t -> Pane.t Expr.t\n val required_fields : t -> string list\n val required_relations : t -> string list\n val explanation : t -> string\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":644,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Explicit source-filter planning for a new acquisition. A plan separates supported tmux predicates from residual local evaluation; it never changes the I/O-free contract of {!Query.matching}. Backend capture operations acquire a complete graph and do not consume these plans."},"slug":"libtmux-plan"},{"id":"Libtmux.Plan.explanation","publicId":"Libtmux.Plan.explanation","qualifiedName":"Libtmux.Plan.explanation","name":"explanation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":659,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val explanation : t -> string","source":{"file":"lib/libtmux.mli","line":659,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val explanation : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-plan-explanation"},{"id":"Libtmux.Plan.panes","publicId":"Libtmux.Plan.panes","qualifiedName":"Libtmux.Plan.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":648,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. "],"declarations":[{"kind":"function","text":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":648,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","doc":{"summary":"Plan without I/O. Exact lowering covers pane active/dead flags and complete Boolean combinations. Unsupported children prevent lowering the whole expression, including under OR and NOT. Relationships always stay local. `Require_exact` rejects an unsupported expression before acquisition."},"signatures":[{"raw":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","params":[{"name":"pushdown","type":"pushdown","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t Expr.t"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-plan-panes"},{"id":"Libtmux.Plan.pp","publicId":"Libtmux.Plan.pp","qualifiedName":"Libtmux.Plan.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":660,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":660,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-plan-pp"},{"id":"Libtmux.Plan.pushdown","publicId":"Libtmux.Plan.pushdown","qualifiedName":"Libtmux.Plan.pushdown","name":"pushdown","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type pushdown = Auto | Never | Require_exact","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type pushdown = Auto | Never | Require_exact","params":[]}],"slug":"libtmux-plan-pushdown"},{"id":"Libtmux.Plan.pushdown.Auto","publicId":"Libtmux.Plan.pushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Auto","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Auto","slug":"libtmux-plan-pushdown-auto"},{"id":"Libtmux.Plan.pushdown.Never","publicId":"Libtmux.Plan.pushdown.Never","name":"Never","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Never","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Never","slug":"libtmux-plan-pushdown-never"},{"id":"Libtmux.Plan.pushdown.Require_exact","publicId":"Libtmux.Plan.pushdown.Require_exact","name":"Require_exact","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_exact","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Require_exact","slug":"libtmux-plan-pushdown-require_exact"},{"id":"Libtmux.Plan.required_fields","publicId":"Libtmux.Plan.required_fields","qualifiedName":"Libtmux.Plan.required_fields","name":"required_fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":657,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_fields : t -> string list","source":{"file":"lib/libtmux.mli","line":657,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_fields : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_fields"},{"id":"Libtmux.Plan.required_relations","publicId":"Libtmux.Plan.required_relations","qualifiedName":"Libtmux.Plan.required_relations","name":"required_relations","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":658,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_relations : t -> string list","source":{"file":"lib/libtmux.mli","line":658,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_relations : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_relations"},{"id":"Libtmux.Plan.residual","publicId":"Libtmux.Plan.residual","qualifiedName":"Libtmux.Plan.residual","name":"residual","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":656,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val residual : t -> Pane.t Expr.t","source":{"file":"lib/libtmux.mli","line":656,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val residual : t -> Pane.t Expr.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Expr.t"}],"slug":"libtmux-plan-residual"},{"id":"Libtmux.Plan.source_filter","publicId":"Libtmux.Plan.source_filter","qualifiedName":"Libtmux.Plan.source_filter","name":"source_filter","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":655,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source_filter : t -> string option","source":{"file":"lib/libtmux.mli","line":655,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val source_filter : t -> string option","params":[{"name":"arg1","type":"t"}],"returns":"string option"}],"slug":"libtmux-plan-source_filter"},{"id":"Libtmux.Plan.t","publicId":"Libtmux.Plan.t","qualifiedName":"Libtmux.Plan.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":646,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":646,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-plan-t"},{"id":"Libtmux.Query","publicId":"Libtmux.Query","qualifiedName":"Libtmux.Query","name":"Query","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":672,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Sequence adapters and bounded cardinality checks over captured values.\n Matching preserves order and duplicates. Expected absence and ambiguity\n remain ordinary result values. "],"declarations":[{"kind":"module","text":"module Query : sig\n val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t\n (** [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. *)\n\n val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result\n (** Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. *)\n\n val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result\n (** As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n *)\nend","source":{"file":"lib/libtmux.mli","line":672,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Sequence adapters and bounded cardinality checks over captured values. Matching preserves order and duplicates. Expected absence and ambiguity remain ordinary result values."},"slug":"libtmux-query"},{"id":"Libtmux.Query.exactly_one","publicId":"Libtmux.Query.exactly_one","qualifiedName":"Libtmux.Query.exactly_one","name":"exactly_one","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":679,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. "],"declarations":[{"kind":"function","text":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":679,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Query","doc":{"summary":"Return the unique value. Stop when a second value is found; proving uniqueness requires exhausting the remaining sequence. The input's effects and exceptions propagate. This does not execute a mutation."},"signatures":[{"raw":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a, Cardinality.error) result"}],"slug":"libtmux-query-exactly_one"},{"id":"Libtmux.Query.matching","publicId":"Libtmux.Query.matching","qualifiedName":"Libtmux.Query.matching","name":"matching","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":673,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. "],"declarations":[{"kind":"function","text":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","source":{"file":"lib/libtmux.mli","line":673,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Query","doc":{"summary":"`matching expression` compiles once when the adapter is constructed. Filtering preserves order and duplicates. Snapshot-derived sequences replay captured values; arbitrary input sequences retain their effects, exceptions and replay semantics. No tmux acquisition occurs."},"signatures":[{"raw":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","params":[{"name":"arg1","type":"'a Expr.t"},{"name":"arg2","type":"'a Seq.t"}],"returns":"'a Seq.t"}],"slug":"libtmux-query-matching"},{"id":"Libtmux.Query.one_or_none","publicId":"Libtmux.Query.one_or_none","qualifiedName":"Libtmux.Query.one_or_none","name":"one_or_none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":684,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n "],"declarations":[{"kind":"function","text":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":684,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Query","doc":{"summary":"As {!exactly_one}, with `Ok None` for an empty sequence. Order and duplicate entries count toward cardinality; values are not deduplicated."},"signatures":[{"raw":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a option, Cardinality.error) result"}],"slug":"libtmux-query-one_or_none"},{"id":"Libtmux.Relation","publicId":"Libtmux.Relation","qualifiedName":"Libtmux.Relation","name":"Relation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Typed edges in a captured graph. Many, one and optional relations are\n distinct; an unacquired relationship is never represented as an empty one.\n"],"declarations":[{"kind":"module","text":"module Relation : sig\n module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\nend","source":{"file":"lib/libtmux.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Typed edges in a captured graph. Many, one and optional relations are distinct; an unacquired relationship is never represented as an empty one."},"slug":"libtmux-relation"},{"id":"Libtmux.Relation.Many","publicId":"Libtmux.Relation.Many","qualifiedName":"Libtmux.Relation.Many","name":"Many","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-many"},{"id":"Libtmux.Relation.Many.name","publicId":"Libtmux.Relation.Many.name","qualifiedName":"Libtmux.Relation.Many.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-many-name"},{"id":"Libtmux.Relation.Many.t","publicId":"Libtmux.Relation.Many.t","qualifiedName":"Libtmux.Relation.Many.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-many-t"},{"id":"Libtmux.Relation.One","publicId":"Libtmux.Relation.One","qualifiedName":"Libtmux.Relation.One","name":"One","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":157,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":157,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-one"},{"id":"Libtmux.Relation.One.name","publicId":"Libtmux.Relation.One.name","qualifiedName":"Libtmux.Relation.One.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":160,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-one-name"},{"id":"Libtmux.Relation.One.t","publicId":"Libtmux.Relation.One.t","qualifiedName":"Libtmux.Relation.One.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":158,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":158,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-one-t"},{"id":"Libtmux.Relation.Optional","publicId":"Libtmux.Relation.Optional","qualifiedName":"Libtmux.Relation.Optional","name":"Optional","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-optional"},{"id":"Libtmux.Relation.Optional.name","publicId":"Libtmux.Relation.Optional.name","qualifiedName":"Libtmux.Relation.Optional.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-optional-name"},{"id":"Libtmux.Relation.Optional.t","publicId":"Libtmux.Relation.Optional.t","qualifiedName":"Libtmux.Relation.Optional.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-optional-t"},{"id":"Libtmux.Session","publicId":"Libtmux.Session","qualifiedName":"Libtmux.Session","name":"Session","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A captured session and its ordered window-link contexts. A session can\n contain repeated links to the same global window. "],"declarations":[{"kind":"module","text":"module rec Session : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end\n\n module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val attached : t -> int\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\n\n val window_links : t -> Window_link.t Iarray.t\n (** All captured links, in capture order, including repeated windows. *)\n\n val windows : t -> Window.t Iarray.t\n (** Distinct windows in first-link order. All accesses are local. *)\nend","source":{"file":"lib/libtmux.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"A captured session and its ordered window-link contexts. A session can contain repeated links to the same global window."},"slug":"libtmux-session"},{"id":"Libtmux.Session.Fields","publicId":"Libtmux.Session.Fields","qualifiedName":"Libtmux.Session.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":175,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":175,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","slug":"libtmux-session-fields"},{"id":"Libtmux.Session.Fields.attached","publicId":"Libtmux.Session.Fields.attached","qualifiedName":"Libtmux.Session.Fields.attached","name":"attached","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val attached : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val attached : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-session-fields-attached"},{"id":"Libtmux.Session.Fields.id","publicId":"Libtmux.Session.Fields.id","qualifiedName":"Libtmux.Session.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":176,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":176,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-id"},{"id":"Libtmux.Session.Fields.name","publicId":"Libtmux.Session.Fields.name","qualifiedName":"Libtmux.Session.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-name"},{"id":"Libtmux.Session.Id","publicId":"Libtmux.Session.Id","qualifiedName":"Libtmux.Session.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","slug":"libtmux-session-id-12k2"},{"id":"Libtmux.Session.Id.compare","publicId":"Libtmux.Session.Id.compare","qualifiedName":"Libtmux.Session.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-session-id-compare"},{"id":"Libtmux.Session.Id.equal","publicId":"Libtmux.Session.Id.equal","qualifiedName":"Libtmux.Session.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-id-equal"},{"id":"Libtmux.Session.Id.of_string","publicId":"Libtmux.Session.Id.of_string","qualifiedName":"Libtmux.Session.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-session-id-of_string"},{"id":"Libtmux.Session.Id.pp","publicId":"Libtmux.Session.Id.pp","qualifiedName":"Libtmux.Session.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-session-id-pp"},{"id":"Libtmux.Session.Id.t","publicId":"Libtmux.Session.Id.t","qualifiedName":"Libtmux.Session.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-id-t"},{"id":"Libtmux.Session.Id.to_string","publicId":"Libtmux.Session.Id.to_string","qualifiedName":"Libtmux.Session.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-id-to_string"},{"id":"Libtmux.Session.Relations","publicId":"Libtmux.Session.Relations","qualifiedName":"Libtmux.Session.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","slug":"libtmux-session-relations"},{"id":"Libtmux.Session.Relations.window_links","publicId":"Libtmux.Session.Relations.window_links","qualifiedName":"Libtmux.Session.Relations.window_links","name":"window_links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val window_links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-session-relations-window_links"},{"id":"Libtmux.Session.Relations.windows","publicId":"Libtmux.Session.Relations.windows","qualifiedName":"Libtmux.Session.Relations.windows","name":"windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val windows : (t, Window.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val windows : (t, Window.t) Relation.Many.t","params":[],"returns":"(t, Window.t) Relation.Many.t"}],"slug":"libtmux-session-relations-windows"},{"id":"Libtmux.Session.Target","publicId":"Libtmux.Session.Target","qualifiedName":"Libtmux.Session.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","slug":"libtmux-session-target-5p2d"},{"id":"Libtmux.Session.Target.id","publicId":"Libtmux.Session.Target.id","qualifiedName":"Libtmux.Session.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":195,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-target-id"},{"id":"Libtmux.Session.Target.of_id","publicId":"Libtmux.Session.Target.of_id","qualifiedName":"Libtmux.Session.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Describe a target in an existing connection generation. No I/O. "],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Target","doc":{"summary":"Describe a target in an existing connection generation. No I/O."},"signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-session-target-of_id"},{"id":"Libtmux.Session.Target.source","publicId":"Libtmux.Session.Target.source","qualifiedName":"Libtmux.Session.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":194,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-target-source"},{"id":"Libtmux.Session.Target.t","publicId":"Libtmux.Session.Target.t","qualifiedName":"Libtmux.Session.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-target-t"},{"id":"Libtmux.Session.attached","publicId":"Libtmux.Session.attached","qualifiedName":"Libtmux.Session.attached","name":"attached","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val attached : t -> int","source":{"file":"lib/libtmux.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val attached : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-session-attached"},{"id":"Libtmux.Session.id","publicId":"Libtmux.Session.id","qualifiedName":"Libtmux.Session.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-id-12gy"},{"id":"Libtmux.Session.name","publicId":"Libtmux.Session.name","qualifiedName":"Libtmux.Session.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-name"},{"id":"Libtmux.Session.same_entity","publicId":"Libtmux.Session.same_entity","qualifiedName":"Libtmux.Session.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_entity"},{"id":"Libtmux.Session.same_observation","publicId":"Libtmux.Session.same_observation","qualifiedName":"Libtmux.Session.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_observation"},{"id":"Libtmux.Session.source","publicId":"Libtmux.Session.source","qualifiedName":"Libtmux.Session.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-source"},{"id":"Libtmux.Session.t","publicId":"Libtmux.Session.t","qualifiedName":"Libtmux.Session.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-t"},{"id":"Libtmux.Session.target","publicId":"Libtmux.Session.target","qualifiedName":"Libtmux.Session.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-session-target-iu8j"},{"id":"Libtmux.Session.target:type","publicId":"Libtmux.Session.target:type","qualifiedName":"Libtmux.Session.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-session-target-type"},{"id":"Libtmux.Session.window_links","publicId":"Libtmux.Session.window_links","qualifiedName":"Libtmux.Session.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" All captured links, in capture order, including repeated windows. "],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","doc":{"summary":"All captured links, in capture order, including repeated windows.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-session-window_links"},{"id":"Libtmux.Session.windows","publicId":"Libtmux.Session.windows","qualifiedName":"Libtmux.Session.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Distinct windows in first-link order. All accesses are local. "],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","doc":{"summary":"Distinct windows in first-link order. All accesses are local."},"signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-session-windows"},{"id":"Libtmux.Snapshot","publicId":"Libtmux.Snapshot","qualifiedName":"Libtmux.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A complete immutable graph captured over an acquisition interval.\n Collections are replayable immutable arrays. Capturing several tmux commands\n does not establish an atomic transaction. "],"declarations":[{"kind":"module","text":"module Snapshot : sig\n type t\n\n module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end\n\n module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end\n\n val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result\n (** Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. *)\n\n val id : t -> Id.t\n val source : t -> Source.t\n val started_at_ns : t -> int64\n val finished_at_ns : t -> int64\n val sessions : t -> Session.t Iarray.t\n val windows : t -> Window.t Iarray.t\n val window_links : t -> Window_link.t Iarray.t\n val panes : t -> Pane.t Iarray.t\n\n val clients : t -> Client_observation.t Iarray.t\n (** Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. *)\n\n val find_session : t -> Session.Id.t -> Session.t option\n val find_window : t -> Window.Id.t -> Window.t option\n val find_pane : t -> Pane.Id.t -> Pane.t option\nend","source":{"file":"lib/libtmux.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"A complete immutable graph captured over an acquisition interval. Collections are replayable immutable arrays. Capturing several tmux commands does not establish an atomic transaction."},"slug":"libtmux-snapshot"},{"id":"Libtmux.Snapshot.Id","publicId":"Libtmux.Snapshot.Id","qualifiedName":"Libtmux.Snapshot.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":384,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end","source":{"file":"lib/libtmux.mli","line":384,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-id-1y9h"},{"id":"Libtmux.Snapshot.Id.equal","publicId":"Libtmux.Snapshot.Id.equal","qualifiedName":"Libtmux.Snapshot.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":389,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":389,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-snapshot-id-equal"},{"id":"Libtmux.Snapshot.Id.of_string","publicId":"Libtmux.Snapshot.Id.of_string","qualifiedName":"Libtmux.Snapshot.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-id-of_string"},{"id":"Libtmux.Snapshot.Id.t","publicId":"Libtmux.Snapshot.Id.t","qualifiedName":"Libtmux.Snapshot.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":385,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":385,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-id-t"},{"id":"Libtmux.Snapshot.Id.to_string","publicId":"Libtmux.Snapshot.Id.to_string","qualifiedName":"Libtmux.Snapshot.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":388,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":388,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-snapshot-id-to_string"},{"id":"Libtmux.Snapshot.Input","publicId":"Libtmux.Snapshot.Input","qualifiedName":"Libtmux.Snapshot.Input","name":"Input","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":392,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end","source":{"file":"lib/libtmux.mli","line":392,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-input"},{"id":"Libtmux.Snapshot.Input.client","publicId":"Libtmux.Snapshot.Input.client","qualifiedName":"Libtmux.Snapshot.Input.client","name":"client","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }","source":{"file":"lib/libtmux.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n}","params":[]}],"slug":"libtmux-snapshot-input-client"},{"id":"Libtmux.Snapshot.Input.client.control_mode","publicId":"Libtmux.Snapshot.Input.client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":432,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"control_mode : bool;","source":{"file":"lib/libtmux.mli","line":432,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.client","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.control_mode","slug":"libtmux-snapshot-input-client-control_mode"},{"id":"Libtmux.Snapshot.Input.client.height","publicId":"Libtmux.Snapshot.Input.client.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":431,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":431,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-client-height"},{"id":"Libtmux.Snapshot.Input.client.name","publicId":"Libtmux.Snapshot.Input.client.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.client","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-client-name"},{"id":"Libtmux.Snapshot.Input.client.pid","publicId":"Libtmux.Snapshot.Input.client.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":429,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int;","source":{"file":"lib/libtmux.mli","line":429,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-client-pid"},{"id":"Libtmux.Snapshot.Input.client.session_id","publicId":"Libtmux.Snapshot.Input.client.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":428,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t option;","source":{"file":"lib/libtmux.mli","line":428,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.client","type":"Session.Id.t option","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-client-session_id"},{"id":"Libtmux.Snapshot.Input.client.width","publicId":"Libtmux.Snapshot.Input.client.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":430,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":430,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-client-width"},{"id":"Libtmux.Snapshot.Input.pane","publicId":"Libtmux.Snapshot.Input.pane","qualifiedName":"Libtmux.Snapshot.Input.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }","source":{"file":"lib/libtmux.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n}","params":[]}],"slug":"libtmux-snapshot-input-pane"},{"id":"Libtmux.Snapshot.Input.pane.active","publicId":"Libtmux.Snapshot.Input.pane.active","name":"active","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"active : bool;","source":{"file":"lib/libtmux.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.active","slug":"libtmux-snapshot-input-pane-active"},{"id":"Libtmux.Snapshot.Input.pane.current_command","publicId":"Libtmux.Snapshot.Input.pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_command : string;","source":{"file":"lib/libtmux.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_command","slug":"libtmux-snapshot-input-pane-current_command"},{"id":"Libtmux.Snapshot.Input.pane.current_path","publicId":"Libtmux.Snapshot.Input.pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":418,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_path : string;","source":{"file":"lib/libtmux.mli","line":418,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_path","slug":"libtmux-snapshot-input-pane-current_path"},{"id":"Libtmux.Snapshot.Input.pane.dead","publicId":"Libtmux.Snapshot.Input.pane.dead","name":"dead","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"dead : bool;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.dead","slug":"libtmux-snapshot-input-pane-dead"},{"id":"Libtmux.Snapshot.Input.pane.height","publicId":"Libtmux.Snapshot.Input.pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":421,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":421,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-pane-height"},{"id":"Libtmux.Snapshot.Input.pane.id","publicId":"Libtmux.Snapshot.Input.pane.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Pane.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-pane-id"},{"id":"Libtmux.Snapshot.Input.pane.index","publicId":"Libtmux.Snapshot.Input.pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":413,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":413,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-pane-index"},{"id":"Libtmux.Snapshot.Input.pane.left","publicId":"Libtmux.Snapshot.Input.pane.left","name":"left","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"left : int;","source":{"file":"lib/libtmux.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.left","slug":"libtmux-snapshot-input-pane-left"},{"id":"Libtmux.Snapshot.Input.pane.pid","publicId":"Libtmux.Snapshot.Input.pane.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":419,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int option;","source":{"file":"lib/libtmux.mli","line":419,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-pane-pid"},{"id":"Libtmux.Snapshot.Input.pane.title","publicId":"Libtmux.Snapshot.Input.pane.title","name":"title","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":416,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"title : string;","source":{"file":"lib/libtmux.mli","line":416,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.title","slug":"libtmux-snapshot-input-pane-title"},{"id":"Libtmux.Snapshot.Input.pane.top","publicId":"Libtmux.Snapshot.Input.pane.top","name":"top","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"top : int;","source":{"file":"lib/libtmux.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.top","slug":"libtmux-snapshot-input-pane-top"},{"id":"Libtmux.Snapshot.Input.pane.width","publicId":"Libtmux.Snapshot.Input.pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":420,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":420,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-pane-width"},{"id":"Libtmux.Snapshot.Input.pane.window_id","publicId":"Libtmux.Snapshot.Input.pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":412,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":412,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-pane-window_id"},{"id":"Libtmux.Snapshot.Input.session","publicId":"Libtmux.Snapshot.Input.session","qualifiedName":"Libtmux.Snapshot.Input.session","name":"session","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type session = { id : Session.Id.t; name : string; attached : int }","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type session = { id : Session.Id.t; name : string; attached : int; }","params":[]}],"slug":"libtmux-snapshot-input-session"},{"id":"Libtmux.Snapshot.Input.session.attached","publicId":"Libtmux.Snapshot.Input.session.attached","name":"attached","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"attached : int","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.session","type":"int","qualifiedName":"Libtmux.Snapshot.Input.attached","slug":"libtmux-snapshot-input-session-attached"},{"id":"Libtmux.Snapshot.Input.session.id","publicId":"Libtmux.Snapshot.Input.session.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.session","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-session-id"},{"id":"Libtmux.Snapshot.Input.session.name","publicId":"Libtmux.Snapshot.Input.session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.session","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-session-name"},{"id":"Libtmux.Snapshot.Input.window","publicId":"Libtmux.Snapshot.Input.window","qualifiedName":"Libtmux.Snapshot.Input.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":395,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }","source":{"file":"lib/libtmux.mli","line":395,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n}","params":[]}],"slug":"libtmux-snapshot-input-window"},{"id":"Libtmux.Snapshot.Input.window.height","publicId":"Libtmux.Snapshot.Input.window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":399,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":399,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-window-height"},{"id":"Libtmux.Snapshot.Input.window.id","publicId":"Libtmux.Snapshot.Input.window.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":396,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":396,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-window-id"},{"id":"Libtmux.Snapshot.Input.window.layout","publicId":"Libtmux.Snapshot.Input.window.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":400,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : string;","source":{"file":"lib/libtmux.mli","line":400,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.layout","slug":"libtmux-snapshot-input-window-layout"},{"id":"Libtmux.Snapshot.Input.window.name","publicId":"Libtmux.Snapshot.Input.window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-window-name"},{"id":"Libtmux.Snapshot.Input.window.width","publicId":"Libtmux.Snapshot.Input.window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":398,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":398,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-window-width"},{"id":"Libtmux.Snapshot.Input.window_link","publicId":"Libtmux.Snapshot.Input.window_link","qualifiedName":"Libtmux.Snapshot.Input.window_link","name":"window_link","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }","source":{"file":"lib/libtmux.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n}","params":[]}],"slug":"libtmux-snapshot-input-window_link"},{"id":"Libtmux.Snapshot.Input.window_link.index","publicId":"Libtmux.Snapshot.Input.window_link.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-window_link-index"},{"id":"Libtmux.Snapshot.Input.window_link.is_current","publicId":"Libtmux.Snapshot.Input.window_link.is_current","name":"is_current","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":407,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"is_current : bool;","source":{"file":"lib/libtmux.mli","line":407,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.is_current","slug":"libtmux-snapshot-input-window_link-is_current"},{"id":"Libtmux.Snapshot.Input.window_link.session_id","publicId":"Libtmux.Snapshot.Input.window_link.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":404,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":404,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-window_link-session_id"},{"id":"Libtmux.Snapshot.Input.window_link.window_id","publicId":"Libtmux.Snapshot.Input.window_link.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":405,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":405,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-window_link-window_id"},{"id":"Libtmux.Snapshot.clients","publicId":"Libtmux.Snapshot.clients","qualifiedName":"Libtmux.Snapshot.clients","name":"clients","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":464,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. "],"declarations":[{"kind":"function","text":"val clients : t -> Client_observation.t Iarray.t","source":{"file":"lib/libtmux.mli","line":464,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Collections and their contents are immutable. They retain capture order, are replayable and remain readable after the acquiring client closes."},"signatures":[{"raw":"val clients : t -> Client_observation.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_observation.t Iarray.t"}],"slug":"libtmux-snapshot-clients"},{"id":"Libtmux.Snapshot.create","publicId":"Libtmux.Snapshot.create","qualifiedName":"Libtmux.Snapshot.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":436,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. "],"declarations":[{"kind":"function","text":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":436,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Validate and materialize a complete captured graph without I/O. Equal duplicate global rows collapse in first-occurrence order; conflicting rows and dangling references return {!Error.Capture_raced}. Links at different indexes remain distinct, including within one session. At most 10,000 input rows are admitted. Each session needs one current link and each window one active pane. Capture spans an interval, not an atomic instant. Input strings are bytes; no Unicode normalization is performed."},"signatures":[{"raw":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list -> clients:Input.client list -> (t, Error.t) result","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"id","type":"Id.t","keywordOnly":true},{"name":"started_at_ns","type":"int64","keywordOnly":true},{"name":"finished_at_ns","type":"int64","keywordOnly":true},{"name":"sessions","type":"Input.session list","keywordOnly":true},{"name":"windows","type":"Input.window list","keywordOnly":true},{"name":"window_links","type":"Input.window_link list","keywordOnly":true},{"name":"panes","type":"Input.pane list","keywordOnly":true},{"name":"clients","type":"Input.client list","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-create"},{"id":"Libtmux.Snapshot.find_pane","publicId":"Libtmux.Snapshot.find_pane","qualifiedName":"Libtmux.Snapshot.find_pane","name":"find_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":470,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_pane : t -> Pane.Id.t -> Pane.t option","source":{"file":"lib/libtmux.mli","line":470,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_pane : t -> Pane.Id.t -> Pane.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Pane.Id.t"}],"returns":"Pane.t option"}],"slug":"libtmux-snapshot-find_pane"},{"id":"Libtmux.Snapshot.find_session","publicId":"Libtmux.Snapshot.find_session","qualifiedName":"Libtmux.Snapshot.find_session","name":"find_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":468,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_session : t -> Session.Id.t -> Session.t option","source":{"file":"lib/libtmux.mli","line":468,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_session : t -> Session.Id.t -> Session.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Session.Id.t"}],"returns":"Session.t option"}],"slug":"libtmux-snapshot-find_session"},{"id":"Libtmux.Snapshot.find_window","publicId":"Libtmux.Snapshot.find_window","qualifiedName":"Libtmux.Snapshot.find_window","name":"find_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":469,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_window : t -> Window.Id.t -> Window.t option","source":{"file":"lib/libtmux.mli","line":469,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_window : t -> Window.Id.t -> Window.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Window.Id.t"}],"returns":"Window.t option"}],"slug":"libtmux-snapshot-find_window"},{"id":"Libtmux.Snapshot.finished_at_ns","publicId":"Libtmux.Snapshot.finished_at_ns","qualifiedName":"Libtmux.Snapshot.finished_at_ns","name":"finished_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val finished_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val finished_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-finished_at_ns"},{"id":"Libtmux.Snapshot.id","publicId":"Libtmux.Snapshot.id","qualifiedName":"Libtmux.Snapshot.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":455,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":455,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-snapshot-id-1y6d"},{"id":"Libtmux.Snapshot.panes","publicId":"Libtmux.Snapshot.panes","qualifiedName":"Libtmux.Snapshot.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":462,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":462,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"slug":"libtmux-snapshot-panes"},{"id":"Libtmux.Snapshot.sessions","publicId":"Libtmux.Snapshot.sessions","qualifiedName":"Libtmux.Snapshot.sessions","name":"sessions","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":459,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val sessions : t -> Session.t Iarray.t","source":{"file":"lib/libtmux.mli","line":459,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val sessions : t -> Session.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-snapshot-sessions"},{"id":"Libtmux.Snapshot.source","publicId":"Libtmux.Snapshot.source","qualifiedName":"Libtmux.Snapshot.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":456,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":456,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-snapshot-source"},{"id":"Libtmux.Snapshot.started_at_ns","publicId":"Libtmux.Snapshot.started_at_ns","qualifiedName":"Libtmux.Snapshot.started_at_ns","name":"started_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":457,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val started_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":457,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val started_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-started_at_ns"},{"id":"Libtmux.Snapshot.t","publicId":"Libtmux.Snapshot.t","qualifiedName":"Libtmux.Snapshot.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":382,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":382,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-t"},{"id":"Libtmux.Snapshot.window_links","publicId":"Libtmux.Snapshot.window_links","qualifiedName":"Libtmux.Snapshot.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":461,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":461,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-snapshot-window_links"},{"id":"Libtmux.Snapshot.windows","publicId":"Libtmux.Snapshot.windows","qualifiedName":"Libtmux.Snapshot.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":460,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":460,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-snapshot-windows"},{"id":"Libtmux.Source","publicId":"Libtmux.Source","qualifiedName":"Libtmux.Source","name":"Source","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":92,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Endpoint and observed daemon identity for one connection generation.\n Constructing metadata alone does not establish a live binding. "],"declarations":[{"kind":"module","text":"module Source : sig\n type t\n\n val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result\n (** Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. *)\n\n val endpoint : t -> Endpoint.t\n val generation : t -> Generation.t\n val server_pid : t -> int\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":92,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Endpoint and observed daemon identity for one connection generation. Constructing metadata alone does not establish a live binding."},"slug":"libtmux-source"},{"id":"Libtmux.Source.create","publicId":"Libtmux.Source.create","qualifiedName":"Libtmux.Source.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. "],"declarations":[{"kind":"function","text":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Source","doc":{"summary":"Pure metadata import for capture adapters. This neither establishes a connection nor verifies process identity. The backend must bind the generation to a live daemon before it admits operations."},"signatures":[{"raw":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t -> server_pid:int -> (t, Error.t) result","params":[{"name":"endpoint","type":"Endpoint.t","keywordOnly":true},{"name":"generation","type":"Generation.t","keywordOnly":true},{"name":"server_pid","type":"int","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-source-create"},{"id":"Libtmux.Source.endpoint","publicId":"Libtmux.Source.endpoint","qualifiedName":"Libtmux.Source.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Endpoint.t","source":{"file":"lib/libtmux.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val endpoint : t -> Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Endpoint.t"}],"slug":"libtmux-source-endpoint"},{"id":"Libtmux.Source.equal","publicId":"Libtmux.Source.equal","qualifiedName":"Libtmux.Source.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":107,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":107,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-source-equal"},{"id":"Libtmux.Source.generation","publicId":"Libtmux.Source.generation","qualifiedName":"Libtmux.Source.generation","name":"generation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":105,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val generation : t -> Generation.t","source":{"file":"lib/libtmux.mli","line":105,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val generation : t -> Generation.t","params":[{"name":"arg1","type":"t"}],"returns":"Generation.t"}],"slug":"libtmux-source-generation"},{"id":"Libtmux.Source.server_pid","publicId":"Libtmux.Source.server_pid","qualifiedName":"Libtmux.Source.server_pid","name":"server_pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val server_pid : t -> int","source":{"file":"lib/libtmux.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val server_pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-source-server_pid"},{"id":"Libtmux.Source.t","publicId":"Libtmux.Source.t","qualifiedName":"Libtmux.Source.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Source","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-source-t"},{"id":"Libtmux.Spawn","publicId":"Libtmux.Spawn","qualifiedName":"Libtmux.Spawn","name":"Spawn","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":717,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A process description with explicit argv or shell semantics, working\n directory and environment. Describing a process performs no I/O. "],"declarations":[{"kind":"module","text":"module Spawn : sig\n type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string\n\n type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }\n\n val make : ?cwd:string -> ?environment:(string * string) list -> command -> t\n (** Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. *)\n\n val default : t\nend","source":{"file":"lib/libtmux.mli","line":717,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"A process description with explicit argv or shell semantics, working directory and environment. Describing a process performs no I/O."},"slug":"libtmux-spawn"},{"id":"Libtmux.Spawn.command","publicId":"Libtmux.Spawn.command","qualifiedName":"Libtmux.Spawn.command","name":"command","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":718,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string","source":{"file":"lib/libtmux.mli","line":718,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type command =\n Default\n | Exec of { program : string; args : string list; }\n | Shell of string","params":[]}],"slug":"libtmux-spawn-command"},{"id":"Libtmux.Spawn.command.Default","publicId":"Libtmux.Spawn.command.Default","name":"Default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":719,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Default","source":{"file":"lib/libtmux.mli","line":719,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.command","variant":"unit","qualifiedName":"Libtmux.Spawn.Default","slug":"libtmux-spawn-command-default"},{"id":"Libtmux.Spawn.command.Exec","publicId":"Libtmux.Spawn.command.Exec","name":"Exec","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Exec of { program : string; args : string list }","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.command","variant":"struct","qualifiedName":"Libtmux.Spawn.Exec","slug":"libtmux-spawn-command-exec"},{"id":"Libtmux.Spawn.command.Exec.args","publicId":"Libtmux.Spawn.command.Exec.args","name":"args","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"args : string list","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string list","qualifiedName":"Libtmux.Spawn.args","slug":"libtmux-spawn-command-exec-args"},{"id":"Libtmux.Spawn.command.Exec.program","publicId":"Libtmux.Spawn.command.Exec.program","name":"program","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"program : string;","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string","qualifiedName":"Libtmux.Spawn.program","slug":"libtmux-spawn-command-exec-program"},{"id":"Libtmux.Spawn.command.Shell","publicId":"Libtmux.Spawn.command.Shell","name":"Shell","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Shell of string","source":{"file":"lib/libtmux.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.command","variant":"tuple","qualifiedName":"Libtmux.Spawn.Shell","slug":"libtmux-spawn-command-shell"},{"id":"Libtmux.Spawn.default","publicId":"Libtmux.Spawn.default","qualifiedName":"Libtmux.Spawn.default","name":"default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":737,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val default : t","source":{"file":"lib/libtmux.mli","line":737,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"val default : t","params":[],"returns":"t"}],"slug":"libtmux-spawn-default"},{"id":"Libtmux.Spawn.make","publicId":"Libtmux.Spawn.make","qualifiedName":"Libtmux.Spawn.make","name":"make","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. "],"declarations":[{"kind":"function","text":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","source":{"file":"lib/libtmux.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn","doc":{"summary":"Describe a program without I/O. `Exec` preserves argv; `Shell` explicitly requests the daemon's configured shell. `cwd` must be absolute. Validation occurs at admission. With no arguments, `Exec` uses a fixed `/bin/sh` trampoline because tmux treats a single argument as shell code. `Default` follows tmux defaults on creation and reuses the previous command on respawn."},"signatures":[{"raw":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"arg1","type":"command"}],"returns":"t"}],"slug":"libtmux-spawn-make"},{"id":"Libtmux.Spawn.t","publicId":"Libtmux.Spawn.t","qualifiedName":"Libtmux.Spawn.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":723,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }","source":{"file":"lib/libtmux.mli","line":723,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n}","params":[]}],"slug":"libtmux-spawn-t"},{"id":"Libtmux.Spawn.t.command","publicId":"Libtmux.Spawn.t.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : command;","source":{"file":"lib/libtmux.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.t","type":"command","qualifiedName":"Libtmux.Spawn.command","slug":"libtmux-spawn-t-command"},{"id":"Libtmux.Spawn.t.cwd","publicId":"Libtmux.Spawn.t.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":725,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"lib/libtmux.mli","line":725,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.t","type":"string option","qualifiedName":"Libtmux.Spawn.cwd","slug":"libtmux-spawn-t-cwd"},{"id":"Libtmux.Spawn.t.environment","publicId":"Libtmux.Spawn.t.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":726,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"lib/libtmux.mli","line":726,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.t","type":"(string * string) list","qualifiedName":"Libtmux.Spawn.environment","slug":"libtmux-spawn-t-environment"},{"id":"Libtmux.Window","publicId":"Libtmux.Window","qualifiedName":"Libtmux.Window","name":"Window","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A global window shared by its session links. Window index and current state\n belong to a link, while panes and geometry belong to the window. "],"declarations":[{"kind":"module","text":"and Window : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end\n\n module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val width : t -> int\n val height : t -> int\n val layout : t -> string\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\n val panes : t -> Pane.t Iarray.t\n val links : t -> Window_link.t Iarray.t\nend","source":{"file":"lib/libtmux.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"A global window shared by its session links. Window index and current state belong to a link, while panes and geometry belong to the window."},"slug":"libtmux-window"},{"id":"Libtmux.Window.Fields","publicId":"Libtmux.Window.Fields","qualifiedName":"Libtmux.Window.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end","source":{"file":"lib/libtmux.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","slug":"libtmux-window-fields"},{"id":"Libtmux.Window.Fields.height","publicId":"Libtmux.Window.Fields.height","qualifiedName":"Libtmux.Window.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-height"},{"id":"Libtmux.Window.Fields.id","publicId":"Libtmux.Window.Fields.id","qualifiedName":"Libtmux.Window.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-id"},{"id":"Libtmux.Window.Fields.layout","publicId":"Libtmux.Window.Fields.layout","qualifiedName":"Libtmux.Window.Fields.layout","name":"layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":225,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val layout : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val layout : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-layout"},{"id":"Libtmux.Window.Fields.name","publicId":"Libtmux.Window.Fields.name","qualifiedName":"Libtmux.Window.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-name"},{"id":"Libtmux.Window.Fields.width","publicId":"Libtmux.Window.Fields.width","qualifiedName":"Libtmux.Window.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-width"},{"id":"Libtmux.Window.Id","publicId":"Libtmux.Window.Id","qualifiedName":"Libtmux.Window.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","slug":"libtmux-window-id-1sgu"},{"id":"Libtmux.Window.Id.compare","publicId":"Libtmux.Window.Id.compare","qualifiedName":"Libtmux.Window.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-window-id-compare"},{"id":"Libtmux.Window.Id.equal","publicId":"Libtmux.Window.Id.equal","qualifiedName":"Libtmux.Window.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-id-equal"},{"id":"Libtmux.Window.Id.of_string","publicId":"Libtmux.Window.Id.of_string","qualifiedName":"Libtmux.Window.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-window-id-of_string"},{"id":"Libtmux.Window.Id.pp","publicId":"Libtmux.Window.Id.pp","qualifiedName":"Libtmux.Window.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-window-id-pp"},{"id":"Libtmux.Window.Id.t","publicId":"Libtmux.Window.Id.t","qualifiedName":"Libtmux.Window.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-id-t"},{"id":"Libtmux.Window.Id.to_string","publicId":"Libtmux.Window.Id.to_string","qualifiedName":"Libtmux.Window.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-id-to_string"},{"id":"Libtmux.Window.Relations","publicId":"Libtmux.Window.Relations","qualifiedName":"Libtmux.Window.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":228,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":228,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","slug":"libtmux-window-relations"},{"id":"Libtmux.Window.Relations.links","publicId":"Libtmux.Window.Relations.links","qualifiedName":"Libtmux.Window.Relations.links","name":"links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-window-relations-links"},{"id":"Libtmux.Window.Relations.panes","publicId":"Libtmux.Window.Relations.panes","qualifiedName":"Libtmux.Window.Relations.panes","name":"panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val panes : (t, Pane.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val panes : (t, Pane.t) Relation.Many.t","params":[],"returns":"(t, Pane.t) Relation.Many.t"}],"slug":"libtmux-window-relations-panes"},{"id":"Libtmux.Window.Target","publicId":"Libtmux.Window.Target","qualifiedName":"Libtmux.Window.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","slug":"libtmux-window-target-6ecc"},{"id":"Libtmux.Window.Target.id","publicId":"Libtmux.Window.Target.id","qualifiedName":"Libtmux.Window.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":240,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":240,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-target-id"},{"id":"Libtmux.Window.Target.of_id","publicId":"Libtmux.Window.Target.of_id","qualifiedName":"Libtmux.Window.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-window-target-of_id"},{"id":"Libtmux.Window.Target.source","publicId":"Libtmux.Window.Target.source","qualifiedName":"Libtmux.Window.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":239,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-target-source"},{"id":"Libtmux.Window.Target.t","publicId":"Libtmux.Window.Target.t","qualifiedName":"Libtmux.Window.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-target-t"},{"id":"Libtmux.Window.height","publicId":"Libtmux.Window.height","qualifiedName":"Libtmux.Window.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-height"},{"id":"Libtmux.Window.id","publicId":"Libtmux.Window.id","qualifiedName":"Libtmux.Window.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-id-1sjw"},{"id":"Libtmux.Window.layout","publicId":"Libtmux.Window.layout","qualifiedName":"Libtmux.Window.layout","name":"layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val layout : t -> string","source":{"file":"lib/libtmux.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val layout : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-layout"},{"id":"Libtmux.Window.links","publicId":"Libtmux.Window.links","qualifiedName":"Libtmux.Window.links","name":"links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":255,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":255,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-window-links"},{"id":"Libtmux.Window.name","publicId":"Libtmux.Window.name","qualifiedName":"Libtmux.Window.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-name"},{"id":"Libtmux.Window.panes","publicId":"Libtmux.Window.panes","qualifiedName":"Libtmux.Window.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":254,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":254,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-window-panes"},{"id":"Libtmux.Window.same_entity","publicId":"Libtmux.Window.same_entity","qualifiedName":"Libtmux.Window.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_entity"},{"id":"Libtmux.Window.same_observation","publicId":"Libtmux.Window.same_observation","qualifiedName":"Libtmux.Window.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_observation"},{"id":"Libtmux.Window.source","publicId":"Libtmux.Window.source","qualifiedName":"Libtmux.Window.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":250,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":250,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-source"},{"id":"Libtmux.Window.t","publicId":"Libtmux.Window.t","qualifiedName":"Libtmux.Window.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-t"},{"id":"Libtmux.Window.target","publicId":"Libtmux.Window.target","qualifiedName":"Libtmux.Window.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-window-target-1sbf"},{"id":"Libtmux.Window.target:type","publicId":"Libtmux.Window.target:type","qualifiedName":"Libtmux.Window.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":243,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":243,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-window-target-type"},{"id":"Libtmux.Window.width","publicId":"Libtmux.Window.width","qualifiedName":"Libtmux.Window.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":247,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":247,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-width"},{"id":"Libtmux.Window_link","publicId":"Libtmux.Window_link","qualifiedName":"Libtmux.Window_link","name":"Window_link","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" One captured session/index/window context. It is not a stable link\n incarnation across unlinking, movement or reindexing. "],"declarations":[{"kind":"module","text":"and Window_link : sig\n type t\n\n module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end\n\n val index : t -> int\n val is_current : t -> bool\n val session : t -> Session.t\n val window : t -> Window.t\n\n val same_context : t -> t -> bool\n (** Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. *)\n\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"One captured session/index/window context. It is not a stable link incarnation across unlinking, movement or reindexing."},"slug":"libtmux-window_link"},{"id":"Libtmux.Window_link.Fields","publicId":"Libtmux.Window_link.Fields","qualifiedName":"Libtmux.Window_link.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-fields"},{"id":"Libtmux.Window_link.Fields.index","publicId":"Libtmux.Window_link.Fields.index","qualifiedName":"Libtmux.Window_link.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window_link-fields-index"},{"id":"Libtmux.Window_link.Fields.is_current","publicId":"Libtmux.Window_link.Fields.is_current","qualifiedName":"Libtmux.Window_link.Fields.is_current","name":"is_current","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":265,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val is_current : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":265,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val is_current : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-window_link-fields-is_current"},{"id":"Libtmux.Window_link.Relations","publicId":"Libtmux.Window_link.Relations","qualifiedName":"Libtmux.Window_link.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":268,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":268,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-relations"},{"id":"Libtmux.Window_link.Relations.session","publicId":"Libtmux.Window_link.Relations.session","qualifiedName":"Libtmux.Window_link.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.One.t","params":[],"returns":"(t, Session.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-session"},{"id":"Libtmux.Window_link.Relations.window","publicId":"Libtmux.Window_link.Relations.window","qualifiedName":"Libtmux.Window_link.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":270,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":270,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-window"},{"id":"Libtmux.Window_link.index","publicId":"Libtmux.Window_link.index","qualifiedName":"Libtmux.Window_link.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window_link-index"},{"id":"Libtmux.Window_link.is_current","publicId":"Libtmux.Window_link.is_current","qualifiedName":"Libtmux.Window_link.is_current","name":"is_current","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_current : t -> bool","source":{"file":"lib/libtmux.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val is_current : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-is_current"},{"id":"Libtmux.Window_link.same_context","publicId":"Libtmux.Window_link.same_context","qualifiedName":"Libtmux.Window_link.same_context","name":"same_context","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":278,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. "],"declarations":[{"kind":"function","text":"val same_context : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":278,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","doc":{"summary":"Compare source, session, index and window. An equal context does not certify a stable link incarnation across reindexing or unlink/relink."},"signatures":[{"raw":"val same_context : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_context"},{"id":"Libtmux.Window_link.same_observation","publicId":"Libtmux.Window_link.same_observation","qualifiedName":"Libtmux.Window_link.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_observation"},{"id":"Libtmux.Window_link.session","publicId":"Libtmux.Window_link.session","qualifiedName":"Libtmux.Window_link.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":275,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> Session.t","source":{"file":"lib/libtmux.mli","line":275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val session : t -> Session.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t"}],"slug":"libtmux-window_link-session"},{"id":"Libtmux.Window_link.t","publicId":"Libtmux.Window_link.t","qualifiedName":"Libtmux.Window_link.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window_link-t"},{"id":"Libtmux.Window_link.window","publicId":"Libtmux.Window_link.window","qualifiedName":"Libtmux.Window_link.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":276,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":276,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-window_link-window"},{"id":"Libtmux_eio","publicId":"Libtmux_eio","qualifiedName":"Libtmux_eio","name":"Libtmux_eio","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Concurrent Linux tmux clients using the application's Eio scheduler.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md}streaming\n guide} demonstrates application-owned switches, cancellation and continuity\n gaps. "],"declarations":[{"kind":"module","text":"","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"doc":{"summary":"Concurrent Linux tmux clients using the application's Eio scheduler.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [streaming guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md) demonstrates application-owned switches, cancellation and continuity gaps."},"slug":"libtmux_eio"},{"id":"Libtmux_eio.Client","publicId":"Libtmux_eio.Client","qualifiedName":"Libtmux_eio.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. *)\n\n val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. No history/barrier guarantee. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve bounded capacity without I/O. *)\n\n val await : 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. *)\n\n val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result\n (** Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. *)\n\n val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. *)\n\n val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Retire the generation and close owned control clients and descriptors.\n tmux's [exit-unattached] and [exit-empty] policies can end the daemon\n after its clients or sessions disappear. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_eio-client"},{"id":"Libtmux_eio.Client.await","publicId":"Libtmux_eio.Client.await","qualifiedName":"Libtmux_eio.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. "],"declarations":[{"kind":"function","text":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Cancellation propagates as Eio cancellation. Store the handle outside the cancelled fiber: the client drains written work independently, and the eventual result remains inspectable."},"signatures":[{"raw":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-await"},{"id":"Libtmux_eio.Client.break_pane","publicId":"Libtmux_eio.Client.break_pane","qualifiedName":"Libtmux_eio.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-break_pane"},{"id":"Libtmux_eio.Client.capture","publicId":"Libtmux_eio.Client.capture","qualifiedName":"Libtmux_eio.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. "],"declarations":[{"kind":"function","text":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a complete immutable graph over an interval. Conflicting or disappearing entities fail capture; they do not become empty relations. The returned values remain readable after client closure."},"signatures":[{"raw":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture"},{"id":"Libtmux_eio.Client.capture_environment","publicId":"Libtmux_eio.Client.capture_environment","qualifiedName":"Libtmux_eio.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_environment"},{"id":"Libtmux_eio.Client.capture_hooks","publicId":"Libtmux_eio.Client.capture_hooks","qualifiedName":"Libtmux_eio.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_hooks"},{"id":"Libtmux_eio.Client.capture_options","publicId":"Libtmux_eio.Client.capture_options","qualifiedName":"Libtmux_eio.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":283,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_options"},{"id":"Libtmux_eio.Client.capture_text","publicId":"Libtmux_eio.Client.capture_text","qualifiedName":"Libtmux_eio.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Inclusive ordinary screen rows, using a bounded private file transfer. Qualified local scratch storage must be shared with the daemon."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_text"},{"id":"Libtmux_eio.Client.clear_history","publicId":"Libtmux_eio.Client.clear_history","qualifiedName":"Libtmux_eio.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_history"},{"id":"Libtmux_eio.Client.clear_option_array","publicId":"Libtmux_eio.Client.clear_option_array","qualifiedName":"Libtmux_eio.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_option_array"},{"id":"Libtmux_eio.Client.close","publicId":"Libtmux_eio.Client.close","qualifiedName":"Libtmux_eio.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Retire the generation and close owned control clients and descriptors.\n tmux's [exit-unattached] and [exit-empty] policies can end the daemon\n after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Retire the generation and close owned control clients and descriptors. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-close"},{"id":"Libtmux_eio.Client.connect","publicId":"Libtmux_eio.Client.connect","qualifiedName":"Libtmux_eio.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n "],"declarations":[{"kind":"function","text":"val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Attach to an existing local Linux daemon in the same PID namespace and shared filesystem. Requires pidfd support. Default exchange timeout: one second. All client calls belong to the connecting OCaml domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-connect"},{"id":"Libtmux_eio.Client.create_session","publicId":"Libtmux_eio.Client.create_session","qualifiedName":"Libtmux_eio.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":380,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":380,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_session"},{"id":"Libtmux_eio.Client.create_window","publicId":"Libtmux_eio.Client.create_window","qualifiedName":"Libtmux_eio.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":391,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":391,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_window"},{"id":"Libtmux_eio.Client.cycle_layout","publicId":"Libtmux_eio.Client.cycle_layout","qualifiedName":"Libtmux_eio.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-cycle_layout"},{"id":"Libtmux_eio.Client.kill_pane","publicId":"Libtmux_eio.Client.kill_pane","qualifiedName":"Libtmux_eio.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":431,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":431,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_pane"},{"id":"Libtmux_eio.Client.kill_session","publicId":"Libtmux_eio.Client.kill_session","qualifiedName":"Libtmux_eio.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_session"},{"id":"Libtmux_eio.Client.kill_window","publicId":"Libtmux_eio.Client.kill_window","qualifiedName":"Libtmux_eio.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_window"},{"id":"Libtmux_eio.Client.link_window","publicId":"Libtmux_eio.Client.link_window","qualifiedName":"Libtmux_eio.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-link_window"},{"id":"Libtmux_eio.Client.move_pane","publicId":"Libtmux_eio.Client.move_pane","qualifiedName":"Libtmux_eio.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_pane"},{"id":"Libtmux_eio.Client.move_window_at","publicId":"Libtmux_eio.Client.move_window_at","qualifiedName":"Libtmux_eio.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_window_at"},{"id":"Libtmux_eio.Client.read_hook","publicId":"Libtmux_eio.Client.read_hook","qualifiedName":"Libtmux_eio.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_hook"},{"id":"Libtmux_eio.Client.read_option","publicId":"Libtmux_eio.Client.read_option","qualifiedName":"Libtmux_eio.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_option"},{"id":"Libtmux_eio.Client.refresh_client_at","publicId":"Libtmux_eio.Client.refresh_client_at","qualifiedName":"Libtmux_eio.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-refresh_client_at"},{"id":"Libtmux_eio.Client.remove_environment","publicId":"Libtmux_eio.Client.remove_environment","qualifiedName":"Libtmux_eio.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_environment"},{"id":"Libtmux_eio.Client.remove_hook","publicId":"Libtmux_eio.Client.remove_hook","qualifiedName":"Libtmux_eio.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":362,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":362,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_hook"},{"id":"Libtmux_eio.Client.rename_session","publicId":"Libtmux_eio.Client.rename_session","qualifiedName":"Libtmux_eio.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_session"},{"id":"Libtmux_eio.Client.rename_window","publicId":"Libtmux_eio.Client.rename_window","qualifiedName":"Libtmux_eio.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":193,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":193,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_window"},{"id":"Libtmux_eio.Client.request_detach_client_at","publicId":"Libtmux_eio.Client.request_detach_client_at","qualifiedName":"Libtmux_eio.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-request_detach_client_at"},{"id":"Libtmux_eio.Client.resize_control_client_at","publicId":"Libtmux_eio.Client.resize_control_client_at","qualifiedName":"Libtmux_eio.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_control_client_at"},{"id":"Libtmux_eio.Client.resize_pane","publicId":"Libtmux_eio.Client.resize_pane","qualifiedName":"Libtmux_eio.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":477,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":477,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_pane"},{"id":"Libtmux_eio.Client.resize_window","publicId":"Libtmux_eio.Client.resize_window","qualifiedName":"Libtmux_eio.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":487,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":487,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_window"},{"id":"Libtmux_eio.Client.respawn_pane","publicId":"Libtmux_eio.Client.respawn_pane","qualifiedName":"Libtmux_eio.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-respawn_pane"},{"id":"Libtmux_eio.Client.rotate_panes","publicId":"Libtmux_eio.Client.rotate_panes","qualifiedName":"Libtmux_eio.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rotate_panes"},{"id":"Libtmux_eio.Client.run","publicId":"Libtmux_eio.Client.run","qualifiedName":"Libtmux_eio.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. "],"declarations":[{"kind":"function","text":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Submit and await an explicit command. Retain a separate submitted handle when the outcome must remain inspectable after caller cancellation."},"signatures":[{"raw":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run"},{"id":"Libtmux_eio.Client.run_hook","publicId":"Libtmux_eio.Client.run_hook","qualifiedName":"Libtmux_eio.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":371,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":371,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run_hook"},{"id":"Libtmux_eio.Client.select_layout","publicId":"Libtmux_eio.Client.select_layout","qualifiedName":"Libtmux_eio.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout :\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_layout"},{"id":"Libtmux_eio.Client.select_pane","publicId":"Libtmux_eio.Client.select_pane","qualifiedName":"Libtmux_eio.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":468,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":468,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_pane"},{"id":"Libtmux_eio.Client.select_window_at","publicId":"Libtmux_eio.Client.select_window_at","qualifiedName":"Libtmux_eio.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":435,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":435,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_window_at"},{"id":"Libtmux_eio.Client.send_keys","publicId":"Libtmux_eio.Client.send_keys","qualifiedName":"Libtmux_eio.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys :\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_keys"},{"id":"Libtmux_eio.Client.send_text","publicId":"Libtmux_eio.Client.send_text","qualifiedName":"Libtmux_eio.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_text"},{"id":"Libtmux_eio.Client.set_environment","publicId":"Libtmux_eio.Client.set_environment","qualifiedName":"Libtmux_eio.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_environment"},{"id":"Libtmux_eio.Client.set_hook","publicId":"Libtmux_eio.Client.set_hook","qualifiedName":"Libtmux_eio.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":346,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_hook"},{"id":"Libtmux_eio.Client.set_option","publicId":"Libtmux_eio.Client.set_option","qualifiedName":"Libtmux_eio.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_option"},{"id":"Libtmux_eio.Client.set_pane_title","publicId":"Libtmux_eio.Client.set_pane_title","qualifiedName":"Libtmux_eio.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_pane_title"},{"id":"Libtmux_eio.Client.signal","publicId":"Libtmux_eio.Client.signal","qualifiedName":"Libtmux_eio.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-signal"},{"id":"Libtmux_eio.Client.source","publicId":"Libtmux_eio.Client.source","qualifiedName":"Libtmux_eio.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_eio-client-source"},{"id":"Libtmux_eio.Client.split_pane","publicId":"Libtmux_eio.Client.split_pane","qualifiedName":"Libtmux_eio.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":400,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":400,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-split_pane"},{"id":"Libtmux_eio.Client.submit","publicId":"Libtmux_eio.Client.submit","qualifiedName":"Libtmux_eio.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate and reserve bounded capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate and reserve bounded capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-submit"},{"id":"Libtmux_eio.Client.subscribe","publicId":"Libtmux_eio.Client.subscribe","qualifiedName":"Libtmux_eio.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire verified coverage through one shared lane per session; choose the least observed session ID unless supplied. A client-owned reader delivers future bytes without application callbacks. Default queue bounds are 1 MiB/1024 events; max 16 subscribers and eight total client lanes, sharing the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap then End. Data starts after admission's marker, with no snapshot/history barrier, automatic reconnect or silent cursor reuse.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-subscribe"},{"id":"Libtmux_eio.Client.swap_panes","publicId":"Libtmux_eio.Client.swap_panes","qualifiedName":"Libtmux_eio.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-swap_panes"},{"id":"Libtmux_eio.Client.switch_client_at","publicId":"Libtmux_eio.Client.switch_client_at","qualifiedName":"Libtmux_eio.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-switch_client_at"},{"id":"Libtmux_eio.Client.t","publicId":"Libtmux_eio.Client.t","qualifiedName":"Libtmux_eio.Client.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-client-t"},{"id":"Libtmux_eio.Client.unlink_window_at","publicId":"Libtmux_eio.Client.unlink_window_at","qualifiedName":"Libtmux_eio.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unlink_window_at"},{"id":"Libtmux_eio.Client.unset_environment","publicId":"Libtmux_eio.Client.unset_environment","qualifiedName":"Libtmux_eio.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_environment"},{"id":"Libtmux_eio.Client.unset_option","publicId":"Libtmux_eio.Client.unset_option","qualifiedName":"Libtmux_eio.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_option"},{"id":"Libtmux_eio.Client.version","publicId":"Libtmux_eio.Client.version","qualifiedName":"Libtmux_eio.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":132,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"eio/libtmux_eio.mli","line":132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_eio-client-version"},{"id":"Libtmux_eio.Client.wait_for","publicId":"Libtmux_eio.Client.wait_for","qualifiedName":"Libtmux_eio.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for"},{"id":"Libtmux_eio.Client.wait_for_text","publicId":"Libtmux_eio.Client.wait_for_text","qualifiedName":"Libtmux_eio.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. No history/barrier guarantee. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Subscribe and capture the screen immediately, then recapture on output. Membership/overflow gaps establish fresh coverage in the same binding. Maximum pattern: 64 KiB. Return captured rendered text containing it; transient text may be missed. Deadlines are checked between bounded acquisitions, whose I/O retains the client exchange timeout. Cancellation propagates and releases the subscription. No history/barrier guarantee."},"signatures":[{"raw":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for_text"},{"id":"Libtmux_eio.Client.zoom_pane","publicId":"Libtmux_eio.Client.zoom_pane","qualifiedName":"Libtmux_eio.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":539,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":539,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-zoom_pane"},{"id":"Libtmux_eio.Operation","publicId":"Libtmux_eio.Operation","qualifiedName":"Libtmux_eio.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":45,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** Read without I/O, including after client closure. Owning domain only. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove unsent work. A written request remains owned and drained by the\n client. *)\n\n val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result\n (** Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":45,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_eio-operation"},{"id":"Libtmux_eio.Operation.await_stage","publicId":"Libtmux_eio.Operation.await_stage","qualifiedName":"Libtmux_eio.Operation.await_stage","name":"await_stage","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n "],"declarations":[{"kind":"function","text":"val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Wait for the named stage or a terminal state. Acknowledgement does not establish completion. Cancelling this observer leaves the operation alone."},"signatures":[{"raw":"val await_stage :\n 'a t -> [ `Acknowledged | `Written ] -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"[ `Acknowledged | `Written ]"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-await_stage"},{"id":"Libtmux_eio.Operation.cancel","publicId":"Libtmux_eio.Operation.cancel","qualifiedName":"Libtmux_eio.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove unsent work. A written request remains owned and drained by the\n client. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Remove unsent work. A written request remains owned and drained by the client."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-cancel"},{"id":"Libtmux_eio.Operation.cleanup_receipt","publicId":"Libtmux_eio.Operation.cleanup_receipt","qualifiedName":"Libtmux_eio.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":48,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"eio/libtmux_eio.mli","line":48,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n}","params":[]}],"slug":"libtmux_eio-operation-cleanup_receipt"},{"id":"Libtmux_eio.Operation.cleanup_receipt.cause","publicId":"Libtmux_eio.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"eio/libtmux_eio.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_eio.Operation.cause","slug":"libtmux_eio-operation-cleanup_receipt-cause"},{"id":"Libtmux_eio.Operation.cleanup_receipt.created","publicId":"Libtmux_eio.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"eio/libtmux_eio.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_eio.Operation.created","slug":"libtmux_eio-operation-cleanup_receipt-created"},{"id":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"eio/libtmux_eio.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_eio.Operation.owned_buffers","slug":"libtmux_eio-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_eio.Operation.id","publicId":"Libtmux_eio.Operation.id","qualifiedName":"Libtmux_eio.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"eio/libtmux_eio.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_eio-operation-id"},{"id":"Libtmux_eio.Operation.inspect","publicId":"Libtmux_eio.Operation.inspect","qualifiedName":"Libtmux_eio.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read without I/O, including after client closure. Owning domain only. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Read without I/O, including after client closure. Owning domain only."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-inspect"},{"id":"Libtmux_eio.Operation.state","publicId":"Libtmux_eio.Operation.state","qualifiedName":"Libtmux_eio.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a state =\n Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","params":[]}],"slug":"libtmux_eio-operation-state"},{"id":"Libtmux_eio.Operation.state.Acknowledged","publicId":"Libtmux_eio.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Acknowledged","slug":"libtmux_eio-operation-state-acknowledged"},{"id":"Libtmux_eio.Operation.state.Finished","publicId":"Libtmux_eio.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Finished","slug":"libtmux_eio-operation-state-finished"},{"id":"Libtmux_eio.Operation.state.Not_started","publicId":"Libtmux_eio.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Not_started","slug":"libtmux_eio-operation-state-not_started"},{"id":"Libtmux_eio.Operation.state.Outcome_unknown","publicId":"Libtmux_eio.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Outcome_unknown","slug":"libtmux_eio-operation-state-outcome_unknown"},{"id":"Libtmux_eio.Operation.state.Queued","publicId":"Libtmux_eio.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"eio/libtmux_eio.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Queued","slug":"libtmux_eio-operation-state-queued"},{"id":"Libtmux_eio.Operation.state.Written","publicId":"Libtmux_eio.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Written","slug":"libtmux_eio-operation-state-written"},{"id":"Libtmux_eio.Operation.t","publicId":"Libtmux_eio.Operation.t","qualifiedName":"Libtmux_eio.Operation.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":46,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"eio/libtmux_eio.mli","line":46,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-operation-t"},{"id":"Libtmux_eio.Rendered","publicId":"Libtmux_eio.Rendered","qualifiedName":"Libtmux_eio.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio","exportedFrom":"Libtmux.Captured_text","slug":"libtmux_eio-rendered"},{"id":"Libtmux_eio.Subscription","publicId":"Libtmux_eio.Subscription","qualifiedName":"Libtmux_eio.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O, on the owning domain. *)\n\n val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Discard pending data and retain End Cancelled. Borrowed clients and the\n daemon remain alive. *)\n\n val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_eio-subscription"},{"id":"Libtmux_eio.Subscription.close","publicId":"Libtmux_eio.Subscription.close","qualifiedName":"Libtmux_eio.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Discard pending data and retain End Cancelled. Borrowed clients and the\n daemon remain alive. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Discard pending data and retain End Cancelled. Borrowed clients and the daemon remain alive."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-close"},{"id":"Libtmux_eio.Subscription.next","publicId":"Libtmux_eio.Subscription.next","qualifiedName":"Libtmux_eio.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":88,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. "],"declarations":[{"kind":"function","text":"val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":88,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Await one event, defaulting to a one-second deadline. `None` follows a consumed End. A deadline keeps the subscription active. Eio cancellation closes it, releases its lane when unused, and propagates."},"signatures":[{"raw":"val next :\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-next"},{"id":"Libtmux_eio.Subscription.poll","publicId":"Libtmux_eio.Subscription.poll","qualifiedName":"Libtmux_eio.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":85,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove a queued event without I/O, on the owning domain. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":85,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Remove a queued event without I/O, on the owning domain."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-poll"},{"id":"Libtmux_eio.Subscription.t","publicId":"Libtmux_eio.Subscription.t","qualifiedName":"Libtmux_eio.Subscription.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-subscription-t"},{"id":"Libtmux_eio.Subscription.wait_for_bytes","publicId":"Libtmux_eio.Subscription.wait_for_bytes","qualifiedName":"Libtmux_eio.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Consume future observed bytes through a match, with a maximum 64 KiB nonempty pattern. Match across Data boundaries and return its end cursor. Gaps end matching. This searches neither rendered text nor history. A deadline leaves the subscription active; cancellation closes it.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_eio-subscription-wait_for_bytes"},{"id":"Libtmux_eio.Terminal","publicId":"Libtmux_eio.Terminal","qualifiedName":"Libtmux_eio.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_eio-terminal"},{"id":"Libtmux_eio.Terminal.attach_current","publicId":"Libtmux_eio.Terminal.attach_current","qualifiedName":"Libtmux_eio.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Terminal","doc":{"summary":"Run an interactive terminal client until exit, using the application's process manager and standard streams unless explicit flows are supplied. `stdin` must be backed by a terminal descriptor; a pipe-backed flow is rejected by tmux. Select the exact ID on the daemon currently listening at `endpoint`, without a captured target, binding, retry or daemon startup.","body":"Environment updates and read-only mode default to false. Clear inherited `TMUX` and `TMUX_PANE`. Cancellation propagates after terminating and reaping this client; it does not stop the daemon. Success proves terminal client exit. Diagnostics go to `stderr`; borrowed flows stay open."},"signatures":[{"raw":"val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:[> Eio.Flow.source_ty ] Eio.Flow.source ->\n ?stdout:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n ?stderr:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"[> Eio.Flow.source_ty ] Eio.Flow.source","optional":true,"keywordOnly":true},{"name":"stdout","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"stderr","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-terminal-attach_current"},{"id":"Libtmux_eio.Workspace","publicId":"Libtmux_eio.Workspace","qualifiedName":"Libtmux_eio.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":567,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Apply workspace plans through Eio while retaining journals across caller\n cancellation. Handles belong to the creating domain; the application owns\n the scheduler and switch. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. *)\n\n val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. *)\n\n val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Read a journal copy without I/O, including any late retained outcome. *)\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":567,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio","doc":{"summary":"Apply workspace plans through Eio while retaining journals across caller cancellation. Handles belong to the creating domain; the application owns the scheduler and switch."},"slug":"libtmux_eio-workspace"},{"id":"Libtmux_eio.Workspace.await","publicId":"Libtmux_eio.Workspace.await","qualifiedName":"Libtmux_eio.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. "],"declarations":[{"kind":"function","text":"val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Apply once. Expected failures return a retained journal. Eio cancellation propagates after progress is recorded and at most 500 ms of protected compensation. Admitted commands can still complete under client ownership; inspect the receipt before attempting manual recovery."},"signatures":[{"raw":"val await :\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-await"},{"id":"Libtmux_eio.Workspace.client","publicId":"Libtmux_eio.Workspace.client","qualifiedName":"Libtmux_eio.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_eio-workspace-client"},{"id":"Libtmux_eio.Workspace.close","publicId":"Libtmux_eio.Workspace.close","qualifiedName":"Libtmux_eio.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Closing is idempotent; completed journals remain readable."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-close"},{"id":"Libtmux_eio.Workspace.inspect","publicId":"Libtmux_eio.Workspace.inspect","qualifiedName":"Libtmux_eio.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read a journal copy without I/O, including any late retained outcome. "],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Read a journal copy without I/O, including any late retained outcome."},"signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-inspect"},{"id":"Libtmux_eio.Workspace.submit","publicId":"Libtmux_eio.Workspace.submit","qualifiedName":"Libtmux_eio.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":570,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":570,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a generation-bound handle without I/O. The supplied client is borrowed; closing the handle leaves it open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit"},{"id":"Libtmux_eio.Workspace.submit_bootstrap","publicId":"Libtmux_eio.Workspace.submit_bootstrap","qualifiedName":"Libtmux_eio.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a missing-endpoint execution without I/O. Await starts control new-session and binds that same connection. The handle owns its new client within `sw`; it never owns the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit_bootstrap"},{"id":"Libtmux_eio.Workspace.t","publicId":"Libtmux_eio.Workspace.t","qualifiedName":"Libtmux_eio.Workspace.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-workspace-t"},{"id":"Libtmux_json","publicId":"Libtmux_json","qualifiedName":"Libtmux_json","name":"Libtmux_json","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Pure, bounded query and workspace JSON interchange.\n\n {!Expr} validates portable queries and {!Workspace} decodes configurations\n and encodes plans and receipts. Both return {!Decode_error.t} on invalid\n data. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} and\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for complete programs. "],"declarations":[{"kind":"module","text":"","source":{"file":"json/libtmux_json.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"doc":{"summary":"Pure, bounded query and workspace JSON interchange.","body":"{!Expr} validates portable queries and {!Workspace} decodes configurations and encodes plans and receipts. Both return {!Decode_error.t} on invalid data. See the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) and [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for complete programs."},"slug":"libtmux_json"},{"id":"Libtmux_json.Decode_error","publicId":"Libtmux_json.Decode_error","qualifiedName":"Libtmux_json.Decode_error","name":"Decode_error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Decode_error : sig\n type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported\n\n type t = { pointer : string; category : category; message : string }\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"json/libtmux_json.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json","slug":"libtmux_json-decode_error"},{"id":"Libtmux_json.Decode_error.category","publicId":"Libtmux_json.Decode_error.category","qualifiedName":"Libtmux_json.Decode_error.category","name":"category","kind":"enum","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":12,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","source":{"file":"json/libtmux_json.mli","line":12,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type category =\n Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","params":[]}],"slug":"libtmux_json-decode_error-category"},{"id":"Libtmux_json.Decode_error.category.Limit","publicId":"Libtmux_json.Decode_error.category.Limit","name":"Limit","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Limit","source":{"file":"json/libtmux_json.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Limit","slug":"libtmux_json-decode_error-category-limit"},{"id":"Libtmux_json.Decode_error.category.Out_of_range","publicId":"Libtmux_json.Decode_error.category.Out_of_range","name":"Out_of_range","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Out_of_range","source":{"file":"json/libtmux_json.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Out_of_range","slug":"libtmux_json-decode_error-category-out_of_range"},{"id":"Libtmux_json.Decode_error.category.Syntax","publicId":"Libtmux_json.Decode_error.category.Syntax","name":"Syntax","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Syntax","source":{"file":"json/libtmux_json.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Syntax","slug":"libtmux_json-decode_error-category-syntax"},{"id":"Libtmux_json.Decode_error.category.Unknown","publicId":"Libtmux_json.Decode_error.category.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"json/libtmux_json.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unknown","slug":"libtmux_json-decode_error-category-unknown"},{"id":"Libtmux_json.Decode_error.category.Unsupported","publicId":"Libtmux_json.Decode_error.category.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"json/libtmux_json.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unsupported","slug":"libtmux_json-decode_error-category-unsupported"},{"id":"Libtmux_json.Decode_error.category.Wrong_type","publicId":"Libtmux_json.Decode_error.category.Wrong_type","name":"Wrong_type","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_type","source":{"file":"json/libtmux_json.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Wrong_type","slug":"libtmux_json-decode_error-category-wrong_type"},{"id":"Libtmux_json.Decode_error.pp","publicId":"Libtmux_json.Decode_error.pp","qualifiedName":"Libtmux_json.Decode_error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"json/libtmux_json.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux_json-decode_error-pp"},{"id":"Libtmux_json.Decode_error.t","publicId":"Libtmux_json.Decode_error.t","qualifiedName":"Libtmux_json.Decode_error.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = { pointer : string; category : category; message : string }","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type t = { pointer : string; category : category; message : string; }","params":[]}],"slug":"libtmux_json-decode_error-t"},{"id":"Libtmux_json.Decode_error.t.category","publicId":"Libtmux_json.Decode_error.t.category","name":"category","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"category : category;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.t","type":"category","qualifiedName":"Libtmux_json.Decode_error.category","slug":"libtmux_json-decode_error-t-category"},{"id":"Libtmux_json.Decode_error.t.message","publicId":"Libtmux_json.Decode_error.t.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.message","slug":"libtmux_json-decode_error-t-message"},{"id":"Libtmux_json.Decode_error.t.pointer","publicId":"Libtmux_json.Decode_error.t.pointer","name":"pointer","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pointer : string;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.pointer","slug":"libtmux_json-decode_error-t-pointer"},{"id":"Libtmux_json.Error","publicId":"Libtmux_json.Error","qualifiedName":"Libtmux_json.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Structured native failures for JSON consumers. "],"declarations":[{"kind":"module","text":"module Error : sig\n val encode : Libtmux.Error.t -> Yojson.Safe.t\n (** Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json","doc":{"summary":"Structured native failures for JSON consumers."},"slug":"libtmux_json-error"},{"id":"Libtmux_json.Error.encode","publicId":"Libtmux_json.Error.encode","qualifiedName":"Libtmux_json.Error.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. "],"declarations":[{"kind":"function","text":"val encode : Libtmux.Error.t -> Yojson.Safe.t","source":{"file":"json/libtmux_json.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Error","doc":{"summary":"Return a stable `code`, bounded `message`, `message_truncated` flag and relevant operation, resource or target metadata. Messages and text attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex representation described by {!Workspace.encode_receipt}. No I/O."},"signatures":[{"raw":"val encode : Libtmux.Error.t -> Yojson.Safe.t","params":[{"name":"arg1","type":"Libtmux.Error.t"}],"returns":"Yojson.Safe.t"}],"slug":"libtmux_json-error-encode"},{"id":"Libtmux_json.Expr","publicId":"Libtmux_json.Expr","qualifiedName":"Libtmux_json.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Expr : sig\n val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result\n (** Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. *)\n\n val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result\n (** Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. *)\n\n val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result\n\n val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result\n (** Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json","slug":"libtmux_json-expr"},{"id":"Libtmux_json.Expr.decode","publicId":"Libtmux_json.Expr.decode","qualifiedName":"Libtmux_json.Expr.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. "],"declarations":[{"kind":"function","text":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Validate the supplied tree, including duplicate properties, before typed construction. Only the shared scalar pane registry and Boolean composition are accepted. Java regex, relationships and native extension fields return `Unsupported`. Numbers must fit signed 32-bit integers."},"signatures":[{"raw":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"Yojson.Safe.t"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-decode"},{"id":"Libtmux_json.Expr.encode","publicId":"Libtmux_json.Expr.encode","qualifiedName":"Libtmux_json.Expr.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Expr","signatures":[{"raw":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-encode"},{"id":"Libtmux_json.Expr.of_string","publicId":"Libtmux_json.Expr.of_string","qualifiedName":"Libtmux_json.Expr.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. "],"declarations":[{"kind":"function","text":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at most 256 values. Errors include a JSON pointer, never the whole input."},"signatures":[{"raw":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"string"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-of_string"},{"id":"Libtmux_json.Expr.to_string","publicId":"Libtmux_json.Expr.to_string","qualifiedName":"Libtmux_json.Expr.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. "],"declarations":[{"kind":"function","text":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Apply the same bounds and subset when encoding. Text with invalid UTF-8 has no representation in this schema. These functions perform no I/O."},"signatures":[{"raw":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(string, Decode_error.t) result"}],"slug":"libtmux_json-expr-to_string"},{"id":"Libtmux_json.Workspace","publicId":"Libtmux_json.Workspace","qualifiedName":"Libtmux_json.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Validate workspace documents and describe plans and retained execution.\n Preview output never supplies executable targets. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n\n val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n (** Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. *)\n\n val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. *)\n\n val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. *)\nend","source":{"file":"json/libtmux_json.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json","doc":{"summary":"Validate workspace documents and describe plans and retained execution. Preview output never supplies executable targets."},"slug":"libtmux_json-workspace"},{"id":"Libtmux_json.Workspace.decode","publicId":"Libtmux_json.Workspace.decode","qualifiedName":"Libtmux_json.Workspace.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Workspace","signatures":[{"raw":"val decode :\n directory:string ->\n Yojson.Safe.t -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"Yojson.Safe.t"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-decode"},{"id":"Libtmux_json.Workspace.encode_plan","publicId":"Libtmux_json.Workspace.encode_plan","qualifiedName":"Libtmux_json.Workspace.encode_plan","name":"encode_plan","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. "],"declarations":[{"kind":"function","text":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-plan/1` without I/O. The advisory preview contains command argv, cwd and environment names, excluding environment values, option values and startup text. It is not an execution script."},"signatures":[{"raw":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_plan"},{"id":"Libtmux_json.Workspace.encode_receipt","publicId":"Libtmux_json.Workspace.encode_receipt","qualifiedName":"Libtmux_json.Workspace.encode_receipt","name":"encode_receipt","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. "],"declarations":[{"kind":"function","text":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-receipt/1` with ordered steps, outcome index lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic messages are limited to 4096 bytes with an explicit truncation flag; command payloads are omitted.","body":"Both output schemas have a 4 MiB bound. Invalid UTF-8 values use `{\"encoding\":\"hex\",\"bytes\":\"...\"}` instead of losing bytes. Imported IDs and hints never establish a connection binding."},"signatures":[{"raw":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Execution.receipt"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_receipt"},{"id":"Libtmux_json.Workspace.of_string","publicId":"Libtmux_json.Workspace.of_string","qualifiedName":"Libtmux_json.Workspace.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":42,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. "],"declarations":[{"kind":"function","text":"val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":42,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Decode `libtmux.workspace/1` with the query codec's 64 KiB, UTF-8 and 32-level JSON bounds. Reject duplicate and unknown properties, invalid argv/shell combinations and configuration errors. `directory` is the absolute document directory; these functions perform no filesystem I/O."},"signatures":[{"raw":"val of_string :\n directory:string ->\n string -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-of_string"},{"id":"Libtmux_unix","publicId":"Libtmux_unix","qualifiedName":"Libtmux_unix","name":"Libtmux_unix","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Blocking Linux tmux clients with explicit scoped cancellation.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md}control\n guide} explains binding, completion and recovery. "],"declarations":[{"kind":"module","text":"","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"doc":{"summary":"Blocking Linux tmux clients with explicit scoped cancellation.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [control guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md) explains binding, completion and recovery."},"slug":"libtmux_unix"},{"id":"Libtmux_unix.Cancellation","publicId":"Libtmux_unix.Cancellation","qualifiedName":"Libtmux_unix.Cancellation","name":"Cancellation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cancellation : sig\n type t\n\n exception Cancelled\n\n val with_ : (t -> 'a) -> 'a\n (** Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. *)\n\n val cancel : t -> unit\n (** Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","slug":"libtmux_unix-cancellation"},{"id":"Libtmux_unix.Cancellation.Cancelled","publicId":"Libtmux_unix.Cancellation.Cancelled","qualifiedName":"Libtmux_unix.Cancellation.Cancelled","name":"Cancelled","kind":"exception","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"exception","text":"exception Cancelled","source":{"file":"unix/libtmux_unix.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type exn += Cancelled","params":[]}],"slug":"libtmux_unix-cancellation-cancelled"},{"id":"Libtmux_unix.Cancellation.cancel","publicId":"Libtmux_unix.Cancellation.cancel","qualifiedName":"Libtmux_unix.Cancellation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. "],"declarations":[{"kind":"function","text":"val cancel : t -> unit","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Wake waiters. Safe from another domain or systhread, but not from a signal handler. Repeated calls and calls after scope exit have no effect."},"signatures":[{"raw":"val cancel : t -> unit","params":[{"name":"arg1","type":"t"}],"returns":"unit"}],"slug":"libtmux_unix-cancellation-cancel"},{"id":"Libtmux_unix.Cancellation.t","publicId":"Libtmux_unix.Cancellation.t","qualifiedName":"Libtmux_unix.Cancellation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-cancellation-t"},{"id":"Libtmux_unix.Cancellation.with_","publicId":"Libtmux_unix.Cancellation.with_","qualifiedName":"Libtmux_unix.Cancellation.with_","name":"with_","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. "],"declarations":[{"kind":"function","text":"val with_ : (t -> 'a) -> 'a","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Own a cancellation token for the callback's lifetime. Leaving the scope cancels outstanding waiters and releases its descriptors after they finish. An escaped token is cancelled and cannot be reused."},"signatures":[{"raw":"val with_ : (t -> 'a) -> 'a","params":[{"name":"arg1","type":"t -> 'a"}],"returns":"'a"}],"slug":"libtmux_unix-cancellation-with_"},{"id":"Libtmux_unix.Client","publicId":"Libtmux_unix.Client","qualifiedName":"Libtmux_unix.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. *)\n\n val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. No capture/stream barrier exists.\n *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve queue capacity without I/O. *)\n\n val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O must also finish. No background\n scheduler or worker is started. *)\n\n val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result\n (** Submit and await. Use the two calls separately to retain an operation\n handle. *)\n\n val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. *)\n\n val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Close owned control clients and descriptors. Idempotent on the owning\n domain. tmux's [exit-unattached] and [exit-empty] policies can end the\n daemon after its clients or sessions disappear. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_unix-client"},{"id":"Libtmux_unix.Client.await","publicId":"Libtmux_unix.Client.await","qualifiedName":"Libtmux_unix.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O must also finish. No background\n scheduler or worker is started. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Pump admitted work until this operation is finished. Only one blocking caller may own the client at a time. Cancellation removes queued work or drains admitted work before raising `Cancellation.Cancelled`. The handle retains its outcome. Draining has at most one exchange timeout from detection; local scratch filesystem I/O must also finish. No background scheduler or worker is started."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-await"},{"id":"Libtmux_unix.Client.break_pane","publicId":"Libtmux_unix.Client.break_pane","qualifiedName":"Libtmux_unix.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-break_pane"},{"id":"Libtmux_unix.Client.capture","publicId":"Libtmux_unix.Client.capture","qualifiedName":"Libtmux_unix.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. "],"declarations":[{"kind":"function","text":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a complete graph over a recorded interval, with a fixed number of listing commands. Races fail validation. Access to returned values performs no I/O, including after closing the client.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture"},{"id":"Libtmux_unix.Client.capture_environment","publicId":"Libtmux_unix.Client.capture_environment","qualifiedName":"Libtmux_unix.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":308,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":308,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_environment"},{"id":"Libtmux_unix.Client.capture_hooks","publicId":"Libtmux_unix.Client.capture_hooks","qualifiedName":"Libtmux_unix.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":405,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":405,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_hooks"},{"id":"Libtmux_unix.Client.capture_options","publicId":"Libtmux_unix.Client.capture_options","qualifiedName":"Libtmux_unix.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":348,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":348,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_options"},{"id":"Libtmux_unix.Client.capture_text","publicId":"Libtmux_unix.Client.capture_text","qualifiedName":"Libtmux_unix.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture ordinary rendered screen rows, inclusively, via an owned paste buffer and private file. Reject applicable capture/save hooks. The scratch directory defaults to `/tmp` and must be local storage shared with the daemon. Pending and alternate-screen byte modes are unsupported. This observes an interval and establishes no stream continuity barrier."},"signatures":[{"raw":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_text"},{"id":"Libtmux_unix.Client.clear_history","publicId":"Libtmux_unix.Client.clear_history","qualifiedName":"Libtmux_unix.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":677,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":677,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_history"},{"id":"Libtmux_unix.Client.clear_option_array","publicId":"Libtmux_unix.Client.clear_option_array","qualifiedName":"Libtmux_unix.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_option_array"},{"id":"Libtmux_unix.Client.close","publicId":"Libtmux_unix.Client.close","qualifiedName":"Libtmux_unix.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":687,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Close owned control clients and descriptors. Idempotent on the owning\n domain. tmux's [exit-unattached] and [exit-empty] policies can end the\n daemon after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":687,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Close owned control clients and descriptors. Idempotent on the owning domain. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-close"},{"id":"Libtmux_unix.Client.connect","publicId":"Libtmux_unix.Client.connect","qualifiedName":"Libtmux_unix.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":132,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. "],"declarations":[{"kind":"function","text":"val connect :\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Attach to an existing local daemon with at least one session. The caller and daemon must share the PID namespace and filesystem. A local socket pathname alone does not establish these preconditions. `timeout` is the maximum seconds per control exchange, defaulting to one second. Requires Linux pidfd support. The client belongs to the current domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?binary:string ->\n ?timeout:float -> Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-connect"},{"id":"Libtmux_unix.Client.create_session","publicId":"Libtmux_unix.Client.create_session","qualifiedName":"Libtmux_unix.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":463,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":463,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_session"},{"id":"Libtmux_unix.Client.create_window","publicId":"Libtmux_unix.Client.create_window","qualifiedName":"Libtmux_unix.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_create_window.ml","intro":"Create a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"created: logs\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_window"},{"id":"Libtmux_unix.Client.cycle_layout","publicId":"Libtmux_unix.Client.cycle_layout","qualifiedName":"Libtmux_unix.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-cycle_layout"},{"id":"Libtmux_unix.Client.kill_pane","publicId":"Libtmux_unix.Client.kill_pane","qualifiedName":"Libtmux_unix.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_pane"},{"id":"Libtmux_unix.Client.kill_session","publicId":"Libtmux_unix.Client.kill_session","qualifiedName":"Libtmux_unix.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":509,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":509,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_session"},{"id":"Libtmux_unix.Client.kill_window","publicId":"Libtmux_unix.Client.kill_window","qualifiedName":"Libtmux_unix.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":517,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":517,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_window"},{"id":"Libtmux_unix.Client.link_window","publicId":"Libtmux_unix.Client.link_window","qualifiedName":"Libtmux_unix.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-link_window"},{"id":"Libtmux_unix.Client.move_pane","publicId":"Libtmux_unix.Client.move_pane","qualifiedName":"Libtmux_unix.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_pane"},{"id":"Libtmux_unix.Client.move_window_at","publicId":"Libtmux_unix.Client.move_window_at","qualifiedName":"Libtmux_unix.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_move_window.ml","intro":"Move a window between sessions. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"moved: build at 7\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_window_at"},{"id":"Libtmux_unix.Client.read_hook","publicId":"Libtmux_unix.Client.read_hook","qualifiedName":"Libtmux_unix.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":413,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":413,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_hook"},{"id":"Libtmux_unix.Client.read_option","publicId":"Libtmux_unix.Client.read_option","qualifiedName":"Libtmux_unix.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":360,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":360,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_option"},{"id":"Libtmux_unix.Client.refresh_client_at","publicId":"Libtmux_unix.Client.refresh_client_at","qualifiedName":"Libtmux_unix.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":265,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":265,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-refresh_client_at"},{"id":"Libtmux_unix.Client.remove_environment","publicId":"Libtmux_unix.Client.remove_environment","qualifiedName":"Libtmux_unix.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_environment"},{"id":"Libtmux_unix.Client.remove_hook","publicId":"Libtmux_unix.Client.remove_hook","qualifiedName":"Libtmux_unix.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_hook"},{"id":"Libtmux_unix.Client.rename_session","publicId":"Libtmux_unix.Client.rename_session","qualifiedName":"Libtmux_unix.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_session"},{"id":"Libtmux_unix.Client.rename_window","publicId":"Libtmux_unix.Client.rename_window","qualifiedName":"Libtmux_unix.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_rename_window.ml","intro":"Rename a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"renamed: editor-main\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val rename_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_window"},{"id":"Libtmux_unix.Client.request_detach_client_at","publicId":"Libtmux_unix.Client.request_detach_client_at","qualifiedName":"Libtmux_unix.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":256,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":256,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-request_detach_client_at"},{"id":"Libtmux_unix.Client.resize_control_client_at","publicId":"Libtmux_unix.Client.resize_control_client_at","qualifiedName":"Libtmux_unix.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_control_client_at"},{"id":"Libtmux_unix.Client.resize_pane","publicId":"Libtmux_unix.Client.resize_pane","qualifiedName":"Libtmux_unix.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_pane"},{"id":"Libtmux_unix.Client.resize_window","publicId":"Libtmux_unix.Client.resize_window","qualifiedName":"Libtmux_unix.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_window"},{"id":"Libtmux_unix.Client.respawn_pane","publicId":"Libtmux_unix.Client.respawn_pane","qualifiedName":"Libtmux_unix.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-respawn_pane"},{"id":"Libtmux_unix.Client.rotate_panes","publicId":"Libtmux_unix.Client.rotate_panes","qualifiedName":"Libtmux_unix.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":650,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":650,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rotate_panes"},{"id":"Libtmux_unix.Client.run","publicId":"Libtmux_unix.Client.run","qualifiedName":"Libtmux_unix.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Submit and await. Use the two calls separately to retain an operation\n handle. "],"declarations":[{"kind":"function","text":"val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Submit and await. Use the two calls separately to retain an operation handle."},"signatures":[{"raw":"val run :\n ?cancel:Cancellation.t ->\n t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run"},{"id":"Libtmux_unix.Client.run_hook","publicId":"Libtmux_unix.Client.run_hook","qualifiedName":"Libtmux_unix.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run_hook"},{"id":"Libtmux_unix.Client.select_layout","publicId":"Libtmux_unix.Client.select_layout","qualifiedName":"Libtmux_unix.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_layout.ml","intro":"Apply a layout. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"layout: 3 horizontal panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_layout"},{"id":"Libtmux_unix.Client.select_pane","publicId":"Libtmux_unix.Client.select_pane","qualifiedName":"Libtmux_unix.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":573,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":573,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_pane"},{"id":"Libtmux_unix.Client.select_window_at","publicId":"Libtmux_unix.Client.select_window_at","qualifiedName":"Libtmux_unix.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":533,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":533,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_window_at"},{"id":"Libtmux_unix.Client.send_keys","publicId":"Libtmux_unix.Client.send_keys","qualifiedName":"Libtmux_unix.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":290,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":290,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_keys"},{"id":"Libtmux_unix.Client.send_text","publicId":"Libtmux_unix.Client.send_text","qualifiedName":"Libtmux_unix.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_text :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_text"},{"id":"Libtmux_unix.Client.set_environment","publicId":"Libtmux_unix.Client.set_environment","qualifiedName":"Libtmux_unix.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_environment"},{"id":"Libtmux_unix.Client.set_hook","publicId":"Libtmux_unix.Client.set_hook","qualifiedName":"Libtmux_unix.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_hook"},{"id":"Libtmux_unix.Client.set_option","publicId":"Libtmux_unix.Client.set_option","qualifiedName":"Libtmux_unix.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_option"},{"id":"Libtmux_unix.Client.set_pane_title","publicId":"Libtmux_unix.Client.set_pane_title","qualifiedName":"Libtmux_unix.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_pane_title"},{"id":"Libtmux_unix.Client.signal","publicId":"Libtmux_unix.Client.signal","qualifiedName":"Libtmux_unix.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":303,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":303,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-signal"},{"id":"Libtmux_unix.Client.source","publicId":"Libtmux_unix.Client.source","qualifiedName":"Libtmux_unix.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"unix/libtmux_unix.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_unix-client-source"},{"id":"Libtmux_unix.Client.split_pane","publicId":"Libtmux_unix.Client.split_pane","qualifiedName":"Libtmux_unix.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-split_pane"},{"id":"Libtmux_unix.Client.submit","publicId":"Libtmux_unix.Client.submit","qualifiedName":"Libtmux_unix.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate and reserve queue capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate and reserve queue capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-submit"},{"id":"Libtmux_unix.Client.subscribe","publicId":"Libtmux_unix.Client.subscribe","qualifiedName":"Libtmux_unix.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire verified coverage of the pane's observed session/window. Choose the least session ID unless explicitly supplied. Reuse one lane per session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16 subscribers and eight client lanes including commands. Reserve payload against the shared 32 MiB budget before admission.","body":"Data starts after admission's marker. Layout/membership changes end continuity conservatively. Overflow emits Gap then End, without blocking another subscriber. Blocking delivery advances during Subscription.next. There is no snapshot/history barrier or automatic recovery."},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-subscribe"},{"id":"Libtmux_unix.Client.swap_panes","publicId":"Libtmux_unix.Client.swap_panes","qualifiedName":"Libtmux_unix.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-swap_panes"},{"id":"Libtmux_unix.Client.switch_client_at","publicId":"Libtmux_unix.Client.switch_client_at","qualifiedName":"Libtmux_unix.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-switch_client_at"},{"id":"Libtmux_unix.Client.t","publicId":"Libtmux_unix.Client.t","qualifiedName":"Libtmux_unix.Client.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-client-t"},{"id":"Libtmux_unix.Client.unlink_window_at","publicId":"Libtmux_unix.Client.unlink_window_at","qualifiedName":"Libtmux_unix.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unlink_window_at"},{"id":"Libtmux_unix.Client.unset_environment","publicId":"Libtmux_unix.Client.unset_environment","qualifiedName":"Libtmux_unix.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":331,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":331,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_environment"},{"id":"Libtmux_unix.Client.unset_option","publicId":"Libtmux_unix.Client.unset_option","qualifiedName":"Libtmux_unix.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_option"},{"id":"Libtmux_unix.Client.version","publicId":"Libtmux_unix.Client.version","qualifiedName":"Libtmux_unix.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"unix/libtmux_unix.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_unix-client-version"},{"id":"Libtmux_unix.Client.wait_for","publicId":"Libtmux_unix.Client.wait_for","qualifiedName":"Libtmux_unix.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":299,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for"},{"id":"Libtmux_unix.Client.wait_for_text","publicId":"Libtmux_unix.Client.wait_for_text","qualifiedName":"Libtmux_unix.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. No capture/stream barrier exists.\n "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Subscribe, capture the ordinary screen immediately, and recapture after output. Membership/overflow gaps trigger explicit fresh capture and new coverage in the same binding. Maximum pattern: 64 KiB. Success returns a capture that contains the text. Transient text between captures may be missed. Check the deadline between bounded acquisitions; in-flight I/O retains the client's exchange timeout. No capture/stream barrier exists."},"signatures":[{"raw":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for_text"},{"id":"Libtmux_unix.Client.zoom_pane","publicId":"Libtmux_unix.Client.zoom_pane","qualifiedName":"Libtmux_unix.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":659,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":659,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-zoom_pane"},{"id":"Libtmux_unix.Operation","publicId":"Libtmux_unix.Operation","qualifiedName":"Libtmux_unix.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** No I/O. Results remain inspectable after client closure, on the owning\n domain. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_unix-operation"},{"id":"Libtmux_unix.Operation.cancel","publicId":"Libtmux_unix.Operation.cancel","qualifiedName":"Libtmux_unix.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"Remove queued work before it is written. Admitted commands retain their owner and are drained by {!Client.await}; cancellation does not undo effects. Returns `Busy` while another blocking caller owns the client; use a {!Cancellation.t} token to interrupt that caller."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-cancel"},{"id":"Libtmux_unix.Operation.cleanup_receipt","publicId":"Libtmux_unix.Operation.cleanup_receipt","qualifiedName":"Libtmux_unix.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n}","params":[]}],"slug":"libtmux_unix-operation-cleanup_receipt"},{"id":"Libtmux_unix.Operation.cleanup_receipt.cause","publicId":"Libtmux_unix.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"unix/libtmux_unix.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_unix.Operation.cause","slug":"libtmux_unix-operation-cleanup_receipt-cause"},{"id":"Libtmux_unix.Operation.cleanup_receipt.created","publicId":"Libtmux_unix.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"unix/libtmux_unix.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_unix.Operation.created","slug":"libtmux_unix-operation-cleanup_receipt-created"},{"id":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_unix.Operation.owned_buffers","slug":"libtmux_unix-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_unix.Operation.id","publicId":"Libtmux_unix.Operation.id","qualifiedName":"Libtmux_unix.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"unix/libtmux_unix.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_unix-operation-id"},{"id":"Libtmux_unix.Operation.inspect","publicId":"Libtmux_unix.Operation.inspect","qualifiedName":"Libtmux_unix.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" No I/O. Results remain inspectable after client closure, on the owning\n domain. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"No I/O. Results remain inspectable after client closure, on the owning domain."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-inspect"},{"id":"Libtmux_unix.Operation.state","publicId":"Libtmux_unix.Operation.state","qualifiedName":"Libtmux_unix.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a state =\n Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","params":[]}],"slug":"libtmux_unix-operation-state"},{"id":"Libtmux_unix.Operation.state.Acknowledged","publicId":"Libtmux_unix.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"unix/libtmux_unix.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Acknowledged","slug":"libtmux_unix-operation-state-acknowledged"},{"id":"Libtmux_unix.Operation.state.Finished","publicId":"Libtmux_unix.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":77,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":77,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Finished","slug":"libtmux_unix-operation-state-finished"},{"id":"Libtmux_unix.Operation.state.Not_started","publicId":"Libtmux_unix.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"unix/libtmux_unix.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Not_started","slug":"libtmux_unix-operation-state-not_started"},{"id":"Libtmux_unix.Operation.state.Outcome_unknown","publicId":"Libtmux_unix.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":78,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":78,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Outcome_unknown","slug":"libtmux_unix-operation-state-outcome_unknown"},{"id":"Libtmux_unix.Operation.state.Queued","publicId":"Libtmux_unix.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Queued","slug":"libtmux_unix-operation-state-queued"},{"id":"Libtmux_unix.Operation.state.Written","publicId":"Libtmux_unix.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"unix/libtmux_unix.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Written","slug":"libtmux_unix-operation-state-written"},{"id":"Libtmux_unix.Operation.t","publicId":"Libtmux_unix.Operation.t","qualifiedName":"Libtmux_unix.Operation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"unix/libtmux_unix.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-operation-t"},{"id":"Libtmux_unix.Rendered","publicId":"Libtmux_unix.Rendered","qualifiedName":"Libtmux_unix.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Blocking native Linux transport. No Eio scheduler is started. "],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"unix/libtmux_unix.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","doc":{"summary":"Blocking native Linux transport. No Eio scheduler is started."},"exportedFrom":"Libtmux.Captured_text","slug":"libtmux_unix-rendered"},{"id":"Libtmux_unix.Subscription","publicId":"Libtmux_unix.Subscription","qualifiedName":"Libtmux_unix.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. *)\n\n val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Discard pending data and retain End Cancelled. Release an unused lane.\n Does not stop the daemon. *)\n\n val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_unix-subscription"},{"id":"Libtmux_unix.Subscription.close","publicId":"Libtmux_unix.Subscription.close","qualifiedName":"Libtmux_unix.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Discard pending data and retain End Cancelled. Release an unused lane.\n Does not stop the daemon. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Discard pending data and retain End Cancelled. Release an unused lane. Does not stop the daemon."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-close"},{"id":"Libtmux_unix.Subscription.next","publicId":"Libtmux_unix.Subscription.next","qualifiedName":"Libtmux_unix.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. "],"declarations":[{"kind":"function","text":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Pump all subscription lanes until one event is available. Default deadline is one second. `None` follows a consumed End. A deadline keeps the subscription active; cancellation closes it and raises Cancelled."},"signatures":[{"raw":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-next"},{"id":"Libtmux_unix.Subscription.poll","publicId":"Libtmux_unix.Subscription.poll","qualifiedName":"Libtmux_unix.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Remove a queued event without I/O. Owning domain only, including after client closure. `None` means no queued event, not proof of continuity."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-poll"},{"id":"Libtmux_unix.Subscription.t","publicId":"Libtmux_unix.Subscription.t","qualifiedName":"Libtmux_unix.Subscription.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-subscription-t"},{"id":"Libtmux_unix.Subscription.wait_for_bytes","publicId":"Libtmux_unix.Subscription.wait_for_bytes","qualifiedName":"Libtmux_unix.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Consume future bytes until the nonempty pattern matches, including across Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's end within its consumed event. Gaps stop matching; no rendered or earlier output is searched. Timeout leaves the subscription active."},"signatures":[{"raw":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_unix-subscription-wait_for_bytes"},{"id":"Libtmux_unix.Terminal","publicId":"Libtmux_unix.Terminal","qualifiedName":"Libtmux_unix.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises [Cancellation.Cancelled]. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_unix-terminal"},{"id":"Libtmux_unix.Terminal.attach_current","publicId":"Libtmux_unix.Terminal.attach_current","qualifiedName":"Libtmux_unix.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises [Cancellation.Cancelled]. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Terminal","doc":{"summary":"Run an interactive terminal client until it exits. Select the exact session ID on the daemon currently listening at `endpoint`; this is explicitly unbound and accepts no captured target. No retry or daemon startup occurs. A successful result proves client exit, not continued attachment. Diagnostics go to `stderr`.","body":"Descriptors default to the application's standard streams and remain caller-owned. `stdin` must be a terminal. Environment updates and read-only mode are disabled by default; inherited `TMUX` and `TMUX_PANE` are removed. Cancellation terminates and reaps this terminal client, leaves the daemon running, then raises `Cancellation.Cancelled`."},"signatures":[{"raw":"val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stdout","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stderr","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-terminal-attach_current"},{"id":"Libtmux_unix.Workspace","publicId":"Libtmux_unix.Workspace","qualifiedName":"Libtmux_unix.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":696,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Apply validated plans with blocking I/O and scoped cancellation tokens.\n Execution handles retain journals and borrow existing clients; bootstrap\n handles own their newly bound clients without owning the daemon. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. *)\n\n val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. *)\n\n val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":696,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","doc":{"summary":"Apply validated plans with blocking I/O and scoped cancellation tokens. Execution handles retain journals and borrow existing clients; bootstrap handles own their newly bound clients without owning the daemon."},"slug":"libtmux_unix-workspace"},{"id":"Libtmux_unix.Workspace.await","publicId":"Libtmux_unix.Workspace.await","qualifiedName":"Libtmux_unix.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":713,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":713,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Expected apply failures are retained receipts. Cancellation propagates after recording progress and at most 500 ms of protected compensation."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-await"},{"id":"Libtmux_unix.Workspace.client","publicId":"Libtmux_unix.Workspace.client","qualifiedName":"Libtmux_unix.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"unix/libtmux_unix.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_unix-workspace-client"},{"id":"Libtmux_unix.Workspace.close","publicId":"Libtmux_unix.Workspace.close","qualifiedName":"Libtmux_unix.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Completed journals remain readable after close."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-close"},{"id":"Libtmux_unix.Workspace.inspect","publicId":"Libtmux_unix.Workspace.inspect","qualifiedName":"Libtmux_unix.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-inspect"},{"id":"Libtmux_unix.Workspace.submit","publicId":"Libtmux_unix.Workspace.submit","qualifiedName":"Libtmux_unix.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":699,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":699,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a generation-bound execution handle without I/O. The caller owns the supplied client; closing this handle leaves that client open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit"},{"id":"Libtmux_unix.Workspace.submit_bootstrap","publicId":"Libtmux_unix.Workspace.submit_bootstrap","qualifiedName":"Libtmux_unix.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":704,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":704,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a handle for a missing-endpoint plan. Awaiting it starts control new-session and binds the same connection. The handle owns its new client; it never acquires ownership of the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit_bootstrap"},{"id":"Libtmux_unix.Workspace.t","publicId":"Libtmux_unix.Workspace.t","qualifiedName":"Libtmux_unix.Workspace.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-workspace-t"},{"id":"Libtmux_workspace","publicId":"Libtmux_workspace","qualifiedName":"Libtmux_workspace","name":"Libtmux_workspace","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" {!Config} validates workspace descriptions and {!Plan} previews their\n actions without I/O. {!Execution} delegates effects to an explicit executor\n and retains a recovery journal. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for JSON loading, preview, apply and receipt inspection. "],"declarations":[{"kind":"module","text":"","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"doc":{"summary":"{!Config} validates workspace descriptions and {!Plan} previews their actions without I/O. {!Execution} delegates effects to an explicit executor and retains a recovery journal. See the [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for JSON loading, preview, apply and receipt inspection."},"slug":"libtmux_workspace"},{"id":"Libtmux_workspace.Config","publicId":"Libtmux_workspace.Config","qualifiedName":"Libtmux_workspace.Config","name":"Config","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Validate native workspace values without contacting tmux or reading the\n filesystem. Relative directories resolve against the document directory;\n only declared variables participate in expansion. "],"declarations":[{"kind":"module","text":"module Config : sig\n type error = { path : string; message : string }\n\n val pp_error : Format.formatter -> error -> unit\n\n type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }\n\n type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n\n type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }\n\n type t\n\n val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane\n\n val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window\n (** Builders are unchecked descriptions; {!make} validates the whole document.\n *)\n\n val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result\n (** Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. *)\n\n val session : t -> string\n val windows : t -> window Iarray.t\n val environment : t -> (string * string) list\n val options : t -> setting list\n val dimensions : t -> int * int\nend","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace","doc":{"summary":"Validate native workspace values without contacting tmux or reading the filesystem. Relative directories resolve against the document directory; only declared variables participate in expansion."},"slug":"libtmux_workspace-config"},{"id":"Libtmux_workspace.Config.dimensions","publicId":"Libtmux_workspace.Config.dimensions","qualifiedName":"Libtmux_workspace.Config.dimensions","name":"dimensions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dimensions : t -> int * int","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val dimensions : t -> int * int","params":[{"name":"arg1","type":"t"}],"returns":"int * int"}],"slug":"libtmux_workspace-config-dimensions"},{"id":"Libtmux_workspace.Config.environment","publicId":"Libtmux_workspace.Config.environment","qualifiedName":"Libtmux_workspace.Config.environment","name":"environment","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val environment : t -> (string * string) list","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val environment : t -> (string * string) list","params":[{"name":"arg1","type":"t"}],"returns":"(string * string) list"}],"slug":"libtmux_workspace-config-environment"},{"id":"Libtmux_workspace.Config.error","publicId":"Libtmux_workspace.Config.error","qualifiedName":"Libtmux_workspace.Config.error","name":"error","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type error = { path : string; message : string }","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type error = { path : string; message : string; }","params":[]}],"slug":"libtmux_workspace-config-error"},{"id":"Libtmux_workspace.Config.error.message","publicId":"Libtmux_workspace.Config.error.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.message","slug":"libtmux_workspace-config-error-message"},{"id":"Libtmux_workspace.Config.error.path","publicId":"Libtmux_workspace.Config.error.path","name":"path","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"path : string;","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.path","slug":"libtmux_workspace-config-error-path"},{"id":"Libtmux_workspace.Config.make","publicId":"Libtmux_workspace.Config.make","qualifiedName":"Libtmux_workspace.Config.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. "],"declarations":[{"kind":"function","text":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Resolve relative working directories against the absolute document directory. Explicit variables expand `${NAME}` in directories only; they never read the process environment. Cycles and unknown names fail. Command arguments, shell code, startup text and environment values remain literal.","body":"At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names and settings must be unique in their scope. No filesystem is consulted."},"signatures":[{"raw":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string -> session:string -> window list -> (t, error) result","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"variables","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"directory","type":"string","keywordOnly":true},{"name":"session","type":"string","keywordOnly":true},{"name":"arg1","type":"window list"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-config-make"},{"id":"Libtmux_workspace.Config.options","publicId":"Libtmux_workspace.Config.options","qualifiedName":"Libtmux_workspace.Config.options","name":"options","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val options : t -> setting list","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val options : t -> setting list","params":[{"name":"arg1","type":"t"}],"returns":"setting list"}],"slug":"libtmux_workspace-config-options"},{"id":"Libtmux_workspace.Config.pane","publicId":"Libtmux_workspace.Config.pane","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size -> unit -> pane","params":[{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"startup","type":"string list","optional":true,"keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"pane"}],"slug":"libtmux_workspace-config-pane"},{"id":"Libtmux_workspace.Config.pane:type","publicId":"Libtmux_workspace.Config.pane:type","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n}","params":[]}],"slug":"libtmux_workspace-config-pane-type"},{"id":"Libtmux_workspace.Config.pane:type.direction","publicId":"Libtmux_workspace.Config.pane:type.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Config.direction","slug":"libtmux_workspace-config-pane-type-direction"},{"id":"Libtmux_workspace.Config.pane:type.options","publicId":"Libtmux_workspace.Config.pane:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-pane-type-options"},{"id":"Libtmux_workspace.Config.pane:type.size","publicId":"Libtmux_workspace.Config.pane:type.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Config.size","slug":"libtmux_workspace-config-pane-type-size"},{"id":"Libtmux_workspace.Config.pane:type.spawn","publicId":"Libtmux_workspace.Config.pane:type.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Config.spawn","slug":"libtmux_workspace-config-pane-type-spawn"},{"id":"Libtmux_workspace.Config.pane:type.startup","publicId":"Libtmux_workspace.Config.pane:type.startup","name":"startup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"startup : string list;","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"string list","qualifiedName":"Libtmux_workspace.Config.startup","slug":"libtmux_workspace-config-pane-type-startup"},{"id":"Libtmux_workspace.Config.pp_error","publicId":"Libtmux_workspace.Config.pp_error","qualifiedName":"Libtmux_workspace.Config.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-config-pp_error"},{"id":"Libtmux_workspace.Config.session","publicId":"Libtmux_workspace.Config.session","qualifiedName":"Libtmux_workspace.Config.session","name":"session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> string","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val session : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_workspace-config-session"},{"id":"Libtmux_workspace.Config.setting","publicId":"Libtmux_workspace.Config.setting","qualifiedName":"Libtmux_workspace.Config.setting","name":"setting","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n}","params":[]}],"slug":"libtmux_workspace-config-setting"},{"id":"Libtmux_workspace.Config.setting.index","publicId":"Libtmux_workspace.Config.setting.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.setting","type":"int option","qualifiedName":"Libtmux_workspace.Config.index","slug":"libtmux_workspace-config-setting-index"},{"id":"Libtmux_workspace.Config.setting.name","publicId":"Libtmux_workspace.Config.setting.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.setting","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-setting-name"},{"id":"Libtmux_workspace.Config.setting.value","publicId":"Libtmux_workspace.Config.setting.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Libtmux.Options.scalar;","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.setting","type":"Libtmux.Options.scalar","qualifiedName":"Libtmux_workspace.Config.value","slug":"libtmux_workspace-config-setting-value"},{"id":"Libtmux_workspace.Config.t","publicId":"Libtmux_workspace.Config.t","qualifiedName":"Libtmux_workspace.Config.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-config-t"},{"id":"Libtmux_workspace.Config.window","publicId":"Libtmux_workspace.Config.window","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Builders are unchecked descriptions; {!make} validates the whole document.\n "],"declarations":[{"kind":"function","text":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Builders are unchecked descriptions; {!make} validates the whole document."},"signatures":[{"raw":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t -> name:string -> pane list -> window","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"layout","type":"Libtmux.Layout.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"pane list"}],"returns":"window"}],"slug":"libtmux_workspace-config-window"},{"id":"Libtmux_workspace.Config.window:type","publicId":"Libtmux_workspace.Config.window:type","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n}","params":[]}],"slug":"libtmux_workspace-config-window-type"},{"id":"Libtmux_workspace.Config.window:type.cwd","publicId":"Libtmux_workspace.Config.window:type.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string option","qualifiedName":"Libtmux_workspace.Config.cwd","slug":"libtmux_workspace-config-window-type-cwd"},{"id":"Libtmux_workspace.Config.window:type.environment","publicId":"Libtmux_workspace.Config.window:type.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.window:type","type":"(string * string) list","qualifiedName":"Libtmux_workspace.Config.environment","slug":"libtmux_workspace-config-window-type-environment"},{"id":"Libtmux_workspace.Config.window:type.layout","publicId":"Libtmux_workspace.Config.window:type.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : Libtmux.Layout.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.window:type","type":"Libtmux.Layout.t option","qualifiedName":"Libtmux_workspace.Config.layout","slug":"libtmux_workspace-config-window-type-layout"},{"id":"Libtmux_workspace.Config.window:type.name","publicId":"Libtmux_workspace.Config.window:type.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-window-type-name"},{"id":"Libtmux_workspace.Config.window:type.options","publicId":"Libtmux_workspace.Config.window:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.window:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-window-type-options"},{"id":"Libtmux_workspace.Config.window:type.panes","publicId":"Libtmux_workspace.Config.window:type.panes","name":"panes","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"panes : pane list;","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.window:type","type":"pane list","qualifiedName":"Libtmux_workspace.Config.panes","slug":"libtmux_workspace-config-window-type-panes"},{"id":"Libtmux_workspace.Config.windows","publicId":"Libtmux_workspace.Config.windows","qualifiedName":"Libtmux_workspace.Config.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> window Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val windows : t -> window Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"window Iarray.t"}],"slug":"libtmux_workspace-config-windows"},{"id":"Libtmux_workspace.Execution","publicId":"Libtmux_workspace.Execution","qualifiedName":"Libtmux_workspace.Execution","name":"Execution","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":162,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Apply a plan once and retain an immutable journal of effects, uncertainty\n and cleanup. Ordinary applications use their backend's Workspace module;\n executors below integrate another transport. "],"declarations":[{"kind":"module","text":"module Execution : sig\n type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }\n (** A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. *)\n\n type certainty = Not_started | Applied | Unknown\n\n type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }\n (** Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. *)\n\n type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t\n\n type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }\n\n type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t\n\n type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }\n\n type t\n\n val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. *)\n\n val inspect : t -> receipt\n (** Return an immutable copy of the retained journal without I/O. *)\n\n val await : ?compensate_on_failure:bool -> t -> receipt\n (** Execute once, rechecking generation and captured preconditions first.\n Expected failures return a partial journal. Exceptions, including native\n cancellation, propagate after recording progress and bounded compensation.\n Subsequent calls only return the retained receipt; mutations never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":162,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace","doc":{"summary":"Apply a plan once and retain an immutable journal of effects, uncertainty and cleanup. Ordinary applications use their backend's Workspace module; executors below integrate another transport."},"slug":"libtmux_workspace-execution"},{"id":"Libtmux_workspace.Execution.await","publicId":"Libtmux_workspace.Execution.await","qualifiedName":"Libtmux_workspace.Execution.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Execute once, rechecking generation and captured preconditions first.\n Expected failures return a partial journal. Exceptions, including native\n cancellation, propagate after recording progress and bounded compensation.\n Subsequent calls only return the retained receipt; mutations never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. "],"declarations":[{"kind":"function","text":"val await : ?compensate_on_failure:bool -> t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Execute once, rechecking generation and captured preconditions first. Expected failures return a partial journal. Exceptions, including native cancellation, propagate after recording progress and bounded compensation. Subsequent calls only return the retained receipt; mutations never retry.","body":"Compensation kills only panes reported by completed creation commands, in reverse creation order. tmux removes windows and sessions that become empty. Containers with foreign panes or window links remain; adding a borrowed pane never makes it eligible for cleanup. Cleanup failures have separate outcomes."},"signatures":[{"raw":"val await : ?compensate_on_failure:bool -> t -> receipt","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-await"},{"id":"Libtmux_workspace.Execution.certainty","publicId":"Libtmux_workspace.Execution.certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","name":"certainty","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type certainty = Not_started | Applied | Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type certainty = Not_started | Applied | Unknown","params":[]}],"slug":"libtmux_workspace-execution-certainty"},{"id":"Libtmux_workspace.Execution.certainty.Applied","publicId":"Libtmux_workspace.Execution.certainty.Applied","name":"Applied","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applied","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applied","slug":"libtmux_workspace-execution-certainty-applied"},{"id":"Libtmux_workspace.Execution.certainty.Not_started","publicId":"Libtmux_workspace.Execution.certainty.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Not_started","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Not_started","slug":"libtmux_workspace-execution-certainty-not_started"},{"id":"Libtmux_workspace.Execution.certainty.Unknown","publicId":"Libtmux_workspace.Execution.certainty.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Unknown","slug":"libtmux_workspace-execution-certainty-unknown"},{"id":"Libtmux_workspace.Execution.cleanup","publicId":"Libtmux_workspace.Execution.cleanup","qualifiedName":"Libtmux_workspace.Execution.cleanup","name":"cleanup","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n}","params":[]}],"slug":"libtmux_workspace-execution-cleanup"},{"id":"Libtmux_workspace.Execution.cleanup.outcome","publicId":"Libtmux_workspace.Execution.cleanup.outcome","name":"outcome","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":214,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"outcome : (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":214,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"(unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.outcome","slug":"libtmux_workspace-execution-cleanup-outcome"},{"id":"Libtmux_workspace.Execution.cleanup.pane","publicId":"Libtmux_workspace.Execution.cleanup.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.target;","source":{"file":"workspace/libtmux_workspace.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"Libtmux.Pane.target","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-cleanup-pane"},{"id":"Libtmux_workspace.Execution.create","publicId":"Libtmux_workspace.Execution.create","qualifiedName":"Libtmux_workspace.Execution.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":237,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. "],"declarations":[{"kind":"function","text":"val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"workspace/libtmux_workspace.mli","line":237,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Allocate a retained handle without I/O. IDs have 1..64 ASCII letters, digits, underscores or hyphens."},"signatures":[{"raw":"val create :\n operation_id:string ->\n executor:executor -> Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"operation_id","type":"string","keywordOnly":true},{"name":"executor","type":"executor","keywordOnly":true},{"name":"arg1","type":"Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_workspace-execution-create"},{"id":"Libtmux_workspace.Execution.executor","publicId":"Libtmux_workspace.Execution.executor","qualifiedName":"Libtmux_workspace.Execution.executor","name":"executor","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. "],"declarations":[{"kind":"struct","text":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Backend integration: `inspect` returns a callback tied to the latest operation, reading only its retained state even after later submissions. `protect` bounds compensation and shields it from caller cancellation, reporting expected failures as `Error`. Ordinary callers use their backend's Workspace API."},"signatures":[{"raw":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n}","params":[]}],"slug":"libtmux_workspace-execution-executor"},{"id":"Libtmux_workspace.Execution.executor.bootstrap","publicId":"Libtmux_workspace.Execution.executor.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.executor","type":"Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.bootstrap","slug":"libtmux_workspace-execution-executor-bootstrap"},{"id":"Libtmux_workspace.Execution.executor.capture","publicId":"Libtmux_workspace.Execution.executor.capture","name":"capture","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":184,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":184,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.capture","slug":"libtmux_workspace-execution-executor-capture"},{"id":"Libtmux_workspace.Execution.executor.inspect","publicId":"Libtmux_workspace.Execution.executor.inspect","name":"inspect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inspect : unit -> unit -> observation;","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> unit -> observation","qualifiedName":"Libtmux_workspace.Execution.inspect","slug":"libtmux_workspace-execution-executor-inspect"},{"id":"Libtmux_workspace.Execution.executor.protect","publicId":"Libtmux_workspace.Execution.executor.protect","name":"protect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.executor","type":"(unit -> unit) -> (unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.protect","slug":"libtmux_workspace-execution-executor-protect"},{"id":"Libtmux_workspace.Execution.executor.run","publicId":"Libtmux_workspace.Execution.executor.run","name":"run","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.executor","type":"'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.run","slug":"libtmux_workspace-execution-executor-run"},{"id":"Libtmux_workspace.Execution.executor.source","publicId":"Libtmux_workspace.Execution.executor.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : unit -> Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-executor-source"},{"id":"Libtmux_workspace.Execution.hint","publicId":"Libtmux_workspace.Execution.hint","qualifiedName":"Libtmux_workspace.Execution.hint","name":"hint","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. "],"declarations":[{"kind":"struct","text":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"A creation row received before daemon binding finished. Hints are not operational targets and are never eligible for automatic compensation."},"signatures":[{"raw":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n}","params":[]}],"slug":"libtmux_workspace-execution-hint"},{"id":"Libtmux_workspace.Execution.hint.pane","publicId":"Libtmux_workspace.Execution.hint.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-hint-pane"},{"id":"Libtmux_workspace.Execution.hint.pane_index","publicId":"Libtmux_workspace.Execution.hint.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.pane_index","slug":"libtmux_workspace-execution-hint-pane_index"},{"id":"Libtmux_workspace.Execution.hint.server_pid","publicId":"Libtmux_workspace.Execution.hint.server_pid","name":"server_pid","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"server_pid : int;","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.server_pid","slug":"libtmux_workspace-execution-hint-server_pid"},{"id":"Libtmux_workspace.Execution.hint.session","publicId":"Libtmux_workspace.Execution.hint.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Libtmux.Session.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Session.Id.t","qualifiedName":"Libtmux_workspace.Execution.session","slug":"libtmux_workspace-execution-hint-session"},{"id":"Libtmux_workspace.Execution.hint.window","publicId":"Libtmux_workspace.Execution.hint.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Libtmux.Window.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Window.Id.t","qualifiedName":"Libtmux_workspace.Execution.window","slug":"libtmux_workspace-execution-hint-window"},{"id":"Libtmux_workspace.Execution.hint.window_index","publicId":"Libtmux_workspace.Execution.hint.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.window_index","slug":"libtmux_workspace-execution-hint-window_index"},{"id":"Libtmux_workspace.Execution.inspect","publicId":"Libtmux_workspace.Execution.inspect","qualifiedName":"Libtmux_workspace.Execution.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Return an immutable copy of the retained journal without I/O. "],"declarations":[{"kind":"function","text":"val inspect : t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Return an immutable copy of the retained journal without I/O."},"signatures":[{"raw":"val inspect : t -> receipt","params":[{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-inspect"},{"id":"Libtmux_workspace.Execution.observation","publicId":"Libtmux_workspace.Execution.observation","qualifiedName":"Libtmux_workspace.Execution.observation","name":"observation","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":176,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":176,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n}","params":[]}],"slug":"libtmux_workspace-execution-observation"},{"id":"Libtmux_workspace.Execution.observation.certainty","publicId":"Libtmux_workspace.Execution.observation.certainty","name":"certainty","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"certainty : certainty;","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.observation","type":"certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","slug":"libtmux_workspace-execution-observation-certainty"},{"id":"Libtmux_workspace.Execution.observation.created","publicId":"Libtmux_workspace.Execution.observation.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.observation","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-observation-created"},{"id":"Libtmux_workspace.Execution.observation.unbound","publicId":"Libtmux_workspace.Execution.observation.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.observation","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-observation-unbound"},{"id":"Libtmux_workspace.Execution.receipt","publicId":"Libtmux_workspace.Execution.receipt","qualifiedName":"Libtmux_workspace.Execution.receipt","name":"receipt","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n}","params":[]}],"slug":"libtmux_workspace-execution-receipt"},{"id":"Libtmux_workspace.Execution.receipt.cleanup","publicId":"Libtmux_workspace.Execution.receipt.cleanup","name":"cleanup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup : cleanup Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"cleanup Iarray.t","qualifiedName":"Libtmux_workspace.Execution.cleanup","slug":"libtmux_workspace-execution-receipt-cleanup"},{"id":"Libtmux_workspace.Execution.receipt.cleanup_error","publicId":"Libtmux_workspace.Execution.receipt.cleanup_error","name":"cleanup_error","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup_error : Libtmux.Error.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_workspace.Execution.cleanup_error","slug":"libtmux_workspace-execution-receipt-cleanup_error"},{"id":"Libtmux_workspace.Execution.receipt.operation_id","publicId":"Libtmux_workspace.Execution.receipt.operation_id","name":"operation_id","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation_id : string;","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"string","qualifiedName":"Libtmux_workspace.Execution.operation_id","slug":"libtmux_workspace-execution-receipt-operation_id"},{"id":"Libtmux_workspace.Execution.receipt.source","publicId":"Libtmux_workspace.Execution.receipt.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":228,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":228,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-receipt-source"},{"id":"Libtmux_workspace.Execution.receipt.status","publicId":"Libtmux_workspace.Execution.receipt.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : status;","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-receipt-status"},{"id":"Libtmux_workspace.Execution.receipt.steps","publicId":"Libtmux_workspace.Execution.receipt.steps","name":"steps","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"steps : step Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"step Iarray.t","qualifiedName":"Libtmux_workspace.Execution.steps","slug":"libtmux_workspace-execution-receipt-steps"},{"id":"Libtmux_workspace.Execution.status","publicId":"Libtmux_workspace.Execution.status","qualifiedName":"Libtmux_workspace.Execution.status","name":"status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type status =\n Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","params":[]}],"slug":"libtmux_workspace-execution-status"},{"id":"Libtmux_workspace.Execution.status.Applying","publicId":"Libtmux_workspace.Execution.status.Applying","name":"Applying","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applying","source":{"file":"workspace/libtmux_workspace.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applying","slug":"libtmux_workspace-execution-status-applying"},{"id":"Libtmux_workspace.Execution.status.Interrupted","publicId":"Libtmux_workspace.Execution.status.Interrupted","name":"Interrupted","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Interrupted","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Interrupted","slug":"libtmux_workspace-execution-status-interrupted"},{"id":"Libtmux_workspace.Execution.status.Partial","publicId":"Libtmux_workspace.Execution.status.Partial","name":"Partial","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Partial","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Partial","slug":"libtmux_workspace-execution-status-partial"},{"id":"Libtmux_workspace.Execution.status.Queued","publicId":"Libtmux_workspace.Execution.status.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"workspace/libtmux_workspace.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Queued","slug":"libtmux_workspace-execution-status-queued"},{"id":"Libtmux_workspace.Execution.status.Rejected","publicId":"Libtmux_workspace.Execution.status.Rejected","name":"Rejected","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rejected of Plan.error","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Rejected","slug":"libtmux_workspace-execution-status-rejected"},{"id":"Libtmux_workspace.Execution.status.Succeeded","publicId":"Libtmux_workspace.Execution.status.Succeeded","name":"Succeeded","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Succeeded","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Succeeded","slug":"libtmux_workspace-execution-status-succeeded"},{"id":"Libtmux_workspace.Execution.status.Unavailable","publicId":"Libtmux_workspace.Execution.status.Unavailable","name":"Unavailable","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Unavailable","slug":"libtmux_workspace-execution-status-unavailable"},{"id":"Libtmux_workspace.Execution.step","publicId":"Libtmux_workspace.Execution.step","qualifiedName":"Libtmux_workspace.Execution.step","name":"step","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n}","params":[]}],"slug":"libtmux_workspace-execution-step"},{"id":"Libtmux_workspace.Execution.step.action","publicId":"Libtmux_workspace.Execution.step.action","name":"action","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"action : Plan.action;","source":{"file":"workspace/libtmux_workspace.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step","type":"Plan.action","qualifiedName":"Libtmux_workspace.Execution.action","slug":"libtmux_workspace-execution-step-action"},{"id":"Libtmux_workspace.Execution.step.created","publicId":"Libtmux_workspace.Execution.step.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-step-created"},{"id":"Libtmux_workspace.Execution.step.index","publicId":"Libtmux_workspace.Execution.step.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step","type":"int","qualifiedName":"Libtmux_workspace.Execution.index","slug":"libtmux_workspace-execution-step-index"},{"id":"Libtmux_workspace.Execution.step.status","publicId":"Libtmux_workspace.Execution.step.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : step_status;","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step","type":"step_status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-step-status"},{"id":"Libtmux_workspace.Execution.step.unbound","publicId":"Libtmux_workspace.Execution.step.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-step-unbound"},{"id":"Libtmux_workspace.Execution.step_status","publicId":"Libtmux_workspace.Execution.step_status","qualifiedName":"Libtmux_workspace.Execution.step_status","name":"step_status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":196,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":196,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step_status =\n Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","params":[]}],"slug":"libtmux_workspace-execution-step_status"},{"id":"Libtmux_workspace.Execution.step_status.Completed","publicId":"Libtmux_workspace.Execution.step_status.Completed","name":"Completed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Completed","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Completed","slug":"libtmux_workspace-execution-step_status-completed"},{"id":"Libtmux_workspace.Execution.step_status.Failed","publicId":"Libtmux_workspace.Execution.step_status.Failed","name":"Failed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Failed of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Failed","slug":"libtmux_workspace-execution-step_status-failed"},{"id":"Libtmux_workspace.Execution.step_status.Pending","publicId":"Libtmux_workspace.Execution.step_status.Pending","name":"Pending","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":197,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pending","source":{"file":"workspace/libtmux_workspace.mli","line":197,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Pending","slug":"libtmux_workspace-execution-step_status-pending"},{"id":"Libtmux_workspace.Execution.step_status.Running","publicId":"Libtmux_workspace.Execution.step_status.Running","name":"Running","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Running","source":{"file":"workspace/libtmux_workspace.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Running","slug":"libtmux_workspace-execution-step_status-running"},{"id":"Libtmux_workspace.Execution.step_status.Skipped","publicId":"Libtmux_workspace.Execution.step_status.Skipped","name":"Skipped","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Skipped","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Skipped","slug":"libtmux_workspace-execution-step_status-skipped"},{"id":"Libtmux_workspace.Execution.step_status.Uncertain","publicId":"Libtmux_workspace.Execution.step_status.Uncertain","name":"Uncertain","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Uncertain","slug":"libtmux_workspace-execution-step_status-uncertain"},{"id":"Libtmux_workspace.Execution.t","publicId":"Libtmux_workspace.Execution.t","qualifiedName":"Libtmux_workspace.Execution.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-execution-t"},{"id":"Libtmux_workspace.Plan","publicId":"Libtmux_workspace.Plan","qualifiedName":"Libtmux_workspace.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Preview ordered workspace actions against one observed daemon generation. A\n plan retains collision policy and bound targets; it is not a portable\n command script. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type server_policy = Create_if_missing | Require_existing_server\n type window_collision = Reject\n\n type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }\n\n type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale\n\n val pp_error : Format.formatter -> error -> unit\n\n type scope = Session | Window of int | Pane of { window : int; pane : int }\n\n type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t\n\n type t\n\n val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result\n (** [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. *)\n\n val endpoint : t -> Libtmux.Endpoint.t\n val source : t -> Libtmux.Source.t option\n val existing_session : t -> Libtmux.Session.target option\n val actions : t -> action Iarray.t\n val config : t -> Config.t\n\n val check_source : t -> Libtmux.Source.t option -> (unit, error) result\n (** Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace","doc":{"summary":"Preview ordered workspace actions against one observed daemon generation. A plan retains collision policy and bound targets; it is not a portable command script."},"slug":"libtmux_workspace-plan"},{"id":"Libtmux_workspace.Plan.action","publicId":"Libtmux_workspace.Plan.action","qualifiedName":"Libtmux_workspace.Plan.action","name":"action","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type action =\n Create_session of { bootstrap : bool; name : string;\n window_name : string; spawn : Libtmux.Spawn.t; width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t;\n }\n | Split_pane of { window : int; pane : int; spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string; }\n | Send_enter of { window : int; pane : int; }\n | Select_layout of int * Libtmux.Layout.t","params":[]}],"slug":"libtmux_workspace-plan-action"},{"id":"Libtmux_workspace.Plan.action.Create_session","publicId":"Libtmux_workspace.Plan.action.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_session","slug":"libtmux_workspace-plan-action-create_session"},{"id":"Libtmux_workspace.Plan.action.Create_session.bootstrap","publicId":"Libtmux_workspace.Plan.action.Create_session.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : bool;","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"bool","qualifiedName":"Libtmux_workspace.Plan.bootstrap","slug":"libtmux_workspace-plan-action-create_session-bootstrap"},{"id":"Libtmux_workspace.Plan.action.Create_session.height","publicId":"Libtmux_workspace.Plan.action.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.height","slug":"libtmux_workspace-plan-action-create_session-height"},{"id":"Libtmux_workspace.Plan.action.Create_session.name","publicId":"Libtmux_workspace.Plan.action.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_session-name"},{"id":"Libtmux_workspace.Plan.action.Create_session.spawn","publicId":"Libtmux_workspace.Plan.action.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_session-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_session.width","publicId":"Libtmux_workspace.Plan.action.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.width","slug":"libtmux_workspace-plan-action-create_session-width"},{"id":"Libtmux_workspace.Plan.action.Create_session.window_name","publicId":"Libtmux_workspace.Plan.action.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.window_name","slug":"libtmux_workspace-plan-action-create_session-window_name"},{"id":"Libtmux_workspace.Plan.action.Create_window","publicId":"Libtmux_workspace.Plan.action.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_window","slug":"libtmux_workspace-plan-action-create_window"},{"id":"Libtmux_workspace.Plan.action.Create_window.name","publicId":"Libtmux_workspace.Plan.action.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_window-name"},{"id":"Libtmux_workspace.Plan.action.Create_window.spawn","publicId":"Libtmux_workspace.Plan.action.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_window-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_window.window","publicId":"Libtmux_workspace.Plan.action.Create_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-create_window-window"},{"id":"Libtmux_workspace.Plan.action.Select_layout","publicId":"Libtmux_workspace.Plan.action.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Select_layout","slug":"libtmux_workspace-plan-action-select_layout"},{"id":"Libtmux_workspace.Plan.action.Send_enter","publicId":"Libtmux_workspace.Plan.action.Send_enter","name":"Send_enter","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_enter of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_enter","slug":"libtmux_workspace-plan-action-send_enter"},{"id":"Libtmux_workspace.Plan.action.Send_enter.pane","publicId":"Libtmux_workspace.Plan.action.Send_enter.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_enter-pane"},{"id":"Libtmux_workspace.Plan.action.Send_enter.window","publicId":"Libtmux_workspace.Plan.action.Send_enter.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_enter-window"},{"id":"Libtmux_workspace.Plan.action.Send_text","publicId":"Libtmux_workspace.Plan.action.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text of { window : int; pane : int; text : string }","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_text","slug":"libtmux_workspace-plan-action-send_text"},{"id":"Libtmux_workspace.Plan.action.Send_text.pane","publicId":"Libtmux_workspace.Plan.action.Send_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_text-pane"},{"id":"Libtmux_workspace.Plan.action.Send_text.text","publicId":"Libtmux_workspace.Plan.action.Send_text.text","name":"text","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"text : string","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"string","qualifiedName":"Libtmux_workspace.Plan.text","slug":"libtmux_workspace-plan-action-send_text-text"},{"id":"Libtmux_workspace.Plan.action.Send_text.window","publicId":"Libtmux_workspace.Plan.action.Send_text.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_text-window"},{"id":"Libtmux_workspace.Plan.action.Set_environment","publicId":"Libtmux_workspace.Plan.action.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of string * string","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_environment","slug":"libtmux_workspace-plan-action-set_environment"},{"id":"Libtmux_workspace.Plan.action.Set_option","publicId":"Libtmux_workspace.Plan.action.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of scope * Config.setting","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_option","slug":"libtmux_workspace-plan-action-set_option"},{"id":"Libtmux_workspace.Plan.action.Split_pane","publicId":"Libtmux_workspace.Plan.action.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Split_pane","slug":"libtmux_workspace-plan-action-split_pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.direction","publicId":"Libtmux_workspace.Plan.action.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Plan.direction","slug":"libtmux_workspace-plan-action-split_pane-direction"},{"id":"Libtmux_workspace.Plan.action.Split_pane.pane","publicId":"Libtmux_workspace.Plan.action.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-split_pane-pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.size","publicId":"Libtmux_workspace.Plan.action.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Plan.size","slug":"libtmux_workspace-plan-action-split_pane-size"},{"id":"Libtmux_workspace.Plan.action.Split_pane.spawn","publicId":"Libtmux_workspace.Plan.action.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-split_pane-spawn"},{"id":"Libtmux_workspace.Plan.action.Split_pane.window","publicId":"Libtmux_workspace.Plan.action.Split_pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-split_pane-window"},{"id":"Libtmux_workspace.Plan.actions","publicId":"Libtmux_workspace.Plan.actions","qualifiedName":"Libtmux_workspace.Plan.actions","name":"actions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val actions : t -> action Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val actions : t -> action Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"action Iarray.t"}],"slug":"libtmux_workspace-plan-actions"},{"id":"Libtmux_workspace.Plan.check_source","publicId":"Libtmux_workspace.Plan.check_source","qualifiedName":"Libtmux_workspace.Plan.check_source","name":"check_source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. "],"declarations":[{"kind":"function","text":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"Operational plans are ephemeral and bound to one connection generation. A printed or serialized preview cannot supply operational targets."},"signatures":[{"raw":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Source.t option"}],"returns":"(unit, error) result"}],"slug":"libtmux_workspace-plan-check_source"},{"id":"Libtmux_workspace.Plan.collision_policy","publicId":"Libtmux_workspace.Plan.collision_policy","qualifiedName":"Libtmux_workspace.Plan.collision_policy","name":"collision_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type collision_policy =\n Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision; }","params":[]}],"slug":"libtmux_workspace-plan-collision_policy"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","name":"Append_new_windows","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Append_new_windows","slug":"libtmux_workspace-plan-collision_policy-append_new_windows"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","name":"window_collision","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_collision : window_collision","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","type":"window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","slug":"libtmux_workspace-plan-collision_policy-append_new_windows-window_collision"},{"id":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","publicId":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","name":"Fail_if_session_exists","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Fail_if_session_exists","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Fail_if_session_exists","slug":"libtmux_workspace-plan-collision_policy-fail_if_session_exists"},{"id":"Libtmux_workspace.Plan.config","publicId":"Libtmux_workspace.Plan.config","qualifiedName":"Libtmux_workspace.Plan.config","name":"config","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val config : t -> Config.t","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val config : t -> Config.t","params":[{"name":"arg1","type":"t"}],"returns":"Config.t"}],"slug":"libtmux_workspace-plan-config"},{"id":"Libtmux_workspace.Plan.endpoint","publicId":"Libtmux_workspace.Plan.endpoint","qualifiedName":"Libtmux_workspace.Plan.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Libtmux.Endpoint.t","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val endpoint : t -> Libtmux.Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Endpoint.t"}],"slug":"libtmux_workspace-plan-endpoint"},{"id":"Libtmux_workspace.Plan.error","publicId":"Libtmux_workspace.Plan.error","qualifiedName":"Libtmux_workspace.Plan.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type error =\n Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","params":[]}],"slug":"libtmux_workspace-plan-error"},{"id":"Libtmux_workspace.Plan.error.Append_session_options","publicId":"Libtmux_workspace.Plan.error.Append_session_options","name":"Append_session_options","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_session_options","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Append_session_options","slug":"libtmux_workspace-plan-error-append_session_options"},{"id":"Libtmux_workspace.Plan.error.Missing_endpoint","publicId":"Libtmux_workspace.Plan.error.Missing_endpoint","name":"Missing_endpoint","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing_endpoint","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Missing_endpoint","slug":"libtmux_workspace-plan-error-missing_endpoint"},{"id":"Libtmux_workspace.Plan.error.Session_conflict","publicId":"Libtmux_workspace.Plan.error.Session_conflict","name":"Session_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Session_conflict","slug":"libtmux_workspace-plan-error-session_conflict"},{"id":"Libtmux_workspace.Plan.error.Stale","publicId":"Libtmux_workspace.Plan.error.Stale","name":"Stale","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Stale","slug":"libtmux_workspace-plan-error-stale"},{"id":"Libtmux_workspace.Plan.error.Too_many_steps","publicId":"Libtmux_workspace.Plan.error.Too_many_steps","name":"Too_many_steps","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Too_many_steps","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Too_many_steps","slug":"libtmux_workspace-plan-error-too_many_steps"},{"id":"Libtmux_workspace.Plan.error.Unsupported_setting","publicId":"Libtmux_workspace.Plan.error.Unsupported_setting","name":"Unsupported_setting","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_setting of Config.error","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Unsupported_setting","slug":"libtmux_workspace-plan-error-unsupported_setting"},{"id":"Libtmux_workspace.Plan.error.Window_conflict","publicId":"Libtmux_workspace.Plan.error.Window_conflict","name":"Window_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window_conflict","slug":"libtmux_workspace-plan-error-window_conflict"},{"id":"Libtmux_workspace.Plan.existing_session","publicId":"Libtmux_workspace.Plan.existing_session","qualifiedName":"Libtmux_workspace.Plan.existing_session","name":"existing_session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val existing_session : t -> Libtmux.Session.target option","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val existing_session : t -> Libtmux.Session.target option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Session.target option"}],"slug":"libtmux_workspace-plan-existing_session"},{"id":"Libtmux_workspace.Plan.make","publicId":"Libtmux_workspace.Plan.make","qualifiedName":"Libtmux_workspace.Plan.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. "],"declarations":[{"kind":"function","text":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"`None` means an explicitly observed missing endpoint. It is not an empty successful snapshot. A plan does not start a server. Append rejects any existing requested window name and never changes session options. `version` selects the generated option catalog."},"signatures":[{"raw":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option -> Config.t -> (t, error) result","params":[{"name":"server_policy","type":"server_policy","optional":true,"keywordOnly":true},{"name":"collision_policy","type":"collision_policy","optional":true,"keywordOnly":true},{"name":"endpoint","type":"Libtmux.Endpoint.t","keywordOnly":true},{"name":"version","type":"string","keywordOnly":true},{"name":"observed","type":"Libtmux.Snapshot.t option","keywordOnly":true},{"name":"arg1","type":"Config.t"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-plan-make"},{"id":"Libtmux_workspace.Plan.pp_error","publicId":"Libtmux_workspace.Plan.pp_error","qualifiedName":"Libtmux_workspace.Plan.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-plan-pp_error"},{"id":"Libtmux_workspace.Plan.scope","publicId":"Libtmux_workspace.Plan.scope","qualifiedName":"Libtmux_workspace.Plan.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Session | Window of int | Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type scope = Session | Window of int | Pane of { window : int; pane : int; }","params":[]}],"slug":"libtmux_workspace-plan-scope"},{"id":"Libtmux_workspace.Plan.scope.Pane","publicId":"Libtmux_workspace.Plan.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Pane","slug":"libtmux_workspace-plan-scope-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.pane","publicId":"Libtmux_workspace.Plan.scope.Pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-scope-pane-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.window","publicId":"Libtmux_workspace.Plan.scope.Pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-scope-pane-window"},{"id":"Libtmux_workspace.Plan.scope.Session","publicId":"Libtmux_workspace.Plan.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Session","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Session","slug":"libtmux_workspace-plan-scope-session"},{"id":"Libtmux_workspace.Plan.scope.Window","publicId":"Libtmux_workspace.Plan.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window","slug":"libtmux_workspace-plan-scope-window"},{"id":"Libtmux_workspace.Plan.server_policy","publicId":"Libtmux_workspace.Plan.server_policy","qualifiedName":"Libtmux_workspace.Plan.server_policy","name":"server_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type server_policy = Create_if_missing | Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type server_policy = Create_if_missing | Require_existing_server","params":[]}],"slug":"libtmux_workspace-plan-server_policy"},{"id":"Libtmux_workspace.Plan.server_policy.Create_if_missing","publicId":"Libtmux_workspace.Plan.server_policy.Create_if_missing","name":"Create_if_missing","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Create_if_missing","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Create_if_missing","slug":"libtmux_workspace-plan-server_policy-create_if_missing"},{"id":"Libtmux_workspace.Plan.server_policy.Require_existing_server","publicId":"Libtmux_workspace.Plan.server_policy.Require_existing_server","name":"Require_existing_server","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Require_existing_server","slug":"libtmux_workspace-plan-server_policy-require_existing_server"},{"id":"Libtmux_workspace.Plan.source","publicId":"Libtmux_workspace.Plan.source","qualifiedName":"Libtmux_workspace.Plan.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t option","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val source : t -> Libtmux.Source.t option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t option"}],"slug":"libtmux_workspace-plan-source"},{"id":"Libtmux_workspace.Plan.t","publicId":"Libtmux_workspace.Plan.t","qualifiedName":"Libtmux_workspace.Plan.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-plan-t"},{"id":"Libtmux_workspace.Plan.window_collision","publicId":"Libtmux_workspace.Plan.window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","name":"window_collision","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type window_collision = Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type window_collision = Reject","params":[]}],"slug":"libtmux_workspace-plan-window_collision"},{"id":"Libtmux_workspace.Plan.window_collision.Reject","publicId":"Libtmux_workspace.Plan.window_collision.Reject","name":"Reject","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.window_collision","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Reject","slug":"libtmux_workspace-plan-window_collision-reject"}]} diff --git a/site/src/data/api/ocaml.paths.json b/site/src/data/api/ocaml.paths.json index 3bcb8f036..0ea6a09a5 100644 --- a/site/src/data/api/ocaml.paths.json +++ b/site/src/data/api/ocaml.paths.json @@ -1 +1 @@ -{"port":"ocaml","repo":"libtmux/libtmux-ocaml","revision":"a111168bceee2085f0cee5efe784d8f446011ba1","paths":[".github/CONTRIBUTING.md",".github/WRITING.md",".github/actions/build-tmux/action.yml",".github/scripts/tmux_build.py",".github/social-preview.png",".github/tmux-releases.toml",".github/workflows/docs.yml",".github/workflows/ocaml.yml",".gitignore",".ocamlformat",".tool-versions","AGENTS.md","CHANGELOG.md","CLAUDE.md","LICENSE","README.md","bench/capture.ml","bench/capture.py","bench/concurrency.ml","bench/concurrency.py","bench/dune","bench/results/capture-3.3-4x4.json","bench/results/capture-3.3.json","bench/results/capture-3.3a-4x4.json","bench/results/capture-3.3a.json","bench/results/capture-3.4-4x4.json","bench/results/capture-3.4.json","bench/results/capture-3.8-16x16.json","bench/results/capture-3.8-1x1.json","bench/results/capture-3.8-4x4.json","bench/results/capture-3.8-8x8.json","bench/results/capture-3.8.json","bench/results/concurrency-3.3-c8.json","bench/results/concurrency-3.3a-c8.json","bench/results/concurrency-3.4-c8.json","bench/results/concurrency-3.8-c1.json","bench/results/concurrency-3.8-c16.json","bench/results/concurrency-3.8-c64.json","bench/results/concurrency-3.8-c8.json","catalog/fields.json","catalog/formats.json","catalog/operations.json","catalog/options.json","cli/CHANGELOG.md","cli/dune","cli/main.ml","cli/runtime.ml","docs/README.md","docs/api.md","docs/assets/app-icon-1024-dark.png","docs/assets/app-icon-1024-light.png","docs/assets/apple-touch-icon-dark.png","docs/assets/apple-touch-icon-light.png","docs/assets/browserconfig-dark.xml","docs/assets/browserconfig.xml","docs/assets/favicon.ico","docs/assets/logo-1024.png","docs/assets/logo-128.png","docs/assets/logo-144.png","docs/assets/logo-152.png","docs/assets/logo-16.png","docs/assets/logo-167.png","docs/assets/logo-180.png","docs/assets/logo-192.png","docs/assets/logo-24.png","docs/assets/logo-256.png","docs/assets/logo-32.png","docs/assets/logo-384.png","docs/assets/logo-48.png","docs/assets/logo-512.png","docs/assets/logo-64.png","docs/assets/logo-96.png","docs/assets/logo.svg","docs/assets/maskable-192-dark.png","docs/assets/maskable-192-light.png","docs/assets/maskable-512-dark.png","docs/assets/maskable-512-light.png","docs/assets/mstile-150-dark.png","docs/assets/mstile-150-light.png","docs/assets/mstile-310-dark.png","docs/assets/mstile-310-light.png","docs/assets/opengraph-dark.jpg","docs/assets/opengraph-dark.png","docs/assets/opengraph-light.jpg","docs/assets/opengraph-light.png","docs/assets/safari-pinned-tab.svg","docs/assets/site-dark.webmanifest","docs/assets/site.webmanifest","docs/assets/social-square-dark.png","docs/assets/social-square-light.png","docs/assets/source.json","docs/assets/twitter-dark.png","docs/assets/twitter-light.png","docs/benchmarking.md","docs/branding.md","docs/compatibility.md","docs/control.md","docs/fields.md","docs/formats.md","docs/getting-started.md","docs/graph.md","docs/operations.md","docs/options.md","docs/packages.md","docs/queries.md","docs/recovery.md","docs/showcases.md","docs/status.md","docs/streaming.md","docs/testing.md","docs/workspaces.md","dune","dune-project","eio/CHANGELOG.md","eio/dune","eio/generated_operations.ml","eio/index.mld","eio/libtmux_eio.ml","eio/libtmux_eio.mli","examples/dune","examples/native_build.ml","examples/native_capture.ml","examples/native_graph.ml","examples/native_query.ml","examples/native_recovery.ml","examples/native_wait.ml","examples/native_watch.ml","examples/showcase.json","examples/showcase_create_window.ml","examples/showcase_graph.ml","examples/showcase_layout.ml","examples/showcase_move_window.ml","examples/showcase_rename_window.ml","examples/showcase_send_keys.ml","examples/showcase_watch.ml","examples/workspace/project.json","json/CHANGELOG.md","json/document.ml","json/dune","json/index.mld","json/libtmux_json.ml","json/libtmux_json.mli","json/workspace_json.ml","json/workspace_output.ml","lib/CHANGELOG.md","lib/commands.ml","lib/dune","lib/endpoint.ml","lib/error.ml","lib/filter.ml","lib/format_catalog.ml","lib/formats.ml","lib/generated_fields.ml","lib/graph.ml","lib/index.mld","lib/libtmux.ml","lib/libtmux.mli","lib/option_catalog.ml","lib/options.ml","lib/output.ml","lib/planner.ml","lib/protocol.ml","libtmux-eio.opam","libtmux-json.opam","libtmux-unix.opam","libtmux-workspace-cli.opam","libtmux-workspace.opam","libtmux.opam","test/api_export_test.py","test/binding_peer.ml","test/binding_test.py","test/blocking_cancel_peer.ml","test/blocking_peer.ml","test/blocking_test.py","test/bootstrap_peer.ml","test/bootstrap_test.py","test/capture_cancel_peer.ml","test/capture_cancel_test.py","test/capture_peer.ml","test/capture_proxy.py","test/capture_test.py","test/client_operations_peer.ml","test/client_operations_test.py","test/codec_peer.ml","test/conformance/FilterPeer.java","test/conformance/cases.json","test/conformance/dune","test/conformance/filter_peer.ml","test/conformance/run.py","test/core_test.ml","test/diagnostics_expect.ml","test/dune","test/eio_peer.ml","test/eio_test.py","test/environment_peer.ml","test/environment_test.py","test/fixture_test.py","test/installed_consumer.py","test/json_test.ml","test/model_fixture.ml","test/model_test.ml","test/native_suite.py","test/operations_peer.ml","test/operations_test.py","test/options_peer.ml","test/options_test.py","test/pid_race_peer.ml","test/pid_race_test.py","test/pid_race_tmux.py","test/plan_peer.ml","test/plan_test.py","test/protocol_test.ml","test/protocol_test.py","test/query_test.ml","test/read_process_peer.ml","test/read_process_proxy.py","test/read_process_test.py","test/runtime_test.ml","test/showcase_test.py","test/stream_fault_peer.ml","test/stream_fault_test.py","test/streaming_peer.ml","test/streaming_test.py","test/support/readme_walkthrough.py","test/support/tmux_fixture.py","test/terminal_peer.ml","test/terminal_test.py","test/tmux_cache_test.py","test/type_test.py","test/workspace_cli_test.py","test/workspace_docs_test.py","test/workspace_document_test.py","test/workspace_eio_peer.ml","test/workspace_json_test.ml","test/workspace_pane_ready.ml","test/workspace_peer.ml","test/workspace_scenarios.ml","test/workspace_test.ml","test/workspace_test.py","tools/api_doc.ml","tools/api_export.ml","tools/api_modules.json","tools/check.py","tools/docs_snippets.py","tools/dune","tools/export_api.py","tools/generate_fields.py","tools/generate_formats.py","tools/generate_operations.py","tools/generate_options.py","tools/setup_tmux.py","unix/CHANGELOG.md","unix/acquisition.ml","unix/bootstrap.ml","unix/byte_pattern.ml","unix/cancellation.ml","unix/capture_file.ml","unix/command_encoding.ml","unix/connection.ml","unix/dune","unix/engine.ml","unix/environment_io.ml","unix/generated_operations.ml","unix/index.mld","unix/libtmux_unix.ml","unix/libtmux_unix.mli","unix/linux.ml","unix/linux_stubs.c","unix/observation_wait.ml","unix/options_io.ml","unix/read_process.ml","unix/rendered.ml","unix/runtime_io.ml","unix/streaming.ml","unix/terminal.ml","unix/workspace_runner.ml","workspace/CHANGELOG.md","workspace/README.md","workspace/assets/app-icon-1024-dark.png","workspace/assets/app-icon-1024-light.png","workspace/assets/apple-touch-icon-dark.png","workspace/assets/apple-touch-icon-light.png","workspace/assets/browserconfig-dark.xml","workspace/assets/browserconfig.xml","workspace/assets/favicon.ico","workspace/assets/logo-1024.png","workspace/assets/logo-128.png","workspace/assets/logo-144.png","workspace/assets/logo-152.png","workspace/assets/logo-16.png","workspace/assets/logo-167.png","workspace/assets/logo-180.png","workspace/assets/logo-192.png","workspace/assets/logo-24.png","workspace/assets/logo-256.png","workspace/assets/logo-32.png","workspace/assets/logo-384.png","workspace/assets/logo-48.png","workspace/assets/logo-512.png","workspace/assets/logo-64.png","workspace/assets/logo-96.png","workspace/assets/logo.svg","workspace/assets/maskable-192-dark.png","workspace/assets/maskable-192-light.png","workspace/assets/maskable-512-dark.png","workspace/assets/maskable-512-light.png","workspace/assets/mstile-150-dark.png","workspace/assets/mstile-150-light.png","workspace/assets/mstile-310-dark.png","workspace/assets/mstile-310-light.png","workspace/assets/opengraph-dark.jpg","workspace/assets/opengraph-dark.png","workspace/assets/opengraph-light.jpg","workspace/assets/opengraph-light.png","workspace/assets/safari-pinned-tab.svg","workspace/assets/site-dark.webmanifest","workspace/assets/site.webmanifest","workspace/assets/social-square-dark.png","workspace/assets/social-square-light.png","workspace/assets/source.json","workspace/assets/twitter-dark.png","workspace/assets/twitter-light.png","workspace/config.ml","workspace/dune","workspace/execution.ml","workspace/index.mld","workspace/libtmux_workspace.ml","workspace/libtmux_workspace.mli","workspace/plan.ml"]} +{"port":"ocaml","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","paths":[".github/CONTRIBUTING.md",".github/WRITING.md",".github/actions/build-tmux/action.yml",".github/scripts/tmux_build.py",".github/social-preview.png",".github/tmux-releases.toml",".github/workflows/docs.yml",".github/workflows/ocaml.yml",".gitignore",".ocamlformat",".tool-versions","AGENTS.md","CHANGELOG.md","CLAUDE.md","LICENSE","README.md","bench/capture.ml","bench/capture.py","bench/concurrency.ml","bench/concurrency.py","bench/dune","bench/mixed.ml","bench/mixed.py","bench/results/capture-3.3-4x4.json","bench/results/capture-3.3.json","bench/results/capture-3.3a-4x4.json","bench/results/capture-3.3a.json","bench/results/capture-3.4-4x4.json","bench/results/capture-3.4.json","bench/results/capture-3.8-16x16.json","bench/results/capture-3.8-1x1.json","bench/results/capture-3.8-4x4.json","bench/results/capture-3.8-8x8.json","bench/results/capture-3.8.json","bench/results/concurrency-3.3-c8.json","bench/results/concurrency-3.3a-c8.json","bench/results/concurrency-3.4-c8.json","bench/results/concurrency-3.8-c1.json","bench/results/concurrency-3.8-c16.json","bench/results/concurrency-3.8-c64.json","bench/results/concurrency-3.8-c8.json","bench/results/mixed-20261108.json","bench/results/mixed-3.3-current-20261108.json.gz","bench/results/mixed-3.3-qualified-20261108.json.gz","bench/results/mixed-3.3a-current-20261108.json.gz","bench/results/mixed-3.4-crash-analysis-20261108.json","bench/results/mixed-3.4-qualified-20261108.json.gz","bench/results/mixed-3.8-current-20261108.json.gz","bench/results/mixed-3.8-current-interrupted-20261108.json.gz","catalog/fields.json","catalog/formats.json","catalog/operations.json","catalog/options.json","cli/CHANGELOG.md","cli/dune","cli/main.ml","cli/runtime.ml","docs/README.md","docs/api.md","docs/assets/app-icon-1024-dark.png","docs/assets/app-icon-1024-light.png","docs/assets/apple-touch-icon-dark.png","docs/assets/apple-touch-icon-light.png","docs/assets/browserconfig-dark.xml","docs/assets/browserconfig.xml","docs/assets/favicon.ico","docs/assets/logo-1024.png","docs/assets/logo-128.png","docs/assets/logo-144.png","docs/assets/logo-152.png","docs/assets/logo-16.png","docs/assets/logo-167.png","docs/assets/logo-180.png","docs/assets/logo-192.png","docs/assets/logo-24.png","docs/assets/logo-256.png","docs/assets/logo-32.png","docs/assets/logo-384.png","docs/assets/logo-48.png","docs/assets/logo-512.png","docs/assets/logo-64.png","docs/assets/logo-96.png","docs/assets/logo.svg","docs/assets/maskable-192-dark.png","docs/assets/maskable-192-light.png","docs/assets/maskable-512-dark.png","docs/assets/maskable-512-light.png","docs/assets/mstile-150-dark.png","docs/assets/mstile-150-light.png","docs/assets/mstile-310-dark.png","docs/assets/mstile-310-light.png","docs/assets/opengraph-dark.jpg","docs/assets/opengraph-dark.png","docs/assets/opengraph-light.jpg","docs/assets/opengraph-light.png","docs/assets/safari-pinned-tab.svg","docs/assets/site-dark.webmanifest","docs/assets/site.webmanifest","docs/assets/social-square-dark.png","docs/assets/social-square-light.png","docs/assets/source.json","docs/assets/twitter-dark.png","docs/assets/twitter-light.png","docs/benchmarking.md","docs/branding.md","docs/compatibility.md","docs/control.md","docs/fields.md","docs/formats.md","docs/getting-started.md","docs/graph.md","docs/operations.md","docs/options.md","docs/packages.md","docs/queries.md","docs/recovery.md","docs/showcases.md","docs/status.md","docs/streaming.md","docs/testing.md","docs/workspaces.md","dune","dune-project","eio/CHANGELOG.md","eio/dune","eio/generated_operations.ml","eio/index.mld","eio/libtmux_eio.ml","eio/libtmux_eio.mli","examples/dune","examples/native_build.ml","examples/native_capture.ml","examples/native_graph.ml","examples/native_query.ml","examples/native_recovery.ml","examples/native_wait.ml","examples/native_watch.ml","examples/showcase.json","examples/showcase_create_window.ml","examples/showcase_graph.ml","examples/showcase_layout.ml","examples/showcase_move_window.ml","examples/showcase_rename_window.ml","examples/showcase_send_keys.ml","examples/showcase_watch.ml","examples/workspace/project.json","json/CHANGELOG.md","json/document.ml","json/dune","json/index.mld","json/libtmux_json.ml","json/libtmux_json.mli","json/workspace_json.ml","json/workspace_output.ml","lib/CHANGELOG.md","lib/commands.ml","lib/dune","lib/endpoint.ml","lib/error.ml","lib/filter.ml","lib/format_catalog.ml","lib/formats.ml","lib/generated_fields.ml","lib/graph.ml","lib/index.mld","lib/libtmux.ml","lib/libtmux.mli","lib/option_catalog.ml","lib/options.ml","lib/output.ml","lib/planner.ml","lib/protocol.ml","libtmux-eio.opam","libtmux-json.opam","libtmux-unix.opam","libtmux-workspace-cli.opam","libtmux-workspace.opam","libtmux.opam","test/api_export_test.py","test/binding_peer.ml","test/binding_test.py","test/blocking_cancel_peer.ml","test/blocking_peer.ml","test/blocking_test.py","test/bootstrap_peer.ml","test/bootstrap_test.py","test/capture_cancel_peer.ml","test/capture_cancel_test.py","test/capture_peer.ml","test/capture_proxy.py","test/capture_test.py","test/client_operations_peer.ml","test/client_operations_test.py","test/codec_peer.ml","test/conformance/FilterPeer.java","test/conformance/cases.json","test/conformance/dune","test/conformance/filter_peer.ml","test/conformance/run.py","test/core_test.ml","test/diagnostics_expect.ml","test/dune","test/eio_peer.ml","test/eio_test.py","test/environment_peer.ml","test/environment_test.py","test/fixture_test.py","test/installed_consumer.py","test/json_test.ml","test/model_fixture.ml","test/model_test.ml","test/native_suite.py","test/operations_peer.ml","test/operations_test.py","test/options_peer.ml","test/options_test.py","test/pid_race_peer.ml","test/pid_race_test.py","test/pid_race_tmux.py","test/plan_peer.ml","test/plan_test.py","test/protocol_test.ml","test/protocol_test.py","test/query_test.ml","test/read_process_peer.ml","test/read_process_proxy.py","test/read_process_test.py","test/runtime_test.ml","test/showcase_test.py","test/stream_fault_peer.ml","test/stream_fault_test.py","test/streaming_peer.ml","test/streaming_test.py","test/support/readme_walkthrough.py","test/support/tmux_fixture.py","test/terminal_peer.ml","test/terminal_test.py","test/tmux_cache_test.py","test/type_test.py","test/workspace_cli_test.py","test/workspace_docs_test.py","test/workspace_document_test.py","test/workspace_eio_peer.ml","test/workspace_json_test.ml","test/workspace_pane_ready.ml","test/workspace_peer.ml","test/workspace_scenarios.ml","test/workspace_test.ml","test/workspace_test.py","tools/api_doc.ml","tools/api_export.ml","tools/api_modules.json","tools/check.py","tools/docs_snippets.py","tools/dune","tools/export_api.py","tools/generate_fields.py","tools/generate_formats.py","tools/generate_operations.py","tools/generate_options.py","tools/setup_tmux.py","unix/CHANGELOG.md","unix/acquisition.ml","unix/bootstrap.ml","unix/byte_pattern.ml","unix/cancellation.ml","unix/capture_file.ml","unix/command_encoding.ml","unix/connection.ml","unix/dune","unix/engine.ml","unix/environment_io.ml","unix/generated_operations.ml","unix/index.mld","unix/libtmux_unix.ml","unix/libtmux_unix.mli","unix/linux.ml","unix/linux_stubs.c","unix/observation_wait.ml","unix/options_io.ml","unix/read_process.ml","unix/rendered.ml","unix/runtime_io.ml","unix/streaming.ml","unix/terminal.ml","unix/workspace_runner.ml","workspace/CHANGELOG.md","workspace/README.md","workspace/assets/app-icon-1024-dark.png","workspace/assets/app-icon-1024-light.png","workspace/assets/apple-touch-icon-dark.png","workspace/assets/apple-touch-icon-light.png","workspace/assets/browserconfig-dark.xml","workspace/assets/browserconfig.xml","workspace/assets/favicon.ico","workspace/assets/logo-1024.png","workspace/assets/logo-128.png","workspace/assets/logo-144.png","workspace/assets/logo-152.png","workspace/assets/logo-16.png","workspace/assets/logo-167.png","workspace/assets/logo-180.png","workspace/assets/logo-192.png","workspace/assets/logo-24.png","workspace/assets/logo-256.png","workspace/assets/logo-32.png","workspace/assets/logo-384.png","workspace/assets/logo-48.png","workspace/assets/logo-512.png","workspace/assets/logo-64.png","workspace/assets/logo-96.png","workspace/assets/logo.svg","workspace/assets/maskable-192-dark.png","workspace/assets/maskable-192-light.png","workspace/assets/maskable-512-dark.png","workspace/assets/maskable-512-light.png","workspace/assets/mstile-150-dark.png","workspace/assets/mstile-150-light.png","workspace/assets/mstile-310-dark.png","workspace/assets/mstile-310-light.png","workspace/assets/opengraph-dark.jpg","workspace/assets/opengraph-dark.png","workspace/assets/opengraph-light.jpg","workspace/assets/opengraph-light.png","workspace/assets/safari-pinned-tab.svg","workspace/assets/site-dark.webmanifest","workspace/assets/site.webmanifest","workspace/assets/social-square-dark.png","workspace/assets/social-square-light.png","workspace/assets/source.json","workspace/assets/twitter-dark.png","workspace/assets/twitter-light.png","workspace/config.ml","workspace/dune","workspace/execution.ml","workspace/index.mld","workspace/libtmux_workspace.ml","workspace/libtmux_workspace.mli","workspace/plan.ml"]} diff --git a/site/src/data/example-sources.json b/site/src/data/example-sources.json index 3c9a46ba9..7b30c5641 100644 --- a/site/src/data/example-sources.json +++ b/site/src/data/example-sources.json @@ -151,61 +151,61 @@ }, "ocaml:examples/showcase_create_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", "sha256": "ea2d5ff182bb80b2f8115d4d2c43cf8e32f7989626fa9d6dfda666b76dc8217b", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n" }, "ocaml:examples/showcase_graph.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" }, "ocaml:examples/showcase_layout.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", "sha256": "dca905f7b9b91858ec642fa21c2bd7c544f3a7684223f7fafd5a46f2b997cfd0", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n" }, "ocaml:examples/showcase_move_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", "sha256": "da767e573f7188350a328c78b9417610a2bc62992e1892b501435a6328e21cc5", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n" }, "ocaml:examples/showcase_rename_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", "sha256": "8722c7cd933fa53a18b41b5fb2de7d6a99fcfa1f70e8c14164c85bebf9efc6d5", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n" }, "ocaml:examples/showcase_send_keys.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", "sha256": "680f6772040e12a16b93bd0c6d582d0a5e8f4e70de303372ba924be6e0237f09", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n" }, "ocaml:examples/showcase_watch.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", "sha256": "98fa6d843a98a4d98bbdd398108704805e852a262df0e54b43c08d3f2e299f8f", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n" }, "ocaml:examples/showcase.json": { "repository": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", "sha256": "178ca9f8e940cd9d4d893940089c2e0212e58dfea54b22e2eb7fb44131d5c9ef", "content": "{\n \"schema\": \"libtmux.showcase/1\",\n \"tmux_floor\": \"3.3\",\n \"ci\": {\n \"workflow\": \".github/workflows/ocaml.yml\",\n \"job\": \"native\",\n \"runner\": \"test/showcase_test.py\"\n },\n \"examples\": [\n {\n \"capability\": \"graph\",\n \"title\": \"Navigate the typed object graph\",\n \"file\": \"examples/showcase_graph.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_graph.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"graph: 2 sessions, 2 windows, 3 links, 2 panes\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"watch\",\n \"title\": \"Observe future output with Eio\",\n \"file\": \"examples/showcase_watch.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_watch.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"observed: changed\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"send-keys\",\n \"title\": \"Send literal input and keys\",\n \"file\": \"examples/showcase_send_keys.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_send_keys.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"sent: literal: $HOME; #{pane_id}\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"rename-window\",\n \"title\": \"Rename a window\",\n \"file\": \"examples/showcase_rename_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_rename_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"renamed: editor-main\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"create-window\",\n \"title\": \"Create a window\",\n \"file\": \"examples/showcase_create_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_create_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"created: logs\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"move-window\",\n \"title\": \"Move a window between sessions\",\n \"file\": \"examples/showcase_move_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_move_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"moved: build at 7\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"layout\",\n \"title\": \"Apply a layout\",\n \"file\": \"examples/showcase_layout.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_layout.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"layout: 3 horizontal panes\",\n \"success_exit_code\": 0\n }\n ]\n}\n" }, "ocaml:test/showcase_test.py": { "repository": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", "sha256": "17ff54eaa950f1d9a2d64b7386b456bf2a01b20209c9c7e49bcd0b990c8b4f8a", "content": "\"\"\"Outer: compile whole showcase programs against installed packages and run their entry points.\"\"\"\nimport ctypes\nimport json\nimport os\nfrom pathlib import Path\nimport selectors\nimport shutil\nimport signal\nimport subprocess\nimport sys\nimport tempfile\n\nroot = Path(__file__).resolve().parents[1]\nmanifest = json.loads((root / \"examples/showcase.json\").read_text())\nprograms = {}\nfor entry in manifest[\"examples\"]:\n path = (root / entry[\"file\"]).resolve()\n assert path.parent == root / \"examples\" and path.suffix == \".ml\"\n assert entry[\"whole_file\"] and entry[\"success_exit_code\"] == 0\n executable = str(Path(entry[\"file\"]).with_suffix(\".exe\"))\n assert entry[\"command\"] == [\"opam\", \"exec\", \"--\", \"dune\", \"exec\", executable, \"--\", \"tmux\"], \\\n \"showcase command does not execute its recorded source\"\n assert path.stem not in programs, \"duplicate showcase program\"\n programs[path.stem] = entry\nlibc = ctypes.CDLL(None, use_errno=True)\nif libc.prctl(36, 1, 0, 0, 0):\n raise OSError(ctypes.get_errno(), \"PR_SET_CHILD_SUBREAPER\")\nchild_file = Path(f\"/proc/self/task/{os.getpid()}/children\")\n\n\ndef children():\n return set(map(int, child_file.read_text().split()))\n\n\nwith tempfile.TemporaryDirectory(prefix=\"libtmux-ocaml-showcase-consumer-\") as temporary:\n temporary = Path(temporary)\n prefix = temporary / \"installed\"\n packages = [\"libtmux\", \"libtmux-workspace\", \"libtmux-unix\", \"libtmux-eio\"]\n subprocess.run([\"dune\", \"install\", \"--sections=lib,stublibs\", \"--prefix\", str(prefix), *packages],\n cwd=root, check=True, capture_output=True)\n project = temporary / \"consumer\"\n project.mkdir()\n runtime_temp = temporary / \"runtime-temp\"\n runtime_temp.mkdir(mode=0o700)\n (project / \"dune-project\").write_text(\"(lang dune 3.24)\\n\")\n examples = project / \"examples\"\n examples.mkdir()\n blocking = \" \".join(name for name in programs if name != \"showcase_watch\")\n (examples / \"dune\").write_text(\"(executables (names \" + blocking + \") (modules \" + blocking +\n \") (libraries libtmux libtmux-workspace libtmux-unix unix))\\n\" +\n \"(executable (name showcase_watch) (modules showcase_watch) \" +\n \"(libraries libtmux libtmux-workspace libtmux-unix libtmux-eio eio_main unix))\\n\")\n for name in programs:\n source = root / \"examples\" / f\"{name}.ml\"\n assert source.is_file(), f\"missing standalone showcase: {name}\"\n (examples / source.name).write_bytes(source.read_bytes())\n environment = dict(os.environ, OCAMLPATH=str(prefix / \"lib\"), TMPDIR=str(runtime_temp),\n TMUX=\"/unrelated/server,99999,0\", TMUX_PANE=\"%99999\")\n for key in [\"DUNE_SOURCEROOT\", \"DUNE_WORKSPACE\"]:\n environment.pop(key, None)\n environment[\"OPAMSWITCH\"] = subprocess.check_output(\n [\"opam\", \"switch\", \"show\", \"--safe\"], cwd=root, env=environment, text=True).strip()\n resolved = subprocess.check_output([\"opam\", \"exec\", \"--\", \"ocamlfind\", \"query\", *packages],\n cwd=project, env=environment, text=True).splitlines()\n assert list(map(Path, resolved)) == [prefix / \"lib\" / package for package in packages]\n built = subprocess.run([\"dune\", \"build\", \"--root\", str(project)],\n cwd=project, env=environment, capture_output=True)\n assert built.returncode == 0, (built.stdout + built.stderr).decode(errors=\"replace\")\n for index, binary in enumerate(sys.argv[1:]):\n actual = str(Path(binary).resolve(strict=True))\n fault = temporary / f\"fault-tmux-{index}\"\n audit = temporary / f\"fault-directory-{index}\"\n fault.write_text(\"#!/usr/bin/env python3\\nimport os,sys\\nfrom pathlib import Path\\n\" +\n \"args=sys.argv[1:]\\nif '-C' in args and 'new-session' in args:\\n\" +\n \" p=Path(args[args.index('-f')+1])\\n\" +\n f\" Path({str(audit)!r}).write_text(str(p.parent))\\n\" +\n \" with p.open('a') as output:\\n\" +\n \" output.write('new-session -d -s showcase -- /bin/cat -u\\\\n')\\n\" +\n f\"os.execv({actual!r}, [{actual!r}, *args])\\n\")\n fault.chmod(0o700)\n cases = [(name, entry, actual, False) for name, entry in programs.items()]\n cases.append((\"showcase_create_window\", programs[\"showcase_create_window\"], str(fault), True))\n for name, entry, program, should_fail in cases:\n previous = children()\n command = [*entry[\"command\"][:-1], program]\n process = subprocess.Popen(command,\n cwd=project, env=environment, stdout=subprocess.PIPE,\n stderr=subprocess.PIPE)\n try:\n output, error = process.communicate(timeout=1)\n if should_fail:\n assert process.returncode == 2 and error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() not in output.splitlines()\n directory = Path(audit.read_text())\n else:\n assert process.returncode == 0 and not error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() in output.splitlines(), \\\n (name, \"missing expected outcome\", output)\n socket_line = next(line for line in output.splitlines() if line.startswith(b\"socket=\"))\n directory = Path(os.fsdecode(socket_line[len(b\"socket=\"):])).parent\n assert directory.name.startswith(\"libtmux-ocaml-showcase-\")\n assert not directory.exists(), \"showcase left its private directory\"\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), f\"{name} left owned child {pid} running\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n outcome = \"startup failure\" if should_fail else \"installed entry point\"\n print(f\"PASS {Path(binary).parent.name}: {name}, {outcome} and owned teardown\")\n finally:\n if process.poll() is None:\n process.kill()\n process.wait(timeout=1)\n while children() - previous:\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n try:\n signal.pidfd_send_signal(descriptor, signal.SIGTERM)\n except ProcessLookupError:\n pass\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), \"owned showcase child did not terminate\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n process.stdout.close()\n process.stderr.close()\n for path in runtime_temp.iterdir():\n if path.is_dir():\n shutil.rmtree(path)\n else:\n path.unlink()\n" }, "ocaml/workspace:examples/showcase_graph.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" }, diff --git a/site/src/data/manifest-packages.json b/site/src/data/manifest-packages.json index e91b29d6e..a43eb6b2d 100644 --- a/site/src/data/manifest-packages.json +++ b/site/src/data/manifest-packages.json @@ -738,43 +738,43 @@ }, "ocaml": { "repo": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", "distributions": [ { "name": "libtmux", "manifest": "libtmux.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" }, { "name": "libtmux-eio", "manifest": "libtmux-eio.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" }, { "name": "libtmux-json", "manifest": "libtmux-json.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" }, { "name": "libtmux-unix", "manifest": "libtmux-unix.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" }, { "name": "libtmux-workspace", "manifest": "libtmux-workspace.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" }, { "name": "libtmux-workspace-cli", "manifest": "libtmux-workspace-cli.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" } ], "units": [] diff --git a/site/src/data/mentions.json b/site/src/data/mentions.json index 0cc82e800..ee7d50aa8 100644 --- a/site/src/data/mentions.json +++ b/site/src/data/mentions.json @@ -8526,6 +8526,13 @@ "title": "Compatibility", "section": "guides" }, + { + "port": "ocaml", + "symbol": "Libtmux.Output.event.End", + "page": "/ocaml/latest/guides/benchmarking/", + "title": "Measure capture, concurrency and output delivery", + "section": "guides" + }, { "port": "ocaml", "symbol": "Libtmux.Plan.panes", diff --git a/site/src/data/port-guides/ocaml.json b/site/src/data/port-guides/ocaml.json index 266de2350..f2d7afe3b 100644 --- a/site/src/data/port-guides/ocaml.json +++ b/site/src/data/port-guides/ocaml.json @@ -1,7 +1,7 @@ { "source": { "repository": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1" + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" }, "guides": [ { @@ -38,7 +38,7 @@ }, { "path": "docs/compatibility.md", - "content": "# Compatibility\n\nThe compiler target is **OCaml 5.5.2**, exactly pinned. Older compilers are\noutside this implementation's scope. The development tools are Dune 3.24.2\nand opam 2.6.1.\n\nThe implementation targets Linux and tmux 3.3 or newer. Current evidence covers\nspecific components; final suite qualification has a separate acceptance gate.\n\n| Component | 3.3 | 3.3a | 3.4 | 3.8 |\n| --- | --- | --- | --- | --- |\n| Owned fixture teardown | PASS | PASS | PASS | PASS |\n| Exact Boolean pane filters | PASS | PASS | PASS | PASS |\n| Argument and metadata byte codecs | PASS | PASS | PASS | PASS |\n| Split control framing and command groups | PASS | PASS | PASS | PASS |\n| Bound graph capture and client teardown | PASS | PASS | PASS | PASS |\n| Replacement-daemon rejection | PASS | PASS | PASS | PASS |\n| Private-file capture and failed-save callbacks | PASS | PASS | PASS | PASS |\n| Eio waiter cancellation and retained outcomes | PASS | PASS | PASS | PASS |\n| Blocking cancellation and bounded drain | PASS | PASS | PASS | PASS |\n| Command and lane admission limits | PASS | PASS | PASS | PASS |\n| Environment bytes, scopes and read-process lifecycle | PASS | PASS | PASS | PASS |\n| Scoped options and built-in hook execution | PASS | PASS | PASS | PASS |\n| Current client names and detach-request semantics | PASS | PASS | PASS | PASS |\n| Interactive attachment, cancellation and child exit | PASS | PASS | PASS | PASS |\n| Versioned format availability and generated APIs | PASS | PASS | PASS | PASS |\n| Native operation inventory | PASS | PASS | PASS | PASS |\n| Data/Gap/End, stream limits and recovery | PASS | PASS | PASS | PASS |\n| Rendered waits and future-byte matching | PASS | PASS | PASS | PASS |\n| Blocking/Eio workspace preconditions and compensation | PASS | PASS | PASS | PASS |\n| Public workspace bootstrap on fresh/existing daemons | PASS | PASS | PASS | PASS |\n| Installed workspace CLI, receipts, interruption and output faults | PASS | PASS | PASS | PASS |\n| Literal workspace guide and owned teardown | PASS | PASS | PASS | PASS |\n| Final suite qualification | UNVERIFIED | UNVERIFIED | UNVERIFIED | UNVERIFIED |\n\nThe blocking client and workspace CLI reject 3.2a. Development tmux 3.8a does\nnot replace the published 3.8 cell. PID-acquisition races and malformed replies after writing\npass deterministic fault checks with real Linux child processes. Cancellation\nat each capture transfer step and unresolved-buffer receipts also pass on\nevery release. Ready I/O still checks its deadline; busy pipes cannot bypass\nthe timeout. These results qualify the implemented lifecycle contracts, not\nthe final suite qualification. MCP integration is outside this port's scope.\n\nThe I/O packages require Linux pidfds, the same PID namespace as the daemon,\nand shared local scratch storage. A socket pathname does not prove those\nconditions. Each connection has its own generation; a replacement daemon never\ninherits old targets. Closing a client releases its own processes and leaves\nthe daemon running.\n\nThe blocking client accepts a scoped `Cancellation` token that another domain\nor systhread can cancel. It drains admitted work before raising\n`Cancellation.Cancelled`, with at most one exchange timeout from detection.\nThe operation handle retains success, failure or uncertainty. Eio cancellation\nreleases the waiter immediately while a client-owned fiber drains the work.\nLocal scratch I/O must finish in either case; Eio performs it on a system\nthread. Filesystem failures have a distinct error from transport disconnects.\n\nPane PIDs and client terminal heights can be absent. The model exposes these as\noptions; a control client without a started terminal has no reported height.\ntmux itself sanitizes names on older releases and rejects some names on newer\nreleases. Captures preserve the observed value rather than reconstructing the\nargument originally submitted by another client.\n\nControl commands use ASCII escapes for non-ASCII bytes because tmux 3.3's\ncommand-string lexer can confuse a signed `0xff` byte with EOF. Metadata uses\ntmux's `q` format modifier and preserves physical newlines. A fixed read probe\ndetects the additional visual escaping used by tmux 3.4 before decoding it.\nControl clients must request UTF-8 mode so locale-dependent sanitization cannot\nalter captured bytes.\n\nAn end guard acknowledges a command. Completion requires the operation's\npostcondition or a following marker on its lane. A control client may exit\nwith status 1 after an earlier command failed, even when later commands and\nshutdown succeeded. Tests retain that distinction.\n\nThe optional JSON codec supports the scalar pane registry and Boolean nodes\nfrom Java's [`libtmux.filter/1`](../json/index.mld) at revision\n`e8a39689d8d60968ac978a1dd2a89c6112333896`. Both implementations agree on 66\ncaptured-value cases and read each other's encoded queries. Numeric operands\nuse signed 32-bit bounds. Regex, relationship documents, numeric membership\nand native extension fields remain unsupported in this wire schema.\n\nReproduce native checks with the commands in\n[CONTRIBUTING.md](../.github/CONTRIBUTING.md). The fixture builders use official\nrelease archives and retain archive and binary digests under `scratch/tmux/`.\n\nEnvironment reads use a bounded read-only process on the same daemon. The\nclient checks its reported PID and the original pidfd after collecting the\ncomplete response. Values may contain control-marker text without entering\nthe control parser. Replacement, malformed data, truncated output and capacity\nfailures never become a successful empty table. This route does not execute\nmutations or reconnect the primary lane.\n\nScoped options preserve scalar types, sparse array indexes and local versus\ninherited entries. Bulk inherited enumeration follows tmux and includes only\nbuilt-ins; `read_option` resolves a named inherited user option. Descriptors are\nqualified for the exact releases in the [option catalog](options.md). tmux fills\nthe lowest unused indexes when appending array elements.\n\nHook commands keep names and arguments separate. Built-in hook arrays report\nsynchronous failures; earlier effects remain after a later command fails. Named\n`@` hooks can be configured, read and removed, but `run_hook` rejects them because\ntmux may hide parse failures in the server log. Hooks that print arbitrary output\nremain outside the supported control transport contract.\n\nCaptured client names belong to a connection generation but may be reused within\nit. Operations address the client currently bearing that name. A detach request\nconfirms command processing, not peer exit; callers need separate exit evidence.\nSwitching an existing client does not create a new terminal.\n\n`Terminal.attach_current` opens an interactive terminal against an explicit\nendpoint and session ID. This separate utility is unbound: an ID can refer to a\ndifferent daemon if the endpoint changes. It accepts no captured target and\nnever retries or starts a daemon. Both backends wait for the terminal client to\nexit and reap it on cancellation. Supplied terminal streams remain caller-owned.\n\nThe generated [format catalog](formats.md) records exact-release availability\nand callback contexts. Local `Formats.lookup` distinguishes captured values,\nmissing values, unacquired fields and fields unsupported by that release.\nIt does not perform arbitrary format acquisition. Generated\n[operation conveniences](operations.md) share the same command constructors\nbetween Unix and Eio; the installed-consumer test exercises both adapters.\n" + "content": "# Compatibility\n\nThe compiler target is **OCaml 5.5.2**, exactly pinned. Older compilers are\noutside this implementation's scope. The development tools are Dune 3.24.2\nand opam 2.6.1.\n\nThe implementation targets Linux and tmux 3.3 or newer. Current evidence covers\nspecific components; final suite qualification has a separate acceptance gate.\n\n| Component | 3.3 | 3.3a | 3.4 | 3.8 |\n| --- | --- | --- | --- | --- |\n| Owned fixture teardown | PASS | PASS | PASS | PASS |\n| Exact Boolean pane filters | PASS | PASS | PASS | PASS |\n| Argument and metadata byte codecs | PASS | PASS | PASS | PASS |\n| Split control framing and command groups | PASS | PASS | PASS | PASS |\n| Bound graph capture and client teardown | PASS | PASS | PASS | PASS |\n| Replacement-daemon rejection | PASS | PASS | PASS | PASS |\n| Private-file capture and failed-save callbacks | PASS | PASS | PASS | PASS |\n| Eio waiter cancellation and retained outcomes | PASS | PASS | PASS | PASS |\n| Blocking cancellation and bounded drain | PASS | PASS | PASS | PASS |\n| Command and lane admission limits | PASS | PASS | PASS | PASS |\n| Environment bytes, scopes and read-process lifecycle | PASS | PASS | PASS | PASS |\n| Scoped options and built-in hook execution | PASS | PASS | PASS | PASS |\n| Current client names and detach-request semantics | PASS | PASS | PASS | PASS |\n| Interactive attachment, cancellation and child exit | PASS | PASS | PASS | PASS |\n| Versioned format availability and generated APIs | PASS | PASS | PASS | PASS |\n| Native operation inventory | PASS | PASS | PASS | PASS |\n| Data/Gap/End, stream limits and recovery | PASS | PASS | PASS | PASS |\n| Rendered waits and future-byte matching | PASS | PASS | PASS | PASS |\n| Blocking/Eio workspace preconditions and compensation | PASS | PASS | PASS | PASS |\n| Public workspace bootstrap on fresh/existing daemons | PASS | PASS | PASS | PASS |\n| Installed workspace CLI, receipts, interruption and output faults | PASS | PASS | PASS | PASS |\n| Literal workspace guide and owned teardown | PASS | PASS | PASS | PASS |\n| Final suite qualification | UNVERIFIED | UNVERIFIED | UNVERIFIED | UNVERIFIED |\n\nThe blocking client and workspace CLI reject 3.2a. Development tmux 3.8a does\nnot replace the published 3.8 cell. PID-acquisition races and malformed replies after writing\npass deterministic fault checks with real Linux child processes. Cancellation\nat each capture transfer step and unresolved-buffer receipts also pass on\nevery release. Ready I/O still checks its deadline; busy pipes cannot bypass\nthe timeout. These results qualify the implemented lifecycle contracts, not\nthe final suite qualification. MCP integration is outside this port's scope.\n\nThe near-limit [mixed workload](benchmarking.md#mixed-commands-stream-pressure-and-membership-changes)\nreproduces a tmux 3.4 daemon crash in the control-client detach notification\npath. The exact 3.8 source includes the upstream null-state guard. An earlier\n3.3 observer-command failure remains unattributed. Passing ordinary client\nchecks does not close either mixed-workload failure.\n\nThe I/O packages require Linux pidfds, the same PID namespace as the daemon,\nand shared local scratch storage. A socket pathname does not prove those\nconditions. Each connection has its own generation; a replacement daemon never\ninherits old targets. Closing a client releases its own processes and leaves\nthe daemon running.\n\nThe blocking client accepts a scoped `Cancellation` token that another domain\nor systhread can cancel. It drains admitted work before raising\n`Cancellation.Cancelled`, with at most one exchange timeout from detection.\nThe operation handle retains success, failure or uncertainty. Eio cancellation\nreleases the waiter immediately while a client-owned fiber drains the work.\nLocal scratch I/O must finish in either case; Eio performs it on a system\nthread. Filesystem failures have a distinct error from transport disconnects.\n\nPane PIDs and client terminal heights can be absent. The model exposes these as\noptions; a control client without a started terminal has no reported height.\ntmux itself sanitizes names on older releases and rejects some names on newer\nreleases. Captures preserve the observed value rather than reconstructing the\nargument originally submitted by another client.\n\nControl commands use ASCII escapes for non-ASCII bytes because tmux 3.3's\ncommand-string lexer can confuse a signed `0xff` byte with EOF. Metadata uses\ntmux's `q` format modifier and preserves physical newlines. A fixed read probe\ndetects the additional visual escaping used by tmux 3.4 before decoding it.\nControl clients must request UTF-8 mode so locale-dependent sanitization cannot\nalter captured bytes.\n\nAn end guard acknowledges a command. Completion requires the operation's\npostcondition or a following marker on its lane. A control client may exit\nwith status 1 after an earlier command failed, even when later commands and\nshutdown succeeded. Tests retain that distinction.\n\nThe optional JSON codec supports the scalar pane registry and Boolean nodes\nfrom Java's [`libtmux.filter/1`](../json/index.mld) at revision\n`e8a39689d8d60968ac978a1dd2a89c6112333896`. Both implementations agree on 66\ncaptured-value cases and read each other's encoded queries. Numeric operands\nuse signed 32-bit bounds. Regex, relationship documents, numeric membership\nand native extension fields remain unsupported in this wire schema.\n\nReproduce native checks with the commands in\n[CONTRIBUTING.md](../.github/CONTRIBUTING.md). The fixture builders use official\nrelease archives and retain archive and binary digests under `scratch/tmux/`.\n\nEnvironment reads use a bounded read-only process on the same daemon. The\nclient checks its reported PID and the original pidfd after collecting the\ncomplete response. Values may contain control-marker text without entering\nthe control parser. Replacement, malformed data, truncated output and capacity\nfailures never become a successful empty table. This route does not execute\nmutations or reconnect the primary lane.\n\nScoped options preserve scalar types, sparse array indexes and local versus\ninherited entries. Bulk inherited enumeration follows tmux and includes only\nbuilt-ins; `read_option` resolves a named inherited user option. Descriptors are\nqualified for the exact releases in the [option catalog](options.md). tmux fills\nthe lowest unused indexes when appending array elements.\n\nHook commands keep names and arguments separate. Built-in hook arrays report\nsynchronous failures; earlier effects remain after a later command fails. Named\n`@` hooks can be configured, read and removed, but `run_hook` rejects them because\ntmux may hide parse failures in the server log. Hooks that print arbitrary output\nremain outside the supported control transport contract.\n\nCaptured client names belong to a connection generation but may be reused within\nit. Operations address the client currently bearing that name. A detach request\nconfirms command processing, not peer exit; callers need separate exit evidence.\nSwitching an existing client does not create a new terminal.\n\n`Terminal.attach_current` opens an interactive terminal against an explicit\nendpoint and session ID. This separate utility is unbound: an ID can refer to a\ndifferent daemon if the endpoint changes. It accepts no captured target and\nnever retries or starts a daemon. Both backends wait for the terminal client to\nexit and reap it on cancellation. Supplied terminal streams remain caller-owned.\n\nThe generated [format catalog](formats.md) records exact-release availability\nand callback contexts. Local `Formats.lookup` distinguishes captured values,\nmissing values, unacquired fields and fields unsupported by that release.\nIt does not perform arbitrary format acquisition. Generated\n[operation conveniences](operations.md) share the same command constructors\nbetween Unix and Eio; the installed-consumer test exercises both adapters.\n" }, { "path": "docs/testing.md", @@ -46,7 +46,7 @@ }, { "path": "docs/benchmarking.md", - "content": "# Measure capture, concurrency and output delivery\n\nThe [capture benchmark](../bench/capture.py) compares serial blocking and Eio\ncapture on one owned graph: one session, four windows and sixteen panes. Each\nsample captures the graph 100 times by default and selects active panes using both a\ncompiled expression and a native predicate over each same snapshot.\n\nThe harness checks exact ordered IDs across captures and modes, one observed\ntmux client and one child process per mode, and zero attached clients afterward.\nOwned fixture teardown verifies pane and daemon exit. Both modes reuse one\nbound connection for their captures; they perform no per-object acquisition.\n\n## Reproduce\n\nPrepare the [exact release fixture](../.github/CONTRIBUTING.md#owned-tmux-fixtures),\nthen build the benchmark outside normal test loops:\n\n```console\n$ opam exec -- dune build bench/capture.exe\n```\n\nRun it with Python 3.11 or newer. Choose a new output file each time:\n\n```console\n$ opam exec -- python3 bench/capture.py scratch/tmux/tmux-3.8/tmux \\\n --iterations 100 \\\n --repeat 5 \\\n --output scratch/capture-baseline.json\n```\n\nThe output records compiler and tmux versions, binary and behavior-source hashes,\nOS/architecture, CPU availability, starting load average, whole-command time,\nper-sample process time, client and daemon CPU usage, and OCaml heap allocation\nduring the capture loop. Samples include program startup, binding,\nthe capture loop and client closure. Fixture creation and compilation are\noutside the per-sample interval. Mode order alternates across repetitions.\n\n## Capture and graph size\n\nThese observations use OCaml 5.5.2 on one shared Linux host. Each table entry is\nmedian milliseconds for 50 captures, followed by its min–max across three\nsamples. The raw files retain the source commit, behavior hash and host load.\n\n| tmux | Blocking, ms | Eio, ms | Evidence |\n| --- | --- | --- | --- |\n| 3.3 | 49.7 (49.0–52.6) | 54.6 (53.9–55.2) | [Raw data](../bench/results/capture-3.3-4x4.json) |\n| 3.3a | 76.3 (76.3–76.3) | 86.6 (72.1–90.1) | [Raw data](../bench/results/capture-3.3a-4x4.json) |\n| 3.4 | 74.1 (72.6–76.0) | 75.8 (61.8–76.9) | [Raw data](../bench/results/capture-3.4-4x4.json) |\n| 3.8 | 52.0 (48.7–66.6) | 67.1 (52.4–69.0) | [Raw data](../bench/results/capture-3.8-4x4.json) |\n\nChange `--windows` and `--panes-per-window` to measure larger graphs. The same\ntmux 3.8 workload, with 50 captures and three samples per mode, produced:\n\n| Windows × panes per window | Blocking median, ms | Eio median, ms | Evidence |\n| --- | --- | --- | --- |\n| 1 × 1 | 28.5 | 28.0 | [Raw data](../bench/results/capture-3.8-1x1.json) |\n| 4 × 4 | 52.0 | 67.1 | [Raw data](../bench/results/capture-3.8-4x4.json) |\n| 8 × 8 | 113.8 | 114.9 | [Raw data](../bench/results/capture-3.8-8x8.json) |\n| 16 × 16 | 402.2 | 408.5 | [Raw data](../bench/results/capture-3.8-16x16.json) |\n\nThe largest graph has 256 panes. Each observation still uses batched graph\nacquisition. Allocation counters cover the OCaml heap during the capture loop;\nthey do not measure process RSS or tmux's allocations.\n\n## Concurrent requests, streaming and cancellation\n\nThe [Eio benchmark](../bench/concurrency.py) runs bounded concurrent option\nreads with distinct expected values. It checks response attribution and input\norder, then measures future output from an owned `cat` process with terminal\necho disabled. Output cursors must advance. Finally it cancels active byte\nwaits and checks subscription cleanup. One primary client becomes two while a\nstream lane is active; both observed client and child-process counts are\nchecked. No clients remain after closure, and owned pane/daemon exit is verified.\n\nBuild the executable outside normal test loops:\n\n```console\n$ opam exec -- dune build bench/concurrency.exe\n```\n\nRun the three phases against an owned release fixture:\n\n```console\n$ opam exec -- python3 bench/concurrency.py scratch/tmux/tmux-3.8/tmux \\\n --requests 128 \\\n --concurrency 8 \\\n --streams 10 \\\n --cancels 10 \\\n --repeat 3 \\\n --output scratch/concurrency-baseline.json\n```\n\nRequest time includes queueing until the attributed response. Stream time runs\nfrom sending literal input through observing the process's output. Cancellation\ntime runs from the cancellation request through the observer receiving it,\nincluding subscription cleanup. The p95 uses nearest rank across all samples.\n\nOn tmux 3.8, each row contains 384 requests, 30 stream samples and 30 cancellations:\n\n| Concurrent requests | Median requests/s | Request p95, ms | Stream p95, ms | Cancel p95, ms | Evidence |\n| --- | --- | --- | --- | --- | --- |\n| 1 | 556.6 | 2.517 | 0.598 | 0.258 | [Raw data](../bench/results/concurrency-3.8-c1.json) |\n| 8 | 487.9 | 19.955 | 0.863 | 0.368 | [Raw data](../bench/results/concurrency-3.8-c8.json) |\n| 16 | 561.5 | 29.746 | 0.569 | 0.220 | [Raw data](../bench/results/concurrency-3.8-c16.json) |\n| 64 | 423.5 | 159.039 | 0.667 | 0.406 | [Raw data](../bench/results/concurrency-3.8-c64.json) |\n\nThe eight-request workload also passes on\n[3.3](../bench/results/concurrency-3.3-c8.json),\n[3.3a](../bench/results/concurrency-3.3a-c8.json) and\n[3.4](../bench/results/concurrency-3.4-c8.json).\nHigher concurrency increases queueing on the retained connection. These\nmeasurements come from a shared host running other work; compare raw sample\nranges and load before choosing a workload or drawing performance conclusions.\n\nBenchmarks are a separate tier. Correctness gates and test-loop timings are\nlisted in [testing](testing.md), not used as throughput measurements. Keep a\nsingle benchmark run under ten minutes and a complete sweep under one hour.\n\n[Compatibility](compatibility.md) · [Control](control.md) · [Guide](README.md)\n" + "content": "# Measure capture, concurrency and output delivery\n\nThe [capture benchmark](../bench/capture.py) compares serial blocking and Eio\ncapture on one owned graph: one session, four windows and sixteen panes. Each\nsample captures the graph 100 times by default and selects active panes using both a\ncompiled expression and a native predicate over each same snapshot.\n\nThe harness checks exact ordered IDs across captures and modes, one observed\ntmux client and one child process per mode, and zero attached clients afterward.\nOwned fixture teardown verifies pane and daemon exit. Both modes reuse one\nbound connection for their captures; they perform no per-object acquisition.\n\n## Reproduce\n\nPrepare the [exact release fixture](../.github/CONTRIBUTING.md#owned-tmux-fixtures),\nthen build the benchmark outside normal test loops:\n\n```console\n$ opam exec -- dune build bench/capture.exe\n```\n\nRun it with Python 3.11 or newer. Choose a new output file each time:\n\n```console\n$ opam exec -- python3 bench/capture.py scratch/tmux/tmux-3.8/tmux \\\n --iterations 100 \\\n --repeat 5 \\\n --output scratch/capture-baseline.json\n```\n\nThe output records compiler and tmux versions, binary and behavior-source hashes,\nOS/architecture, CPU availability, starting load average, whole-command time,\nper-sample process time, client and daemon CPU usage, and OCaml heap allocation\nduring the capture loop. Samples include program startup, binding,\nthe capture loop and client closure. Fixture creation and compilation are\noutside the per-sample interval. Mode order alternates across repetitions.\n\n## Capture and graph size\n\nThese observations use OCaml 5.5.2 on one shared Linux host. Each table entry is\nmedian milliseconds for 50 captures, followed by its min–max across three\nsamples. The raw files retain the source commit, behavior hash and host load.\n\n| tmux | Blocking, ms | Eio, ms | Evidence |\n| --- | --- | --- | --- |\n| 3.3 | 49.7 (49.0–52.6) | 54.6 (53.9–55.2) | [Raw data](../bench/results/capture-3.3-4x4.json) |\n| 3.3a | 76.3 (76.3–76.3) | 86.6 (72.1–90.1) | [Raw data](../bench/results/capture-3.3a-4x4.json) |\n| 3.4 | 74.1 (72.6–76.0) | 75.8 (61.8–76.9) | [Raw data](../bench/results/capture-3.4-4x4.json) |\n| 3.8 | 52.0 (48.7–66.6) | 67.1 (52.4–69.0) | [Raw data](../bench/results/capture-3.8-4x4.json) |\n\nChange `--windows` and `--panes-per-window` to measure larger graphs. The same\ntmux 3.8 workload, with 50 captures and three samples per mode, produced:\n\n| Windows × panes per window | Blocking median, ms | Eio median, ms | Evidence |\n| --- | --- | --- | --- |\n| 1 × 1 | 28.5 | 28.0 | [Raw data](../bench/results/capture-3.8-1x1.json) |\n| 4 × 4 | 52.0 | 67.1 | [Raw data](../bench/results/capture-3.8-4x4.json) |\n| 8 × 8 | 113.8 | 114.9 | [Raw data](../bench/results/capture-3.8-8x8.json) |\n| 16 × 16 | 402.2 | 408.5 | [Raw data](../bench/results/capture-3.8-16x16.json) |\n\nThe largest graph has 256 panes. Each observation still uses batched graph\nacquisition. Allocation counters cover the OCaml heap during the capture loop;\nthey do not measure process RSS or tmux's allocations.\n\n## Concurrent requests, streaming and cancellation\n\nThe [Eio benchmark](../bench/concurrency.py) runs bounded concurrent option\nreads with distinct expected values. It checks response attribution and input\norder, then measures future output from an owned `cat` process with terminal\necho disabled. Output cursors must advance. Finally it cancels active byte\nwaits and checks subscription cleanup. One primary client becomes two while a\nstream lane is active; both observed client and child-process counts are\nchecked. No clients remain after closure, and owned pane/daemon exit is verified.\n\nBuild the executable outside normal test loops:\n\n```console\n$ opam exec -- dune build bench/concurrency.exe\n```\n\nRun the three phases against an owned release fixture:\n\n```console\n$ opam exec -- python3 bench/concurrency.py scratch/tmux/tmux-3.8/tmux \\\n --requests 128 \\\n --concurrency 8 \\\n --streams 10 \\\n --cancels 10 \\\n --repeat 3 \\\n --output scratch/concurrency-baseline.json\n```\n\nRequest time includes queueing until the attributed response. Stream time runs\nfrom sending literal input through observing the process's output. Cancellation\ntime runs from the cancellation request through the observer receiving it,\nincluding subscription cleanup. The p95 uses nearest rank across all samples.\n\nOn tmux 3.8, each row contains 384 requests, 30 stream samples and 30 cancellations:\n\n| Concurrent requests | Median requests/s | Request p95, ms | Stream p95, ms | Cancel p95, ms | Evidence |\n| --- | --- | --- | --- | --- | --- |\n| 1 | 556.6 | 2.517 | 0.598 | 0.258 | [Raw data](../bench/results/concurrency-3.8-c1.json) |\n| 8 | 487.9 | 19.955 | 0.863 | 0.368 | [Raw data](../bench/results/concurrency-3.8-c8.json) |\n| 16 | 561.5 | 29.746 | 0.569 | 0.220 | [Raw data](../bench/results/concurrency-3.8-c16.json) |\n| 64 | 423.5 | 159.039 | 0.667 | 0.406 | [Raw data](../bench/results/concurrency-3.8-c64.json) |\n\nThe eight-request workload also passes on\n[3.3](../bench/results/concurrency-3.3-c8.json),\n[3.3a](../bench/results/concurrency-3.3a-c8.json) and\n[3.4](../bench/results/concurrency-3.4-c8.json).\nHigher concurrency increases queueing on the retained connection. These\nmeasurements come from a shared host running other work; compare raw sample\nranges and load before choosing a workload or drawing performance conclusions.\n\n## Mixed commands, stream pressure and membership changes\n\nThe [mixed-load benchmark](../bench/mixed.py) overlaps retained command\nsubmissions, seven fast stream readers, seven deliberately stalled readers,\nmembership changes and cancellation. Its default runs three waves with eight\ncommand workers and four attributed output frames per stream lane. It adds no\nwork to the unit-test loops.\n\nBuild the executable separately:\n\n```console\n$ opam exec -- dune build bench/mixed.exe\n```\n\nRun the bounded workload against one owned release fixture:\n\n```console\n$ opam exec -- python3 bench/mixed.py scratch/tmux/tmux-3.8/tmux \\\n --output scratch/mixed-baseline.json\n```\n\nEach wave submits 64 commands without yielding and requires the 65th to reject\nwith the declared admission limit. Eight queued operations are cancelled before\nwriting; their handles retain `Not_started`. Sixteen subscribers occupy seven\nshared session lanes. Together with the load connection's primary lane this\nreaches its eight-lane limit; a separate controller connection sends output and\nchanges membership. The seventeenth subscriber and an additional session lane\nmust reject with their specific capacity errors. These expected rejections are\nrecorded separately from correctness failures.\n\nCommands set unique user-option names and values. The receipt retains operation\nIDs, worker IDs, submission indexes and the actual order in which awaiters\nobserve results. It verifies every resulting option value, including absence\nfor cancelled operations. Ordinary mutations use the retained control lane;\n`read_option` verification runs afterward through its temporary subprocess route\nand has a separate phase duration. Each verified option emits its operation ID,\ncompleted count and read duration before the observer handshake. The validation\nphase includes those handshakes; individual read durations exclude them.\nThe observer acknowledgements and resource queries add measured overhead, so\nthese are instrumented workload timings.\n\nFast streams must deliver exact ordered bytes with continuous generation and\nbyte offsets. Tiny unconsumed queues must report `Gap Overflow`, then `End`.\nSplitting and removing a temporary pane changes a watched window's membership;\naffected readers must report `Gap Membership_changed`, then `End`. Explicit\nreadmission uses a fresh observation and generation. Unchanged lanes continue independently; the receipt requires observed stream\nprogress while commands remain pending in each wave. Each wave also cancels an active observer after\nits retained wait reaches `Acknowledged`, releases the wait through the\ncontroller, and checks the eventual result before and after client closure.\n\nNative event callbacks synchronously sample owned Linux process trees before\nyielding to telemetry, retaining their occurrence-time pending-command counts.\nProgress handshakes separately sample process trees and attached tmux clients,\nincluding while the churn pane is alive. Emission timestamps and counts stay\nseparate from event occurrence; queued telemetry cannot manufacture overlap. Raw records distinguish\nthe Python harness, OCaml process, daemon, command-client children and pane\nchildren. RSS/FD/process/client maxima are maxima of these observations;\nper-process RSS high-water marks come from the kernel. They do not establish\ncontinuous aggregate resource peaks. The controller contributes a primary client\nand, during its retained wait, an auxiliary client in addition to the load\nconnection's eight clients. The sampler's own retained pidfds affect its FD count.\n\nPer-worker receipts report completed quotas, cancellation counts, latency samples\nand first/last observation times. They characterize this bounded workload rather\nthan proving scheduler fairness, a service-level objective or general capacity.\nThe 1 MiB queued-byte and 32 MiB payload limits are recorded source constraints;\nthis workload pressures admission counts, subscriber counts and lane counts,\nnot those byte maxima. No automatic retries or timeout increases hide a failure.\n\nExercise teardown after interruption with a new output file:\n\n```console\n$ opam exec -- python3 bench/mixed.py scratch/tmux/tmux-3.8/tmux \\\n --rounds 1 \\\n --frames 2 \\\n --inject-failure \\\n --output scratch/mixed-interrupted.json\n```\n\n`EXPECTED_FAILURE` means the harness intentionally interrupted the native\nprocess while a temporary pane was alive. It still requires owned daemon,\npane and command-client exit, reaping, zero remaining children and removal of\nthe private fixture directory. Unexpected errors or failed cleanup produce\n`FAIL`; an interruption is not a successful workload measurement.\n\nThe [summary](../bench/results/mixed-20261108.json) records each outcome and\nsource identity. The linked gzip archives contain the complete JSON receipts;\nthe summary includes their compressed and uncompressed SHA-256 digests.\n\nRaw results retain exact source and executable hashes, fixture-helper hash,\nversions, command arguments, workload bounds, host load, resource observations\nand cleanup receipts. Keep failed receipts beside passing measurements when\nassessing a release. Current collector qualification is **PARTIAL** across the supported releases:\n\n| tmux | Mixed workload disposition | Raw evidence |\n| --- | --- | --- |\n| 3.3 | Current workload passed; an earlier observer-command failure remains unattributed. | [Current](../bench/results/mixed-3.3-current-20261108.json.gz), [earlier failure](../bench/results/mixed-3.3-qualified-20261108.json.gz) |\n| 3.3a | Current workload passed. | [Current](../bench/results/mixed-3.3a-current-20261108.json.gz) |\n| 3.4 | Reproduced daemon SIGSEGV: a null control state is dereferenced while notifying control clients of a detach. | [Failure](../bench/results/mixed-3.4-qualified-20261108.json.gz), [core analysis](../bench/results/mixed-3.4-crash-analysis-20261108.json) |\n| 3.8 | Current default workload and intentional interruption cleanup passed. | [Default](../bench/results/mixed-3.8-current-20261108.json.gz), [interruption](../bench/results/mixed-3.8-current-interrupted-20261108.json.gz) |\n\nEarlier records predate collector corrections; use their recorded source hashes.\nA later passing sample does not resolve an unexplained failure. These outcomes\nqualify this mixed benchmark separately from the existing native runtime tests.\n\nThe three 3.4 cores identify the same upstream write path. A later\n[tmux correction](https://github.com/tmux/tmux/commit/93169e2e6231853c61c33432bceebf4ffc91015b)\nguards null control state; that guard is present in the exact 3.8 source.\nThe precise triggering sequence remains unproved. The required 3.3 floor stays\nin place, and the 3.4 mixed workload remains a failed qualification.\n\nBenchmarks are a separate tier. Correctness gates and test-loop timings are\nlisted in [testing](testing.md), not used as throughput measurements. Keep a\nsingle benchmark run under ten minutes and a complete sweep under one hour.\n\n[Compatibility](compatibility.md) · [Control](control.md) · [Guide](README.md)\n" }, { "path": "docs/status.md", diff --git a/site/src/data/tmux-usage/ocaml.json b/site/src/data/tmux-usage/ocaml.json index b99b94a6a..2d574fe36 100644 --- a/site/src/data/tmux-usage/ocaml.json +++ b/site/src/data/tmux-usage/ocaml.json @@ -94,7 +94,7 @@ ], "port": "ocaml", "repo": "libtmux/libtmux-ocaml", - "revision": "a111168bceee2085f0cee5efe784d8f446011ba1", + "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", "schemaVersion": 1, "symbols": { "Libtmux_eio.Client.break_pane": [ From 8f256b463bd665e670fd0474c19e632c31f7fe47 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 8 Nov 2026 00:34:42 -0600 Subject: [PATCH 16/26] fix(site) Resolve OCaml documentation routes why: Generated navigation advertised OCaml overview and workspace API routes without corresponding pages. The shared-page switcher also linked an intentionally excluded MCP product. what: - Add section overviews linked to native guides and a workspace API index - Respect product availability for shared-page equivalents - Cover product exclusion and authored page routes; refresh mentions --- .../docs/ports/ocaml/concepts/index.md | 21 +++++++++++++++++++ .../docs/ports/ocaml/examples/index.md | 20 ++++++++++++++++++ .../content/docs/ports/ocaml/topics/index.md | 20 ++++++++++++++++++ .../docs/ports/ocaml/workspace/reference.md | 17 +++++++++++++++ site/src/data/mentions.json | 14 +++++++++++++ site/src/lib/page-port-links.ts | 4 ++-- site/test/ocaml.test.ts | 15 +++++++++++++ site/test/page-port-links.test.ts | 12 +++++++++++ 8 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 site/src/content/docs/ports/ocaml/concepts/index.md create mode 100644 site/src/content/docs/ports/ocaml/examples/index.md create mode 100644 site/src/content/docs/ports/ocaml/topics/index.md create mode 100644 site/src/content/docs/ports/ocaml/workspace/reference.md diff --git a/site/src/content/docs/ports/ocaml/concepts/index.md b/site/src/content/docs/ports/ocaml/concepts/index.md new file mode 100644 index 000000000..fdf268d47 --- /dev/null +++ b/site/src/content/docs/ports/ocaml/concepts/index.md @@ -0,0 +1,21 @@ +--- +title: OCaml concepts +description: Understand immutable observations, window links and typed queries. +port: ocaml +route: concepts +cards: + - label: Captured object graph + href: ../guides/graph/ + body: Navigate sessions, shared windows, contextual links and panes. + - label: Local queries + href: ../guides/queries/ + body: Compose native predicates and typed expressions over captured values. + - label: Package boundaries + href: ../guides/packages/ + body: Choose the pure core or optional transports and consumers. +--- + +Snapshots hold immutable observations. A window can have several session links; +each link retains its own index and context. Process captured collections with +`Iarray`, `Seq` and ordinary functions. Typed expressions add inspectable query +data without replacing those collections. diff --git a/site/src/content/docs/ports/ocaml/examples/index.md b/site/src/content/docs/ports/ocaml/examples/index.md new file mode 100644 index 000000000..ad43e890a --- /dev/null +++ b/site/src/content/docs/ports/ocaml/examples/index.md @@ -0,0 +1,20 @@ +--- +title: OCaml examples +description: Run complete native OCaml programs against an isolated tmux server. +port: ocaml +route: examples +cards: + - label: Capability showcases + href: ../guides/showcases/ + body: Run installed programs with explicit setup, output checks and cleanup. + - label: Partial-failure recovery + href: ../guides/recovery/ + body: Inspect retained outcomes before deciding which action to take next. + - label: Workspaces + href: ../workspace/source-guide/ + body: Validate, plan and apply a complete JSON workspace. +--- + +Start with the [graph program](../guides/getting-started/), then run the +[capability showcases](../guides/showcases/). Each complete program uses public +packages and documents its inputs and ownership of tmux resources. diff --git a/site/src/content/docs/ports/ocaml/topics/index.md b/site/src/content/docs/ports/ocaml/topics/index.md new file mode 100644 index 000000000..f94107513 --- /dev/null +++ b/site/src/content/docs/ports/ocaml/topics/index.md @@ -0,0 +1,20 @@ +--- +title: OCaml topics +description: Understand native client operations, streaming and compatibility. +port: ocaml +route: topics +cards: + - label: Operations and completion + href: ../guides/control/ + body: Distinguish admission, acknowledgement, completion and uncertainty. + - label: Streaming and cancellation + href: ../guides/streaming/ + body: Observe bounded output subscriptions without blocking other clients. + - label: Compatibility + href: ../guides/compatibility/ + body: Check qualified platforms, tmux releases and remaining limitations. +--- + +Client operations perform explicit I/O. Captured observations remain local and +readable after client closure. Follow the guides below for operational +contracts, cancellation and supported environments. diff --git a/site/src/content/docs/ports/ocaml/workspace/reference.md b/site/src/content/docs/ports/ocaml/workspace/reference.md new file mode 100644 index 000000000..d1ba3f115 --- /dev/null +++ b/site/src/content/docs/ports/ocaml/workspace/reference.md @@ -0,0 +1,17 @@ +--- +title: OCaml workspace API reference +description: Public OCaml workspace validation, planning and execution APIs. +port: ocaml +product: workspace +sidebar: + label: Language API + order: 4 +--- + +Use `Libtmux_workspace` to validate configuration and build a plan without I/O. +Execute the plan through an explicit native client and retain its journal for +recovery. `Libtmux_json` decodes the versioned workspace JSON format. + +The declarations below document the workspace library at this site's source +revision. The [workspace guide](../source-guide/) shows installation, planning, +execution and receipt inspection with `tmux-workspace`. diff --git a/site/src/data/mentions.json b/site/src/data/mentions.json index ee7d50aa8..af32def30 100644 --- a/site/src/data/mentions.json +++ b/site/src/data/mentions.json @@ -8386,6 +8386,13 @@ "title": "Choose the packages your application needs", "section": "guides" }, + { + "port": "ocaml", + "symbol": "Libtmux_json", + "page": "/ocaml/latest/workspace/reference/", + "title": "OCaml workspace API reference", + "section": "ports" + }, { "port": "ocaml", "symbol": "Libtmux_json.Workspace.of_string", @@ -8428,6 +8435,13 @@ "title": "Choose the packages your application needs", "section": "guides" }, + { + "port": "ocaml", + "symbol": "Libtmux_workspace", + "page": "/ocaml/latest/workspace/reference/", + "title": "OCaml workspace API reference", + "section": "ports" + }, { "port": "ocaml", "symbol": "Libtmux_workspace.Config.pane:type.startup", diff --git a/site/src/lib/page-port-links.ts b/site/src/lib/page-port-links.ts index e5511be14..f52fd01c3 100644 --- a/site/src/lib/page-port-links.ts +++ b/site/src/lib/page-port-links.ts @@ -92,7 +92,7 @@ export function pagePortLinks({ const entries = own?.data.equivalence ? docs.filter((entry) => entry.data.equivalence === own.data.equivalence && entry.data.product === own.data.product) : paths.flatMap((candidate) => docs.filter((entry) => docsPath(entry) === candidate || entry.data.aliases?.includes(candidate))) - const product = /^(mcp|workspace)\//.exec(path)?.[1] as 'mcp' | 'workspace' | undefined + const product = /^(mcp|workspace)(?:\/|$)/.exec(path)?.[1] as 'mcp' | 'workspace' | undefined const protocol = /^mcp\/(tools|prompts|resources)(?:\/(.+))?$/.exec(path) const object = protocol && portSlug ? mcpObjectAt(portSlug, protocol[1] as McpSection, protocol[2]) : undefined @@ -139,7 +139,7 @@ export function pagePortLinks({ } else if (protocol && !protocol[2]) { if (productAvailable(port, 'mcp') && MCP_REFERENCE[port.slug]) links = [{ href: portPageUrl(port, targetVersion, path) }] } else if (!port.parentLibrary && (SHARED_PAGE_PATHS as readonly string[]).includes(path)) { - links = [{ href: portPageUrl(port, targetVersion, path) }] + if (!product || productAvailable(port, product)) links = [{ href: portPageUrl(port, targetVersion, path) }] } else { const eligible = entries.filter((entry) => docsEntryAvailable(entry, port.slug) && (!product || productAvailable(port, product))) diff --git a/site/test/ocaml.test.ts b/site/test/ocaml.test.ts index cb0744c96..8a4816120 100644 --- a/site/test/ocaml.test.ts +++ b/site/test/ocaml.test.ts @@ -1,9 +1,24 @@ import { expect, it } from 'vitest' +import { readFileSync } from 'node:fs' +import { parseFrontmatter } from '@astrojs/markdown-remark' import { PORT_BY_SLUG, productAvailable } from '../src/lib/ports' import { usesNativeSignatures, nativeSignatureText } from '../src/lib/api-sections' import { API_MODELS } from '../src/lib/api-models' import { navSidecar } from '../../packages/api-model/src/nav-sidecar' import { SymbolIndex } from '@libtmux/api-model' +import { docsPath } from '../src/lib/docs-paths' + +it('publishes authored overviews at their advertised section routes', () => { + for (const [file, route] of [ + ['concepts/index.md', 'concepts'], ['examples/index.md', 'examples'], + ['topics/index.md', 'topics'], ['workspace/reference.md', 'workspace/reference'], + ]) { + const source = readFileSync(new URL(`../src/content/docs/ports/ocaml/${file}`, import.meta.url), 'utf8') + const { frontmatter } = parseFrontmatter(source, { frontmatter: 'remove' }) + const id = `ports/ocaml/${file}`.replace(/\.md$/, '').replace(/\/index$/, '') + expect(docsPath({ id, data: frontmatter }), file).toBe(route) + } +}) it('resolves authored odoc references from every exported public declaration', () => { const model = API_MODELS.ocaml! diff --git a/site/test/page-port-links.test.ts b/site/test/page-port-links.test.ts index 5e96e41e3..65dc04ed8 100644 --- a/site/test/page-port-links.test.ts +++ b/site/test/page-port-links.test.ts @@ -46,6 +46,18 @@ describe('prose route ownership', () => { }) describe('reference picker exits', () => { + it('keeps an excluded MCP product out of shared-page language links', () => { + for (const pagePath of ['mcp', 'mcp/tools']) { + const entries = pagePortLinks({ ...options, pagePath, portSlug: 'ts' }) + expect(entries.find((entry) => entry.port === 'ocaml')).toMatchObject({ + links: [], home: { href: '/pr-42/en/ocaml/latest/', label: 'Go to OCaml home' }, + }) + expect(entries.find((entry) => entry.port === 'ts')?.links).toEqual([ + { href: `/pr-42/en/ts/v1.2.3/${pagePath}/` }, + ]) + } + }) + it('keeps missing equivalents distinct from product and language home shortcuts', () => { const entries = pagePortLinks({ ...options, pagePath: 'mcp/reference/libtmux-mcp-arguments', portSlug: 'cxx' }) expect(entries.find((entry) => entry.port === 'rs')).toMatchObject({ From d3f937e06f924385414af2a13d0dcf2dc85f5704 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 8 Nov 2026 05:10:01 -0600 Subject: [PATCH 17/26] test(ocaml) Verify native server connection modules why: The OCaml reference exposes backend Client modules under Server, without requiring a Java-shaped Server class. what: - Verify both qualified backend module identities in the published index - Retain the existing declaration and destination checks --- site/test/exports.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/test/exports.test.ts b/site/test/exports.test.ts index c568ae533..b327198fd 100644 --- a/site/test/exports.test.ts +++ b/site/test/exports.test.ts @@ -137,6 +137,8 @@ describeIfAssembled('published exports', () => { expect(actual[0]).toBe('section-server') if (port.slug === 'powershell') expect(reference.symbols.slice(0, 3).map((symbol: { name: string }) => symbol.name)) .toEqual(['New-TmuxServer', 'Get-TmuxServer', 'Connect-TmuxServer']) + else if (port.slug === 'ocaml') expect(reference.symbols.slice(0, 2).map((symbol: { id: string }) => symbol.id)) + .toEqual(['Libtmux_unix.Client', 'Libtmux_eio.Client']) else expect(reference.symbols[0].name).toBe('Server') for (const symbol of reference.symbols) { const target = new URL(symbol.url).pathname.replace(/^\//, '') From 32e0c7fa246f543b1d251ba74c788ac557766a4c Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 8 Nov 2026 05:10:01 -0600 Subject: [PATCH 18/26] fix(ocaml) Align workspace pages with native guides why: OCaml uses a native workspace guide and API reference, and explicitly excludes MCP. Generic product assumptions obscured those contracts. what: - Give the workspace overview product metadata and guide/API cards - Keep example placeholders off pages with an existing native guide - Cover native guide navigation and distinguish excluded products from unpublished availability pages --- site/src/components/docs/DocPage.astro | 4 ++- .../docs/ports/ocaml/workspace/index.md | 15 +++++++++- site/test/product-docs.test.ts | 29 ++++++++++++------- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/site/src/components/docs/DocPage.astro b/site/src/components/docs/DocPage.astro index 779f6827b..44f6c3659 100644 --- a/site/src/components/docs/DocPage.astro +++ b/site/src/components/docs/DocPage.astro @@ -119,6 +119,8 @@ const isWorkspaceOverview = entry.data.product === 'workspace' && pagePath === 'workspace' && productIsAvailable && Boolean(port && hasPackageInstalls(PORT_BY_SLUG[port], 'workspace')) +const hasWorkspaceGuide = isWorkspaceOverview && all.some((page) => page.data.port === port + && page.data.product === 'workspace' && docsPath(page) === 'workspace/source-guide') // Each overview shows what its port's own sources can show: workspace files // its tests load, or the tools its server advertises. The MCP worked example @@ -299,7 +301,7 @@ const productIntro = isProductOverview && port && coreHome )} {!placeholderLocale && } {!placeholderLocale && workspaceExamples && !workspaceExampleLeads && } - {!placeholderLocale && isWorkspaceOverview && !workspaceExamples && ( + {!placeholderLocale && isWorkspaceOverview && !workspaceExamples && !hasWorkspaceGuide && (

    Tested example workspace files for this port are coming.

    )} {!placeholderLocale && mcpTools && } diff --git a/site/src/content/docs/ports/ocaml/workspace/index.md b/site/src/content/docs/ports/ocaml/workspace/index.md index 0b0cf48ec..bb8c52f52 100644 --- a/site/src/content/docs/ports/ocaml/workspace/index.md +++ b/site/src/content/docs/ports/ocaml/workspace/index.md @@ -1,8 +1,21 @@ --- port: ocaml +product: workspace route: workspace -title: OCaml workspace manager +title: tmux workspace manager, +subtitle: forged in OCaml. +shortTitle: OCaml-based tmux workspace manager description: Validate, preview and apply JSON workspaces through the native OCaml library. +sidebar: + label: Overview + order: 0 +cards: + - label: Workspace guide + href: ./source-guide/ + body: Validate, plan and apply JSON configuration, then inspect its receipt. + - label: API reference + href: ./reference/ + body: Browse pure validation and planning alongside explicit execution. --- Install `libtmux-workspace-cli` from the source checkout to run `tmux-workspace`. diff --git a/site/test/product-docs.test.ts b/site/test/product-docs.test.ts index 23601874c..6904a8175 100644 --- a/site/test/product-docs.test.ts +++ b/site/test/product-docs.test.ts @@ -72,13 +72,13 @@ const pagesBeyondOverview = (pages: { url: string }[], overview: string) => page .filter((path) => path.startsWith(overview) && path !== overview) const urlFor = (path: string) => new URL(`/${SITE_PREFIX}${path}`, 'https://libtmux.org') const productUrl = new RegExp(`/(?:${portSlugs(primaryPorts)})/[^/]+/(?:mcp|workspace)(?:/|$)`) -// Python, Ruby, PowerShell and Julia keep real workspace Topics or native replacements; no other port does. -const legacyWorkspaceTopics = new RegExp(`/(?:${portSlugs(PORTS.filter((port) => !['py', 'ruby', 'powershell', 'julia'].includes(port.slug)))})/[^/]+/workspace/topics/?$`) +// Only generic workspace documentation redirects Topics into Internals. +const legacyWorkspaceTopics = new RegExp(`/(?:${portSlugs(PORTS.filter((port) => !['py', 'ruby', 'powershell', 'julia', 'ocaml'].includes(port.slug)))})/[^/]+/workspace/topics/?$`) // A page's storage identity under `ports/` must not reach a public link. const storageIdentity = new RegExp(`/ports/(?:${portSlugs()})/`) // Port documentation is not translated, so no port tree exists under a translated locale. const localizedPortTree = new RegExp(`^/ja/(?:${portSlugs()})/`) -const nativeProductDocs = (port: string) => ['powershell', 'julia'].includes(port) +const nativeProductDocs = (port: string) => ['powershell', 'julia', 'ocaml'].includes(port) const mcpClientSetupRoutes: Record = { py: ['mcp/guides'], ruby: ['mcp/guides/connect-client', 'mcp/source-guide'], julia: ['mcp/source-guide'], ts: ['mcp/guides'], rs: ['mcp/guides/connect-client'], @@ -109,6 +109,7 @@ it('advertises local native loaders while retaining their development status', ( }) function sectionsFor(port: string, product: ProductPage['product']): string[] { + if (PORTS.find((entry) => entry.slug === port)!.productAvailability?.[product] === 'excluded') return [] if (port === 'powershell' && product === 'mcp') return [] if (nativeProductDocs(port)) return ['', 'source-guide', 'reference'] // A product with no published implementation has only the overview that says so. @@ -444,7 +445,7 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { }) }) - it('serves both products and every section with the chosen port content', () => { + it('serves each documented product and section with the chosen port content', () => { for (const page of pages()) { const html = pageHtml(page.path) const article = html.match(/]*>([\s\S]*?)<\/article>/i)?.[1] @@ -455,7 +456,7 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { && ['guides', 'examples'].includes(page.section) if (nativeProductDocs(page.port)) { const nativeTitles = page.product === 'workspace' - ? { '': `${workspaceTitle(page.port)} ${workspaceSubtitle(page.port)}`, 'source-guide': 'Workspace guide', reference: `${page.port === 'julia' ? 'LibTmuxWorkspace' : 'LibTmux.Workspace'} API reference` } + ? { '': `${workspaceTitle(page.port)} ${workspaceSubtitle(page.port)}`, 'source-guide': 'Workspace guide', reference: page.port === 'ocaml' ? 'OCaml workspace API reference' : `${page.port === 'julia' ? 'LibTmuxWorkspace' : 'LibTmux.Workspace'} API reference` } : { '': mcpTitle(page.port), 'source-guide': 'MCP server guide', reference: 'LibTmuxMCP API reference' } expect(text(headings1[0]!), page.path).toBe(nativeTitles[page.section as keyof typeof nativeTitles]) } else if (sharedBrowse) { @@ -513,11 +514,11 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { } }) - it.each(PORTS.filter((port) => !port.parentLibrary && products.some((product) => !productAvailable(port, product)))) + it.each(PORTS.filter((port) => !port.parentLibrary && products.some((product) => port.productAvailability?.[product] === 'unpublished'))) ('$name builds, lists and links only the overview of a product it has not published', (port) => { const version = manifest().defaultVersion[port.slug]! const docs = JSON.parse(read(`${port.slug}/${version}/docs.json`)) as DocsManifest - for (const product of products.filter((entry) => !productAvailable(port, entry))) { + for (const product of products.filter((entry) => port.productAvailability?.[entry] === 'unpublished')) { // Whatever the product's other pages would be called, none is built or listed. const directory = sitePath(`${port.slug}/${version}/${product}`) const built = existsSync(directory) ? readdirSync(directory, { recursive: true }).map(String) : [] @@ -535,7 +536,7 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { expect(storageIdentity.test(`/en/ports/${port.slug}/guides/`), `${port.slug} storage identity`).toBe(true) expect(localizedPortTree.test(`/ja/${port.slug}/latest/`), `${port.slug} localized tree`).toBe(true) if (!port.parentLibrary) expect(productUrl.test(`/en/${port.slug}/latest/mcp/`), `${port.slug} product URL`).toBe(true) - const redirected = !['py', 'ruby', 'powershell', 'julia'].includes(port.slug) + const redirected = !['py', 'ruby', 'powershell', 'julia', 'ocaml'].includes(port.slug) expect(legacyWorkspaceTopics.test(`/en/${port.slug}/latest/workspace/topics/`), `${port.slug} legacy Topics`).toBe(redirected) } expect(productUrl.test('/en/elixir/latest/mcp/guides/')).toBe(true) @@ -595,6 +596,12 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { return } const surface = page.product === 'mcp' ? 'MCP' : 'Workspace Manager' + if (nativeProductDocs(page.port) && page.product === 'workspace' && page.section === '') { + expect(document.querySelector('[data-workspace-coming]'), `${page.path} native examples already documented`).toBeNull() + const guide = urlFor(`${page.port}/${page.version}/workspace/source-guide/`).pathname + expect([...document.querySelectorAll('article a[href]')].some((link) => + new URL(link.getAttribute('href')!, urlFor(page.path)).pathname === guide), `${page.path} native example guide`).toBe(true) + } const section = page.section === 'source-guide' ? 'guides' : page.section.split('/')[0] || 'home' const sectionLabel = section === 'reference' ? 'API Reference' : section[0].toUpperCase() + section.slice(1) expect(picker?.querySelector('.surface-current .surface-label')?.textContent, `${page.path} current app`).toBe(surface) @@ -831,11 +838,11 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { }) it.each([ - ['powershell', 'workspace'], ['julia', 'workspace'], ['julia', 'mcp'], + ['powershell', 'workspace'], ['julia', 'workspace'], ['julia', 'mcp'], ['ocaml', 'workspace'], ])('switches from the native %s %s source guide to verified task counterparts', async (port, product) => { const defaults = manifest().defaultVersion const routes: Record = product === 'workspace' ? { - ruby: ['workspace/source-guide'], powershell: ['workspace/source-guide'], julia: ['workspace/source-guide'], + ruby: ['workspace/source-guide'], powershell: ['workspace/source-guide'], julia: ['workspace/source-guide'], ocaml: ['workspace/source-guide'], } : mcpClientSetupRoutes const path = `${port}/${defaults[port]}/${product}/source-guide/` await inspect(path, (document) => { @@ -862,7 +869,7 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { }) it.each(PORTS.filter((port) => !port.parentLibrary && productAvailable(port, 'workspace') - && !['py', 'ruby', 'powershell', 'julia'].includes(port.slug))) + && !['py', 'ruby', 'powershell', 'julia', 'ocaml'].includes(port.slug))) ('$name publishes workspace Guides and Examples browse pages', async (port) => { for (const page of pages().filter((entry) => entry.product === 'workspace' && entry.port === port.slug && ['guides', 'examples'].includes(entry.section))) await inspect(page.path, (document) => { From 2f393ee61d2957360c13ab27c5dd7fbc0dec0118 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 8 Nov 2026 12:28:43 -0600 Subject: [PATCH 19/26] test(products) Derive page contracts from port metadata why: Native product guides and excluded products do not share the generic page layout. New ports need strict assertions without new language branches. what: - Require product overviews and ownership before selecting optional sections - Derive titles, task counterparts and API sections from their source models - Cover missing overview and metadata regressions without rendering guesses - Match the workspace fallback to tested files and native guide availability --- site/test/exports.test.ts | 13 +- site/test/product-docs.test.ts | 206 +++++++++++++++++---------- site/test/workspace-showcase.test.ts | 6 +- 3 files changed, 140 insertions(+), 85 deletions(-) diff --git a/site/test/exports.test.ts b/site/test/exports.test.ts index b327198fd..9ad6e93ae 100644 --- a/site/test/exports.test.ts +++ b/site/test/exports.test.ts @@ -3,6 +3,7 @@ import { join } from 'node:path' import { describe, expect, it } from 'vitest' import { Window } from 'happy-dom' import { API_MODEL_PORTS, PORTS } from '../src/lib/ports' +import { referenceIndexSections } from '../src/lib/api-tree' import { SITE_BUILT, SITE_PREFIX, PREVIEW_PREFIX, productionPath, publishedHas, publishedPath, sitePath } from './site-root' /** @@ -134,12 +135,12 @@ describeIfAssembled('published exports', () => { template.innerHTML = readPublished(join(root, 'index.html')) const actual = [...template.content.querySelectorAll('.api-index-summary[id]')].map((node) => node.id) expect(reference.headings.map((heading: { id: string }) => heading.id)).toEqual(actual) - expect(actual[0]).toBe('section-server') - if (port.slug === 'powershell') expect(reference.symbols.slice(0, 3).map((symbol: { name: string }) => symbol.name)) - .toEqual(['New-TmuxServer', 'Get-TmuxServer', 'Connect-TmuxServer']) - else if (port.slug === 'ocaml') expect(reference.symbols.slice(0, 2).map((symbol: { id: string }) => symbol.id)) - .toEqual(['Libtmux_unix.Client', 'Libtmux_eio.Client']) - else expect(reference.symbols[0].name).toBe('Server') + const sections = referenceIndexSections(port.slug) + expect(sections.length, `${port.slug} model reference sections`).toBeGreaterThan(0) + expect(actual).toEqual(sections.map((section) => `section-${section.id}`)) + expect(reference.symbols.map((symbol: { id: string }) => symbol.id)).toEqual( + sections.flatMap((section) => [...section.types, ...section.free]).map((symbol) => symbol.publicId ?? symbol.id), + ) for (const symbol of reference.symbols) { const target = new URL(symbol.url).pathname.replace(/^\//, '') expect(has(join(target, 'index.html')), symbol.url).toBe(true) diff --git a/site/test/product-docs.test.ts b/site/test/product-docs.test.ts index 6904a8175..dac3ead1f 100644 --- a/site/test/product-docs.test.ts +++ b/site/test/product-docs.test.ts @@ -1,6 +1,7 @@ -import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs' +import { existsSync, globSync, readdirSync, readFileSync, statSync } from 'node:fs' import { join } from 'node:path' import { createHash } from 'node:crypto' +import { parseFrontmatter } from '@astrojs/markdown-remark' import { Window, type Element as DomElement } from 'happy-dom' import { describe, expect, it } from 'vitest' import { CONCEPT_DESCRIPTION, PORTS, productAvailable, productDescription, productIsConcept, productInDevelopment, productStatus, workspaceOverviewNotice, type Port } from '../src/lib/ports' @@ -10,7 +11,12 @@ import { SITE_BUILT, SITE_PREFIX, PREVIEW_PREFIX, productionPath, publishedPath, import { MCP_REFERENCE, MCP_SECTIONS, mcpObjects } from '../src/lib/mcp-catalog' import { mcpObjectGroup } from '../src/lib/mcp-reference' import { mentionBadge, mentionBadgeHtml } from '../src/lib/mention-badge' -import { mcpTitle, workspaceSubtitle, workspaceTitle } from '../src/lib/product-copy' +import { headingTitle } from '../src/lib/branding' +import { docsPath, type DocsPage } from '../src/lib/docs-paths' +import { docsEntriesAvailable } from '../src/lib/page-port-links' +import { documentationAreas, SOURCE_GUIDE_PORTS, sourceGuidesFor } from '../src/lib/port-documentation' +import { KNOWN_PORTS, resolvePortData } from '../src/lib/workspace-shared-slots' +import { DEFAULT_LOCALE, isLocale } from '../src/i18n/locales' import type { ApiTreeJson } from '../src/lib/api-search' import { loadAstroTemplate, renderAstroTemplate } from './astro-templates' @@ -72,35 +78,87 @@ const pagesBeyondOverview = (pages: { url: string }[], overview: string) => page .filter((path) => path.startsWith(overview) && path !== overview) const urlFor = (path: string) => new URL(`/${SITE_PREFIX}${path}`, 'https://libtmux.org') const productUrl = new RegExp(`/(?:${portSlugs(primaryPorts)})/[^/]+/(?:mcp|workspace)(?:/|$)`) -// Only generic workspace documentation redirects Topics into Internals. -const legacyWorkspaceTopics = new RegExp(`/(?:${portSlugs(PORTS.filter((port) => !['py', 'ruby', 'powershell', 'julia', 'ocaml'].includes(port.slug)))})/[^/]+/workspace/topics/?$`) +// Only a documented Internals section without a public Topics page needs this redirect. +function legacyWorkspaceTopics(url: string) { + const match = /\/([^/]+)\/[^/]+\/workspace\/topics\/?$/.exec(url) + if (!match || !PORTS.some((port) => port.slug === match[1])) return false + const sections = sectionsFor(match[1], 'workspace') + return sections.includes('internals/topics') && !sections.includes('topics') +} // A page's storage identity under `ports/` must not reach a public link. const storageIdentity = new RegExp(`/ports/(?:${portSlugs()})/`) // Port documentation is not translated, so no port tree exists under a translated locale. const localizedPortTree = new RegExp(`^/ja/(?:${portSlugs()})/`) -const nativeProductDocs = (port: string) => ['powershell', 'julia', 'ocaml'].includes(port) -const mcpClientSetupRoutes: Record = { - py: ['mcp/guides'], ruby: ['mcp/guides/connect-client', 'mcp/source-guide'], - julia: ['mcp/source-guide'], ts: ['mcp/guides'], rs: ['mcp/guides/connect-client'], - go: ['mcp/guides/connect-client'], java: ['mcp/guides'], csharp: ['mcp/guides/connect-client'], - cxx: ['mcp/guides'], swift: ['mcp/guides'], + +type SourcePage = DocsPage & { data: DocsPage['data'] & { title: string } } +const sourceByPort = new Map>() +let sourceEntries: SourcePage[] | undefined + +/** Expected routes come from source, so a missing rendered page cannot remove its own test. */ +function documentsFor(port: string): Map { + const cached = sourceByPort.get(port) + if (cached) return cached + if (!sourceEntries) { + const base = new URL('../src/content/docs/', import.meta.url) + const idFor = (file: string) => file.replace(/\.mdx?$/, '').replace(/\/index$/, '') + const entries = globSync(['**/*.md', '**/*.mdx'], { cwd: base }).filter((file) => { + const locale = file.split('/')[0] + return !isLocale(locale) || locale === DEFAULT_LOCALE + }).map((file) => ({ + id: idFor(file), data: parseFrontmatter(readFileSync(new URL(file, base), 'utf8')).frontmatter, + })) as SourcePage[] + const owned = new Set(entries.map((entry) => entry.id)) + const shared = new URL('../src/content/_workspace-shared/', import.meta.url) + for (const file of globSync(['**/*.md', '**/*.mdx'], { cwd: shared })) { + const { frontmatter } = parseFrontmatter(readFileSync(new URL(file, shared), 'utf8')) + for (const slug of KNOWN_PORTS) { + const id = `ports/${slug}/${idFor(file)}` + if (!owned.has(id)) entries.push({ id, data: resolvePortData(frontmatter, slug, 'workspace') } as SourcePage) + } + } + sourceEntries = entries + } + const documents = new Map(docsEntriesAvailable(sourceEntries, port).map((entry) => [docsPath(entry), entry])) + // A staging omission is a failure, not permission to skip that port's native guides. + for (const guide of SOURCE_GUIDE_PORTS.includes(port) ? sourceGuidesFor(port) : []) { + expect(documents.has(guide.route), `${port}: stage native guide ${guide.sourcePath}`).toBe(true) + } + sourceByPort.set(port, documents) + return documents +} + +function sourceGuide(port: string, product: ProductPage['product']) { + return SOURCE_GUIDE_PORTS.includes(port) + ? sourceGuidesFor(port).find((guide) => guide.product === product && guide.route === `${product}/source-guide`) : undefined +} + +function counterpartRoutes(port: string, path: string): Map { + const own = documentsFor(port).get(path) + const paths = [path, ...(own?.data.aliases ?? [])] + const product = path.split('/')[0] as ProductPage['product'] + return new Map(PORTS.filter((candidate) => !candidate.parentLibrary && candidate.productAvailability?.[product] !== 'excluded') + .map((candidate) => { + if (own?.data.equivalence && candidate.slug === port) return [port, [path]] as const + const matches = [...documentsFor(candidate.slug).values()].filter((entry) => own?.data.equivalence + ? entry.data.equivalence === own.data.equivalence && entry.data.product === own.data.product + : paths.some((route) => docsPath(entry) === route || entry.data.aliases?.includes(route))) + // A product overview may be an alias of a core integration guide. + return [candidate.slug, [...new Set(matches.map((entry) => path === product && entry.data.aliases?.includes(path) ? path : docsPath(entry)))]] as const + }).filter(([, routes]) => routes.length)) } -it('advertises local native loaders while retaining their development status', () => { - // Ruby ships its own released `libtmux-workspace load` and published MCP - // gem, and Lua has neither product at all: both fall outside the - // py-vs-generic-local-CLI dichotomy this test covers. - const native = (p: Port) => p.workspaceCliAvailability === 'local' || p.workspaceCliAvailability === 'published' - for (const port of PORTS.filter((p) => p.slug === 'py' || native(p))) { - expect(port.workspaceCli).toBe(port.slug === 'julia' ? 'libtmux-workspace load' : port.slug === 'ocaml' ? 'tmux-workspace apply' : native(port) ? 'tmux-workspace load' : 'tmuxp load') - if (!native(port)) expect(port.workspaceCliAvailability).toBe('released') - expect(productInDevelopment(port, 'workspace')).toBe(native(port)) - expect(productInDevelopment(port, 'mcp')).toBe(port.productAvailability?.mcp !== 'excluded') +it('advertises workspace loaders with their declared command and development status', () => { + for (const port of PORTS.filter((entry) => entry.workspaceCli)) { + expect(port.workspaceCli).toMatch(/^\S+\s+\S+/) + const executable = port.packages?.find((entry) => entry.id === 'workspace')?.executable + if (executable) expect(port.workspaceCli!.split(/\s+/)[0]).toBe(executable) + expect(productInDevelopment(port, 'workspace')).toBe(productAvailable(port, 'workspace') && port.workspaceCliAvailability !== 'released') + expect(productInDevelopment(port, 'mcp')).toBe(productAvailable(port, 'mcp')) expect(productDescription(port, 'workspace')).not.toMatch(/worktree|checkpoint/) if (port.workspaceCliAvailability === 'local') { - expect(productDescription(port, 'workspace')).toContain(port.slug === 'julia' ? 'LibTmuxWorkspace' : 'Build the CLI from source') + expect(productDescription(port, 'workspace')).toContain(port.productDescriptions?.workspace ?? 'Build the CLI from source') } - if (native(port)) expect(workspaceOverviewNotice(port)?.body).toContain(`\`${port.workspaceCli!.split(/\s+/)[0]}\``) + if (['local', 'published'].includes(port.workspaceCliAvailability!)) expect(workspaceOverviewNotice(port)?.body).toContain(`\`${port.workspaceCli!.split(/\s+/)[0]}\``) if (port.workspaceCliAvailability === 'published') { expect(productDescription(port, 'workspace')).toContain('published') expect(workspaceOverviewNotice(port)?.body).not.toMatch(/unreleased|local/) @@ -108,22 +166,40 @@ it('advertises local native loaders while retaining their development status', ( } }) -function sectionsFor(port: string, product: ProductPage['product']): string[] { - if (PORTS.find((entry) => entry.slug === port)!.productAvailability?.[product] === 'excluded') return [] - if (port === 'powershell' && product === 'mcp') return [] - if (nativeProductDocs(port)) return ['', 'source-guide', 'reference'] - // A product with no published implementation has only the overview that says so. - if (!productAvailable(PORTS.find((entry) => entry.slug === port)!, product)) return [''] - if (port === 'ruby') return ['', 'topics', 'guides', 'examples', 'reference'] - // `reference` is a section of the product now, not a page inside Internals: - // the Workspace Manager and the MCP server are packages with APIs of their - // own, and Internals keeps the notes about building one. - if (product === 'mcp') return ['', 'topics', 'guides', 'examples', 'reference'] - return port === 'py' - ? ['', 'topics', 'guides', 'examples', 'reference', 'internals', 'internals/topics', 'internals/examples'] - : ['', 'guides', 'examples', 'reference', 'internals', 'internals/topics', 'internals/guides', 'internals/examples'] +function sectionsFor(port: string, product: ProductPage['product'], documents = documentsFor(port)): string[] { + const owner = PORTS.find((entry) => entry.slug === port)! + if (owner.parentLibrary || owner.productAvailability?.[product] === 'excluded') return [] + for (const area of documentationAreas(port).filter((area) => area.product === product)) { + const overview = documents.get(area.route) + expect(overview, `${port}: required ${product} overview`).toBeDefined() + expect(overview!.data, `${port}: ${product} overview ownership`).toMatchObject({ port, product }) + } + return ['', 'topics', 'guides', 'examples', 'reference', 'internals', 'internals/topics', 'internals/guides', 'internals/examples', 'source-guide'] + .filter((section) => { + const path = `${product}${section ? `/${section}` : ''}` + const entry = documents.get(path) + if (!entry) return false + expect(entry.data, `${port}: ${path} ownership`).toMatchObject({ port, product }) + return true + }) } +it('keeps declared product overviews and their ownership required', () => { + for (const port of primaryPorts) { + for (const product of products) sectionsFor(port.slug, product) + for (const area of documentationAreas(port.slug).filter((area) => area.product)) { + const documents = documentsFor(port.slug) + const missing = new Map(documents) + missing.delete(area.route) + expect(() => sectionsFor(port.slug, area.product!, missing)).toThrow(`${port.slug}: required ${area.product} overview`) + const mislabelled = new Map(documents) + const overview = documents.get(area.route)! + mislabelled.set(area.route, { ...overview, data: { ...overview.data, product: undefined } }) + expect(() => sectionsFor(port.slug, area.product!, mislabelled)).toThrow(`${port.slug}: ${area.product} overview ownership`) + } + } +}) + function pages(): ProductPage[] { const versions = manifest() return primaryPorts.flatMap((port) => { @@ -375,7 +451,8 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { }) it.each(PORTS.filter((port) => !port.parentLibrary).map((port) => port.slug))('%s exposes supported products from latest homes and core navigation', async (port) => { - for (const section of ['', 'guides/', 'topics/']) { + const sections = ['guides', 'topics'].filter((section) => documentsFor(port).has(section)) + for (const section of ['', ...sections.map((section) => `${section}/`)]) { const path = `${port}/latest/${section}` await inspect(path, (document) => { const navigation = document.querySelectorAll(section ? '[data-surface-picker]' : 'main') @@ -452,18 +529,8 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { expect(article, page.path).toBeDefined() const headings1 = [...article!.matchAll(/]*>([\s\S]*?)<\/h1>/gi)].map((match) => match[1]!) expect(headings1, page.path).toHaveLength(1) - const sharedBrowse = page.product === 'workspace' && !['py', 'ruby'].includes(page.port) - && ['guides', 'examples'].includes(page.section) - if (nativeProductDocs(page.port)) { - const nativeTitles = page.product === 'workspace' - ? { '': `${workspaceTitle(page.port)} ${workspaceSubtitle(page.port)}`, 'source-guide': 'Workspace guide', reference: page.port === 'ocaml' ? 'OCaml workspace API reference' : `${page.port === 'julia' ? 'LibTmuxWorkspace' : 'LibTmux.Workspace'} API reference` } - : { '': mcpTitle(page.port), 'source-guide': 'MCP server guide', reference: 'LibTmuxMCP API reference' } - expect(text(headings1[0]!), page.path).toBe(nativeTitles[page.section as keyof typeof nativeTitles]) - } else if (sharedBrowse) { - expect(text(headings1[0]!), page.path).toBe(page.section === 'guides' ? 'Guides' : 'Examples') - } else { - expect(text(headings1[0]!), page.path).toContain(page.name) - } + const source = documentsFor(page.port).get(`${page.product}${page.section ? `/${page.section}` : ''}`)! + expect(text(headings1[0]!), page.path).toBe(headingTitle(source.data)) const context = html.match(/]*class="surface-picker-footer"[^>]*>([\s\S]*?)<\/div>/i)?.[1] expect(context, `${page.path} language and version context`).toBeDefined() expect(text(context!), page.path).toBe(`${page.name} · ${page.version} · en`) @@ -536,8 +603,8 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { expect(storageIdentity.test(`/en/ports/${port.slug}/guides/`), `${port.slug} storage identity`).toBe(true) expect(localizedPortTree.test(`/ja/${port.slug}/latest/`), `${port.slug} localized tree`).toBe(true) if (!port.parentLibrary) expect(productUrl.test(`/en/${port.slug}/latest/mcp/`), `${port.slug} product URL`).toBe(true) - const redirected = !['py', 'ruby', 'powershell', 'julia', 'ocaml'].includes(port.slug) - expect(legacyWorkspaceTopics.test(`/en/${port.slug}/latest/workspace/topics/`), `${port.slug} legacy Topics`).toBe(redirected) + const redirected = documentsFor(port.slug).has('workspace/internals/topics') && !documentsFor(port.slug).has('workspace/topics') + expect(legacyWorkspaceTopics(`/en/${port.slug}/latest/workspace/topics/`), `${port.slug} legacy Topics`).toBe(redirected) } expect(productUrl.test('/en/elixir/latest/mcp/guides/')).toBe(true) expect(productUrl.test('/en/elixir/latest/guides/overview/')).toBe(false) @@ -596,7 +663,7 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { return } const surface = page.product === 'mcp' ? 'MCP' : 'Workspace Manager' - if (nativeProductDocs(page.port) && page.product === 'workspace' && page.section === '') { + if (sourceGuide(page.port, 'workspace') && page.product === 'workspace' && page.section === '') { expect(document.querySelector('[data-workspace-coming]'), `${page.path} native examples already documented`).toBeNull() const guide = urlFor(`${page.port}/${page.version}/workspace/source-guide/`).pathname expect([...document.querySelectorAll('article a[href]')].some((link) => @@ -622,7 +689,7 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { expect(nav.getAttribute('aria-label'), page.path).toBe(`${surface}: ${sectionLabel}`) const links = [...nav.querySelectorAll('a[href]')] expect(links.length, `${page.path} current section pages`).toBeGreaterThan(0) - const sourceGuidePath = port.slug === 'ruby' && section === 'guides' + const sourceGuidePath = sourceGuide(page.port, page.product) && section === 'guides' ? urlFor(`${page.port}/${page.version}/${page.product}/source-guide/`).pathname : undefined if (sourceGuidePath) { const guides = links.filter((link) => new URL(link.getAttribute('href')!, urlFor(page.path)).pathname === sourceGuidePath) @@ -658,7 +725,7 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { } } } - if (page.product === 'workspace' && page.port !== 'ruby' && !nativeProductDocs(page.port) && productAvailable(port, 'workspace')) { + if (page.product === 'workspace' && sectionsFor(page.port, 'workspace').includes('internals') && productAvailable(port, 'workspace')) { expect([...picker!.querySelectorAll('a[href]')].some((link) => link.getAttribute('href') === urlFor(`${page.port}/${page.version}/workspace/internals/`).pathname), `${page.path} Internals remains reachable in the picker`).toBe(true) } @@ -672,7 +739,7 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { expect(article, `${page.path} native CLI`).toContain(port.workspaceCli.split(/\s+/)[0]) expect(article.match(/concept example/gi), `${page.path} states scope once`).toHaveLength(1) const links = [...document.querySelectorAll('article a[href]')] - const installation = nativeProductDocs(page.port) ? 'source-guide' : 'guides/installation' + const installation = documentsFor(page.port).has('workspace/guides/installation') ? 'guides/installation' : 'source-guide' expect(links.some((link) => new URL(link.getAttribute('href')!, urlFor(page.path)).pathname === urlFor(`${page.port}/${page.version}/workspace/${installation}/`).pathname), `${page.path} native installation`).toBe(true) expect(links.some((link) => link.getAttribute('href') === 'https://tmuxp.git-pull.com/'), `${page.path} foreign installation`).toBe(false) } @@ -789,19 +856,9 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { const links = [...document.querySelectorAll('[data-page-port-switcher] a[data-port][href]')] const tmux = document.querySelector('[data-page-port-switcher] .tmux-area a[href]') expect(tmux?.getAttribute('href'), `${page.path} tmux destination`).toBe(urlFor('tmux/').pathname) - const clientSetup = page.product === 'mcp' && page.section === 'guides' - && ['py', 'ts', 'java', 'cxx', 'swift'].includes(page.port) - const counterparts = clientSetup ? new Map(Object.entries(mcpClientSetupRoutes).map(([port, routes]) => [port, + const counterparts = new Map([...counterpartRoutes(page.port, `${page.product}${page.section ? `/${page.section}` : ''}`)].map(([port, routes]) => [port, routes.map((route) => urlFor(`${port}/${port === page.port ? page.version : defaults[port]}/${route}/`).pathname), - ])) : new Map(PORTS.flatMap((port) => { - const section = page.section - if (port.slug === 'powershell' && page.product === 'mcp' && !section) { - return [[port.slug, [urlFor(`${port.slug}/${defaults[port.slug]}/mcp/`).pathname]]] - } - if (port.parentLibrary || !sectionsFor(port.slug, page.product).includes(section)) return [] - const version = port.slug === page.port ? page.version : defaults[port.slug] - return [[port.slug, [urlFor(`${port.slug}/${version}/${page.product}/${section ? `${section}/` : ''}`).pathname]]] - })) + ])) expect(links.length, `${page.path} port counterparts`).toBe([...counterparts.values()].flat().length) for (const port of PORTS) { const expected = counterparts.get(port.slug) @@ -837,18 +894,15 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { }) }) - it.each([ - ['powershell', 'workspace'], ['julia', 'workspace'], ['julia', 'mcp'], ['ocaml', 'workspace'], - ])('switches from the native %s %s source guide to verified task counterparts', async (port, product) => { + it.each(primaryPorts.flatMap((port) => products.filter((product) => sourceGuide(port.slug, product)) + .map((product) => [port.slug, product] as const)))('switches from the native %s %s source guide to verified task counterparts', async (port, product) => { const defaults = manifest().defaultVersion - const routes: Record = product === 'workspace' ? { - ruby: ['workspace/source-guide'], powershell: ['workspace/source-guide'], julia: ['workspace/source-guide'], ocaml: ['workspace/source-guide'], - } : mcpClientSetupRoutes + const routes = counterpartRoutes(port, `${product}/source-guide`) const path = `${port}/${defaults[port]}/${product}/source-guide/` await inspect(path, (document) => { const links = [...document.querySelectorAll('[data-page-port-switcher] a[data-port][href]')] expect(links.map((link) => new URL(link.getAttribute('href')!, urlFor(path)).pathname).sort()).toEqual( - Object.entries(routes).flatMap(([slug, paths]) => paths.map((route) => urlFor(`${slug}/${defaults[slug]}/${route}/`).pathname)).sort(), + [...routes].flatMap(([slug, paths]) => paths.map((route) => urlFor(`${slug}/${defaults[slug]}/${route}/`).pathname)).sort(), ) for (const link of links) expect(resolves(link.getAttribute('href')!, urlFor(path).href)).toBe(true) }) @@ -869,7 +923,7 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { }) it.each(PORTS.filter((port) => !port.parentLibrary && productAvailable(port, 'workspace') - && !['py', 'ruby', 'powershell', 'julia', 'ocaml'].includes(port.slug))) + && KNOWN_PORTS.has(port.slug) && port.workspaceCliAvailability === 'local')) ('$name publishes workspace Guides and Examples browse pages', async (port) => { for (const page of pages().filter((entry) => entry.product === 'workspace' && entry.port === port.slug && ['guides', 'examples'].includes(entry.section))) await inspect(page.path, (document) => { @@ -992,7 +1046,7 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { expect(resolves(entry.url), entry.url).toBe(true) expect(resolves(entry.markdownUrl), entry.markdownUrl).toBe(true) expect(entry.url, `${root} canonical workspace API exports`).not.toMatch(/\/workspace\/api(?:\/|$)/) - expect(entry.url, `${root} legacy workspace Topics redirect excluded`).not.toMatch(legacyWorkspaceTopics) + expect(legacyWorkspaceTopics(entry.url), `${root} legacy workspace Topics redirect excluded`).toBe(false) if (root) expect(new URL(entry.url).pathname).toContain(`/${SITE_PREFIX}${root}`) } } diff --git a/site/test/workspace-showcase.test.ts b/site/test/workspace-showcase.test.ts index e9b2f7702..68e5623c6 100644 --- a/site/test/workspace-showcase.test.ts +++ b/site/test/workspace-showcase.test.ts @@ -415,9 +415,9 @@ describe('the overview page', () => { describe('a workspace overview with no tested files', () => { const page = readFileSync(new URL('../src/components/docs/DocPage.astro', import.meta.url), 'utf8') - it('keeps the old overview and says tested example files are coming', () => { - expect(page).toMatch(/isWorkspaceOverview && !workspaceExamples && \(\s*]*data-workspace-coming>Tested example workspace files for this port are coming\.<\/p>/) - // The note is for the ports whose own tests hold no quotable file, and for no other. + it('keeps the overview and shows the placeholder only without examples or a native guide', () => { + expect(page).toMatch(/isWorkspaceOverview && !workspaceExamples && !hasWorkspaceGuide && \(\s*]*data-workspace-coming>Tested example workspace files for this port are coming\.<\/p>/) + // Missing showcase files do not imply that a port lacks a native guide. const empty = Object.entries(data.ports).filter(([, block]) => block.examples.length === 0).map(([port]) => port) expect(empty.length).toBeGreaterThan(0) for (const port of empty) expect(workspaceShowcase(port), port).toBeUndefined() From 7cd2b3b337711f70015906bbb7d9a42935797756 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 8 Nov 2026 13:17:21 -0600 Subject: [PATCH 20/26] fix(ocaml[links]) Resolve members through public module aliases why: Eio cleanup references and signature types must reach their declarations in the shared blocking package. what: - Follow explicit public module aliases during odoc and type resolution - Preserve namespace checks and stop alias cycles - Cover renamed aliases, chained aliases, missing members and type/value collisions --- .../api-model/src/languages/ocaml.test.ts | 25 ++++++++++++ packages/api-model/src/link.ts | 38 +++++++++++++------ 2 files changed, 51 insertions(+), 12 deletions(-) diff --git a/packages/api-model/src/languages/ocaml.test.ts b/packages/api-model/src/languages/ocaml.test.ts index 47e146499..67e53846f 100644 --- a/packages/api-model/src/languages/ocaml.test.ts +++ b/packages/api-model/src/languages/ocaml.test.ts @@ -62,6 +62,31 @@ describe('OCaml compiled public interfaces', () => { expect(model.nativeProvenance?.exporter.revision).toBe(exporter) }) + it('resolves module-alias members in odoc and signatures without crossing namespaces', () => { + const root = artifact().symbols[0]! as ApiSymbol + const symbol = (id: string, kind: ApiSymbol['kind'], parent: string, extra = {}): ApiSymbol => ({ + ...root, id, publicId: id, qualifiedName: id.replace(/:type$/, ''), + name: id.split('.').at(-1)!.replace(/:type$/, ''), kind, parent, ...extra, + }) + const owner = symbol('Libtmux.Client', 'module', 'Libtmux') + const values = [root, owner, + symbol('Libtmux.Report', 'module', 'Libtmux'), + symbol('Libtmux.Report.state', 'function', 'Libtmux.Report'), + symbol('Libtmux.Report.state:type', 'typealias', 'Libtmux.Report'), + symbol('Libtmux.Cleanup', 'module', 'Libtmux', { exportedFrom: 'Libtmux.Report' }), + symbol('Libtmux.Client.Local', 'module', owner.id, { exportedFrom: 'Libtmux.Cleanup' }), + symbol('Libtmux.Cycle', 'module', 'Libtmux', { exportedFrom: 'Libtmux.Cycle' }), + ] + const index = new SymbolIndex(values, (value) => `/${value.id}`, 'ocaml') + expect(index.resolve('Cleanup.state', 'odoc:val', owner)?.symbol?.id).toBe('Libtmux.Report.state') + expect(index.resolve('module-Local.type-state', 'odoc:type', owner)?.symbol?.id).toBe('Libtmux.Report.state:type') + expect(index.linkType('Local.state', owner)[0]?.link?.symbol?.id).toBe('Libtmux.Report.state:type') + expect(index.resolve('Cleanup.state', 'odoc:module', owner)).toBeUndefined() + expect(index.resolve('type-Cleanup.val-state', 'odoc:val', owner)).toBeUndefined() + expect(index.resolve('Cleanup.missing', 'odoc:val', owner)).toBeUndefined() + expect(index.resolve('Cycle.state', 'odoc:val', owner)).toBeUndefined() + }) + it('rejects stale revisions, private paths, unknown products and unresolved aliases', () => { expect(() => extractOcamlArtifact(artifact(), exporter)).toThrow(/revision/) const privateSymbol = artifact() diff --git a/packages/api-model/src/link.ts b/packages/api-model/src/link.ts index a4a80e140..58f5b7077 100644 --- a/packages/api-model/src/link.ts +++ b/packages/api-model/src/link.ts @@ -736,7 +736,7 @@ export class SymbolIndex { } /** Resolve odoc's namespaces from the containing module outward, without a global suffix guess. */ - private resolveOdoc(target: string, role: string, context?: ApiSymbol): LinkTarget | undefined { + private resolveOdoc(target: string, role: string, context?: ApiSymbol, aliases = new Set()): LinkTarget | undefined { const segments = target.split('.').map((part) => { const typed = /^(module-type|class-type|type|val|value|module|class|exception|exn|constructor|const|field|recfield)-(.+)$/.exec(part) return { name: typed?.[2] ?? part, role: typed?.[1] } @@ -755,23 +755,37 @@ export class SymbolIndex { if (owner.kind === 'module' || owner.kind === 'interface') scopes.add(`${qualifiedNameOf(owner)}.`) } scopes.add('') + const parentsMatch = (symbol: ApiSymbol, last: number) => { + let ancestor = this.parentOf(symbol) + for (let i = last - 1; i >= 0; i--) { + // OCaml also exposes record labels and variant constructors directly in their module. + while (ancestor && ancestor.name !== segments[i]!.name && !['module', 'interface'].includes(ancestor.kind)) ancestor = this.parentOf(ancestor) + if (!ancestor || ancestor.name !== segments[i]!.name || !matches(ancestor, segments[i]!.role)) return false + ancestor = this.parentOf(ancestor) + } + return true + } for (const scope of scopes) { - const candidates = (this.ocamlPaths.get(`${scope}${path}`) ?? []).filter((symbol) => { - if (!matches(symbol, role)) return false - let ancestor = this.parentOf(symbol) - for (let i = segments.length - 2; i >= 0; i--) { - // OCaml also exposes record labels and variant constructors directly in their module. - while (ancestor && ancestor.name !== segments[i]!.name && !['module', 'interface'].includes(ancestor.kind)) ancestor = this.parentOf(ancestor) - if (!ancestor || ancestor.name !== segments[i]!.name || !matches(ancestor, segments[i]!.role)) return false - ancestor = this.parentOf(ancestor) - } - return true - }) + const candidates = (this.ocamlPaths.get(`${scope}${path}`) ?? []) + .filter((symbol) => matches(symbol, role) && parentsMatch(symbol, segments.length - 1)) if (candidates.length === 1) { const symbol = candidates[0]! return { href: this.hrefFor(symbol), external: false, symbol } } if (candidates.length > 1) return undefined + // A module alias keeps its own page; its members link to their public declarations. + for (let count = segments.length - 1; count > 0; count--) { + const prefix = `${scope}${segments.slice(0, count).map((part) => part.name).join('.')}` + const modules = (this.ocamlPaths.get(prefix) ?? []).filter((symbol) => + symbol.kind === 'module' && symbol.exportedFrom && + matches(symbol, segments[count - 1]!.role) && parentsMatch(symbol, count - 1)) + if (modules.length > 1) return undefined + const alias = modules[0] + if (!alias) continue + if (aliases.has(alias.id)) return undefined + const suffix = target.split('.').slice(count).join('.') + return this.resolveOdoc(`${alias.exportedFrom}.${suffix}`, role, undefined, new Set([...aliases, alias.id])) + } } return undefined } From 6ece48324a30f091b71c07255cfb3f0cb768751f Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 8 Nov 2026 13:17:21 -0600 Subject: [PATCH 21/26] docs(ocaml) Refresh lifecycle and query interchange documentation why: Readers need the current cleanup contracts and a precise interoperable query subset alongside source-bound API pages. what: - Refresh the compiled API, guides, examples and package inventory from native 4d2203d04f74d03dc3f6df0660362fc17b771287 - Place cleanup diagnostics under Errors and add the scalar query interchange guide - Revalidate command evidence against current implementation lines - Keep JSON wire literals distinct from unrelated API declarations --- packages/api-model/src/nav-config.ts | 2 +- scripts/tmux-usage/claims.json | 456 +++++++++++++------------- scripts/tmux-usage/conditions.json | 4 +- scripts/tmux-usage/dispatchers.json | 42 +-- scripts/tmux-usage/not-senders.json | 12 +- site/src/data/api/ocaml.json | 2 +- site/src/data/api/ocaml.nav.json | 2 +- site/src/data/api/ocaml.paths.json | 2 +- site/src/data/example-sources.json | 20 +- site/src/data/manifest-packages.json | 18 +- site/src/data/mentions.json | 77 +++++ site/src/data/port-guides/ocaml.json | 22 +- site/src/data/tmux-usage/ocaml.json | 474 +++++++++++++-------------- site/src/lib/port-documentation.ts | 2 +- 14 files changed, 608 insertions(+), 527 deletions(-) diff --git a/packages/api-model/src/nav-config.ts b/packages/api-model/src/nav-config.ts index 13eb270b7..32b3ff2d2 100644 --- a/packages/api-model/src/nav-config.ts +++ b/packages/api-model/src/nav-config.ts @@ -751,7 +751,7 @@ const LANGUAGE_PLACEMENTS: Record> = { commands: ['Libtmux', 'Libtmux.ID', 'Libtmux.Created', 'Libtmux.Operations', 'Libtmux.Spawn'], layout: ['Libtmux.Geometry'], options: ['Libtmux.Options'], - errors: ['Libtmux_json.Decode_error'], + errors: ['Libtmux_json.Decode_error', 'Libtmux_unix.Cleanup', 'Libtmux_eio.Cleanup'], workspace: ['Libtmux_workspace', 'Libtmux_workspace.Config', 'Libtmux_workspace.Execution'], runtime: ['Libtmux_unix', 'Libtmux_eio', 'Libtmux_json'], control: ['Libtmux.Output', 'Libtmux_unix.Cancellation', 'Libtmux_unix.Operation', 'Libtmux_eio.Operation', 'Libtmux_unix.Subscription', 'Libtmux_eio.Subscription'], diff --git a/scripts/tmux-usage/claims.json b/scripts/tmux-usage/claims.json index 5befd6db3..e0a328e8a 100644 --- a/scripts/tmux-usage/claims.json +++ b/scripts/tmux-usage/claims.json @@ -15215,13 +15215,13 @@ "in": "Libtmux_unix.Client.rename_window" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15273,13 +15273,13 @@ "in": "Libtmux_unix.Client.rename_session" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15331,13 +15331,13 @@ "in": "Libtmux_unix.Client.switch_client_at" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15389,13 +15389,13 @@ "in": "Libtmux_unix.Client.request_detach_client_at" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15447,13 +15447,13 @@ "in": "Libtmux_unix.Client.refresh_client_at" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15505,13 +15505,13 @@ "in": "Libtmux_unix.Client.resize_control_client_at" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15563,13 +15563,13 @@ "in": "Libtmux_unix.Client.send_text" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15621,13 +15621,13 @@ "in": "Libtmux_unix.Client.send_keys" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15679,13 +15679,13 @@ "in": "Libtmux_unix.Client.wait_for" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15737,13 +15737,13 @@ "in": "Libtmux_unix.Client.signal" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15795,13 +15795,13 @@ "in": "Libtmux_unix.Client.capture_environment" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15853,13 +15853,13 @@ "in": "Libtmux_unix.Client.set_environment" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15911,13 +15911,13 @@ "in": "Libtmux_unix.Client.unset_environment" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -15969,13 +15969,13 @@ "in": "Libtmux_unix.Client.remove_environment" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16027,13 +16027,13 @@ "in": "Libtmux_unix.Client.capture_options" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16085,13 +16085,13 @@ "in": "Libtmux_unix.Client.read_option" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16143,13 +16143,13 @@ "in": "Libtmux_unix.Client.set_option" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16201,13 +16201,13 @@ "in": "Libtmux_unix.Client.unset_option" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16259,13 +16259,13 @@ "in": "Libtmux_unix.Client.clear_option_array" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16317,13 +16317,13 @@ "in": "Libtmux_unix.Client.capture_hooks" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16375,13 +16375,13 @@ "in": "Libtmux_unix.Client.read_hook" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16433,13 +16433,13 @@ "in": "Libtmux_unix.Client.set_hook" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16491,13 +16491,13 @@ "in": "Libtmux_unix.Client.remove_hook" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16549,13 +16549,13 @@ "in": "Libtmux_unix.Client.run_hook" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16607,13 +16607,13 @@ "in": "Libtmux_unix.Client.create_session" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16665,13 +16665,13 @@ "in": "Libtmux_unix.Client.create_window" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16723,13 +16723,13 @@ "in": "Libtmux_unix.Client.split_pane" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16781,13 +16781,13 @@ "in": "Libtmux_unix.Client.break_pane" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16839,13 +16839,13 @@ "in": "Libtmux_unix.Client.kill_session" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16897,13 +16897,13 @@ "in": "Libtmux_unix.Client.kill_window" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -16955,13 +16955,13 @@ "in": "Libtmux_unix.Client.kill_pane" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17013,13 +17013,13 @@ "in": "Libtmux_unix.Client.select_window_at" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17071,13 +17071,13 @@ "in": "Libtmux_unix.Client.unlink_window_at" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17129,13 +17129,13 @@ "in": "Libtmux_unix.Client.link_window" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17187,13 +17187,13 @@ "in": "Libtmux_unix.Client.move_window_at" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17245,13 +17245,13 @@ "in": "Libtmux_unix.Client.select_pane" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17303,13 +17303,13 @@ "in": "Libtmux_unix.Client.set_pane_title" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17361,13 +17361,13 @@ "in": "Libtmux_unix.Client.resize_pane" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17419,13 +17419,13 @@ "in": "Libtmux_unix.Client.resize_window" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17477,13 +17477,13 @@ "in": "Libtmux_unix.Client.select_layout" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17535,13 +17535,13 @@ "in": "Libtmux_unix.Client.cycle_layout" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17594,13 +17594,13 @@ "in": "Libtmux_unix.Client.cycle_layout" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17653,13 +17653,13 @@ "in": "Libtmux_unix.Client.move_pane" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17711,13 +17711,13 @@ "in": "Libtmux_unix.Client.swap_panes" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17769,13 +17769,13 @@ "in": "Libtmux_unix.Client.rotate_panes" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17827,13 +17827,13 @@ "in": "Libtmux_unix.Client.zoom_pane" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17885,13 +17885,13 @@ "in": "Libtmux_unix.Client.respawn_pane" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17943,13 +17943,13 @@ "in": "Libtmux_unix.Client.clear_history" }, { - "at": "unix/libtmux_unix.ml:102", + "at": "unix/libtmux_unix.ml:111", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -17994,14 +17994,14 @@ ] }, { - "at": "unix/libtmux_unix.ml:100", + "at": "unix/libtmux_unix.ml:109", "has": [ "let capture ?cancel t = run ?cancel t (Libtmux.Operations.capture ())" ], "in": "Libtmux_unix.Client.capture" }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -18028,14 +18028,14 @@ ] }, { - "at": "unix/libtmux_unix.ml:100", + "at": "unix/libtmux_unix.ml:109", "has": [ "let capture ?cancel t = run ?cancel t (Libtmux.Operations.capture ())" ], "in": "Libtmux_unix.Client.capture" }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -18062,14 +18062,14 @@ ] }, { - "at": "unix/libtmux_unix.ml:100", + "at": "unix/libtmux_unix.ml:109", "has": [ "let capture ?cancel t = run ?cancel t (Libtmux.Operations.capture ())" ], "in": "Libtmux_unix.Client.capture" }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -18096,14 +18096,14 @@ ] }, { - "at": "unix/libtmux_unix.ml:100", + "at": "unix/libtmux_unix.ml:109", "has": [ "let capture ?cancel t = run ?cancel t (Libtmux.Operations.capture ())" ], "in": "Libtmux_unix.Client.capture" }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -18130,14 +18130,14 @@ ] }, { - "at": "unix/libtmux_unix.ml:109", + "at": "unix/libtmux_unix.ml:118", "has": [ "run ?cancel t" ], "in": "Libtmux_unix.Client.capture_text" }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -18164,14 +18164,14 @@ ] }, { - "at": "unix/libtmux_unix.ml:109", + "at": "unix/libtmux_unix.ml:118", "has": [ "run ?cancel t" ], "in": "Libtmux_unix.Client.capture_text" }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -18199,14 +18199,14 @@ ] }, { - "at": "unix/libtmux_unix.ml:109", + "at": "unix/libtmux_unix.ml:118", "has": [ "run ?cancel t" ], "in": "Libtmux_unix.Client.capture_text" }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -18234,14 +18234,14 @@ ] }, { - "at": "unix/libtmux_unix.ml:109", + "at": "unix/libtmux_unix.ml:118", "has": [ "run ?cancel t" ], "in": "Libtmux_unix.Client.capture_text" }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -18270,14 +18270,14 @@ ] }, { - "at": "unix/libtmux_unix.ml:109", + "at": "unix/libtmux_unix.ml:118", "has": [ "run ?cancel t" ], "in": "Libtmux_unix.Client.capture_text" }, { - "at": "unix/libtmux_unix.ml:92", + "at": "unix/libtmux_unix.ml:101", "has": [ "await_owned ?cancel (Engine.submit t.engine command)))" ] @@ -18312,13 +18312,13 @@ "in": "Libtmux_eio.Client.rename_window" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18370,13 +18370,13 @@ "in": "Libtmux_eio.Client.rename_session" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18428,13 +18428,13 @@ "in": "Libtmux_eio.Client.switch_client_at" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18486,13 +18486,13 @@ "in": "Libtmux_eio.Client.request_detach_client_at" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18544,13 +18544,13 @@ "in": "Libtmux_eio.Client.refresh_client_at" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18602,13 +18602,13 @@ "in": "Libtmux_eio.Client.resize_control_client_at" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18660,13 +18660,13 @@ "in": "Libtmux_eio.Client.send_text" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18718,13 +18718,13 @@ "in": "Libtmux_eio.Client.send_keys" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18776,13 +18776,13 @@ "in": "Libtmux_eio.Client.wait_for" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18834,13 +18834,13 @@ "in": "Libtmux_eio.Client.signal" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18892,13 +18892,13 @@ "in": "Libtmux_eio.Client.capture_environment" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18950,13 +18950,13 @@ "in": "Libtmux_eio.Client.set_environment" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19008,13 +19008,13 @@ "in": "Libtmux_eio.Client.unset_environment" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19066,13 +19066,13 @@ "in": "Libtmux_eio.Client.remove_environment" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19124,13 +19124,13 @@ "in": "Libtmux_eio.Client.capture_options" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19182,13 +19182,13 @@ "in": "Libtmux_eio.Client.read_option" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19240,13 +19240,13 @@ "in": "Libtmux_eio.Client.set_option" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19298,13 +19298,13 @@ "in": "Libtmux_eio.Client.unset_option" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19356,13 +19356,13 @@ "in": "Libtmux_eio.Client.clear_option_array" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19414,13 +19414,13 @@ "in": "Libtmux_eio.Client.capture_hooks" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19472,13 +19472,13 @@ "in": "Libtmux_eio.Client.read_hook" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19530,13 +19530,13 @@ "in": "Libtmux_eio.Client.set_hook" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19588,13 +19588,13 @@ "in": "Libtmux_eio.Client.remove_hook" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19646,13 +19646,13 @@ "in": "Libtmux_eio.Client.run_hook" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19704,13 +19704,13 @@ "in": "Libtmux_eio.Client.create_session" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19762,13 +19762,13 @@ "in": "Libtmux_eio.Client.create_window" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19820,13 +19820,13 @@ "in": "Libtmux_eio.Client.split_pane" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19878,13 +19878,13 @@ "in": "Libtmux_eio.Client.break_pane" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19936,13 +19936,13 @@ "in": "Libtmux_eio.Client.kill_session" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19994,13 +19994,13 @@ "in": "Libtmux_eio.Client.kill_window" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20052,13 +20052,13 @@ "in": "Libtmux_eio.Client.kill_pane" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20110,13 +20110,13 @@ "in": "Libtmux_eio.Client.select_window_at" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20168,13 +20168,13 @@ "in": "Libtmux_eio.Client.unlink_window_at" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20226,13 +20226,13 @@ "in": "Libtmux_eio.Client.link_window" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20284,13 +20284,13 @@ "in": "Libtmux_eio.Client.move_window_at" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20342,13 +20342,13 @@ "in": "Libtmux_eio.Client.select_pane" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20400,13 +20400,13 @@ "in": "Libtmux_eio.Client.set_pane_title" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20458,13 +20458,13 @@ "in": "Libtmux_eio.Client.resize_pane" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20516,13 +20516,13 @@ "in": "Libtmux_eio.Client.resize_window" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20574,13 +20574,13 @@ "in": "Libtmux_eio.Client.select_layout" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20632,13 +20632,13 @@ "in": "Libtmux_eio.Client.cycle_layout" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20691,13 +20691,13 @@ "in": "Libtmux_eio.Client.cycle_layout" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20750,13 +20750,13 @@ "in": "Libtmux_eio.Client.move_pane" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20808,13 +20808,13 @@ "in": "Libtmux_eio.Client.swap_panes" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20866,13 +20866,13 @@ "in": "Libtmux_eio.Client.rotate_panes" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20924,13 +20924,13 @@ "in": "Libtmux_eio.Client.zoom_pane" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20982,13 +20982,13 @@ "in": "Libtmux_eio.Client.respawn_pane" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21040,13 +21040,13 @@ "in": "Libtmux_eio.Client.clear_history" }, { - "at": "eio/libtmux_eio.ml:402", + "at": "eio/libtmux_eio.ml:365", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21091,14 +21091,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:400", + "at": "eio/libtmux_eio.ml:363", "has": [ "let capture t = run t (Operations.capture ())" ], "in": "Libtmux_eio.Client.capture" }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21125,14 +21125,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:400", + "at": "eio/libtmux_eio.ml:363", "has": [ "let capture t = run t (Operations.capture ())" ], "in": "Libtmux_eio.Client.capture" }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21159,14 +21159,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:400", + "at": "eio/libtmux_eio.ml:363", "has": [ "let capture t = run t (Operations.capture ())" ], "in": "Libtmux_eio.Client.capture" }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21193,14 +21193,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:400", + "at": "eio/libtmux_eio.ml:363", "has": [ "let capture t = run t (Operations.capture ())" ], "in": "Libtmux_eio.Client.capture" }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21227,14 +21227,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:409", + "at": "eio/libtmux_eio.ml:372", "has": [ "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" ], "in": "Libtmux_eio.Client.capture_text" }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21261,14 +21261,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:409", + "at": "eio/libtmux_eio.ml:372", "has": [ "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" ], "in": "Libtmux_eio.Client.capture_text" }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21296,14 +21296,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:409", + "at": "eio/libtmux_eio.ml:372", "has": [ "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" ], "in": "Libtmux_eio.Client.capture_text" }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21331,14 +21331,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:409", + "at": "eio/libtmux_eio.ml:372", "has": [ "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" ], "in": "Libtmux_eio.Client.capture_text" }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21367,14 +21367,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:409", + "at": "eio/libtmux_eio.ml:372", "has": [ "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" ], "in": "Libtmux_eio.Client.capture_text" }, { - "at": "eio/libtmux_eio.ml:390", + "at": "eio/libtmux_eio.ml:352", "has": [ "let run t command = Result.bind (submit t command) await" ] diff --git a/scripts/tmux-usage/conditions.json b/scripts/tmux-usage/conditions.json index 9c9ee7ced..4161675e6 100644 --- a/scripts/tmux-usage/conditions.json +++ b/scripts/tmux-usage/conditions.json @@ -682,7 +682,7 @@ "when": "when opening a new stream lane", "evidence": [ { - "at": "unix/streaming.ml:376", + "at": "unix/streaming.ml:390", "has": [ "if fresh && raw \"refresh-client\"" ] @@ -697,7 +697,7 @@ "when": "when opening a new stream lane", "evidence": [ { - "at": "unix/streaming.ml:376", + "at": "unix/streaming.ml:390", "has": [ "if fresh && raw \"refresh-client\"" ] diff --git a/scripts/tmux-usage/dispatchers.json b/scripts/tmux-usage/dispatchers.json index 357a1e3db..0013ac17d 100644 --- a/scripts/tmux-usage/dispatchers.json +++ b/scripts/tmux-usage/dispatchers.json @@ -9497,13 +9497,13 @@ "why": "Writes the supplied tmux command to the bound control client and waits for its reply.", "evidence": [ { - "at": "unix/connection.ml:114", + "at": "unix/connection.ml:119", "has": [ "let raw " ], "reaches": [ { - "at": "unix/connection.ml:120", + "at": "unix/connection.ml:125", "has": [ "Runtime_io.write" ], @@ -9511,14 +9511,14 @@ "on": "runtime_io.ml" }, { - "at": "unix/runtime_io.ml:149", + "at": "unix/runtime_io.ml:276", "has": [ "loop 0" ], "calls": "loop" }, { - "at": "unix/runtime_io.ml:137", + "at": "unix/runtime_io.ml:263", "has": [ "Unix.write_substring" ] @@ -9533,20 +9533,20 @@ "why": "Writes the supplied tmux command to the bound control client and waits for its reply.", "evidence": [ { - "at": "unix/connection.ml:253", + "at": "unix/connection.ml:265", "has": [ "let request " ], "reaches": [ { - "at": "unix/connection.ml:259", + "at": "unix/connection.ml:271", "has": [ "raw t.lane" ], "calls": "raw" }, { - "at": "unix/connection.ml:120", + "at": "unix/connection.ml:125", "has": [ "Runtime_io.write" ], @@ -9554,14 +9554,14 @@ "on": "runtime_io.ml" }, { - "at": "unix/runtime_io.ml:149", + "at": "unix/runtime_io.ml:276", "has": [ "loop 0" ], "calls": "loop" }, { - "at": "unix/runtime_io.ml:137", + "at": "unix/runtime_io.ml:263", "has": [ "Unix.write_substring" ] @@ -9576,27 +9576,27 @@ "why": "Writes the supplied tmux command to the bound control client and waits for its reply.", "evidence": [ { - "at": "unix/connection.ml:268", + "at": "unix/connection.ml:282", "has": [ "let metadata " ], "reaches": [ { - "at": "unix/connection.ml:270", + "at": "unix/connection.ml:284", "has": [ "request t name" ], "calls": "request" }, { - "at": "unix/connection.ml:259", + "at": "unix/connection.ml:271", "has": [ "raw t.lane" ], "calls": "raw" }, { - "at": "unix/connection.ml:120", + "at": "unix/connection.ml:125", "has": [ "Runtime_io.write" ], @@ -9604,14 +9604,14 @@ "on": "runtime_io.ml" }, { - "at": "unix/runtime_io.ml:149", + "at": "unix/runtime_io.ml:276", "has": [ "loop 0" ], "calls": "loop" }, { - "at": "unix/runtime_io.ml:137", + "at": "unix/runtime_io.ml:263", "has": [ "Unix.write_substring" ] @@ -9626,27 +9626,27 @@ "why": "Writes the supplied tmux command to the bound control client and waits for its reply.", "evidence": [ { - "at": "unix/connection.ml:274", + "at": "unix/connection.ml:288", "has": [ "let no_output " ], "reaches": [ { - "at": "unix/connection.ml:275", + "at": "unix/connection.ml:289", "has": [ "request t" ], "calls": "request" }, { - "at": "unix/connection.ml:259", + "at": "unix/connection.ml:271", "has": [ "raw t.lane" ], "calls": "raw" }, { - "at": "unix/connection.ml:120", + "at": "unix/connection.ml:125", "has": [ "Runtime_io.write" ], @@ -9654,14 +9654,14 @@ "on": "runtime_io.ml" }, { - "at": "unix/runtime_io.ml:149", + "at": "unix/runtime_io.ml:276", "has": [ "loop 0" ], "calls": "loop" }, { - "at": "unix/runtime_io.ml:137", + "at": "unix/runtime_io.ml:263", "has": [ "Unix.write_substring" ] diff --git a/scripts/tmux-usage/not-senders.json b/scripts/tmux-usage/not-senders.json index c5b7d1549..668a409f4 100644 --- a/scripts/tmux-usage/not-senders.json +++ b/scripts/tmux-usage/not-senders.json @@ -4600,7 +4600,7 @@ "why": "These core functions construct typed command descriptions. Only a backend client executes them.", "evidence": [ { - "at": "lib/libtmux.mli:1049", + "at": "lib/libtmux.mli:1071", "has": [ "Construction performs no I/O" ] @@ -4762,19 +4762,19 @@ "why": "Observes rendered text and stream notifications. It does not use a tmux wait-for channel.", "evidence": [ { - "at": "unix/libtmux_unix.ml:114", + "at": "unix/libtmux_unix.ml:123", "has": [ "Observation_wait.rendered" ] }, { - "at": "eio/libtmux_eio.ml:413", + "at": "eio/libtmux_eio.ml:376", "has": [ "Observation_wait.rendered" ] }, { - "at": "unix/observation_wait.ml:46", + "at": "unix/observation_wait.ml:49", "has": [ "capture_text !current" ] @@ -4794,13 +4794,13 @@ "why": "Matches a byte pattern against streamed output. It does not use a tmux wait-for channel.", "evidence": [ { - "at": "unix/libtmux_unix.ml:48", + "at": "unix/libtmux_unix.ml:49", "has": [ "Streaming.wait_for_bytes" ] }, { - "at": "eio/libtmux_eio.ml:203", + "at": "eio/libtmux_eio.ml:122", "has": [ "Streaming.wait_for_bytes" ] diff --git a/site/src/data/api/ocaml.json b/site/src/data/api/ocaml.json index 10e34a5cb..5f9fa9a43 100644 --- a/site/src/data/api/ocaml.json +++ b/site/src/data/api/ocaml.json @@ -1 +1 @@ -{"port":"ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","repo":"libtmux/libtmux-ocaml","sources":[{"product":"core","package":"libtmux","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"core","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"workspace","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"core","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"workspace","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"core","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},{"product":"workspace","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}],"extractor":"OCaml 5.5.2 compiler-libs .cmti + odoc-parser 3.2.2","nativeProvenance":{"files":[{"path":"lib/libtmux.mli","sha256":"eb15691c82da743bb49170e408ca50500b38d21aeb248bb41a171e1e0352bc8e"},{"path":"_build/install/default/lib/libtmux/libtmux.cmti","sha256":"2e9a977a5a36625b0d0e8499051a36d13deab0f4a59bd699f2ab430975fed851"},{"path":"workspace/libtmux_workspace.mli","sha256":"10c5cadc58269906f16550a7bb703a8e05bee163d9b1716bf2be994ec8ebbeed"},{"path":"_build/install/default/lib/libtmux-workspace/libtmux_workspace.cmti","sha256":"dac59166f00e4c248fb2fe84787faef28f4e838a8db7b2b17768f9f0cffcfaf2"},{"path":"json/libtmux_json.mli","sha256":"ae672cc3b970fbd3fe9f68bb8703bb961e8d5968d9920b2626cddbffeb85c94b"},{"path":"_build/install/default/lib/libtmux-json/libtmux_json.cmti","sha256":"1574d45efd30dffc97a5775dc90f55a6aa935593dad025b98e9027325f06c78d"},{"path":"unix/libtmux_unix.mli","sha256":"638e260745952dc3db2ec4cd4cd28733326fdb74d65668b46fe29398526a9421"},{"path":"_build/install/default/lib/libtmux-unix/libtmux_unix.cmti","sha256":"cf23cb48ff8f22a9d7ce5c606f9cf8117db1d9cbc9286f87987c279b156a0e36"},{"path":"eio/libtmux_eio.mli","sha256":"f4b35be04f35f5e6fe99c139f1f8bbaacf4ed82e1faa55ad0f73bdd9803d4386"},{"path":"_build/install/default/lib/libtmux-eio/libtmux_eio.cmti","sha256":"62e866a1e8c8c9789a8261ac7420c078c73d069d31e900f6f40dc82b262a56d9"}],"exporter":{"revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","baseRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","files":[{"path":"tools/api_export.ml","sha256":"403353de9340f32586cb522a827be03a9693142eeec01c891175c4e76b069a5d"},{"path":"tools/api_doc.ml","sha256":"94d9b4dff3f86d570a31161019e06cea250926200b8cc4562f7d14f9f3cd0d59"},{"path":"tools/export_api.py","sha256":"5188348adc7e3ea577889e144de30da6204ec14ec6fc1577f86a732bc7625973"},{"path":"tools/api_modules.json","sha256":"233ef409440fa5015f522a11933e74f059a301aecbce5ab5126f14e8a35614cf"},{"path":"tools/dune","sha256":"777e122d729870f9f8dc6fc13485ce0eea29f0e741b9bb22cb0245d433ff9442"}],"compiler":"5.5.2","schema":"libtmux.ocaml-api/1","publicManifest":"tools/api_modules.json"}},"symbols":[{"id":"Libtmux","publicId":"Libtmux","qualifiedName":"Libtmux","name":"Libtmux","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Native captured values, typed queries and explicit command descriptions.\n\n A {!Snapshot.t} owns immutable observations. Entity accessors and query\n evaluation perform no I/O, preserve captured order and remain usable after\n client closure. Use [Libtmux_unix.Client] or [Libtmux_eio.Client] to acquire\n or mutate state.\n\n {1 Typical flow}\n\n Capture explicitly, traverse {!Session.window_links} and {!Window.panes},\n filter with [Seq.filter] or {!Query.matching}, establish cardinality with\n {!Query.exactly_one}, then submit a command with a bound target.\n\n The core depends only on the standard library. Its abstract observations are\n safe to share; live clients and subscriptions belong to their backend.\n\n See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md}graph\n guide} for window links and the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} for native predicates and typed expressions. "],"declarations":[{"kind":"module","text":"","source":{"file":"lib/libtmux.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"doc":{"summary":"Native captured values, typed queries and explicit command descriptions.","body":"A {!Snapshot.t} owns immutable observations. Entity accessors and query evaluation perform no I/O, preserve captured order and remain usable after client closure. Use `Libtmux_unix.Client` or `Libtmux_eio.Client` to acquire or mutate state.\n\n## Typical flow\n\nCapture explicitly, traverse {!Session.window_links} and {!Window.panes}, filter with `Seq.filter` or {!Query.matching}, establish cardinality with {!Query.exactly_one}, then submit a command with a bound target.\n\nThe core depends only on the standard library. Its abstract observations are safe to share; live clients and subscriptions belong to their backend.\n\nSee the [graph guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md) for window links and the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) for native predicates and typed expressions."},"slug":"libtmux"},{"id":"Libtmux.Captured_text","publicId":"Libtmux.Captured_text","qualifiedName":"Libtmux.Captured_text","name":"Captured_text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":690,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Captured_text : sig\n type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. *)\nend","source":{"file":"lib/libtmux.mli","line":690,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-captured_text"},{"id":"Libtmux.Captured_text.t","publicId":"Libtmux.Captured_text.t","qualifiedName":"Libtmux.Captured_text.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":691,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. "],"declarations":[{"kind":"struct","text":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":691,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Captured_text","doc":{"summary":"Ordinary rendered rows captured over an interval. This value has no implied relationship to a subscription cursor."},"signatures":[{"raw":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-captured_text-t"},{"id":"Libtmux.Captured_text.t.bytes","publicId":"Libtmux.Captured_text.t.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":692,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string;","source":{"file":"lib/libtmux.mli","line":692,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Captured_text.t","type":"string","qualifiedName":"Libtmux.Captured_text.bytes","slug":"libtmux-captured_text-t-bytes"},{"id":"Libtmux.Captured_text.t.finished_at_ns","publicId":"Libtmux.Captured_text.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":696,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":696,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.finished_at_ns","slug":"libtmux-captured_text-t-finished_at_ns"},{"id":"Libtmux.Captured_text.t.pane","publicId":"Libtmux.Captured_text.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":694,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":694,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Captured_text.t","type":"Pane.Id.t","qualifiedName":"Libtmux.Captured_text.pane","slug":"libtmux-captured_text-t-pane"},{"id":"Libtmux.Captured_text.t.source","publicId":"Libtmux.Captured_text.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":693,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":693,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Captured_text.t","type":"Source.t","qualifiedName":"Libtmux.Captured_text.source","slug":"libtmux-captured_text-t-source"},{"id":"Libtmux.Captured_text.t.started_at_ns","publicId":"Libtmux.Captured_text.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":695,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":695,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.started_at_ns","slug":"libtmux-captured_text-t-started_at_ns"},{"id":"Libtmux.Cardinality","publicId":"Libtmux.Cardinality","qualifiedName":"Libtmux.Cardinality","name":"Cardinality","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":663,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cardinality : sig\n type error = No_match | Multiple_matches of { at_least : int }\n\n val pp_error : Format.formatter -> error -> unit\nend","source":{"file":"lib/libtmux.mli","line":663,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-cardinality"},{"id":"Libtmux.Cardinality.error","publicId":"Libtmux.Cardinality.error","qualifiedName":"Libtmux.Cardinality.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error = No_match | Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"type error = No_match | Multiple_matches of { at_least : int; }","params":[]}],"slug":"libtmux-cardinality-error"},{"id":"Libtmux.Cardinality.error.Multiple_matches","publicId":"Libtmux.Cardinality.error.Multiple_matches","name":"Multiple_matches","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Cardinality.error","variant":"struct","qualifiedName":"Libtmux.Cardinality.Multiple_matches","slug":"libtmux-cardinality-error-multiple_matches"},{"id":"Libtmux.Cardinality.error.Multiple_matches.at_least","publicId":"Libtmux.Cardinality.error.Multiple_matches.at_least","name":"at_least","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"at_least : int","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Cardinality.error.Multiple_matches","type":"int","qualifiedName":"Libtmux.Cardinality.at_least","slug":"libtmux-cardinality-error-multiple_matches-at_least"},{"id":"Libtmux.Cardinality.error.No_match","publicId":"Libtmux.Cardinality.error.No_match","name":"No_match","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":664,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"No_match","source":{"file":"lib/libtmux.mli","line":664,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Cardinality.error","variant":"unit","qualifiedName":"Libtmux.Cardinality.No_match","slug":"libtmux-cardinality-error-no_match"},{"id":"Libtmux.Cardinality.pp_error","publicId":"Libtmux.Cardinality.pp_error","qualifiedName":"Libtmux.Cardinality.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"lib/libtmux.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux-cardinality-pp_error"},{"id":"Libtmux.Client_name","publicId":"Libtmux.Client_name","qualifiedName":"Libtmux.Client_name","name":"Client_name","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Client_name : sig\n type t\n (** A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. *)\n\n val source : t -> Source.t\n val to_string : t -> string\nend","source":{"file":"lib/libtmux.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-client_name"},{"id":"Libtmux.Client_name.source","publicId":"Libtmux.Client_name.source","qualifiedName":"Libtmux.Client_name.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_name-source"},{"id":"Libtmux.Client_name.t","publicId":"Libtmux.Client_name.t","qualifiedName":"Libtmux.Client_name.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_name","doc":{"summary":"A name in one connection generation, with current-name semantics. It does not identify a stable client incarnation; tmux may reuse client names."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_name-t"},{"id":"Libtmux.Client_name.to_string","publicId":"Libtmux.Client_name.to_string","qualifiedName":"Libtmux.Client_name.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_name-to_string"},{"id":"Libtmux.Client_observation","publicId":"Libtmux.Client_observation","qualifiedName":"Libtmux.Client_observation","name":"Client_observation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":343,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"and Client_observation : sig\n type t\n\n module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end\n\n val name : t -> string\n val pid : t -> int\n val width : t -> int\n\n val height : t -> int option\n (** No height is reported until the client has a started terminal. *)\n\n val control_mode : t -> bool\n val source : t -> Source.t\n\n val current_name : t -> Client_name.t\n (** Address whichever client has this name when a command executes. *)\n\n val session : t -> Session.t option\n (** [None] means the captured client has no attached session. *)\n\n val same_observation : t -> t -> bool\n (** Client names may be reused. No cross-snapshot entity equality is offered.\n *)\nend","source":{"file":"lib/libtmux.mli","line":343,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-client_observation"},{"id":"Libtmux.Client_observation.Fields","publicId":"Libtmux.Client_observation.Fields","qualifiedName":"Libtmux.Client_observation.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":346,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-fields"},{"id":"Libtmux.Client_observation.Fields.control_mode","publicId":"Libtmux.Client_observation.Fields.control_mode","qualifiedName":"Libtmux.Client_observation.Fields.control_mode","name":"control_mode","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":350,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val control_mode : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":350,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val control_mode : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-client_observation-fields-control_mode"},{"id":"Libtmux.Client_observation.Fields.name","publicId":"Libtmux.Client_observation.Fields.name","qualifiedName":"Libtmux.Client_observation.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":347,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":347,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-client_observation-fields-name"},{"id":"Libtmux.Client_observation.Fields.pid","publicId":"Libtmux.Client_observation.Fields.pid","qualifiedName":"Libtmux.Client_observation.Fields.pid","name":"pid","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":348,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pid : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":348,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val pid : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-pid"},{"id":"Libtmux.Client_observation.Fields.width","publicId":"Libtmux.Client_observation.Fields.width","qualifiedName":"Libtmux.Client_observation.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":349,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":349,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-width"},{"id":"Libtmux.Client_observation.Relations","publicId":"Libtmux.Client_observation.Relations","qualifiedName":"Libtmux.Client_observation.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":353,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end","source":{"file":"lib/libtmux.mli","line":353,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-relations"},{"id":"Libtmux.Client_observation.Relations.session","publicId":"Libtmux.Client_observation.Relations.session","qualifiedName":"Libtmux.Client_observation.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.Optional.t","source":{"file":"lib/libtmux.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.Optional.t","params":[],"returns":"(t, Session.t) Relation.Optional.t"}],"slug":"libtmux-client_observation-relations-session"},{"id":"Libtmux.Client_observation.control_mode","publicId":"Libtmux.Client_observation.control_mode","qualifiedName":"Libtmux.Client_observation.control_mode","name":"control_mode","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":364,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val control_mode : t -> bool","source":{"file":"lib/libtmux.mli","line":364,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val control_mode : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-control_mode"},{"id":"Libtmux.Client_observation.current_name","publicId":"Libtmux.Client_observation.current_name","qualifiedName":"Libtmux.Client_observation.current_name","name":"current_name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":367,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Address whichever client has this name when a command executes. "],"declarations":[{"kind":"function","text":"val current_name : t -> Client_name.t","source":{"file":"lib/libtmux.mli","line":367,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Address whichever client has this name when a command executes."},"signatures":[{"raw":"val current_name : t -> Client_name.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_name.t"}],"slug":"libtmux-client_observation-current_name"},{"id":"Libtmux.Client_observation.height","publicId":"Libtmux.Client_observation.height","qualifiedName":"Libtmux.Client_observation.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" No height is reported until the client has a started terminal. "],"declarations":[{"kind":"function","text":"val height : t -> int option","source":{"file":"lib/libtmux.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"No height is reported until the client has a started terminal."},"signatures":[{"raw":"val height : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-client_observation-height"},{"id":"Libtmux.Client_observation.name","publicId":"Libtmux.Client_observation.name","qualifiedName":"Libtmux.Client_observation.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":357,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":357,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_observation-name"},{"id":"Libtmux.Client_observation.pid","publicId":"Libtmux.Client_observation.pid","qualifiedName":"Libtmux.Client_observation.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pid : t -> int","source":{"file":"lib/libtmux.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-pid"},{"id":"Libtmux.Client_observation.same_observation","publicId":"Libtmux.Client_observation.same_observation","qualifiedName":"Libtmux.Client_observation.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":373,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Client names may be reused. No cross-snapshot entity equality is offered.\n "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":373,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Client names may be reused. No cross-snapshot entity equality is offered."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-same_observation"},{"id":"Libtmux.Client_observation.session","publicId":"Libtmux.Client_observation.session","qualifiedName":"Libtmux.Client_observation.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [None] means the captured client has no attached session. "],"declarations":[{"kind":"function","text":"val session : t -> Session.t option","source":{"file":"lib/libtmux.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"`None` means the captured client has no attached session."},"signatures":[{"raw":"val session : t -> Session.t option","params":[{"name":"arg1","type":"t"}],"returns":"Session.t option"}],"slug":"libtmux-client_observation-session"},{"id":"Libtmux.Client_observation.source","publicId":"Libtmux.Client_observation.source","qualifiedName":"Libtmux.Client_observation.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_observation-source"},{"id":"Libtmux.Client_observation.t","publicId":"Libtmux.Client_observation.t","qualifiedName":"Libtmux.Client_observation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_observation-t"},{"id":"Libtmux.Client_observation.width","publicId":"Libtmux.Client_observation.width","qualifiedName":"Libtmux.Client_observation.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":359,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":359,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-width"},{"id":"Libtmux.Command","publicId":"Libtmux.Command","qualifiedName":"Libtmux.Command","name":"Command","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":861,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Typed descriptions of explicit acquisition and mutation operations.\n Construction performs no I/O; a backend validates and admits the command. "],"declarations":[{"kind":"module","text":"module Command : sig\n type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }\n\n type 'a t\n (** An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. *)\n\n type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view\n\n val view : 'a t -> 'a view\n (** Read-only inspection for transport adapters. *)\nend","source":{"file":"lib/libtmux.mli","line":861,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Typed descriptions of explicit acquisition and mutation operations. Construction performs no I/O; a backend validates and admits the command."},"slug":"libtmux-command"},{"id":"Libtmux.Command.mutation","publicId":"Libtmux.Command.mutation","qualifiedName":"Libtmux.Command.mutation","name":"mutation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":862,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":862,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type mutation =\n Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of { session : Session.target; index : int;\n allow_kill : bool;\n }\n | Link_window of { window : Window.target; session : Session.target;\n index : int;\n }\n | Move_window_at of { from_session : Session.target; from_index : int;\n session : Session.target; index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of { pane : Pane.target; width : int option;\n height : int option;\n }\n | Resize_window of { window : Window.target; width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of { pane : Pane.target; beside : Pane.target;\n direction : Geometry.direction; size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Backward | `Forward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of { pane : Pane.target; spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of { scope : Environment.scope; name : string;\n value : string; hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of { scope : Options.scope; name : string; index : int option;\n value : Options.scalar; append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of { scope : Options.scope; name : string; index : int option;\n commands : Hook.command list; append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of { client : Client_name.t; session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of { client : Client_name.t; width : int;\n height : int;\n }","params":[]}],"slug":"libtmux-command-mutation"},{"id":"Libtmux.Command.mutation.Clear_history","publicId":"Libtmux.Command.mutation.Clear_history","name":"Clear_history","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":911,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_history of Pane.target","source":{"file":"lib/libtmux.mli","line":911,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_history","slug":"libtmux-command-mutation-clear_history"},{"id":"Libtmux.Command.mutation.Clear_option_array","publicId":"Libtmux.Command.mutation.Clear_option_array","name":"Clear_option_array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":928,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_option_array of Options.scope * string","source":{"file":"lib/libtmux.mli","line":928,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_option_array","slug":"libtmux-command-mutation-clear_option_array"},{"id":"Libtmux.Command.mutation.Cycle_layout","publicId":"Libtmux.Command.mutation.Cycle_layout","name":"Cycle_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":896,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cycle_layout of Window.target * [ `Next | `Previous ]","source":{"file":"lib/libtmux.mli","line":896,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Cycle_layout","slug":"libtmux-command-mutation-cycle_layout"},{"id":"Libtmux.Command.mutation.Kill_pane","publicId":"Libtmux.Command.mutation.Kill_pane","name":"Kill_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":865,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":865,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_pane","slug":"libtmux-command-mutation-kill_pane"},{"id":"Libtmux.Command.mutation.Kill_session","publicId":"Libtmux.Command.mutation.Kill_session","name":"Kill_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":863,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_session of Session.target","source":{"file":"lib/libtmux.mli","line":863,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_session","slug":"libtmux-command-mutation-kill_session"},{"id":"Libtmux.Command.mutation.Kill_window","publicId":"Libtmux.Command.mutation.Kill_window","name":"Kill_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":864,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_window of Window.target","source":{"file":"lib/libtmux.mli","line":864,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_window","slug":"libtmux-command-mutation-kill_window"},{"id":"Libtmux.Command.mutation.Link_window","publicId":"Libtmux.Command.mutation.Link_window","name":"Link_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":872,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":872,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Link_window","slug":"libtmux-command-mutation-link_window"},{"id":"Libtmux.Command.mutation.Link_window.index","publicId":"Libtmux.Command.mutation.Link_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":875,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":875,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-link_window-index"},{"id":"Libtmux.Command.mutation.Link_window.session","publicId":"Libtmux.Command.mutation.Link_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-link_window-session"},{"id":"Libtmux.Command.mutation.Link_window.window","publicId":"Libtmux.Command.mutation.Link_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":873,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":873,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-link_window-window"},{"id":"Libtmux.Command.mutation.Move_pane","publicId":"Libtmux.Command.mutation.Move_pane","name":"Move_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":897,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }","source":{"file":"lib/libtmux.mli","line":897,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_pane","slug":"libtmux-command-mutation-move_pane"},{"id":"Libtmux.Command.mutation.Move_pane.beside","publicId":"Libtmux.Command.mutation.Move_pane.beside","name":"beside","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":899,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"beside : Pane.target;","source":{"file":"lib/libtmux.mli","line":899,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.beside","slug":"libtmux-command-mutation-move_pane-beside"},{"id":"Libtmux.Command.mutation.Move_pane.direction","publicId":"Libtmux.Command.mutation.Move_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":900,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":900,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-mutation-move_pane-direction"},{"id":"Libtmux.Command.mutation.Move_pane.pane","publicId":"Libtmux.Command.mutation.Move_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":898,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":898,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-move_pane-pane"},{"id":"Libtmux.Command.mutation.Move_pane.size","publicId":"Libtmux.Command.mutation.Move_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":901,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":901,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-mutation-move_pane-size"},{"id":"Libtmux.Command.mutation.Move_window_at","publicId":"Libtmux.Command.mutation.Move_window_at","name":"Move_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":877,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":877,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_window_at","slug":"libtmux-command-mutation-move_window_at"},{"id":"Libtmux.Command.mutation.Move_window_at.from_index","publicId":"Libtmux.Command.mutation.Move_window_at.from_index","name":"from_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":879,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_index : int;","source":{"file":"lib/libtmux.mli","line":879,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.from_index","slug":"libtmux-command-mutation-move_window_at-from_index"},{"id":"Libtmux.Command.mutation.Move_window_at.from_session","publicId":"Libtmux.Command.mutation.Move_window_at.from_session","name":"from_session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":878,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_session : Session.target;","source":{"file":"lib/libtmux.mli","line":878,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.from_session","slug":"libtmux-command-mutation-move_window_at-from_session"},{"id":"Libtmux.Command.mutation.Move_window_at.index","publicId":"Libtmux.Command.mutation.Move_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":881,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":881,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-move_window_at-index"},{"id":"Libtmux.Command.mutation.Move_window_at.session","publicId":"Libtmux.Command.mutation.Move_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":880,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":880,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-move_window_at-session"},{"id":"Libtmux.Command.mutation.Refresh_client_at","publicId":"Libtmux.Command.mutation.Refresh_client_at","name":"Refresh_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":944,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Refresh_client_at of Client_name.t * bool","source":{"file":"lib/libtmux.mli","line":944,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Refresh_client_at","slug":"libtmux-command-mutation-refresh_client_at"},{"id":"Libtmux.Command.mutation.Remove_environment","publicId":"Libtmux.Command.mutation.Remove_environment","name":"Remove_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":919,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":919,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_environment","slug":"libtmux-command-mutation-remove_environment"},{"id":"Libtmux.Command.mutation.Remove_hook","publicId":"Libtmux.Command.mutation.Remove_hook","name":"Remove_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":936,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_hook of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":936,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_hook","slug":"libtmux-command-mutation-remove_hook"},{"id":"Libtmux.Command.mutation.Request_detach_client_at","publicId":"Libtmux.Command.mutation.Request_detach_client_at","name":"Request_detach_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":943,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Request_detach_client_at of Client_name.t","source":{"file":"lib/libtmux.mli","line":943,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Request_detach_client_at","slug":"libtmux-command-mutation-request_detach_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at","publicId":"Libtmux.Command.mutation.Resize_control_client_at","name":"Resize_control_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":945,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":945,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_control_client_at","slug":"libtmux-command-mutation-resize_control_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.client","publicId":"Libtmux.Command.mutation.Resize_control_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":946,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":946,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-resize_control_client_at-client"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.height","publicId":"Libtmux.Command.mutation.Resize_control_client_at.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":948,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":948,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_control_client_at-height"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.width","publicId":"Libtmux.Command.mutation.Resize_control_client_at.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":947,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":947,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_control_client_at-width"},{"id":"Libtmux.Command.mutation.Resize_pane","publicId":"Libtmux.Command.mutation.Resize_pane","name":"Resize_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":885,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":885,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_pane","slug":"libtmux-command-mutation-resize_pane"},{"id":"Libtmux.Command.mutation.Resize_pane.height","publicId":"Libtmux.Command.mutation.Resize_pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":888,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":888,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_pane-height"},{"id":"Libtmux.Command.mutation.Resize_pane.pane","publicId":"Libtmux.Command.mutation.Resize_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":886,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":886,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-resize_pane-pane"},{"id":"Libtmux.Command.mutation.Resize_pane.width","publicId":"Libtmux.Command.mutation.Resize_pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":887,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":887,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_pane-width"},{"id":"Libtmux.Command.mutation.Resize_window","publicId":"Libtmux.Command.mutation.Resize_window","name":"Resize_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":890,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":890,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_window","slug":"libtmux-command-mutation-resize_window"},{"id":"Libtmux.Command.mutation.Resize_window.height","publicId":"Libtmux.Command.mutation.Resize_window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":893,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":893,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_window-height"},{"id":"Libtmux.Command.mutation.Resize_window.width","publicId":"Libtmux.Command.mutation.Resize_window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":892,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":892,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_window-width"},{"id":"Libtmux.Command.mutation.Resize_window.window","publicId":"Libtmux.Command.mutation.Resize_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":891,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":891,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-resize_window-window"},{"id":"Libtmux.Command.mutation.Respawn_pane","publicId":"Libtmux.Command.mutation.Respawn_pane","name":"Respawn_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":906,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }","source":{"file":"lib/libtmux.mli","line":906,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Respawn_pane","slug":"libtmux-command-mutation-respawn_pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.kill_running","publicId":"Libtmux.Command.mutation.Respawn_pane.kill_running","name":"kill_running","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":909,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kill_running : bool;","source":{"file":"lib/libtmux.mli","line":909,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"bool","qualifiedName":"Libtmux.Command.kill_running","slug":"libtmux-command-mutation-respawn_pane-kill_running"},{"id":"Libtmux.Command.mutation.Respawn_pane.pane","publicId":"Libtmux.Command.mutation.Respawn_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":907,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":907,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-respawn_pane-pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.spawn","publicId":"Libtmux.Command.mutation.Respawn_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":908,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":908,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-mutation-respawn_pane-spawn"},{"id":"Libtmux.Command.mutation.Rotate_panes","publicId":"Libtmux.Command.mutation.Rotate_panes","name":"Rotate_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":904,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rotate_panes of Window.target * [ `Forward | `Backward ]","source":{"file":"lib/libtmux.mli","line":904,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Rotate_panes","slug":"libtmux-command-mutation-rotate_panes"},{"id":"Libtmux.Command.mutation.Run_hook","publicId":"Libtmux.Command.mutation.Run_hook","name":"Run_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":937,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Run_hook of Options.scope * string","source":{"file":"lib/libtmux.mli","line":937,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Run_hook","slug":"libtmux-command-mutation-run_hook"},{"id":"Libtmux.Command.mutation.Select_layout","publicId":"Libtmux.Command.mutation.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":895,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of Window.target * Layout.t","source":{"file":"lib/libtmux.mli","line":895,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_layout","slug":"libtmux-command-mutation-select_layout"},{"id":"Libtmux.Command.mutation.Select_pane","publicId":"Libtmux.Command.mutation.Select_pane","name":"Select_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":883,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":883,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_pane","slug":"libtmux-command-mutation-select_pane"},{"id":"Libtmux.Command.mutation.Select_window_at","publicId":"Libtmux.Command.mutation.Select_window_at","name":"Select_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":866,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_window_at of Session.target * int","source":{"file":"lib/libtmux.mli","line":866,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_window_at","slug":"libtmux-command-mutation-select_window_at"},{"id":"Libtmux.Command.mutation.Set_environment","publicId":"Libtmux.Command.mutation.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":912,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }","source":{"file":"lib/libtmux.mli","line":912,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_environment","slug":"libtmux-command-mutation-set_environment"},{"id":"Libtmux.Command.mutation.Set_environment.hidden","publicId":"Libtmux.Command.mutation.Set_environment.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":916,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":916,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"bool","qualifiedName":"Libtmux.Command.hidden","slug":"libtmux-command-mutation-set_environment-hidden"},{"id":"Libtmux.Command.mutation.Set_environment.name","publicId":"Libtmux.Command.mutation.Set_environment.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":914,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":914,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_environment-name"},{"id":"Libtmux.Command.mutation.Set_environment.scope","publicId":"Libtmux.Command.mutation.Set_environment.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":913,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Environment.scope;","source":{"file":"lib/libtmux.mli","line":913,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"Environment.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_environment-scope"},{"id":"Libtmux.Command.mutation.Set_environment.value","publicId":"Libtmux.Command.mutation.Set_environment.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":915,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : string;","source":{"file":"lib/libtmux.mli","line":915,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_environment-value"},{"id":"Libtmux.Command.mutation.Set_hook","publicId":"Libtmux.Command.mutation.Set_hook","name":"Set_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":929,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":929,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_hook","slug":"libtmux-command-mutation-set_hook"},{"id":"Libtmux.Command.mutation.Set_hook.append","publicId":"Libtmux.Command.mutation.Set_hook.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":934,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":934,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_hook-append"},{"id":"Libtmux.Command.mutation.Set_hook.commands","publicId":"Libtmux.Command.mutation.Set_hook.commands","name":"commands","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":933,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"commands : Hook.command list;","source":{"file":"lib/libtmux.mli","line":933,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Hook.command list","qualifiedName":"Libtmux.Command.commands","slug":"libtmux-command-mutation-set_hook-commands"},{"id":"Libtmux.Command.mutation.Set_hook.index","publicId":"Libtmux.Command.mutation.Set_hook.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":932,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":932,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_hook-index"},{"id":"Libtmux.Command.mutation.Set_hook.name","publicId":"Libtmux.Command.mutation.Set_hook.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":931,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":931,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_hook-name"},{"id":"Libtmux.Command.mutation.Set_hook.scope","publicId":"Libtmux.Command.mutation.Set_hook.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":930,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":930,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_hook-scope"},{"id":"Libtmux.Command.mutation.Set_option","publicId":"Libtmux.Command.mutation.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":920,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":920,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_option","slug":"libtmux-command-mutation-set_option"},{"id":"Libtmux.Command.mutation.Set_option.append","publicId":"Libtmux.Command.mutation.Set_option.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":925,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":925,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_option-append"},{"id":"Libtmux.Command.mutation.Set_option.index","publicId":"Libtmux.Command.mutation.Set_option.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":923,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":923,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_option-index"},{"id":"Libtmux.Command.mutation.Set_option.name","publicId":"Libtmux.Command.mutation.Set_option.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":922,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":922,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_option-name"},{"id":"Libtmux.Command.mutation.Set_option.scope","publicId":"Libtmux.Command.mutation.Set_option.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":921,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":921,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_option-scope"},{"id":"Libtmux.Command.mutation.Set_option.value","publicId":"Libtmux.Command.mutation.Set_option.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":924,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Options.scalar;","source":{"file":"lib/libtmux.mli","line":924,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scalar","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_option-value"},{"id":"Libtmux.Command.mutation.Set_pane_title","publicId":"Libtmux.Command.mutation.Set_pane_title","name":"Set_pane_title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":884,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_pane_title of Pane.target * string","source":{"file":"lib/libtmux.mli","line":884,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Set_pane_title","slug":"libtmux-command-mutation-set_pane_title"},{"id":"Libtmux.Command.mutation.Swap_panes","publicId":"Libtmux.Command.mutation.Swap_panes","name":"Swap_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":903,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Swap_panes of Pane.target * Pane.target","source":{"file":"lib/libtmux.mli","line":903,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Swap_panes","slug":"libtmux-command-mutation-swap_panes"},{"id":"Libtmux.Command.mutation.Switch_client_at","publicId":"Libtmux.Command.mutation.Switch_client_at","name":"Switch_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":938,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }","source":{"file":"lib/libtmux.mli","line":938,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Switch_client_at","slug":"libtmux-command-mutation-switch_client_at"},{"id":"Libtmux.Command.mutation.Switch_client_at.client","publicId":"Libtmux.Command.mutation.Switch_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":939,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":939,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-switch_client_at-client"},{"id":"Libtmux.Command.mutation.Switch_client_at.session","publicId":"Libtmux.Command.mutation.Switch_client_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":940,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":940,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-switch_client_at-session"},{"id":"Libtmux.Command.mutation.Switch_client_at.update_environment","publicId":"Libtmux.Command.mutation.Switch_client_at.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":941,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"update_environment : bool;","source":{"file":"lib/libtmux.mli","line":941,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"bool","qualifiedName":"Libtmux.Command.update_environment","slug":"libtmux-command-mutation-switch_client_at-update_environment"},{"id":"Libtmux.Command.mutation.Unlink_window_at","publicId":"Libtmux.Command.mutation.Unlink_window_at","name":"Unlink_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":867,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }","source":{"file":"lib/libtmux.mli","line":867,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Unlink_window_at","slug":"libtmux-command-mutation-unlink_window_at"},{"id":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","publicId":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","name":"allow_kill","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":870,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"allow_kill : bool;","source":{"file":"lib/libtmux.mli","line":870,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"bool","qualifiedName":"Libtmux.Command.allow_kill","slug":"libtmux-command-mutation-unlink_window_at-allow_kill"},{"id":"Libtmux.Command.mutation.Unlink_window_at.index","publicId":"Libtmux.Command.mutation.Unlink_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":869,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":869,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-unlink_window_at-index"},{"id":"Libtmux.Command.mutation.Unlink_window_at.session","publicId":"Libtmux.Command.mutation.Unlink_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":868,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":868,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-unlink_window_at-session"},{"id":"Libtmux.Command.mutation.Unset_environment","publicId":"Libtmux.Command.mutation.Unset_environment","name":"Unset_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":918,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":918,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_environment","slug":"libtmux-command-mutation-unset_environment"},{"id":"Libtmux.Command.mutation.Unset_option","publicId":"Libtmux.Command.mutation.Unset_option","name":"Unset_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":927,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_option of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":927,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_option","slug":"libtmux-command-mutation-unset_option"},{"id":"Libtmux.Command.mutation.Zoom_pane","publicId":"Libtmux.Command.mutation.Zoom_pane","name":"Zoom_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":905,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Zoom_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":905,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Zoom_pane","slug":"libtmux-command-mutation-zoom_pane"},{"id":"Libtmux.Command.t","publicId":"Libtmux.Command.t","qualifiedName":"Libtmux.Command.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":951,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. "],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":951,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command","doc":{"summary":"An immutable description, validated by a backend before admission. Constructing or inspecting it performs no I/O."},"signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-command-t"},{"id":"Libtmux.Command.view","publicId":"Libtmux.Command.view","qualifiedName":"Libtmux.Command.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1006,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read-only inspection for transport adapters. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":1006,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command","doc":{"summary":"Read-only inspection for transport adapters."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-command-view"},{"id":"Libtmux.Command.view:type","publicId":"Libtmux.Command.view:type","qualifiedName":"Libtmux.Command.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":955,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":955,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type _ view =\n Capture : Snapshot.t view\n | Capture_text : { pane : Pane.t; start : int; end_ : int;\n scratch_dir : string;\n } -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : { name : string; window_name : string option;\n width : int; height : int; spawn : Spawn.t;\n } -> Created.t view\n | Create_window : { session : Session.target; index : int option;\n name : string option; spawn : Spawn.t;\n } -> Created.t view\n | Split_pane : { pane : Pane.target; direction : Geometry.direction;\n size : Geometry.size option; spawn : Spawn.t;\n } -> Created.t view\n | Break_pane : { pane : Pane.target; session : Session.target; index : int;\n name : string option;\n } -> Created.t view","params":[]}],"slug":"libtmux-command-view-type"},{"id":"Libtmux.Command.view:type.Break_pane","publicId":"Libtmux.Command.view:type.Break_pane","name":"Break_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":998,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":998,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Break_pane","slug":"libtmux-command-view-type-break_pane"},{"id":"Libtmux.Command.view:type.Break_pane.index","publicId":"Libtmux.Command.view:type.Break_pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1001,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":1001,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-break_pane-index"},{"id":"Libtmux.Command.view:type.Break_pane.name","publicId":"Libtmux.Command.view:type.Break_pane.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1002,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1002,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-break_pane-name"},{"id":"Libtmux.Command.view:type.Break_pane.pane","publicId":"Libtmux.Command.view:type.Break_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":999,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":999,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-break_pane-pane"},{"id":"Libtmux.Command.view:type.Break_pane.session","publicId":"Libtmux.Command.view:type.Break_pane.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1000,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1000,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-break_pane-session"},{"id":"Libtmux.Command.view:type.Capture","publicId":"Libtmux.Command.view:type.Capture","name":"Capture","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":956,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture : Snapshot.t view","source":{"file":"lib/libtmux.mli","line":956,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"unit","qualifiedName":"Libtmux.Command.Capture","slug":"libtmux-command-view-type-capture"},{"id":"Libtmux.Command.view:type.Capture_environment","publicId":"Libtmux.Command.view:type.Capture_environment","name":"Capture_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":970,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_environment : Environment.scope * bool -> Environment.t view","source":{"file":"lib/libtmux.mli","line":970,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_environment","slug":"libtmux-command-view-type-capture_environment"},{"id":"Libtmux.Command.view:type.Capture_hooks","publicId":"Libtmux.Command.view:type.Capture_hooks","name":"Capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":973,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_hooks : Options.scope -> Options.t view","source":{"file":"lib/libtmux.mli","line":973,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_hooks","slug":"libtmux-command-view-type-capture_hooks"},{"id":"Libtmux.Command.view:type.Capture_options","publicId":"Libtmux.Command.view:type.Capture_options","name":"Capture_options","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":971,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_options : Options.scope * bool -> Options.t view","source":{"file":"lib/libtmux.mli","line":971,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_options","slug":"libtmux-command-view-type-capture_options"},{"id":"Libtmux.Command.view:type.Capture_text","publicId":"Libtmux.Command.view:type.Capture_text","name":"Capture_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":957,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view","source":{"file":"lib/libtmux.mli","line":957,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Capture_text","slug":"libtmux-command-view-type-capture_text"},{"id":"Libtmux.Command.view:type.Capture_text.end_","publicId":"Libtmux.Command.view:type.Capture_text.end_","name":"end_","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":960,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"end_ : int;","source":{"file":"lib/libtmux.mli","line":960,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.end_","slug":"libtmux-command-view-type-capture_text-end_"},{"id":"Libtmux.Command.view:type.Capture_text.pane","publicId":"Libtmux.Command.view:type.Capture_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":958,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.t;","source":{"file":"lib/libtmux.mli","line":958,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"Pane.t","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-capture_text-pane"},{"id":"Libtmux.Command.view:type.Capture_text.scratch_dir","publicId":"Libtmux.Command.view:type.Capture_text.scratch_dir","name":"scratch_dir","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":961,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scratch_dir : string;","source":{"file":"lib/libtmux.mli","line":961,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"string","qualifiedName":"Libtmux.Command.scratch_dir","slug":"libtmux-command-view-type-capture_text-scratch_dir"},{"id":"Libtmux.Command.view:type.Capture_text.start","publicId":"Libtmux.Command.view:type.Capture_text.start","name":"start","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":959,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"start : int;","source":{"file":"lib/libtmux.mli","line":959,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.start","slug":"libtmux-command-view-type-capture_text-start"},{"id":"Libtmux.Command.view:type.Create_session","publicId":"Libtmux.Command.view:type.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":976,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":976,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_session","slug":"libtmux-command-view-type-create_session"},{"id":"Libtmux.Command.view:type.Create_session.height","publicId":"Libtmux.Command.view:type.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":980,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":980,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-view-type-create_session-height"},{"id":"Libtmux.Command.view:type.Create_session.name","publicId":"Libtmux.Command.view:type.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":977,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":977,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_session-name"},{"id":"Libtmux.Command.view:type.Create_session.spawn","publicId":"Libtmux.Command.view:type.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":981,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":981,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_session-spawn"},{"id":"Libtmux.Command.view:type.Create_session.width","publicId":"Libtmux.Command.view:type.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":979,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":979,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-view-type-create_session-width"},{"id":"Libtmux.Command.view:type.Create_session.window_name","publicId":"Libtmux.Command.view:type.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":978,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string option;","source":{"file":"lib/libtmux.mli","line":978,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string option","qualifiedName":"Libtmux.Command.window_name","slug":"libtmux-command-view-type-create_session-window_name"},{"id":"Libtmux.Command.view:type.Create_window","publicId":"Libtmux.Command.view:type.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":984,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":984,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_window","slug":"libtmux-command-view-type-create_window"},{"id":"Libtmux.Command.view:type.Create_window.index","publicId":"Libtmux.Command.view:type.Create_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":986,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":986,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-create_window-index"},{"id":"Libtmux.Command.view:type.Create_window.name","publicId":"Libtmux.Command.view:type.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":987,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":987,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_window-name"},{"id":"Libtmux.Command.view:type.Create_window.session","publicId":"Libtmux.Command.view:type.Create_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":985,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":985,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-create_window-session"},{"id":"Libtmux.Command.view:type.Create_window.spawn","publicId":"Libtmux.Command.view:type.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":988,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":988,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_window-spawn"},{"id":"Libtmux.Command.view:type.Mutate","publicId":"Libtmux.Command.view:type.Mutate","name":"Mutate","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":975,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mutate : mutation -> unit view","source":{"file":"lib/libtmux.mli","line":975,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Mutate","slug":"libtmux-command-view-type-mutate"},{"id":"Libtmux.Command.view:type.Read_hook","publicId":"Libtmux.Command.view:type.Read_hook","name":"Read_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":974,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_hook : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":974,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_hook","slug":"libtmux-command-view-type-read_hook"},{"id":"Libtmux.Command.view:type.Read_option","publicId":"Libtmux.Command.view:type.Read_option","name":"Read_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":972,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_option : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":972,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_option","slug":"libtmux-command-view-type-read_option"},{"id":"Libtmux.Command.view:type.Rename_session","publicId":"Libtmux.Command.view:type.Rename_session","name":"Rename_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":965,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_session : Session.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":965,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_session","slug":"libtmux-command-view-type-rename_session"},{"id":"Libtmux.Command.view:type.Rename_window","publicId":"Libtmux.Command.view:type.Rename_window","name":"Rename_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":964,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_window : Window.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":964,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_window","slug":"libtmux-command-view-type-rename_window"},{"id":"Libtmux.Command.view:type.Send_keys","publicId":"Libtmux.Command.view:type.Send_keys","name":"Send_keys","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":967,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_keys : Pane.target * Key.t list -> unit view","source":{"file":"lib/libtmux.mli","line":967,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_keys","slug":"libtmux-command-view-type-send_keys"},{"id":"Libtmux.Command.view:type.Send_text","publicId":"Libtmux.Command.view:type.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":966,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text : Pane.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":966,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_text","slug":"libtmux-command-view-type-send_text"},{"id":"Libtmux.Command.view:type.Signal","publicId":"Libtmux.Command.view:type.Signal","name":"Signal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":969,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Signal : string -> unit view","source":{"file":"lib/libtmux.mli","line":969,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Signal","slug":"libtmux-command-view-type-signal"},{"id":"Libtmux.Command.view:type.Split_pane","publicId":"Libtmux.Command.view:type.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":991,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":991,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Split_pane","slug":"libtmux-command-view-type-split_pane"},{"id":"Libtmux.Command.view:type.Split_pane.direction","publicId":"Libtmux.Command.view:type.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":993,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":993,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-view-type-split_pane-direction"},{"id":"Libtmux.Command.view:type.Split_pane.pane","publicId":"Libtmux.Command.view:type.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":992,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":992,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-split_pane-pane"},{"id":"Libtmux.Command.view:type.Split_pane.size","publicId":"Libtmux.Command.view:type.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":994,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":994,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-view-type-split_pane-size"},{"id":"Libtmux.Command.view:type.Split_pane.spawn","publicId":"Libtmux.Command.view:type.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":995,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":995,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-split_pane-spawn"},{"id":"Libtmux.Command.view:type.Wait_for","publicId":"Libtmux.Command.view:type.Wait_for","name":"Wait_for","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":968,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wait_for : string -> unit view","source":{"file":"lib/libtmux.mli","line":968,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Wait_for","slug":"libtmux-command-view-type-wait_for"},{"id":"Libtmux.Created","publicId":"Libtmux.Created","qualifiedName":"Libtmux.Created","name":"Created","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":757,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" IDs reported by a successful creation reply. Only the requested kind is\n newly created; the other fields can describe existing containers. "],"declarations":[{"kind":"module","text":"module Created : sig\n type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }\n (** IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. *)\nend","source":{"file":"lib/libtmux.mli","line":757,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"IDs reported by a successful creation reply. Only the requested kind is newly created; the other fields can describe existing containers."},"slug":"libtmux-created"},{"id":"Libtmux.Created.t","publicId":"Libtmux.Created.t","qualifiedName":"Libtmux.Created.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":758,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. "],"declarations":[{"kind":"struct","text":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }","source":{"file":"lib/libtmux.mli","line":758,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Created","doc":{"summary":"IDs returned by the creation command, without a second capture. Indexes describe the creation response and may change afterward. Only the resource requested by the command is newly created: splitting a pane does not create the reported session or window."},"signatures":[{"raw":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n}","params":[]}],"slug":"libtmux-created-t"},{"id":"Libtmux.Created.t.pane","publicId":"Libtmux.Created.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":761,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":761,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Created.t","type":"Pane.target","qualifiedName":"Libtmux.Created.pane","slug":"libtmux-created-t-pane"},{"id":"Libtmux.Created.t.pane_index","publicId":"Libtmux.Created.t.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.pane_index","slug":"libtmux-created-t-pane_index"},{"id":"Libtmux.Created.t.session","publicId":"Libtmux.Created.t.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":759,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":759,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Created.t","type":"Session.target","qualifiedName":"Libtmux.Created.session","slug":"libtmux-created-t-session"},{"id":"Libtmux.Created.t.window","publicId":"Libtmux.Created.t.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":760,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":760,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Created.t","type":"Window.target","qualifiedName":"Libtmux.Created.window","slug":"libtmux-created-t-window"},{"id":"Libtmux.Created.t.window_index","publicId":"Libtmux.Created.t.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"lib/libtmux.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.window_index","slug":"libtmux-created-t-window_index"},{"id":"Libtmux.Endpoint","publicId":"Libtmux.Endpoint","qualifiedName":"Libtmux.Endpoint","name":"Endpoint","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" An explicit socket description. Constructing an endpoint neither reads the\n environment nor starts a daemon. {!Source.t} adds the observed daemon and\n connection generation. "],"declarations":[{"kind":"module","text":"module Endpoint : sig\n type t\n (** An explicit socket description, independent of the environment. *)\n\n type kind = Named_socket of string | Socket_path of string\n\n val named_socket : string -> t\n (** [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. *)\n\n val socket_path : string -> t\n (** [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. *)\n\n val kind : t -> kind\n\n val equal : t -> t -> bool\n (** Equality compares descriptions, not server instances or resolved paths. *)\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"An explicit socket description. Constructing an endpoint neither reads the environment nor starts a daemon. {!Source.t} adds the observed daemon and connection generation."},"slug":"libtmux-endpoint"},{"id":"Libtmux.Endpoint.equal","publicId":"Libtmux.Endpoint.equal","qualifiedName":"Libtmux.Endpoint.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":43,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Equality compares descriptions, not server instances or resolved paths. "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":43,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"Equality compares descriptions, not server instances or resolved paths."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-endpoint-equal"},{"id":"Libtmux.Endpoint.kind","publicId":"Libtmux.Endpoint.kind","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":41,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : t -> kind","source":{"file":"lib/libtmux.mli","line":41,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val kind : t -> kind","params":[{"name":"arg1","type":"t"}],"returns":"kind"}],"slug":"libtmux-endpoint-kind"},{"id":"Libtmux.Endpoint.kind:type","publicId":"Libtmux.Endpoint.kind:type","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type kind = Named_socket of string | Socket_path of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"type kind = Named_socket of string | Socket_path of string","params":[]}],"slug":"libtmux-endpoint-kind-type"},{"id":"Libtmux.Endpoint.kind:type.Named_socket","publicId":"Libtmux.Endpoint.kind:type.Named_socket","name":"Named_socket","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Named_socket of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Named_socket","slug":"libtmux-endpoint-kind-type-named_socket"},{"id":"Libtmux.Endpoint.kind:type.Socket_path","publicId":"Libtmux.Endpoint.kind:type.Socket_path","name":"Socket_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Socket_path of string","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Socket_path","slug":"libtmux-endpoint-kind-type-socket_path"},{"id":"Libtmux.Endpoint.named_socket","publicId":"Libtmux.Endpoint.named_socket","qualifiedName":"Libtmux.Endpoint.named_socket","name":"named_socket","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. "],"declarations":[{"kind":"function","text":"val named_socket : string -> t","source":{"file":"lib/libtmux.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`named_socket name` describes tmux's `-L name` endpoint. Raises `Invalid_argument` if `name` is empty or contains NUL or `/`."},"signatures":[{"raw":"val named_socket : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-named_socket"},{"id":"Libtmux.Endpoint.pp","publicId":"Libtmux.Endpoint.pp","qualifiedName":"Libtmux.Endpoint.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":46,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":46,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-endpoint-pp"},{"id":"Libtmux.Endpoint.socket_path","publicId":"Libtmux.Endpoint.socket_path","qualifiedName":"Libtmux.Endpoint.socket_path","name":"socket_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. "],"declarations":[{"kind":"function","text":"val socket_path : string -> t","source":{"file":"lib/libtmux.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`socket_path path` describes an absolute `-S path` endpoint. It does not check existence or resolve symbolic links. Raises `Invalid_argument` if `path` is relative, empty or contains NUL."},"signatures":[{"raw":"val socket_path : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-socket_path"},{"id":"Libtmux.Endpoint.t","publicId":"Libtmux.Endpoint.t","qualifiedName":"Libtmux.Endpoint.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" An explicit socket description, independent of the environment. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"An explicit socket description, independent of the environment."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-endpoint-t"},{"id":"Libtmux.Environment","publicId":"Libtmux.Environment","qualifiedName":"Libtmux.Environment","name":"Environment","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":771,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Environment : sig\n type scope = Global | Session of Session.target\n type value = Value of string | Removed\n type entry = { name : string; value : value }\n\n type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. *)\n\n val lookup : t -> string -> value option\n (** No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. *)\nend","source":{"file":"lib/libtmux.mli","line":771,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-environment"},{"id":"Libtmux.Environment.entry","publicId":"Libtmux.Environment.entry","qualifiedName":"Libtmux.Environment.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { name : string; value : value }","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type entry = { name : string; value : value; }","params":[]}],"slug":"libtmux-environment-entry"},{"id":"Libtmux.Environment.entry.name","publicId":"Libtmux.Environment.entry.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.entry","type":"string","qualifiedName":"Libtmux.Environment.name","slug":"libtmux-environment-entry-name"},{"id":"Libtmux.Environment.entry.value","publicId":"Libtmux.Environment.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.entry","type":"value","qualifiedName":"Libtmux.Environment.value","slug":"libtmux-environment-entry-value"},{"id":"Libtmux.Environment.lookup","publicId":"Libtmux.Environment.lookup","qualifiedName":"Libtmux.Environment.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":788,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> value option","source":{"file":"lib/libtmux.mli","line":788,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment","doc":{"summary":"No I/O. `None` means absent from the selected table and visibility. `Removed` masks a global value; `Value \"\"` is an explicitly empty value. Names must be ASCII identifiers; values preserve non-NUL bytes."},"signatures":[{"raw":"val lookup : t -> string -> value option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"value option"}],"slug":"libtmux-environment-lookup"},{"id":"Libtmux.Environment.scope","publicId":"Libtmux.Environment.scope","qualifiedName":"Libtmux.Environment.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Global | Session of Session.target","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type scope = Global | Session of Session.target","params":[]}],"slug":"libtmux-environment-scope"},{"id":"Libtmux.Environment.scope.Global","publicId":"Libtmux.Environment.scope.Global","name":"Global","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Global","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.scope","variant":"unit","qualifiedName":"Libtmux.Environment.Global","slug":"libtmux-environment-scope-global"},{"id":"Libtmux.Environment.scope.Session","publicId":"Libtmux.Environment.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.scope","variant":"tuple","qualifiedName":"Libtmux.Environment.Session","slug":"libtmux-environment-scope-session"},{"id":"Libtmux.Environment.t","publicId":"Libtmux.Environment.t","qualifiedName":"Libtmux.Environment.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":776,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":776,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment","doc":{"summary":"One captured environment table, in tmux order. `hidden` selects hidden variables exclusively. Session tables contain local entries, including removal markers; they do not merge the global environment."},"signatures":[{"raw":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-environment-t"},{"id":"Libtmux.Environment.t.entries","publicId":"Libtmux.Environment.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Environment.entries","slug":"libtmux-environment-t-entries"},{"id":"Libtmux.Environment.t.finished_at_ns","publicId":"Libtmux.Environment.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":782,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":782,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.finished_at_ns","slug":"libtmux-environment-t-finished_at_ns"},{"id":"Libtmux.Environment.t.hidden","publicId":"Libtmux.Environment.t.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":779,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":779,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.t","type":"bool","qualifiedName":"Libtmux.Environment.hidden","slug":"libtmux-environment-t-hidden"},{"id":"Libtmux.Environment.t.scope","publicId":"Libtmux.Environment.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":778,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":778,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.t","type":"scope","qualifiedName":"Libtmux.Environment.scope","slug":"libtmux-environment-t-scope"},{"id":"Libtmux.Environment.t.source","publicId":"Libtmux.Environment.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":777,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":777,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.t","type":"Source.t","qualifiedName":"Libtmux.Environment.source","slug":"libtmux-environment-t-source"},{"id":"Libtmux.Environment.t.started_at_ns","publicId":"Libtmux.Environment.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":781,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":781,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.started_at_ns","slug":"libtmux-environment-t-started_at_ns"},{"id":"Libtmux.Environment.value","publicId":"Libtmux.Environment.value","qualifiedName":"Libtmux.Environment.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Value of string | Removed","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type value = Value of string | Removed","params":[]}],"slug":"libtmux-environment-value"},{"id":"Libtmux.Environment.value.Removed","publicId":"Libtmux.Environment.value.Removed","name":"Removed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Removed","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.value","variant":"unit","qualifiedName":"Libtmux.Environment.Removed","slug":"libtmux-environment-value-removed"},{"id":"Libtmux.Environment.value.Value","publicId":"Libtmux.Environment.value.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Value of string","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Environment.value","variant":"tuple","qualifiedName":"Libtmux.Environment.Value","slug":"libtmux-environment-value-value"},{"id":"Libtmux.Error","publicId":"Libtmux.Error","qualifiedName":"Libtmux.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":52,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Expected input, capture, capability and transport failures. Cancellation\n belongs to the chosen backend and is not converted into an ordinary error.\n"],"declarations":[{"kind":"module","text":"module Error : sig\n type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":52,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Expected input, capture, capability and transport failures. Cancellation belongs to the chosen backend and is not converted into an ordinary error."},"slug":"libtmux-error"},{"id":"Libtmux.Error.pp","publicId":"Libtmux.Error.pp","qualifiedName":"Libtmux.Error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-error-pp"},{"id":"Libtmux.Error.t","publicId":"Libtmux.Error.t","qualifiedName":"Libtmux.Error.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":53,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":53,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error","signatures":[{"raw":"type t =\n Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string; }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int; }\n | Stale_target\n | No_such_entity of { kind : string; id : string; }\n | Command_failed of { command : string; message : string; }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","params":[]}],"slug":"libtmux-error-t"},{"id":"Libtmux.Error.t.Busy","publicId":"Libtmux.Error.t.Busy","name":"Busy","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Busy","source":{"file":"lib/libtmux.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Busy","slug":"libtmux-error-t-busy"},{"id":"Libtmux.Error.t.Capacity","publicId":"Libtmux.Error.t.Capacity","name":"Capacity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capacity of { resource : string; limit : int }","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Capacity","slug":"libtmux-error-t-capacity"},{"id":"Libtmux.Error.t.Capacity.limit","publicId":"Libtmux.Error.t.Capacity.limit","name":"limit","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"limit : int","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.Capacity","type":"int","qualifiedName":"Libtmux.Error.limit","slug":"libtmux-error-t-capacity-limit"},{"id":"Libtmux.Error.t.Capacity.resource","publicId":"Libtmux.Error.t.Capacity.resource","name":"resource","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"resource : string;","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.Capacity","type":"string","qualifiedName":"Libtmux.Error.resource","slug":"libtmux-error-t-capacity-resource"},{"id":"Libtmux.Error.t.Capture_raced","publicId":"Libtmux.Error.t.Capture_raced","name":"Capture_raced","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_raced of string","source":{"file":"lib/libtmux.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Capture_raced","slug":"libtmux-error-t-capture_raced"},{"id":"Libtmux.Error.t.Closed","publicId":"Libtmux.Error.t.Closed","name":"Closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Closed","source":{"file":"lib/libtmux.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Closed","slug":"libtmux-error-t-closed"},{"id":"Libtmux.Error.t.Command_failed","publicId":"Libtmux.Error.t.Command_failed","name":"Command_failed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command_failed of { command : string; message : string }","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Command_failed","slug":"libtmux-error-t-command_failed"},{"id":"Libtmux.Error.t.Command_failed.command","publicId":"Libtmux.Error.t.Command_failed.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : string;","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.command","slug":"libtmux-error-t-command_failed-command"},{"id":"Libtmux.Error.t.Command_failed.message","publicId":"Libtmux.Error.t.Command_failed.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-command_failed-message"},{"id":"Libtmux.Error.t.Deadline_exceeded","publicId":"Libtmux.Error.t.Deadline_exceeded","name":"Deadline_exceeded","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Deadline_exceeded","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Deadline_exceeded","slug":"libtmux-error-t-deadline_exceeded"},{"id":"Libtmux.Error.t.Disconnected","publicId":"Libtmux.Error.t.Disconnected","name":"Disconnected","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Disconnected of string","source":{"file":"lib/libtmux.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Disconnected","slug":"libtmux-error-t-disconnected"},{"id":"Libtmux.Error.t.Filesystem","publicId":"Libtmux.Error.t.Filesystem","name":"Filesystem","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Filesystem of { operation : string; message : string }","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Filesystem","slug":"libtmux-error-t-filesystem"},{"id":"Libtmux.Error.t.Filesystem.message","publicId":"Libtmux.Error.t.Filesystem.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-filesystem-message"},{"id":"Libtmux.Error.t.Filesystem.operation","publicId":"Libtmux.Error.t.Filesystem.operation","name":"operation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation : string;","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.operation","slug":"libtmux-error-t-filesystem-operation"},{"id":"Libtmux.Error.t.Invalid_input","publicId":"Libtmux.Error.t.Invalid_input","name":"Invalid_input","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":54,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Invalid_input of string","source":{"file":"lib/libtmux.mli","line":54,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Invalid_input","slug":"libtmux-error-t-invalid_input"},{"id":"Libtmux.Error.t.Malformed_data","publicId":"Libtmux.Error.t.Malformed_data","name":"Malformed_data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Malformed_data of string","source":{"file":"lib/libtmux.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Malformed_data","slug":"libtmux-error-t-malformed_data"},{"id":"Libtmux.Error.t.No_such_entity","publicId":"Libtmux.Error.t.No_such_entity","name":"No_such_entity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| No_such_entity of { kind : string; id : string }","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.No_such_entity","slug":"libtmux-error-t-no_such_entity"},{"id":"Libtmux.Error.t.No_such_entity.id","publicId":"Libtmux.Error.t.No_such_entity.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : string","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.id","slug":"libtmux-error-t-no_such_entity-id"},{"id":"Libtmux.Error.t.No_such_entity.kind","publicId":"Libtmux.Error.t.No_such_entity.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : string;","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.kind","slug":"libtmux-error-t-no_such_entity-kind"},{"id":"Libtmux.Error.t.Not_started","publicId":"Libtmux.Error.t.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"lib/libtmux.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Not_started","slug":"libtmux-error-t-not_started"},{"id":"Libtmux.Error.t.Outcome_unknown","publicId":"Libtmux.Error.t.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Outcome_unknown","slug":"libtmux-error-t-outcome_unknown"},{"id":"Libtmux.Error.t.Stale_target","publicId":"Libtmux.Error.t.Stale_target","name":"Stale_target","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale_target","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Stale_target","slug":"libtmux-error-t-stale_target"},{"id":"Libtmux.Error.t.Unsupported","publicId":"Libtmux.Error.t.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported of string","source":{"file":"lib/libtmux.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported","slug":"libtmux-error-t-unsupported"},{"id":"Libtmux.Error.t.Unsupported_binding","publicId":"Libtmux.Error.t.Unsupported_binding","name":"Unsupported_binding","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_binding of string","source":{"file":"lib/libtmux.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_binding","slug":"libtmux-error-t-unsupported_binding"},{"id":"Libtmux.Error.t.Unsupported_capture_hooks","publicId":"Libtmux.Error.t.Unsupported_capture_hooks","name":"Unsupported_capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_capture_hooks","source":{"file":"lib/libtmux.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Unsupported_capture_hooks","slug":"libtmux-error-t-unsupported_capture_hooks"},{"id":"Libtmux.Error.t.Unsupported_version","publicId":"Libtmux.Error.t.Unsupported_version","name":"Unsupported_version","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_version of string","source":{"file":"lib/libtmux.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_version","slug":"libtmux-error-t-unsupported_version"},{"id":"Libtmux.Error.t.Wrong_domain","publicId":"Libtmux.Error.t.Wrong_domain","name":"Wrong_domain","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_domain","source":{"file":"lib/libtmux.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Wrong_domain","slug":"libtmux-error-t-wrong_domain"},{"id":"Libtmux.Expr","publicId":"Libtmux.Expr","qualifiedName":"Libtmux.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Inspectable predicates whose entity and operand types are checked by the\n compiler. Combine native closures separately with [Seq.filter]. Evaluation\n follows captured relationships without acquisition or hidden caches. "],"declarations":[{"kind":"module","text":"module Expr : sig\n type 'entity t\n\n val all : 'a t list -> 'a t\n (** Boolean conjunction; the empty conjunction is true. *)\n\n val any : 'a t list -> 'a t\n (** Boolean disjunction; the empty disjunction is false. *)\n\n val not_ : 'a t -> 'a t\n\n module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end\n\n module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end\n\n module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end\n\n module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end\n\n val compile : 'a t -> 'a -> bool\n (** Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n *)\n\n val pp : Format.formatter -> 'a t -> unit\n val describe : 'a t -> string\n\n type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison\n\n type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view\n\n val view : 'a t -> 'a view\n (** Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. *)\nend","source":{"file":"lib/libtmux.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Inspectable predicates whose entity and operand types are checked by the compiler. Combine native closures separately with `Seq.filter`. Evaluation follows captured relationships without acquisition or hidden caches."},"slug":"libtmux-expr"},{"id":"Libtmux.Expr.Bool","publicId":"Libtmux.Expr.Bool","qualifiedName":"Libtmux.Expr.Bool","name":"Bool","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":563,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":563,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-bool"},{"id":"Libtmux.Expr.Bool.equal","publicId":"Libtmux.Expr.Bool.equal","qualifiedName":"Libtmux.Expr.Bool.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":564,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, bool) Field.t -> bool -> 'a t","source":{"file":"lib/libtmux.mli","line":564,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val equal : ('a, bool) Field.t -> bool -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"},{"name":"arg2","type":"bool"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-equal"},{"id":"Libtmux.Expr.Bool.is_false","publicId":"Libtmux.Expr.Bool.is_false","qualifiedName":"Libtmux.Expr.Bool.is_false","name":"is_false","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":566,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_false : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":566,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_false : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_false"},{"id":"Libtmux.Expr.Bool.is_true","publicId":"Libtmux.Expr.Bool.is_true","qualifiedName":"Libtmux.Expr.Bool.is_true","name":"is_true","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_true : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_true : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_true"},{"id":"Libtmux.Expr.Int","publicId":"Libtmux.Expr.Int","qualifiedName":"Libtmux.Expr.Int","name":"Int","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":569,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":569,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-int"},{"id":"Libtmux.Expr.Int.equal","publicId":"Libtmux.Expr.Int.equal","qualifiedName":"Libtmux.Expr.Int.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":570,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":570,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val equal : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-equal"},{"id":"Libtmux.Expr.Int.ge","publicId":"Libtmux.Expr.Int.ge","qualifiedName":"Libtmux.Expr.Int.ge","name":"ge","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":574,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ge : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":574,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val ge : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-ge"},{"id":"Libtmux.Expr.Int.gt","publicId":"Libtmux.Expr.Int.gt","qualifiedName":"Libtmux.Expr.Int.gt","name":"gt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":573,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val gt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":573,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val gt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-gt"},{"id":"Libtmux.Expr.Int.is_in","publicId":"Libtmux.Expr.Int.is_in","qualifiedName":"Libtmux.Expr.Int.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_in : ('a, int) Field.t -> int list -> 'a t","source":{"file":"lib/libtmux.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val is_in : ('a, int) Field.t -> int list -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int list"}],"returns":"'a t"}],"slug":"libtmux-expr-int-is_in"},{"id":"Libtmux.Expr.Int.le","publicId":"Libtmux.Expr.Int.le","qualifiedName":"Libtmux.Expr.Int.le","name":"le","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":572,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val le : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":572,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val le : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-le"},{"id":"Libtmux.Expr.Int.lt","publicId":"Libtmux.Expr.Int.lt","qualifiedName":"Libtmux.Expr.Int.lt","name":"lt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":571,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val lt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":571,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val lt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-lt"},{"id":"Libtmux.Expr.Rel","publicId":"Libtmux.Expr.Rel","qualifiedName":"Libtmux.Expr.Rel","name":"Rel","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":589,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":589,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-rel"},{"id":"Libtmux.Expr.Rel.all","publicId":"Libtmux.Expr.Rel.all","qualifiedName":"Libtmux.Expr.Rel.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":591,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":591,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-all"},{"id":"Libtmux.Expr.Rel.any","publicId":"Libtmux.Expr.Rel.any","qualifiedName":"Libtmux.Expr.Rel.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-any"},{"id":"Libtmux.Expr.Rel.exists","publicId":"Libtmux.Expr.Rel.exists","qualifiedName":"Libtmux.Expr.Rel.exists","name":"exists","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":598,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":598,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-exists"},{"id":"Libtmux.Expr.Rel.is","publicId":"Libtmux.Expr.Rel.is","qualifiedName":"Libtmux.Expr.Rel.is","name":"is","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.One.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is"},{"id":"Libtmux.Expr.Rel.is_absent","publicId":"Libtmux.Expr.Rel.is_absent","qualifiedName":"Libtmux.Expr.Rel.is_absent","name":"is_absent","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":599,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","source":{"file":"lib/libtmux.mli","line":599,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is_absent"},{"id":"Libtmux.Expr.Rel.none","publicId":"Libtmux.Expr.Rel.none","qualifiedName":"Libtmux.Expr.Rel.none","name":"none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":593,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. "],"declarations":[{"kind":"function","text":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":593,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Rel","doc":{"summary":"On empty relations, `any` is false; `all` and `none` are true. One child must satisfy the complete nested expression."},"signatures":[{"raw":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-none"},{"id":"Libtmux.Expr.Text","publicId":"Libtmux.Expr.Text","qualifiedName":"Libtmux.Expr.Text","name":"Text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":578,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end","source":{"file":"lib/libtmux.mli","line":578,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-text"},{"id":"Libtmux.Expr.Text.contains","publicId":"Libtmux.Expr.Text.contains","qualifiedName":"Libtmux.Expr.Text.contains","name":"contains","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":582,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val contains : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":582,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val contains : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-contains"},{"id":"Libtmux.Expr.Text.ends_with","publicId":"Libtmux.Expr.Text.ends_with","qualifiedName":"Libtmux.Expr.Text.ends_with","name":"ends_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ends_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val ends_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-ends_with"},{"id":"Libtmux.Expr.Text.equal","publicId":"Libtmux.Expr.Text.equal","qualifiedName":"Libtmux.Expr.Text.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":579,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":579,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val equal : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-equal"},{"id":"Libtmux.Expr.Text.is_in","publicId":"Libtmux.Expr.Text.is_in","qualifiedName":"Libtmux.Expr.Text.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":584,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. "],"declarations":[{"kind":"function","text":"val is_in : ('a, string) Field.t -> string list -> 'a t","source":{"file":"lib/libtmux.mli","line":584,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Text","doc":{"summary":"Comparisons use exact bytes, without case folding or normalization. The empty substring matches every string."},"signatures":[{"raw":"val is_in : ('a, string) Field.t -> string list -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string list"}],"returns":"'a t"}],"slug":"libtmux-expr-text-is_in"},{"id":"Libtmux.Expr.Text.starts_with","publicId":"Libtmux.Expr.Text.starts_with","qualifiedName":"Libtmux.Expr.Text.starts_with","name":"starts_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":580,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val starts_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":580,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val starts_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-starts_with"},{"id":"Libtmux.Expr.all","publicId":"Libtmux.Expr.all","qualifiedName":"Libtmux.Expr.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":555,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Boolean conjunction; the empty conjunction is true. "],"declarations":[{"kind":"function","text":"val all : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":555,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean conjunction; the empty conjunction is true."},"signatures":[{"raw":"val all : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-all"},{"id":"Libtmux.Expr.any","publicId":"Libtmux.Expr.any","qualifiedName":"Libtmux.Expr.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Boolean disjunction; the empty disjunction is false. "],"declarations":[{"kind":"function","text":"val any : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean disjunction; the empty disjunction is false."},"signatures":[{"raw":"val any : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-any"},{"id":"Libtmux.Expr.comparison","publicId":"Libtmux.Expr.comparison","qualifiedName":"Libtmux.Expr.comparison","name":"comparison","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":609,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":609,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type _ comparison =\n Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","params":[]}],"slug":"libtmux-expr-comparison"},{"id":"Libtmux.Expr.comparison.Bool_equal","publicId":"Libtmux.Expr.comparison.Bool_equal","name":"Bool_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":610,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool_equal : bool -> bool comparison","source":{"file":"lib/libtmux.mli","line":610,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Bool_equal","slug":"libtmux-expr-comparison-bool_equal"},{"id":"Libtmux.Expr.comparison.Int_equal","publicId":"Libtmux.Expr.comparison.Int_equal","name":"Int_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":611,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_equal : int -> int comparison","source":{"file":"lib/libtmux.mli","line":611,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_equal","slug":"libtmux-expr-comparison-int_equal"},{"id":"Libtmux.Expr.comparison.Int_ge","publicId":"Libtmux.Expr.comparison.Int_ge","name":"Int_ge","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":615,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_ge : int -> int comparison","source":{"file":"lib/libtmux.mli","line":615,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_ge","slug":"libtmux-expr-comparison-int_ge"},{"id":"Libtmux.Expr.comparison.Int_gt","publicId":"Libtmux.Expr.comparison.Int_gt","name":"Int_gt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":614,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_gt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":614,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_gt","slug":"libtmux-expr-comparison-int_gt"},{"id":"Libtmux.Expr.comparison.Int_in","publicId":"Libtmux.Expr.comparison.Int_in","name":"Int_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":616,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_in : int list -> int comparison","source":{"file":"lib/libtmux.mli","line":616,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_in","slug":"libtmux-expr-comparison-int_in"},{"id":"Libtmux.Expr.comparison.Int_le","publicId":"Libtmux.Expr.comparison.Int_le","name":"Int_le","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":613,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_le : int -> int comparison","source":{"file":"lib/libtmux.mli","line":613,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_le","slug":"libtmux-expr-comparison-int_le"},{"id":"Libtmux.Expr.comparison.Int_lt","publicId":"Libtmux.Expr.comparison.Int_lt","name":"Int_lt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_lt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_lt","slug":"libtmux-expr-comparison-int_lt"},{"id":"Libtmux.Expr.comparison.Text_contains","publicId":"Libtmux.Expr.comparison.Text_contains","name":"Text_contains","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_contains : string -> string comparison","source":{"file":"lib/libtmux.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_contains","slug":"libtmux-expr-comparison-text_contains"},{"id":"Libtmux.Expr.comparison.Text_ends_with","publicId":"Libtmux.Expr.comparison.Text_ends_with","name":"Text_ends_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":619,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_ends_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":619,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_ends_with","slug":"libtmux-expr-comparison-text_ends_with"},{"id":"Libtmux.Expr.comparison.Text_equal","publicId":"Libtmux.Expr.comparison.Text_equal","name":"Text_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":617,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_equal : string -> string comparison","source":{"file":"lib/libtmux.mli","line":617,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_equal","slug":"libtmux-expr-comparison-text_equal"},{"id":"Libtmux.Expr.comparison.Text_in","publicId":"Libtmux.Expr.comparison.Text_in","name":"Text_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_in","slug":"libtmux-expr-comparison-text_in"},{"id":"Libtmux.Expr.comparison.Text_starts_with","publicId":"Libtmux.Expr.comparison.Text_starts_with","name":"Text_starts_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":618,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_starts_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":618,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_starts_with","slug":"libtmux-expr-comparison-text_starts_with"},{"id":"Libtmux.Expr.compile","publicId":"Libtmux.Expr.compile","qualifiedName":"Libtmux.Expr.compile","name":"compile","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n "],"declarations":[{"kind":"function","text":"val compile : 'a t -> 'a -> bool","source":{"file":"lib/libtmux.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","doc":{"summary":"Prepare a reusable predicate. Compilation and evaluation perform no I/O."},"signatures":[{"raw":"val compile : 'a t -> 'a -> bool","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"'a"}],"returns":"bool"}],"slug":"libtmux-expr-compile"},{"id":"Libtmux.Expr.describe","publicId":"Libtmux.Expr.describe","qualifiedName":"Libtmux.Expr.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":607,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : 'a t -> string","source":{"file":"lib/libtmux.mli","line":607,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val describe : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-expr-describe"},{"id":"Libtmux.Expr.not_","publicId":"Libtmux.Expr.not_","qualifiedName":"Libtmux.Expr.not_","name":"not_","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":561,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val not_ : 'a t -> 'a t","source":{"file":"lib/libtmux.mli","line":561,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val not_ : 'a t -> 'a t","params":[{"name":"arg1","type":"'a t"}],"returns":"'a t"}],"slug":"libtmux-expr-not_"},{"id":"Libtmux.Expr.pp","publicId":"Libtmux.Expr.pp","qualifiedName":"Libtmux.Expr.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":606,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> 'a t -> unit","source":{"file":"lib/libtmux.mli","line":606,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val pp : Format.formatter -> 'a t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"'a t"}],"returns":"unit"}],"slug":"libtmux-expr-pp"},{"id":"Libtmux.Expr.t","publicId":"Libtmux.Expr.t","qualifiedName":"Libtmux.Expr.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":553,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'entity t","source":{"file":"lib/libtmux.mli","line":553,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'entity t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-expr-t"},{"id":"Libtmux.Expr.view","publicId":"Libtmux.Expr.view","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","doc":{"summary":"Typed read-only inspection for codecs and planners. A view cannot add custom accessors or closures to an expression."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-expr-view"},{"id":"Libtmux.Expr.view:type","publicId":"Libtmux.Expr.view:type","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":623,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":623,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'a view =\n Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","params":[]}],"slug":"libtmux-expr-view-type"},{"id":"Libtmux.Expr.view:type.Absent","publicId":"Libtmux.Expr.view:type.Absent","name":"Absent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Absent","slug":"libtmux-expr-view-type-absent"},{"id":"Libtmux.Expr.view:type.All","publicId":"Libtmux.Expr.view:type.All","name":"All","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":625,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| All of 'a t list","source":{"file":"lib/libtmux.mli","line":625,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.All","slug":"libtmux-expr-view-type-all"},{"id":"Libtmux.Expr.view:type.Any","publicId":"Libtmux.Expr.view:type.Any","name":"Any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":626,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Any of 'a t list","source":{"file":"lib/libtmux.mli","line":626,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Any","slug":"libtmux-expr-view-type-any"},{"id":"Libtmux.Expr.view:type.Compare","publicId":"Libtmux.Expr.view:type.Compare","name":"Compare","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Compare : ('a, 'v) Field.t * 'v comparison -> 'a view","source":{"file":"lib/libtmux.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Compare","slug":"libtmux-expr-view-type-compare"},{"id":"Libtmux.Expr.view:type.Not","publicId":"Libtmux.Expr.view:type.Not","name":"Not","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":627,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not of 'a t","source":{"file":"lib/libtmux.mli","line":627,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Not","slug":"libtmux-expr-view-type-not"},{"id":"Libtmux.Expr.view:type.Related_all","publicId":"Libtmux.Expr.view:type.Related_all","name":"Related_all","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_all","slug":"libtmux-expr-view-type-related_all"},{"id":"Libtmux.Expr.view:type.Related_any","publicId":"Libtmux.Expr.view:type.Related_any","name":"Related_any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":628,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":628,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_any","slug":"libtmux-expr-view-type-related_any"},{"id":"Libtmux.Expr.view:type.Related_none","publicId":"Libtmux.Expr.view:type.Related_none","name":"Related_none","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":630,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":630,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_none","slug":"libtmux-expr-view-type-related_none"},{"id":"Libtmux.Expr.view:type.Related_one","publicId":"Libtmux.Expr.view:type.Related_one","name":"Related_one","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":631,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":631,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_one","slug":"libtmux-expr-view-type-related_one"},{"id":"Libtmux.Expr.view:type.Related_optional","publicId":"Libtmux.Expr.view:type.Related_optional","name":"Related_optional","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":632,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":632,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_optional","slug":"libtmux-expr-view-type-related_optional"},{"id":"Libtmux.Field","publicId":"Libtmux.Field","qualifiedName":"Libtmux.Field","name":"Field","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Sealed scalar descriptors carrying entity and value types. Descriptors read\n captured data and provide trusted identities for {!Expr} values. Use\n {!Relation} for graph edges. "],"declarations":[{"kind":"module","text":"module Field : sig\n type _ kind = Bool : bool kind | Int : int kind | Text : string kind\n type ('entity, 'value) t\n type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed\n\n val name : ('entity, 'value) t -> string\n val kind : ('entity, 'value) t -> 'value kind\n\n val get : ('entity, 'value) t -> 'entity -> 'value\n (** Canonical descriptors are sealed. Accessing a field reads captured data.\n *)\nend","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Sealed scalar descriptors carrying entity and value types. Descriptors read captured data and provide trusted identities for {!Expr} values. Use {!Relation} for graph edges."},"slug":"libtmux-field"},{"id":"Libtmux.Field.get","publicId":"Libtmux.Field.get","qualifiedName":"Libtmux.Field.get","name":"get","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":142,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Canonical descriptors are sealed. Accessing a field reads captured data.\n "],"declarations":[{"kind":"function","text":"val get : ('entity, 'value) t -> 'entity -> 'value","source":{"file":"lib/libtmux.mli","line":142,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field","doc":{"summary":"Canonical descriptors are sealed. Accessing a field reads captured data."},"signatures":[{"raw":"val get : ('entity, 'value) t -> 'entity -> 'value","params":[{"name":"arg1","type":"('entity, 'value) t"},{"name":"arg2","type":"'entity"}],"returns":"'value"}],"slug":"libtmux-field-get"},{"id":"Libtmux.Field.kind","publicId":"Libtmux.Field.kind","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":140,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : ('entity, 'value) t -> 'value kind","source":{"file":"lib/libtmux.mli","line":140,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val kind : ('entity, 'value) t -> 'value kind","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"'value kind"}],"slug":"libtmux-field-kind"},{"id":"Libtmux.Field.kind:type","publicId":"Libtmux.Field.kind:type","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","params":[]}],"slug":"libtmux-field-kind-type"},{"id":"Libtmux.Field.kind:type.Bool","publicId":"Libtmux.Field.kind:type.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool : bool kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Bool","slug":"libtmux-field-kind-type-bool"},{"id":"Libtmux.Field.kind:type.Int","publicId":"Libtmux.Field.kind:type.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int : int kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Int","slug":"libtmux-field-kind-type-int"},{"id":"Libtmux.Field.kind:type.Text","publicId":"Libtmux.Field.kind:type.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text : string kind","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Text","slug":"libtmux-field-kind-type-text"},{"id":"Libtmux.Field.name","publicId":"Libtmux.Field.name","qualifiedName":"Libtmux.Field.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":139,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('entity, 'value) t -> string","source":{"file":"lib/libtmux.mli","line":139,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val name : ('entity, 'value) t -> string","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"string"}],"slug":"libtmux-field-name"},{"id":"Libtmux.Field.packed","publicId":"Libtmux.Field.packed","qualifiedName":"Libtmux.Field.packed","name":"packed","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","params":[]}],"slug":"libtmux-field-packed"},{"id":"Libtmux.Field.packed.Pack","publicId":"Libtmux.Field.packed.Pack","name":"Pack","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field.packed","variant":"tuple","qualifiedName":"Libtmux.Field.Pack","slug":"libtmux-field-packed-pack"},{"id":"Libtmux.Field.t","publicId":"Libtmux.Field.t","qualifiedName":"Libtmux.Field.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('entity, 'value) t","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type ('entity, 'value) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-field-t"},{"id":"Libtmux.Formats","publicId":"Libtmux.Formats","qualifiedName":"Libtmux.Formats","name":"Formats","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":473,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Formats : sig\n module Kind : sig\n type t = Text | Timestamp\n end\n\n module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }\n (** Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. *)\n\n type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t\n\n type scalar = Bool of bool | Int of int | Text of string\n\n type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported\n (** [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor option, Error.t) result\n\n val lookup :\n version:string -> observation -> string -> (state, Error.t) result\n (** No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. *)\nend","source":{"file":"lib/libtmux.mli","line":473,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-formats"},{"id":"Libtmux.Formats.Context","publicId":"Libtmux.Formats.Context","qualifiedName":"Libtmux.Formats.Context","name":"Context","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":478,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end","source":{"file":"lib/libtmux.mli","line":478,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-context"},{"id":"Libtmux.Formats.Context.t","publicId":"Libtmux.Formats.Context.t","qualifiedName":"Libtmux.Formats.Context.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":479,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","source":{"file":"lib/libtmux.mli","line":479,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context","signatures":[{"raw":"type t =\n Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","params":[]}],"slug":"libtmux-formats-context-t"},{"id":"Libtmux.Formats.Context.t.Buffer","publicId":"Libtmux.Formats.Context.t.Buffer","name":"Buffer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":487,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Buffer","source":{"file":"lib/libtmux.mli","line":487,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Buffer","slug":"libtmux-formats-context-t-buffer"},{"id":"Libtmux.Formats.Context.t.Client","publicId":"Libtmux.Formats.Context.t.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":486,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client","source":{"file":"lib/libtmux.mli","line":486,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Client","slug":"libtmux-formats-context-t-client"},{"id":"Libtmux.Formats.Context.t.Command","publicId":"Libtmux.Formats.Context.t.Command","name":"Command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":489,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command","source":{"file":"lib/libtmux.mli","line":489,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Command","slug":"libtmux-formats-context-t-command"},{"id":"Libtmux.Formats.Context.t.Connection","publicId":"Libtmux.Formats.Context.t.Connection","name":"Connection","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Connection","source":{"file":"lib/libtmux.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Connection","slug":"libtmux-formats-context-t-connection"},{"id":"Libtmux.Formats.Context.t.Mouse","publicId":"Libtmux.Formats.Context.t.Mouse","name":"Mouse","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":488,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mouse","source":{"file":"lib/libtmux.mli","line":488,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Mouse","slug":"libtmux-formats-context-t-mouse"},{"id":"Libtmux.Formats.Context.t.Pane","publicId":"Libtmux.Formats.Context.t.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane","source":{"file":"lib/libtmux.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Pane","slug":"libtmux-formats-context-t-pane"},{"id":"Libtmux.Formats.Context.t.Server","publicId":"Libtmux.Formats.Context.t.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":480,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":480,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Server","slug":"libtmux-formats-context-t-server"},{"id":"Libtmux.Formats.Context.t.Session","publicId":"Libtmux.Formats.Context.t.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":482,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session","source":{"file":"lib/libtmux.mli","line":482,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Session","slug":"libtmux-formats-context-t-session"},{"id":"Libtmux.Formats.Context.t.Window","publicId":"Libtmux.Formats.Context.t.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":483,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window","source":{"file":"lib/libtmux.mli","line":483,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window","slug":"libtmux-formats-context-t-window"},{"id":"Libtmux.Formats.Context.t.Window_link","publicId":"Libtmux.Formats.Context.t.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link","source":{"file":"lib/libtmux.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window_link","slug":"libtmux-formats-context-t-window_link"},{"id":"Libtmux.Formats.Kind","publicId":"Libtmux.Formats.Kind","qualifiedName":"Libtmux.Formats.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":474,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Timestamp\n end","source":{"file":"lib/libtmux.mli","line":474,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-kind"},{"id":"Libtmux.Formats.Kind.t","publicId":"Libtmux.Formats.Kind.t","qualifiedName":"Libtmux.Formats.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Timestamp","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Kind","signatures":[{"raw":"type t = Text | Timestamp","params":[]}],"slug":"libtmux-formats-kind-t"},{"id":"Libtmux.Formats.Kind.t.Text","publicId":"Libtmux.Formats.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Text","slug":"libtmux-formats-kind-t-text"},{"id":"Libtmux.Formats.Kind.t.Timestamp","publicId":"Libtmux.Formats.Kind.t.Timestamp","name":"Timestamp","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Timestamp","source":{"file":"lib/libtmux.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Timestamp","slug":"libtmux-formats-kind-t-timestamp"},{"id":"Libtmux.Formats.catalog","publicId":"Libtmux.Formats.catalog","qualifiedName":"Libtmux.Formats.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":524,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":524,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-formats-catalog"},{"id":"Libtmux.Formats.describe","publicId":"Libtmux.Formats.describe","qualifiedName":"Libtmux.Formats.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor option, Error.t) result","source":{"file":"lib/libtmux.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val describe :\n version:string -> string -> (descriptor option, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor option, Error.t) result"}],"slug":"libtmux-formats-describe"},{"id":"Libtmux.Formats.descriptor","publicId":"Libtmux.Formats.descriptor","qualifiedName":"Libtmux.Formats.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":492,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":492,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","doc":{"summary":"Metadata generated from pinned tmux format callbacks. `contexts` lists direct context dependencies, not a promise that a value exists. Caller variables from hooks and menus are outside this built-in catalog."},"signatures":[{"raw":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n}","params":[]}],"slug":"libtmux-formats-descriptor"},{"id":"Libtmux.Formats.descriptor.contexts","publicId":"Libtmux.Formats.descriptor.contexts","name":"contexts","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"contexts : Context.t list;","source":{"file":"lib/libtmux.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.descriptor","type":"Context.t list","qualifiedName":"Libtmux.Formats.contexts","slug":"libtmux-formats-descriptor-contexts"},{"id":"Libtmux.Formats.descriptor.kind","publicId":"Libtmux.Formats.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":494,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":494,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Formats.kind","slug":"libtmux-formats-descriptor-kind"},{"id":"Libtmux.Formats.descriptor.name","publicId":"Libtmux.Formats.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":493,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":493,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.descriptor","type":"string","qualifiedName":"Libtmux.Formats.name","slug":"libtmux-formats-descriptor-name"},{"id":"Libtmux.Formats.descriptor.versions","publicId":"Libtmux.Formats.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":496,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":496,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.descriptor","type":"string list","qualifiedName":"Libtmux.Formats.versions","slug":"libtmux-formats-descriptor-versions"},{"id":"Libtmux.Formats.lookup","publicId":"Libtmux.Formats.lookup","qualifiedName":"Libtmux.Formats.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":527,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. "],"declarations":[{"kind":"function","text":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","source":{"file":"lib/libtmux.mli","line":527,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","doc":{"summary":"No I/O. Supply the version recorded by the acquiring client's `version` accessor. Unsupported catalog versions return an error. Native typed accessors remain the primary API; lookup does not acquire extra fields."},"signatures":[{"raw":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"observation"},{"name":"arg2","type":"string"}],"returns":"(state, Error.t) result"}],"slug":"libtmux-formats-lookup"},{"id":"Libtmux.Formats.observation","publicId":"Libtmux.Formats.observation","qualifiedName":"Libtmux.Formats.observation","name":"observation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type observation =\n Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","params":[]}],"slug":"libtmux-formats-observation"},{"id":"Libtmux.Formats.observation.Client","publicId":"Libtmux.Formats.observation.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":508,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":508,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Client","slug":"libtmux-formats-observation-client"},{"id":"Libtmux.Formats.observation.Pane","publicId":"Libtmux.Formats.observation.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":507,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.t","source":{"file":"lib/libtmux.mli","line":507,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Pane","slug":"libtmux-formats-observation-pane"},{"id":"Libtmux.Formats.observation.Session","publicId":"Libtmux.Formats.observation.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":504,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.t","source":{"file":"lib/libtmux.mli","line":504,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Session","slug":"libtmux-formats-observation-session"},{"id":"Libtmux.Formats.observation.Snapshot","publicId":"Libtmux.Formats.observation.Snapshot","name":"Snapshot","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Snapshot of Snapshot.t","source":{"file":"lib/libtmux.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Snapshot","slug":"libtmux-formats-observation-snapshot"},{"id":"Libtmux.Formats.observation.Window","publicId":"Libtmux.Formats.observation.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.t","source":{"file":"lib/libtmux.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window","slug":"libtmux-formats-observation-window"},{"id":"Libtmux.Formats.observation.Window_link","publicId":"Libtmux.Formats.observation.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":506,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link of Window_link.t","source":{"file":"lib/libtmux.mli","line":506,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window_link","slug":"libtmux-formats-observation-window_link"},{"id":"Libtmux.Formats.scalar","publicId":"Libtmux.Formats.scalar","qualifiedName":"Libtmux.Formats.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar = Bool of bool | Int of int | Text of string","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type scalar = Bool of bool | Int of int | Text of string","params":[]}],"slug":"libtmux-formats-scalar"},{"id":"Libtmux.Formats.scalar.Bool","publicId":"Libtmux.Formats.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool of bool","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Bool","slug":"libtmux-formats-scalar-bool"},{"id":"Libtmux.Formats.scalar.Int","publicId":"Libtmux.Formats.scalar.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int of int","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Int","slug":"libtmux-formats-scalar-int"},{"id":"Libtmux.Formats.scalar.Text","publicId":"Libtmux.Formats.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Text","slug":"libtmux-formats-scalar-text"},{"id":"Libtmux.Formats.state","publicId":"Libtmux.Formats.state","qualifiedName":"Libtmux.Formats.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported","source":{"file":"lib/libtmux.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type state = Value of scalar | Missing | Unacquired | Unsupported","params":[]}],"slug":"libtmux-formats-state"},{"id":"Libtmux.Formats.state.Missing","publicId":"Libtmux.Formats.state.Missing","name":"Missing","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":514,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing","source":{"file":"lib/libtmux.mli","line":514,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Missing","slug":"libtmux-formats-state-missing"},{"id":"Libtmux.Formats.state.Unacquired","publicId":"Libtmux.Formats.state.Unacquired","name":"Unacquired","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":515,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unacquired","source":{"file":"lib/libtmux.mli","line":515,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Unacquired","slug":"libtmux-formats-state-unacquired"},{"id":"Libtmux.Formats.state.Unsupported","publicId":"Libtmux.Formats.state.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":516,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. "],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"lib/libtmux.mli","line":516,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.state","doc":{"summary":"`Missing` is an absence explicitly recorded in the observation, such as a client without terminal height. `Unacquired` means no captured value for this observation, including ambiguous session context for a pane. `Unsupported` means the name is outside the selected release's catalog. `Value (Text \"\")` is a captured empty string, never inferred absence."},"variant":"unit","qualifiedName":"Libtmux.Formats.Unsupported","slug":"libtmux-formats-state-unsupported"},{"id":"Libtmux.Formats.state.Value","publicId":"Libtmux.Formats.state.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":513,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Value of scalar","source":{"file":"lib/libtmux.mli","line":513,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Formats.state","variant":"tuple","qualifiedName":"Libtmux.Formats.Value","slug":"libtmux-formats-state-value"},{"id":"Libtmux.Generation","publicId":"Libtmux.Generation","qualifiedName":"Libtmux.Generation","name":"Generation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A random connection-generation identifier. Reconnecting creates a new\n generation even when the socket and server PID are unchanged. "],"declarations":[{"kind":"module","text":"module Generation : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"A random connection-generation identifier. Reconnecting creates a new generation even when the socket and server PID are unchanged."},"slug":"libtmux-generation"},{"id":"Libtmux.Generation.equal","publicId":"Libtmux.Generation.equal","qualifiedName":"Libtmux.Generation.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":87,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":87,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-generation-equal"},{"id":"Libtmux.Generation.of_string","publicId":"Libtmux.Generation.of_string","qualifiedName":"Libtmux.Generation.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Generation","doc":{"summary":"Import a 256-bit connection nonce as 64 lowercase hexadecimal characters. Backends generate a fresh random nonce for each connection."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-generation-of_string"},{"id":"Libtmux.Generation.t","publicId":"Libtmux.Generation.t","qualifiedName":"Libtmux.Generation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-generation-t"},{"id":"Libtmux.Generation.to_string","publicId":"Libtmux.Generation.to_string","qualifiedName":"Libtmux.Generation.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-generation-to_string"},{"id":"Libtmux.Geometry","publicId":"Libtmux.Geometry","qualifiedName":"Libtmux.Geometry","name":"Geometry","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":740,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Geometry : sig\n type direction = Left | Right | Above | Below\n type size = Cells of int | Percent of int\nend","source":{"file":"lib/libtmux.mli","line":740,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-geometry"},{"id":"Libtmux.Geometry.direction","publicId":"Libtmux.Geometry.direction","qualifiedName":"Libtmux.Geometry.direction","name":"direction","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type direction = Left | Right | Above | Below","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type direction = Left | Right | Above | Below","params":[]}],"slug":"libtmux-geometry-direction"},{"id":"Libtmux.Geometry.direction.Above","publicId":"Libtmux.Geometry.direction.Above","name":"Above","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Above","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Above","slug":"libtmux-geometry-direction-above"},{"id":"Libtmux.Geometry.direction.Below","publicId":"Libtmux.Geometry.direction.Below","name":"Below","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Below","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Below","slug":"libtmux-geometry-direction-below"},{"id":"Libtmux.Geometry.direction.Left","publicId":"Libtmux.Geometry.direction.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Left","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Left","slug":"libtmux-geometry-direction-left"},{"id":"Libtmux.Geometry.direction.Right","publicId":"Libtmux.Geometry.direction.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Right","slug":"libtmux-geometry-direction-right"},{"id":"Libtmux.Geometry.size","publicId":"Libtmux.Geometry.size","qualifiedName":"Libtmux.Geometry.size","name":"size","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type size = Cells of int | Percent of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type size = Cells of int | Percent of int","params":[]}],"slug":"libtmux-geometry-size"},{"id":"Libtmux.Geometry.size.Cells","publicId":"Libtmux.Geometry.size.Cells","name":"Cells","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Cells of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Cells","slug":"libtmux-geometry-size-cells"},{"id":"Libtmux.Geometry.size.Percent","publicId":"Libtmux.Geometry.size.Percent","name":"Percent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Percent of int","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Percent","slug":"libtmux-geometry-size-percent"},{"id":"Libtmux.Hook","publicId":"Libtmux.Hook","qualifiedName":"Libtmux.Hook","name":"Hook","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Hook : sig\n type command = { name : string; arguments : string list }\n (** A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. *)\nend","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-hook"},{"id":"Libtmux.Hook.command","publicId":"Libtmux.Hook.command","qualifiedName":"Libtmux.Hook.command","name":"command","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. "],"declarations":[{"kind":"struct","text":"type command = { name : string; arguments : string list }","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Hook","doc":{"summary":"A tmux command and its distinct arguments. Setting a hook encodes these as command data; it does not concatenate arguments into shell code. Argument-specific tmux behavior, including format expansion, still applies when the hook runs."},"signatures":[{"raw":"type command = { name : string; arguments : string list; }","params":[]}],"slug":"libtmux-hook-command"},{"id":"Libtmux.Hook.command.arguments","publicId":"Libtmux.Hook.command.arguments","name":"arguments","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"arguments : string list","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Hook.command","type":"string list","qualifiedName":"Libtmux.Hook.arguments","slug":"libtmux-hook-command-arguments"},{"id":"Libtmux.Hook.command.name","publicId":"Libtmux.Hook.command.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Hook.command","type":"string","qualifiedName":"Libtmux.Hook.name","slug":"libtmux-hook-command-name"},{"id":"Libtmux.ID","publicId":"Libtmux.ID","qualifiedName":"Libtmux.ID","name":"ID","kind":"interface","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"interface","text":"module type ID = sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Accept a canonical prefixed decimal tmux ID in the uint32 range. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\n val compare : t -> t -> int\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-id"},{"id":"Libtmux.ID.compare","publicId":"Libtmux.ID.compare","qualifiedName":"Libtmux.ID.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-id-compare"},{"id":"Libtmux.ID.equal","publicId":"Libtmux.ID.equal","qualifiedName":"Libtmux.ID.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-id-equal"},{"id":"Libtmux.ID.of_string","publicId":"Libtmux.ID.of_string","qualifiedName":"Libtmux.ID.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.ID","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-id-of_string"},{"id":"Libtmux.ID.pp","publicId":"Libtmux.ID.pp","qualifiedName":"Libtmux.ID.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-id-pp"},{"id":"Libtmux.ID.t","publicId":"Libtmux.ID.t","qualifiedName":"Libtmux.ID.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.ID","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-id-t"},{"id":"Libtmux.ID.to_string","publicId":"Libtmux.ID.to_string","qualifiedName":"Libtmux.ID.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-id-to_string"},{"id":"Libtmux.Key","publicId":"Libtmux.Key","qualifiedName":"Libtmux.Key","name":"Key","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":702,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Key : sig\n type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char\nend","source":{"file":"lib/libtmux.mli","line":702,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-key"},{"id":"Libtmux.Key.t","publicId":"Libtmux.Key.t","qualifiedName":"Libtmux.Key.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":703,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","source":{"file":"lib/libtmux.mli","line":703,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key","signatures":[{"raw":"type t =\n Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","params":[]}],"slug":"libtmux-key-t"},{"id":"Libtmux.Key.t.Backspace","publicId":"Libtmux.Key.t.Backspace","name":"Backspace","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":707,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Backspace","source":{"file":"lib/libtmux.mli","line":707,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Backspace","slug":"libtmux-key-t-backspace"},{"id":"Libtmux.Key.t.Control","publicId":"Libtmux.Key.t.Control","name":"Control","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Control of char","source":{"file":"lib/libtmux.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"tuple","qualifiedName":"Libtmux.Key.Control","slug":"libtmux-key-t-control"},{"id":"Libtmux.Key.t.Down","publicId":"Libtmux.Key.t.Down","name":"Down","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":709,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Down","source":{"file":"lib/libtmux.mli","line":709,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Down","slug":"libtmux-key-t-down"},{"id":"Libtmux.Key.t.Enter","publicId":"Libtmux.Key.t.Enter","name":"Enter","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":704,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Enter","source":{"file":"lib/libtmux.mli","line":704,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Enter","slug":"libtmux-key-t-enter"},{"id":"Libtmux.Key.t.Escape","publicId":"Libtmux.Key.t.Escape","name":"Escape","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":706,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Escape","source":{"file":"lib/libtmux.mli","line":706,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Escape","slug":"libtmux-key-t-escape"},{"id":"Libtmux.Key.t.Left","publicId":"Libtmux.Key.t.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":710,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Left","source":{"file":"lib/libtmux.mli","line":710,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Left","slug":"libtmux-key-t-left"},{"id":"Libtmux.Key.t.Right","publicId":"Libtmux.Key.t.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":711,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":711,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Right","slug":"libtmux-key-t-right"},{"id":"Libtmux.Key.t.Tab","publicId":"Libtmux.Key.t.Tab","name":"Tab","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":705,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tab","source":{"file":"lib/libtmux.mli","line":705,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Tab","slug":"libtmux-key-t-tab"},{"id":"Libtmux.Key.t.Up","publicId":"Libtmux.Key.t.Up","name":"Up","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":708,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Up","source":{"file":"lib/libtmux.mli","line":708,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Up","slug":"libtmux-key-t-up"},{"id":"Libtmux.Layout","publicId":"Libtmux.Layout","qualifiedName":"Libtmux.Layout","name":"Layout","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":745,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Layout : sig\n type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string\nend","source":{"file":"lib/libtmux.mli","line":745,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","slug":"libtmux-layout"},{"id":"Libtmux.Layout.t","publicId":"Libtmux.Layout.t","qualifiedName":"Libtmux.Layout.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":746,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","source":{"file":"lib/libtmux.mli","line":746,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout","signatures":[{"raw":"type t =\n Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","params":[]}],"slug":"libtmux-layout-t"},{"id":"Libtmux.Layout.t.Custom","publicId":"Libtmux.Layout.t.Custom","name":"Custom","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":752,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Custom of string","source":{"file":"lib/libtmux.mli","line":752,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout.t","variant":"tuple","qualifiedName":"Libtmux.Layout.Custom","slug":"libtmux-layout-t-custom"},{"id":"Libtmux.Layout.t.Even_horizontal","publicId":"Libtmux.Layout.t.Even_horizontal","name":"Even_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":747,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_horizontal","source":{"file":"lib/libtmux.mli","line":747,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_horizontal","slug":"libtmux-layout-t-even_horizontal"},{"id":"Libtmux.Layout.t.Even_vertical","publicId":"Libtmux.Layout.t.Even_vertical","name":"Even_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":748,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_vertical","source":{"file":"lib/libtmux.mli","line":748,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_vertical","slug":"libtmux-layout-t-even_vertical"},{"id":"Libtmux.Layout.t.Main_horizontal","publicId":"Libtmux.Layout.t.Main_horizontal","name":"Main_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":749,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_horizontal","source":{"file":"lib/libtmux.mli","line":749,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_horizontal","slug":"libtmux-layout-t-main_horizontal"},{"id":"Libtmux.Layout.t.Main_vertical","publicId":"Libtmux.Layout.t.Main_vertical","name":"Main_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":750,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_vertical","source":{"file":"lib/libtmux.mli","line":750,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_vertical","slug":"libtmux-layout-t-main_vertical"},{"id":"Libtmux.Layout.t.Tiled","publicId":"Libtmux.Layout.t.Tiled","name":"Tiled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":751,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tiled","source":{"file":"lib/libtmux.mli","line":751,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Tiled","slug":"libtmux-layout-t-tiled"},{"id":"Libtmux.Model","publicId":"Libtmux.Model","qualifiedName":"Libtmux.Model","name":"Model","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":536,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Built-in model witnesses and canonical field lookup for typed codecs.\n Untrusted field names must resolve against the selected model. "],"declarations":[{"kind":"module","text":"module Model : sig\n type 'a t\n\n val session : Session.t t\n val window : Window.t t\n val window_link : Window_link.t t\n val pane : Pane.t t\n val client : Client_observation.t t\n val name : 'a t -> string\n val fields : 'a t -> 'a Field.packed list\n val find_field : 'a t -> string -> 'a Field.packed option\nend","source":{"file":"lib/libtmux.mli","line":536,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Built-in model witnesses and canonical field lookup for typed codecs. Untrusted field names must resolve against the selected model."},"slug":"libtmux-model"},{"id":"Libtmux.Model.client","publicId":"Libtmux.Model.client","qualifiedName":"Libtmux.Model.client","name":"client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":543,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val client : Client_observation.t t","source":{"file":"lib/libtmux.mli","line":543,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val client : Client_observation.t t","params":[],"returns":"Client_observation.t t"}],"slug":"libtmux-model-client"},{"id":"Libtmux.Model.fields","publicId":"Libtmux.Model.fields","qualifiedName":"Libtmux.Model.fields","name":"fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":545,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val fields : 'a t -> 'a Field.packed list","source":{"file":"lib/libtmux.mli","line":545,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val fields : 'a t -> 'a Field.packed list","params":[{"name":"arg1","type":"'a t"}],"returns":"'a Field.packed list"}],"slug":"libtmux-model-fields"},{"id":"Libtmux.Model.find_field","publicId":"Libtmux.Model.find_field","qualifiedName":"Libtmux.Model.find_field","name":"find_field","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_field : 'a t -> string -> 'a Field.packed option","source":{"file":"lib/libtmux.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val find_field : 'a t -> string -> 'a Field.packed option","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"string"}],"returns":"'a Field.packed option"}],"slug":"libtmux-model-find_field"},{"id":"Libtmux.Model.name","publicId":"Libtmux.Model.name","qualifiedName":"Libtmux.Model.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":544,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : 'a t -> string","source":{"file":"lib/libtmux.mli","line":544,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val name : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-model-name"},{"id":"Libtmux.Model.pane","publicId":"Libtmux.Model.pane","qualifiedName":"Libtmux.Model.pane","name":"pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pane : Pane.t t","source":{"file":"lib/libtmux.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val pane : Pane.t t","params":[],"returns":"Pane.t t"}],"slug":"libtmux-model-pane"},{"id":"Libtmux.Model.session","publicId":"Libtmux.Model.session","qualifiedName":"Libtmux.Model.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":539,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : Session.t t","source":{"file":"lib/libtmux.mli","line":539,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val session : Session.t t","params":[],"returns":"Session.t t"}],"slug":"libtmux-model-session"},{"id":"Libtmux.Model.t","publicId":"Libtmux.Model.t","qualifiedName":"Libtmux.Model.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-model-t"},{"id":"Libtmux.Model.window","publicId":"Libtmux.Model.window","qualifiedName":"Libtmux.Model.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":540,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : Window.t t","source":{"file":"lib/libtmux.mli","line":540,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window : Window.t t","params":[],"returns":"Window.t t"}],"slug":"libtmux-model-window"},{"id":"Libtmux.Model.window_link","publicId":"Libtmux.Model.window_link","qualifiedName":"Libtmux.Model.window_link","name":"window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":541,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_link : Window_link.t t","source":{"file":"lib/libtmux.mli","line":541,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window_link : Window_link.t t","params":[],"returns":"Window_link.t t"}],"slug":"libtmux-model-window_link"},{"id":"Libtmux.Operations","publicId":"Libtmux.Operations","qualifiedName":"Libtmux.Operations","name":"Operations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1051,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Construct typed tmux operations for a backend client. Observations are\n immutable, mutations use explicit targets, and no command retries a mutation\n against another connection generation. Construction performs no I/O; the\n descriptions below state what execution does. "],"declarations":[{"kind":"module","text":"module Operations : sig\n val capture : unit -> Snapshot.t Command.t\n (** Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. *)\n\n val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t\n (** Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. *)\n\n val rename_window : Window.target -> name:string -> unit Command.t\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session : Session.target -> name:string -> unit Command.t\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at : Client_name.t -> unit Command.t\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text : Pane.target -> text:string -> unit Command.t\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys : Pane.target -> Key.t list -> unit Command.t\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : string -> unit Command.t\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : string -> unit Command.t\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment : Environment.scope -> string -> unit Command.t\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment : Environment.scope -> string -> unit Command.t\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array : Options.scope -> string -> unit Command.t\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks : Options.scope -> Options.t Command.t\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. *)\n\n val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook : Options.scope -> string -> unit Command.t\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session : Session.target -> unit Command.t\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : Window.target -> unit Command.t\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : Pane.target -> unit Command.t\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at : Session.target -> index:int -> unit Command.t\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : Pane.target -> unit Command.t\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title : Pane.target -> title:string -> unit Command.t\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout : Window.target -> Layout.t -> unit Command.t\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes : Pane.target -> Pane.target -> unit Command.t\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : Pane.target -> unit Command.t\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : Pane.target -> unit Command.t\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\nend","source":{"file":"lib/libtmux.mli","line":1051,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Construct typed tmux operations for a backend client. Observations are immutable, mutations use explicit targets, and no command retries a mutation against another connection generation. Construction performs no I/O; the descriptions below state what execution does."},"slug":"libtmux-operations"},{"id":"Libtmux.Operations.break_pane","publicId":"Libtmux.Operations.break_pane","qualifiedName":"Libtmux.Operations.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1235,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n Pane.target -> session:Session.target -> index:int -> Created.t Command.t","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-break_pane"},{"id":"Libtmux.Operations.capture","publicId":"Libtmux.Operations.capture","qualifiedName":"Libtmux.Operations.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1052,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. "],"declarations":[{"kind":"function","text":"val capture : unit -> Snapshot.t Command.t","source":{"file":"lib/libtmux.mli","line":1052,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture and validate the complete session/window-link/pane graph. The result records an acquisition interval, not an atomic server instant."},"signatures":[{"raw":"val capture : unit -> Snapshot.t Command.t","params":[{"name":"arg1","type":"unit"}],"returns":"Snapshot.t Command.t"}],"slug":"libtmux-operations-capture"},{"id":"Libtmux.Operations.capture_environment","publicId":"Libtmux.Operations.capture_environment","qualifiedName":"Libtmux.Operations.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1110,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","source":{"file":"lib/libtmux.mli","line":1110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"}],"returns":"Environment.t Command.t"}],"slug":"libtmux-operations-capture_environment"},{"id":"Libtmux.Operations.capture_hooks","publicId":"Libtmux.Operations.capture_hooks","qualifiedName":"Libtmux.Operations.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1168,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks : Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks : Options.scope -> Options.t Command.t","params":[{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_hooks"},{"id":"Libtmux.Operations.capture_options","publicId":"Libtmux.Operations.capture_options","qualifiedName":"Libtmux.Operations.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1130,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_options"},{"id":"Libtmux.Operations.capture_text","publicId":"Libtmux.Operations.capture_text","qualifiedName":"Libtmux.Operations.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1056,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t","source":{"file":"lib/libtmux.mli","line":1056,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture inclusive visible rows through an operation-owned temporary file. Require `0 <= start <= end_ < Pane.height pane`; scrollback is excluded. Retained bytes survive client close. The scratch directory must share the daemon filesystem."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n Pane.t -> start:int -> end_:int -> Captured_text.t Command.t","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"Captured_text.t Command.t"}],"slug":"libtmux-operations-capture_text"},{"id":"Libtmux.Operations.clear_history","publicId":"Libtmux.Operations.clear_history","qualifiedName":"Libtmux.Operations.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1333,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_history"},{"id":"Libtmux.Operations.clear_option_array","publicId":"Libtmux.Operations.clear_option_array","qualifiedName":"Libtmux.Operations.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1165,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_option_array"},{"id":"Libtmux.Operations.create_session","publicId":"Libtmux.Operations.create_session","qualifiedName":"Libtmux.Operations.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1207,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int -> ?spawn:Spawn.t -> name:string -> unit -> Created.t Command.t","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_session"},{"id":"Libtmux.Operations.create_window","publicId":"Libtmux.Operations.create_window","qualifiedName":"Libtmux.Operations.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1217,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string -> ?spawn:Spawn.t -> Session.target -> Created.t Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_window"},{"id":"Libtmux.Operations.cycle_layout","publicId":"Libtmux.Operations.cycle_layout","qualifiedName":"Libtmux.Operations.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1303,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1303,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Next | `Previous ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-cycle_layout"},{"id":"Libtmux.Operations.kill_pane","publicId":"Libtmux.Operations.kill_pane","qualifiedName":"Libtmux.Operations.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1253,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_pane"},{"id":"Libtmux.Operations.kill_session","publicId":"Libtmux.Operations.kill_session","qualifiedName":"Libtmux.Operations.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1245,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session : Session.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session : Session.target -> unit Command.t","params":[{"name":"arg1","type":"Session.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_session"},{"id":"Libtmux.Operations.kill_window","publicId":"Libtmux.Operations.kill_window","qualifiedName":"Libtmux.Operations.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1249,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window : Window.target -> unit Command.t","params":[{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_window"},{"id":"Libtmux.Operations.link_window","publicId":"Libtmux.Operations.link_window","qualifiedName":"Libtmux.Operations.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1266,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-link_window"},{"id":"Libtmux.Operations.move_pane","publicId":"Libtmux.Operations.move_pane","qualifiedName":"Libtmux.Operations.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1306,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target -> direction:Geometry.direction -> unit Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"beside","type":"Pane.target","keywordOnly":true},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_pane"},{"id":"Libtmux.Operations.move_window_at","publicId":"Libtmux.Operations.move_window_at","qualifiedName":"Libtmux.Operations.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1271,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1271,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n Session.target ->\n from_index:int -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_window_at"},{"id":"Libtmux.Operations.read_hook","publicId":"Libtmux.Operations.read_hook","qualifiedName":"Libtmux.Operations.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1172,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_hook"},{"id":"Libtmux.Operations.read_option","publicId":"Libtmux.Operations.read_option","qualifiedName":"Libtmux.Operations.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1138,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1138,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_option"},{"id":"Libtmux.Operations.refresh_client_at","publicId":"Libtmux.Operations.refresh_client_at","qualifiedName":"Libtmux.Operations.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1089,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1089,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-refresh_client_at"},{"id":"Libtmux.Operations.remove_environment","publicId":"Libtmux.Operations.remove_environment","qualifiedName":"Libtmux.Operations.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1127,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_environment"},{"id":"Libtmux.Operations.remove_hook","publicId":"Libtmux.Operations.remove_hook","qualifiedName":"Libtmux.Operations.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1195,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_hook"},{"id":"Libtmux.Operations.rename_session","publicId":"Libtmux.Operations.rename_session","qualifiedName":"Libtmux.Operations.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1071,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session : Session.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1071,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session : Session.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_session"},{"id":"Libtmux.Operations.rename_window","publicId":"Libtmux.Operations.rename_window","qualifiedName":"Libtmux.Operations.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1067,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window : Window.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1067,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window : Window.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_window"},{"id":"Libtmux.Operations.request_detach_client_at","publicId":"Libtmux.Operations.request_detach_client_at","qualifiedName":"Libtmux.Operations.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1084,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at : Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1084,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at : Client_name.t -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-request_detach_client_at"},{"id":"Libtmux.Operations.resize_control_client_at","publicId":"Libtmux.Operations.resize_control_client_at","qualifiedName":"Libtmux.Operations.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1092,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1092,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_control_client_at"},{"id":"Libtmux.Operations.resize_pane","publicId":"Libtmux.Operations.resize_pane","qualifiedName":"Libtmux.Operations.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1288,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_pane"},{"id":"Libtmux.Operations.resize_window","publicId":"Libtmux.Operations.resize_window","qualifiedName":"Libtmux.Operations.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1293,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_window"},{"id":"Libtmux.Operations.respawn_pane","publicId":"Libtmux.Operations.respawn_pane","qualifiedName":"Libtmux.Operations.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1327,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Spawn.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-respawn_pane"},{"id":"Libtmux.Operations.rotate_panes","publicId":"Libtmux.Operations.rotate_panes","qualifiedName":"Libtmux.Operations.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1320,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n Window.target -> [ `Backward | `Forward ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Backward | `Forward ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rotate_panes"},{"id":"Libtmux.Operations.run_hook","publicId":"Libtmux.Operations.run_hook","qualifiedName":"Libtmux.Operations.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1199,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-run_hook"},{"id":"Libtmux.Operations.select_layout","publicId":"Libtmux.Operations.select_layout","qualifiedName":"Libtmux.Operations.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1299,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout : Window.target -> Layout.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout : Window.target -> Layout.t -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"Layout.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_layout"},{"id":"Libtmux.Operations.select_pane","publicId":"Libtmux.Operations.select_pane","qualifiedName":"Libtmux.Operations.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1280,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1280,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_pane"},{"id":"Libtmux.Operations.select_window_at","publicId":"Libtmux.Operations.select_window_at","qualifiedName":"Libtmux.Operations.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1257,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at : Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at : Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_window_at"},{"id":"Libtmux.Operations.send_keys","publicId":"Libtmux.Operations.send_keys","qualifiedName":"Libtmux.Operations.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1099,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys : Pane.target -> Key.t list -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1099,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys : Pane.target -> Key.t list -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Key.t list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_keys"},{"id":"Libtmux.Operations.send_text","publicId":"Libtmux.Operations.send_text","qualifiedName":"Libtmux.Operations.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1096,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text : Pane.target -> text:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1096,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text : Pane.target -> text:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_text"},{"id":"Libtmux.Operations.set_environment","publicId":"Libtmux.Operations.set_environment","qualifiedName":"Libtmux.Operations.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1117,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n Environment.scope -> name:string -> string -> unit Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_environment"},{"id":"Libtmux.Operations.set_hook","publicId":"Libtmux.Operations.set_hook","qualifiedName":"Libtmux.Operations.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1180,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1180,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Hook.command list -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Hook.command list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_hook"},{"id":"Libtmux.Operations.set_option","publicId":"Libtmux.Operations.set_option","qualifiedName":"Libtmux.Operations.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1148,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Options.scalar -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Options.scalar"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_option"},{"id":"Libtmux.Operations.set_pane_title","publicId":"Libtmux.Operations.set_pane_title","qualifiedName":"Libtmux.Operations.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1284,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title : Pane.target -> title:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1284,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title : Pane.target -> title:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_pane_title"},{"id":"Libtmux.Operations.signal","publicId":"Libtmux.Operations.signal","qualifiedName":"Libtmux.Operations.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1106,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-signal"},{"id":"Libtmux.Operations.split_pane","publicId":"Libtmux.Operations.split_pane","qualifiedName":"Libtmux.Operations.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1225,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target -> direction:Geometry.direction -> Created.t Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-split_pane"},{"id":"Libtmux.Operations.swap_panes","publicId":"Libtmux.Operations.swap_panes","qualifiedName":"Libtmux.Operations.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1316,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-swap_panes"},{"id":"Libtmux.Operations.switch_client_at","publicId":"Libtmux.Operations.switch_client_at","qualifiedName":"Libtmux.Operations.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1075,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1075,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t -> session:Session.target -> unit Command.t","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"},{"name":"session","type":"Session.target","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-switch_client_at"},{"id":"Libtmux.Operations.unlink_window_at","publicId":"Libtmux.Operations.unlink_window_at","qualifiedName":"Libtmux.Operations.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1261,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unlink_window_at"},{"id":"Libtmux.Operations.unset_environment","publicId":"Libtmux.Operations.unset_environment","qualifiedName":"Libtmux.Operations.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1123,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_environment"},{"id":"Libtmux.Operations.unset_option","publicId":"Libtmux.Operations.unset_option","qualifiedName":"Libtmux.Operations.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1161,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1161,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_option"},{"id":"Libtmux.Operations.wait_for","publicId":"Libtmux.Operations.wait_for","qualifiedName":"Libtmux.Operations.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1103,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-wait_for"},{"id":"Libtmux.Operations.zoom_pane","publicId":"Libtmux.Operations.zoom_pane","qualifiedName":"Libtmux.Operations.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1324,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Operations","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-zoom_pane"},{"id":"Libtmux.Options","publicId":"Libtmux.Options","qualifiedName":"Libtmux.Options","name":"Options","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Version-aware option descriptors and captured scoped values. Sparse array\n indexes and inherited entries retain their tmux meaning. "],"declarations":[{"kind":"module","text":"module Options : sig\n module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }\n (** Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. *)\n\n type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target\n\n type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string\n\n type value = Scalar of scalar | Array of (int * scalar) Iarray.t\n type entry = { descriptor : descriptor; value : value; inherited : bool }\n\n type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor, Error.t) result\n\n val lookup : t -> string -> entry option\n (** [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. *)\nend","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Version-aware option descriptors and captured scoped values. Sparse array indexes and inherited entries retain their tmux meaning."},"slug":"libtmux-options"},{"id":"Libtmux.Options.Kind","publicId":"Libtmux.Options.Kind","qualifiedName":"Libtmux.Options.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":797,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end","source":{"file":"lib/libtmux.mli","line":797,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","slug":"libtmux-options-kind"},{"id":"Libtmux.Options.Kind.t","publicId":"Libtmux.Options.Kind.t","qualifiedName":"Libtmux.Options.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind","signatures":[{"raw":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","params":[]}],"slug":"libtmux-options-kind-t"},{"id":"Libtmux.Options.Kind.t.Choice","publicId":"Libtmux.Options.Kind.t.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Choice","slug":"libtmux-options-kind-t-choice"},{"id":"Libtmux.Options.Kind.t.Colour","publicId":"Libtmux.Options.Kind.t.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Colour","slug":"libtmux-options-kind-t-colour"},{"id":"Libtmux.Options.Kind.t.Commands","publicId":"Libtmux.Options.Kind.t.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Commands","slug":"libtmux-options-kind-t-commands"},{"id":"Libtmux.Options.Kind.t.Flag","publicId":"Libtmux.Options.Kind.t.Flag","name":"Flag","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Flag","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Flag","slug":"libtmux-options-kind-t-flag"},{"id":"Libtmux.Options.Kind.t.Key","publicId":"Libtmux.Options.Kind.t.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Key","slug":"libtmux-options-kind-t-key"},{"id":"Libtmux.Options.Kind.t.Number","publicId":"Libtmux.Options.Kind.t.Number","name":"Number","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Number","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Number","slug":"libtmux-options-kind-t-number"},{"id":"Libtmux.Options.Kind.t.Text","publicId":"Libtmux.Options.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Text","slug":"libtmux-options-kind-t-text"},{"id":"Libtmux.Options.catalog","publicId":"Libtmux.Options.catalog","qualifiedName":"Libtmux.Options.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":843,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":843,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-options-catalog"},{"id":"Libtmux.Options.describe","publicId":"Libtmux.Options.describe","qualifiedName":"Libtmux.Options.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":844,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor, Error.t) result","source":{"file":"lib/libtmux.mli","line":844,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val describe : version:string -> string -> (descriptor, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor, Error.t) result"}],"slug":"libtmux-options-describe"},{"id":"Libtmux.Options.descriptor","publicId":"Libtmux.Options.descriptor","qualifiedName":"Libtmux.Options.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":801,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":801,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","doc":{"summary":"Generated upstream descriptors. `versions` lists qualified releases; user options have no built-in release history."},"signatures":[{"raw":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Pane | `Server | `Session | `Window ] list;\n versions : string list;\n}","params":[]}],"slug":"libtmux-options-descriptor"},{"id":"Libtmux.Options.descriptor.array","publicId":"Libtmux.Options.descriptor.array","name":"array","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":804,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"array : bool;","source":{"file":"lib/libtmux.mli","line":804,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.array","slug":"libtmux-options-descriptor-array"},{"id":"Libtmux.Options.descriptor.hook","publicId":"Libtmux.Options.descriptor.hook","name":"hook","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":805,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hook : bool;","source":{"file":"lib/libtmux.mli","line":805,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.hook","slug":"libtmux-options-descriptor-hook"},{"id":"Libtmux.Options.descriptor.kind","publicId":"Libtmux.Options.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":803,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":803,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Options.kind","slug":"libtmux-options-descriptor-kind"},{"id":"Libtmux.Options.descriptor.name","publicId":"Libtmux.Options.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":802,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":802,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.descriptor","type":"string","qualifiedName":"Libtmux.Options.name","slug":"libtmux-options-descriptor-name"},{"id":"Libtmux.Options.descriptor.scopes","publicId":"Libtmux.Options.descriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":806,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scopes : [ `Server | `Session | `Window | `Pane ] list;","source":{"file":"lib/libtmux.mli","line":806,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.descriptor","type":"[ `Pane | `Server | `Session | `Window ] list","qualifiedName":"Libtmux.Options.scopes","slug":"libtmux-options-descriptor-scopes"},{"id":"Libtmux.Options.descriptor.versions","publicId":"Libtmux.Options.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":807,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":807,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.descriptor","type":"string list","qualifiedName":"Libtmux.Options.versions","slug":"libtmux-options-descriptor-versions"},{"id":"Libtmux.Options.entry","publicId":"Libtmux.Options.entry","qualifiedName":"Libtmux.Options.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { descriptor : descriptor; value : value; inherited : bool }","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type entry = { descriptor : descriptor; value : value; inherited : bool; }","params":[]}],"slug":"libtmux-options-entry"},{"id":"Libtmux.Options.entry.descriptor","publicId":"Libtmux.Options.entry.descriptor","name":"descriptor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"descriptor : descriptor;","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.entry","type":"descriptor","qualifiedName":"Libtmux.Options.descriptor","slug":"libtmux-options-entry-descriptor"},{"id":"Libtmux.Options.entry.inherited","publicId":"Libtmux.Options.entry.inherited","name":"inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inherited : bool","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.entry","type":"bool","qualifiedName":"Libtmux.Options.inherited","slug":"libtmux-options-entry-inherited"},{"id":"Libtmux.Options.entry.value","publicId":"Libtmux.Options.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":830,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value;","source":{"file":"lib/libtmux.mli","line":830,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.entry","type":"value","qualifiedName":"Libtmux.Options.value","slug":"libtmux-options-entry-value"},{"id":"Libtmux.Options.lookup","publicId":"Libtmux.Options.lookup","qualifiedName":"Libtmux.Options.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":846,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> entry option","source":{"file":"lib/libtmux.mli","line":846,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","doc":{"summary":"`None` means absent from this capture's selected scope and inheritance policy. Use `describe` to distinguish an unsupported built-in name."},"signatures":[{"raw":"val lookup : t -> string -> entry option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"entry option"}],"slug":"libtmux-options-lookup"},{"id":"Libtmux.Options.scalar","publicId":"Libtmux.Options.scalar","qualifiedName":"Libtmux.Options.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scalar =\n Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","params":[]}],"slug":"libtmux-options-scalar"},{"id":"Libtmux.Options.scalar.Bool","publicId":"Libtmux.Options.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":823,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool of bool","source":{"file":"lib/libtmux.mli","line":823,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Bool","slug":"libtmux-options-scalar-bool"},{"id":"Libtmux.Options.scalar.Choice","publicId":"Libtmux.Options.scalar.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":824,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice of string","source":{"file":"lib/libtmux.mli","line":824,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Choice","slug":"libtmux-options-scalar-choice"},{"id":"Libtmux.Options.scalar.Colour","publicId":"Libtmux.Options.scalar.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":826,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour of string","source":{"file":"lib/libtmux.mli","line":826,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Colour","slug":"libtmux-options-scalar-colour"},{"id":"Libtmux.Options.scalar.Commands","publicId":"Libtmux.Options.scalar.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":827,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands of string","source":{"file":"lib/libtmux.mli","line":827,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Commands","slug":"libtmux-options-scalar-commands"},{"id":"Libtmux.Options.scalar.Integer","publicId":"Libtmux.Options.scalar.Integer","name":"Integer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":822,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Integer of int64","source":{"file":"lib/libtmux.mli","line":822,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Integer","slug":"libtmux-options-scalar-integer"},{"id":"Libtmux.Options.scalar.Key","publicId":"Libtmux.Options.scalar.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":825,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key of string","source":{"file":"lib/libtmux.mli","line":825,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Key","slug":"libtmux-options-scalar-key"},{"id":"Libtmux.Options.scalar.Text","publicId":"Libtmux.Options.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":821,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":821,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Text","slug":"libtmux-options-scalar-text"},{"id":"Libtmux.Options.scope","publicId":"Libtmux.Options.scope","qualifiedName":"Libtmux.Options.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":812,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":812,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scope =\n Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","params":[]}],"slug":"libtmux-options-scope"},{"id":"Libtmux.Options.scope.Global_sessions","publicId":"Libtmux.Options.scope.Global_sessions","name":"Global_sessions","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":814,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_sessions","source":{"file":"lib/libtmux.mli","line":814,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_sessions","slug":"libtmux-options-scope-global_sessions"},{"id":"Libtmux.Options.scope.Global_windows","publicId":"Libtmux.Options.scope.Global_windows","name":"Global_windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":815,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_windows","source":{"file":"lib/libtmux.mli","line":815,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_windows","slug":"libtmux-options-scope-global_windows"},{"id":"Libtmux.Options.scope.Pane","publicId":"Libtmux.Options.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":818,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":818,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Pane","slug":"libtmux-options-scope-pane"},{"id":"Libtmux.Options.scope.Server","publicId":"Libtmux.Options.scope.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":813,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":813,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Server","slug":"libtmux-options-scope-server"},{"id":"Libtmux.Options.scope.Session","publicId":"Libtmux.Options.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":816,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":816,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Session","slug":"libtmux-options-scope-session"},{"id":"Libtmux.Options.scope.Window","publicId":"Libtmux.Options.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":817,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.target","source":{"file":"lib/libtmux.mli","line":817,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Window","slug":"libtmux-options-scope-window"},{"id":"Libtmux.Options.t","publicId":"Libtmux.Options.t","qualifiedName":"Libtmux.Options.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":832,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":832,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","doc":{"summary":"Captured options in tmux order, with original array indexes. An empty array differs from an absent local entry. No accessor performs I/O."},"signatures":[{"raw":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n}","params":[]}],"slug":"libtmux-options-t"},{"id":"Libtmux.Options.t.entries","publicId":"Libtmux.Options.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":836,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":836,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Options.entries","slug":"libtmux-options-t-entries"},{"id":"Libtmux.Options.t.finished_at_ns","publicId":"Libtmux.Options.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":838,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":838,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.finished_at_ns","slug":"libtmux-options-t-finished_at_ns"},{"id":"Libtmux.Options.t.include_inherited","publicId":"Libtmux.Options.t.include_inherited","name":"include_inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":835,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"include_inherited : bool;","source":{"file":"lib/libtmux.mli","line":835,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.t","type":"bool","qualifiedName":"Libtmux.Options.include_inherited","slug":"libtmux-options-t-include_inherited"},{"id":"Libtmux.Options.t.scope","publicId":"Libtmux.Options.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":834,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":834,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.t","type":"scope","qualifiedName":"Libtmux.Options.scope","slug":"libtmux-options-t-scope"},{"id":"Libtmux.Options.t.source","publicId":"Libtmux.Options.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":833,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":833,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.t","type":"Source.t","qualifiedName":"Libtmux.Options.source","slug":"libtmux-options-t-source"},{"id":"Libtmux.Options.t.started_at_ns","publicId":"Libtmux.Options.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":837,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":837,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.started_at_ns","slug":"libtmux-options-t-started_at_ns"},{"id":"Libtmux.Options.value","publicId":"Libtmux.Options.value","qualifiedName":"Libtmux.Options.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","params":[]}],"slug":"libtmux-options-value"},{"id":"Libtmux.Options.value.Array","publicId":"Libtmux.Options.value.Array","name":"Array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Array","slug":"libtmux-options-value-array"},{"id":"Libtmux.Options.value.Scalar","publicId":"Libtmux.Options.value.Scalar","name":"Scalar","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Scalar of scalar","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Scalar","slug":"libtmux-options-value-scalar"},{"id":"Libtmux.Output","publicId":"Libtmux.Output","qualifiedName":"Libtmux.Output","name":"Output","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1012,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Future observed pane bytes, local cursors and explicit continuity loss.\n Output cursors are unrelated to snapshot times or server-side history. "],"declarations":[{"kind":"module","text":"module Output : sig\n type cursor = { generation : Generation.t; offset : int64 }\n (** [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. *)\n\n type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t\n\n type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason\n (** Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. *)\n\n val reason_pp : Format.formatter -> reason -> unit\n\n type wait_error =\n | Ended of reason\n | Failure of Error.t\n (** A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. *)\nend","source":{"file":"lib/libtmux.mli","line":1012,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Future observed pane bytes, local cursors and explicit continuity loss. Output cursors are unrelated to snapshot times or server-side history."},"slug":"libtmux-output"},{"id":"Libtmux.Output.cursor","publicId":"Libtmux.Output.cursor","qualifiedName":"Libtmux.Output.cursor","name":"cursor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. "],"declarations":[{"kind":"struct","text":"type cursor = { generation : Generation.t; offset : int64 }","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output","doc":{"summary":"`offset` is the number of observed bytes through the end of a Data event. Cursors from different subscription generations are unrelated. No cursor identifies a snapshot instant or a server-side historical position."},"signatures":[{"raw":"type cursor = { generation : Generation.t; offset : int64; }","params":[]}],"slug":"libtmux-output-cursor"},{"id":"Libtmux.Output.cursor.generation","publicId":"Libtmux.Output.cursor.generation","name":"generation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"generation : Generation.t;","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.cursor","type":"Generation.t","qualifiedName":"Libtmux.Output.generation","slug":"libtmux-output-cursor-generation"},{"id":"Libtmux.Output.cursor.offset","publicId":"Libtmux.Output.cursor.offset","name":"offset","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"offset : int64","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.cursor","type":"int64","qualifiedName":"Libtmux.Output.offset","slug":"libtmux-output-cursor-offset"},{"id":"Libtmux.Output.event","publicId":"Libtmux.Output.event","qualifiedName":"Libtmux.Output.event","name":"event","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1026,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason","source":{"file":"lib/libtmux.mli","line":1026,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type event =\n Data of { cursor : cursor; bytes : string; }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason;\n }\n | End of reason","params":[]}],"slug":"libtmux-output-event"},{"id":"Libtmux.Output.event.Data","publicId":"Libtmux.Output.event.Data","name":"Data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Data of { cursor : cursor; bytes : string }","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Data","slug":"libtmux-output-event-data"},{"id":"Libtmux.Output.event.Data.bytes","publicId":"Libtmux.Output.event.Data.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event.Data","type":"string","qualifiedName":"Libtmux.Output.bytes","slug":"libtmux-output-event-data-bytes"},{"id":"Libtmux.Output.event.Data.cursor","publicId":"Libtmux.Output.event.Data.cursor","name":"cursor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1027,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cursor : cursor;","source":{"file":"lib/libtmux.mli","line":1027,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event.Data","type":"cursor","qualifiedName":"Libtmux.Output.cursor","slug":"libtmux-output-event-data-cursor"},{"id":"Libtmux.Output.event.End","publicId":"Libtmux.Output.event.End","name":"End","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1029,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. "],"declarations":[{"kind":"constant","text":"| End of reason","source":{"file":"lib/libtmux.mli","line":1029,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event","doc":{"summary":"Immutable event values. `Gap.after` is the last cursor delivered to the caller. Unknown loss is `None`. A gap ends continuity and is followed by End; recover with a fresh capture and a new subscription. Data preserves bytes, including NUL and invalid UTF-8. It is future observed output, not rendered text or historical reconstruction."},"variant":"tuple","qualifiedName":"Libtmux.Output.End","slug":"libtmux-output-event-end"},{"id":"Libtmux.Output.event.Gap","publicId":"Libtmux.Output.event.Gap","name":"Gap","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Gap of { after : cursor option; lost_bytes : int option; reason : reason }","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Gap","slug":"libtmux-output-event-gap"},{"id":"Libtmux.Output.event.Gap.after","publicId":"Libtmux.Output.event.Gap.after","name":"after","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"after : cursor option;","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event.Gap","type":"cursor option","qualifiedName":"Libtmux.Output.after","slug":"libtmux-output-event-gap-after"},{"id":"Libtmux.Output.event.Gap.lost_bytes","publicId":"Libtmux.Output.event.Gap.lost_bytes","name":"lost_bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"lost_bytes : int option;","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event.Gap","type":"int option","qualifiedName":"Libtmux.Output.lost_bytes","slug":"libtmux-output-event-gap-lost_bytes"},{"id":"Libtmux.Output.event.Gap.reason","publicId":"Libtmux.Output.event.Gap.reason","name":"reason","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"reason : reason","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.event.Gap","type":"reason","qualifiedName":"Libtmux.Output.reason","slug":"libtmux-output-event-gap-reason"},{"id":"Libtmux.Output.reason","publicId":"Libtmux.Output.reason","qualifiedName":"Libtmux.Output.reason","name":"reason","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1018,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1018,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type reason =\n Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","params":[]}],"slug":"libtmux-output-reason"},{"id":"Libtmux.Output.reason.Cancelled","publicId":"Libtmux.Output.reason.Cancelled","name":"Cancelled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1022,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancelled","source":{"file":"lib/libtmux.mli","line":1022,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Cancelled","slug":"libtmux-output-reason-cancelled"},{"id":"Libtmux.Output.reason.Client_closed","publicId":"Libtmux.Output.reason.Client_closed","name":"Client_closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1023,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client_closed","source":{"file":"lib/libtmux.mli","line":1023,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Client_closed","slug":"libtmux-output-reason-client_closed"},{"id":"Libtmux.Output.reason.Membership_changed","publicId":"Libtmux.Output.reason.Membership_changed","name":"Membership_changed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1020,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Membership_changed","source":{"file":"lib/libtmux.mli","line":1020,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Membership_changed","slug":"libtmux-output-reason-membership_changed"},{"id":"Libtmux.Output.reason.Overflow","publicId":"Libtmux.Output.reason.Overflow","name":"Overflow","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1019,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Overflow","source":{"file":"lib/libtmux.mli","line":1019,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Overflow","slug":"libtmux-output-reason-overflow"},{"id":"Libtmux.Output.reason.Server_paused","publicId":"Libtmux.Output.reason.Server_paused","name":"Server_paused","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1021,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server_paused","source":{"file":"lib/libtmux.mli","line":1021,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Server_paused","slug":"libtmux-output-reason-server_paused"},{"id":"Libtmux.Output.reason.Transport_error","publicId":"Libtmux.Output.reason.Transport_error","name":"Transport_error","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1024,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1024,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.reason","variant":"tuple","qualifiedName":"Libtmux.Output.Transport_error","slug":"libtmux-output-reason-transport_error"},{"id":"Libtmux.Output.reason_pp","publicId":"Libtmux.Output.reason_pp","qualifiedName":"Libtmux.Output.reason_pp","name":"reason_pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1037,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val reason_pp : Format.formatter -> reason -> unit","source":{"file":"lib/libtmux.mli","line":1037,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output","signatures":[{"raw":"val reason_pp : Format.formatter -> reason -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"reason"}],"returns":"unit"}],"slug":"libtmux-output-reason_pp"},{"id":"Libtmux.Output.wait_error","publicId":"Libtmux.Output.wait_error","qualifiedName":"Libtmux.Output.wait_error","name":"wait_error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1039,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type wait_error =\n | Ended of reason\n | Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1039,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type wait_error = Ended of reason | Failure of Error.t","params":[]}],"slug":"libtmux-output-wait_error"},{"id":"Libtmux.Output.wait_error.Ended","publicId":"Libtmux.Output.wait_error.Ended","name":"Ended","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1040,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Ended of reason","source":{"file":"lib/libtmux.mli","line":1040,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.wait_error","variant":"tuple","qualifiedName":"Libtmux.Output.Ended","slug":"libtmux-output-wait_error-ended"},{"id":"Libtmux.Output.wait_error.Failure","publicId":"Libtmux.Output.wait_error.Failure","name":"Failure","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1041,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. "],"declarations":[{"kind":"constant","text":"| Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1041,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Output.wait_error","doc":{"summary":"A future-byte wait either loses its subscription's continuity or fails an operation. Neither result establishes that the text was absent earlier."},"variant":"tuple","qualifiedName":"Libtmux.Output.Failure","slug":"libtmux-output-wait_error-failure"},{"id":"Libtmux.Pane","publicId":"Libtmux.Pane","qualifiedName":"Libtmux.Pane","name":"Pane","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":288,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A captured pane with local geometry, process metadata and a window\n relationship. Use {!Pane.val-target} for explicit actions; reading the\n observation never refreshes it. "],"declarations":[{"kind":"module","text":"and Pane : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end\n\n module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val index : t -> int\n val active : t -> bool\n val dead : t -> bool\n val title : t -> string\n val current_command : t -> string\n val current_path : t -> string\n\n val pid : t -> int option\n (** The captured process ID, absent when tmux reports no process. *)\n\n val width : t -> int\n val height : t -> int\n val left : t -> int\n val top : t -> int\n val window : t -> Window.t\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"A captured pane with local geometry, process metadata and a window relationship. Use {!Pane.val-target} for explicit actions; reading the observation never refreshes it."},"slug":"libtmux-pane"},{"id":"Libtmux.Pane.Fields","publicId":"Libtmux.Pane.Fields","qualifiedName":"Libtmux.Pane.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":291,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":291,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-fields"},{"id":"Libtmux.Pane.Fields.active","publicId":"Libtmux.Pane.Fields.active","qualifiedName":"Libtmux.Pane.Fields.active","name":"active","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val active : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val active : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-active"},{"id":"Libtmux.Pane.Fields.current_command","publicId":"Libtmux.Pane.Fields.current_command","qualifiedName":"Libtmux.Pane.Fields.current_command","name":"current_command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":297,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_command : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":297,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_command : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_command"},{"id":"Libtmux.Pane.Fields.current_path","publicId":"Libtmux.Pane.Fields.current_path","qualifiedName":"Libtmux.Pane.Fields.current_path","name":"current_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":298,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_path : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":298,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_path : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_path"},{"id":"Libtmux.Pane.Fields.dead","publicId":"Libtmux.Pane.Fields.dead","qualifiedName":"Libtmux.Pane.Fields.dead","name":"dead","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":295,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val dead : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":295,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val dead : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-dead"},{"id":"Libtmux.Pane.Fields.height","publicId":"Libtmux.Pane.Fields.height","qualifiedName":"Libtmux.Pane.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-height"},{"id":"Libtmux.Pane.Fields.id","publicId":"Libtmux.Pane.Fields.id","qualifiedName":"Libtmux.Pane.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":292,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":292,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-id"},{"id":"Libtmux.Pane.Fields.index","publicId":"Libtmux.Pane.Fields.index","qualifiedName":"Libtmux.Pane.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":293,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-index"},{"id":"Libtmux.Pane.Fields.left","publicId":"Libtmux.Pane.Fields.left","qualifiedName":"Libtmux.Pane.Fields.left","name":"left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":301,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val left : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":301,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val left : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-left"},{"id":"Libtmux.Pane.Fields.title","publicId":"Libtmux.Pane.Fields.title","qualifiedName":"Libtmux.Pane.Fields.title","name":"title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":296,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val title : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":296,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val title : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-title"},{"id":"Libtmux.Pane.Fields.top","publicId":"Libtmux.Pane.Fields.top","qualifiedName":"Libtmux.Pane.Fields.top","name":"top","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":302,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val top : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val top : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-top"},{"id":"Libtmux.Pane.Fields.width","publicId":"Libtmux.Pane.Fields.width","qualifiedName":"Libtmux.Pane.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":299,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-width"},{"id":"Libtmux.Pane.Id","publicId":"Libtmux.Pane.Id","qualifiedName":"Libtmux.Pane.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-id-16to"},{"id":"Libtmux.Pane.Id.compare","publicId":"Libtmux.Pane.Id.compare","qualifiedName":"Libtmux.Pane.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-id-compare"},{"id":"Libtmux.Pane.Id.equal","publicId":"Libtmux.Pane.Id.equal","qualifiedName":"Libtmux.Pane.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-id-equal"},{"id":"Libtmux.Pane.Id.of_string","publicId":"Libtmux.Pane.Id.of_string","qualifiedName":"Libtmux.Pane.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-pane-id-of_string"},{"id":"Libtmux.Pane.Id.pp","publicId":"Libtmux.Pane.Id.pp","qualifiedName":"Libtmux.Pane.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-pane-id-pp"},{"id":"Libtmux.Pane.Id.t","publicId":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux.Pane.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-id-t"},{"id":"Libtmux.Pane.Id.to_string","publicId":"Libtmux.Pane.Id.to_string","qualifiedName":"Libtmux.Pane.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-id-to_string"},{"id":"Libtmux.Pane.Relations","publicId":"Libtmux.Pane.Relations","qualifiedName":"Libtmux.Pane.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-relations"},{"id":"Libtmux.Pane.Relations.window","publicId":"Libtmux.Pane.Relations.window","qualifiedName":"Libtmux.Pane.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-pane-relations-window"},{"id":"Libtmux.Pane.Target","publicId":"Libtmux.Pane.Target","qualifiedName":"Libtmux.Pane.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":311,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":311,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-target-nx8w"},{"id":"Libtmux.Pane.Target.id","publicId":"Libtmux.Pane.Target.id","qualifiedName":"Libtmux.Pane.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":316,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-target-id"},{"id":"Libtmux.Pane.Target.of_id","publicId":"Libtmux.Pane.Target.of_id","qualifiedName":"Libtmux.Pane.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":314,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":314,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-pane-target-of_id"},{"id":"Libtmux.Pane.Target.source","publicId":"Libtmux.Pane.Target.source","qualifiedName":"Libtmux.Pane.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":315,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-target-source"},{"id":"Libtmux.Pane.Target.t","publicId":"Libtmux.Pane.Target.t","qualifiedName":"Libtmux.Pane.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":312,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":312,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-target-t"},{"id":"Libtmux.Pane.active","publicId":"Libtmux.Pane.active","qualifiedName":"Libtmux.Pane.active","name":"active","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":323,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val active : t -> bool","source":{"file":"lib/libtmux.mli","line":323,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val active : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-active"},{"id":"Libtmux.Pane.current_command","publicId":"Libtmux.Pane.current_command","qualifiedName":"Libtmux.Pane.current_command","name":"current_command","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":326,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_command : t -> string","source":{"file":"lib/libtmux.mli","line":326,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_command : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_command"},{"id":"Libtmux.Pane.current_path","publicId":"Libtmux.Pane.current_path","qualifiedName":"Libtmux.Pane.current_path","name":"current_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_path : t -> string","source":{"file":"lib/libtmux.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_path : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_path"},{"id":"Libtmux.Pane.dead","publicId":"Libtmux.Pane.dead","qualifiedName":"Libtmux.Pane.dead","name":"dead","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":324,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dead : t -> bool","source":{"file":"lib/libtmux.mli","line":324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val dead : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-dead"},{"id":"Libtmux.Pane.height","publicId":"Libtmux.Pane.height","qualifiedName":"Libtmux.Pane.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":333,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-height"},{"id":"Libtmux.Pane.id","publicId":"Libtmux.Pane.id","qualifiedName":"Libtmux.Pane.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":321,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":321,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-id-19ve"},{"id":"Libtmux.Pane.index","publicId":"Libtmux.Pane.index","qualifiedName":"Libtmux.Pane.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":322,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":322,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-index"},{"id":"Libtmux.Pane.left","publicId":"Libtmux.Pane.left","qualifiedName":"Libtmux.Pane.left","name":"left","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":334,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val left : t -> int","source":{"file":"lib/libtmux.mli","line":334,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val left : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-left"},{"id":"Libtmux.Pane.pid","publicId":"Libtmux.Pane.pid","qualifiedName":"Libtmux.Pane.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":329,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" The captured process ID, absent when tmux reports no process. "],"declarations":[{"kind":"function","text":"val pid : t -> int option","source":{"file":"lib/libtmux.mli","line":329,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","doc":{"summary":"The captured process ID, absent when tmux reports no process."},"signatures":[{"raw":"val pid : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-pane-pid"},{"id":"Libtmux.Pane.same_entity","publicId":"Libtmux.Pane.same_entity","qualifiedName":"Libtmux.Pane.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":339,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":339,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_entity"},{"id":"Libtmux.Pane.same_observation","publicId":"Libtmux.Pane.same_observation","qualifiedName":"Libtmux.Pane.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_observation"},{"id":"Libtmux.Pane.source","publicId":"Libtmux.Pane.source","qualifiedName":"Libtmux.Pane.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-source"},{"id":"Libtmux.Pane.t","publicId":"Libtmux.Pane.t","qualifiedName":"Libtmux.Pane.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":289,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":289,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-t"},{"id":"Libtmux.Pane.target","publicId":"Libtmux.Pane.target","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":338,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":338,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-pane-target-t3h1"},{"id":"Libtmux.Pane.target:type","publicId":"Libtmux.Pane.target:type","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-pane-target-type"},{"id":"Libtmux.Pane.title","publicId":"Libtmux.Pane.title","qualifiedName":"Libtmux.Pane.title","name":"title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":325,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val title : t -> string","source":{"file":"lib/libtmux.mli","line":325,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val title : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-title"},{"id":"Libtmux.Pane.top","publicId":"Libtmux.Pane.top","qualifiedName":"Libtmux.Pane.top","name":"top","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":335,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val top : t -> int","source":{"file":"lib/libtmux.mli","line":335,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val top : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-top"},{"id":"Libtmux.Pane.width","publicId":"Libtmux.Pane.width","qualifiedName":"Libtmux.Pane.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-width"},{"id":"Libtmux.Pane.window","publicId":"Libtmux.Pane.window","qualifiedName":"Libtmux.Pane.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":336,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":336,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-pane-window"},{"id":"Libtmux.Plan","publicId":"Libtmux.Plan","qualifiedName":"Libtmux.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":644,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Explicit source-filter planning for a new acquisition. A plan separates\n supported tmux predicates from residual local evaluation; it never changes\n the I/O-free contract of {!Query.matching}. Backend capture operations\n acquire a complete graph and do not consume these plans. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type pushdown = Auto | Never | Require_exact\n type t\n\n val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result\n (** Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. *)\n\n val source_filter : t -> string option\n val residual : t -> Pane.t Expr.t\n val required_fields : t -> string list\n val required_relations : t -> string list\n val explanation : t -> string\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":644,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Explicit source-filter planning for a new acquisition. A plan separates supported tmux predicates from residual local evaluation; it never changes the I/O-free contract of {!Query.matching}. Backend capture operations acquire a complete graph and do not consume these plans."},"slug":"libtmux-plan"},{"id":"Libtmux.Plan.explanation","publicId":"Libtmux.Plan.explanation","qualifiedName":"Libtmux.Plan.explanation","name":"explanation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":659,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val explanation : t -> string","source":{"file":"lib/libtmux.mli","line":659,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val explanation : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-plan-explanation"},{"id":"Libtmux.Plan.panes","publicId":"Libtmux.Plan.panes","qualifiedName":"Libtmux.Plan.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":648,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. "],"declarations":[{"kind":"function","text":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":648,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","doc":{"summary":"Plan without I/O. Exact lowering covers pane active/dead flags and complete Boolean combinations. Unsupported children prevent lowering the whole expression, including under OR and NOT. Relationships always stay local. `Require_exact` rejects an unsupported expression before acquisition."},"signatures":[{"raw":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","params":[{"name":"pushdown","type":"pushdown","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t Expr.t"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-plan-panes"},{"id":"Libtmux.Plan.pp","publicId":"Libtmux.Plan.pp","qualifiedName":"Libtmux.Plan.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":660,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":660,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-plan-pp"},{"id":"Libtmux.Plan.pushdown","publicId":"Libtmux.Plan.pushdown","qualifiedName":"Libtmux.Plan.pushdown","name":"pushdown","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type pushdown = Auto | Never | Require_exact","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type pushdown = Auto | Never | Require_exact","params":[]}],"slug":"libtmux-plan-pushdown"},{"id":"Libtmux.Plan.pushdown.Auto","publicId":"Libtmux.Plan.pushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Auto","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Auto","slug":"libtmux-plan-pushdown-auto"},{"id":"Libtmux.Plan.pushdown.Never","publicId":"Libtmux.Plan.pushdown.Never","name":"Never","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Never","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Never","slug":"libtmux-plan-pushdown-never"},{"id":"Libtmux.Plan.pushdown.Require_exact","publicId":"Libtmux.Plan.pushdown.Require_exact","name":"Require_exact","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_exact","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Require_exact","slug":"libtmux-plan-pushdown-require_exact"},{"id":"Libtmux.Plan.required_fields","publicId":"Libtmux.Plan.required_fields","qualifiedName":"Libtmux.Plan.required_fields","name":"required_fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":657,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_fields : t -> string list","source":{"file":"lib/libtmux.mli","line":657,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_fields : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_fields"},{"id":"Libtmux.Plan.required_relations","publicId":"Libtmux.Plan.required_relations","qualifiedName":"Libtmux.Plan.required_relations","name":"required_relations","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":658,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_relations : t -> string list","source":{"file":"lib/libtmux.mli","line":658,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_relations : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_relations"},{"id":"Libtmux.Plan.residual","publicId":"Libtmux.Plan.residual","qualifiedName":"Libtmux.Plan.residual","name":"residual","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":656,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val residual : t -> Pane.t Expr.t","source":{"file":"lib/libtmux.mli","line":656,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val residual : t -> Pane.t Expr.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Expr.t"}],"slug":"libtmux-plan-residual"},{"id":"Libtmux.Plan.source_filter","publicId":"Libtmux.Plan.source_filter","qualifiedName":"Libtmux.Plan.source_filter","name":"source_filter","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":655,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source_filter : t -> string option","source":{"file":"lib/libtmux.mli","line":655,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val source_filter : t -> string option","params":[{"name":"arg1","type":"t"}],"returns":"string option"}],"slug":"libtmux-plan-source_filter"},{"id":"Libtmux.Plan.t","publicId":"Libtmux.Plan.t","qualifiedName":"Libtmux.Plan.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":646,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":646,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-plan-t"},{"id":"Libtmux.Query","publicId":"Libtmux.Query","qualifiedName":"Libtmux.Query","name":"Query","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":672,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Sequence adapters and bounded cardinality checks over captured values.\n Matching preserves order and duplicates. Expected absence and ambiguity\n remain ordinary result values. "],"declarations":[{"kind":"module","text":"module Query : sig\n val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t\n (** [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. *)\n\n val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result\n (** Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. *)\n\n val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result\n (** As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n *)\nend","source":{"file":"lib/libtmux.mli","line":672,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Sequence adapters and bounded cardinality checks over captured values. Matching preserves order and duplicates. Expected absence and ambiguity remain ordinary result values."},"slug":"libtmux-query"},{"id":"Libtmux.Query.exactly_one","publicId":"Libtmux.Query.exactly_one","qualifiedName":"Libtmux.Query.exactly_one","name":"exactly_one","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":679,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. "],"declarations":[{"kind":"function","text":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":679,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Query","doc":{"summary":"Return the unique value. Stop when a second value is found; proving uniqueness requires exhausting the remaining sequence. The input's effects and exceptions propagate. This does not execute a mutation."},"signatures":[{"raw":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a, Cardinality.error) result"}],"slug":"libtmux-query-exactly_one"},{"id":"Libtmux.Query.matching","publicId":"Libtmux.Query.matching","qualifiedName":"Libtmux.Query.matching","name":"matching","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":673,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. "],"declarations":[{"kind":"function","text":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","source":{"file":"lib/libtmux.mli","line":673,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Query","doc":{"summary":"`matching expression` compiles once when the adapter is constructed. Filtering preserves order and duplicates. Snapshot-derived sequences replay captured values; arbitrary input sequences retain their effects, exceptions and replay semantics. No tmux acquisition occurs."},"signatures":[{"raw":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","params":[{"name":"arg1","type":"'a Expr.t"},{"name":"arg2","type":"'a Seq.t"}],"returns":"'a Seq.t"}],"slug":"libtmux-query-matching"},{"id":"Libtmux.Query.one_or_none","publicId":"Libtmux.Query.one_or_none","qualifiedName":"Libtmux.Query.one_or_none","name":"one_or_none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":684,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n "],"declarations":[{"kind":"function","text":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":684,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Query","doc":{"summary":"As {!exactly_one}, with `Ok None` for an empty sequence. Order and duplicate entries count toward cardinality; values are not deduplicated."},"signatures":[{"raw":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a option, Cardinality.error) result"}],"slug":"libtmux-query-one_or_none"},{"id":"Libtmux.Relation","publicId":"Libtmux.Relation","qualifiedName":"Libtmux.Relation","name":"Relation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Typed edges in a captured graph. Many, one and optional relations are\n distinct; an unacquired relationship is never represented as an empty one.\n"],"declarations":[{"kind":"module","text":"module Relation : sig\n module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\nend","source":{"file":"lib/libtmux.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Typed edges in a captured graph. Many, one and optional relations are distinct; an unacquired relationship is never represented as an empty one."},"slug":"libtmux-relation"},{"id":"Libtmux.Relation.Many","publicId":"Libtmux.Relation.Many","qualifiedName":"Libtmux.Relation.Many","name":"Many","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-many"},{"id":"Libtmux.Relation.Many.name","publicId":"Libtmux.Relation.Many.name","qualifiedName":"Libtmux.Relation.Many.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-many-name"},{"id":"Libtmux.Relation.Many.t","publicId":"Libtmux.Relation.Many.t","qualifiedName":"Libtmux.Relation.Many.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-many-t"},{"id":"Libtmux.Relation.One","publicId":"Libtmux.Relation.One","qualifiedName":"Libtmux.Relation.One","name":"One","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":157,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":157,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-one"},{"id":"Libtmux.Relation.One.name","publicId":"Libtmux.Relation.One.name","qualifiedName":"Libtmux.Relation.One.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":160,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-one-name"},{"id":"Libtmux.Relation.One.t","publicId":"Libtmux.Relation.One.t","qualifiedName":"Libtmux.Relation.One.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":158,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":158,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-one-t"},{"id":"Libtmux.Relation.Optional","publicId":"Libtmux.Relation.Optional","qualifiedName":"Libtmux.Relation.Optional","name":"Optional","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-optional"},{"id":"Libtmux.Relation.Optional.name","publicId":"Libtmux.Relation.Optional.name","qualifiedName":"Libtmux.Relation.Optional.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-optional-name"},{"id":"Libtmux.Relation.Optional.t","publicId":"Libtmux.Relation.Optional.t","qualifiedName":"Libtmux.Relation.Optional.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-optional-t"},{"id":"Libtmux.Session","publicId":"Libtmux.Session","qualifiedName":"Libtmux.Session","name":"Session","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A captured session and its ordered window-link contexts. A session can\n contain repeated links to the same global window. "],"declarations":[{"kind":"module","text":"module rec Session : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end\n\n module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val attached : t -> int\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\n\n val window_links : t -> Window_link.t Iarray.t\n (** All captured links, in capture order, including repeated windows. *)\n\n val windows : t -> Window.t Iarray.t\n (** Distinct windows in first-link order. All accesses are local. *)\nend","source":{"file":"lib/libtmux.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"A captured session and its ordered window-link contexts. A session can contain repeated links to the same global window."},"slug":"libtmux-session"},{"id":"Libtmux.Session.Fields","publicId":"Libtmux.Session.Fields","qualifiedName":"Libtmux.Session.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":175,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":175,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","slug":"libtmux-session-fields"},{"id":"Libtmux.Session.Fields.attached","publicId":"Libtmux.Session.Fields.attached","qualifiedName":"Libtmux.Session.Fields.attached","name":"attached","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val attached : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val attached : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-session-fields-attached"},{"id":"Libtmux.Session.Fields.id","publicId":"Libtmux.Session.Fields.id","qualifiedName":"Libtmux.Session.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":176,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":176,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-id"},{"id":"Libtmux.Session.Fields.name","publicId":"Libtmux.Session.Fields.name","qualifiedName":"Libtmux.Session.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-name"},{"id":"Libtmux.Session.Id","publicId":"Libtmux.Session.Id","qualifiedName":"Libtmux.Session.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","slug":"libtmux-session-id-12k2"},{"id":"Libtmux.Session.Id.compare","publicId":"Libtmux.Session.Id.compare","qualifiedName":"Libtmux.Session.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-session-id-compare"},{"id":"Libtmux.Session.Id.equal","publicId":"Libtmux.Session.Id.equal","qualifiedName":"Libtmux.Session.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-id-equal"},{"id":"Libtmux.Session.Id.of_string","publicId":"Libtmux.Session.Id.of_string","qualifiedName":"Libtmux.Session.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-session-id-of_string"},{"id":"Libtmux.Session.Id.pp","publicId":"Libtmux.Session.Id.pp","qualifiedName":"Libtmux.Session.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-session-id-pp"},{"id":"Libtmux.Session.Id.t","publicId":"Libtmux.Session.Id.t","qualifiedName":"Libtmux.Session.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-id-t"},{"id":"Libtmux.Session.Id.to_string","publicId":"Libtmux.Session.Id.to_string","qualifiedName":"Libtmux.Session.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-id-to_string"},{"id":"Libtmux.Session.Relations","publicId":"Libtmux.Session.Relations","qualifiedName":"Libtmux.Session.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","slug":"libtmux-session-relations"},{"id":"Libtmux.Session.Relations.window_links","publicId":"Libtmux.Session.Relations.window_links","qualifiedName":"Libtmux.Session.Relations.window_links","name":"window_links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val window_links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-session-relations-window_links"},{"id":"Libtmux.Session.Relations.windows","publicId":"Libtmux.Session.Relations.windows","qualifiedName":"Libtmux.Session.Relations.windows","name":"windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val windows : (t, Window.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val windows : (t, Window.t) Relation.Many.t","params":[],"returns":"(t, Window.t) Relation.Many.t"}],"slug":"libtmux-session-relations-windows"},{"id":"Libtmux.Session.Target","publicId":"Libtmux.Session.Target","qualifiedName":"Libtmux.Session.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","slug":"libtmux-session-target-5p2d"},{"id":"Libtmux.Session.Target.id","publicId":"Libtmux.Session.Target.id","qualifiedName":"Libtmux.Session.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":195,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-target-id"},{"id":"Libtmux.Session.Target.of_id","publicId":"Libtmux.Session.Target.of_id","qualifiedName":"Libtmux.Session.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Describe a target in an existing connection generation. No I/O. "],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Target","doc":{"summary":"Describe a target in an existing connection generation. No I/O."},"signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-session-target-of_id"},{"id":"Libtmux.Session.Target.source","publicId":"Libtmux.Session.Target.source","qualifiedName":"Libtmux.Session.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":194,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-target-source"},{"id":"Libtmux.Session.Target.t","publicId":"Libtmux.Session.Target.t","qualifiedName":"Libtmux.Session.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-target-t"},{"id":"Libtmux.Session.attached","publicId":"Libtmux.Session.attached","qualifiedName":"Libtmux.Session.attached","name":"attached","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val attached : t -> int","source":{"file":"lib/libtmux.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val attached : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-session-attached"},{"id":"Libtmux.Session.id","publicId":"Libtmux.Session.id","qualifiedName":"Libtmux.Session.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-id-12gy"},{"id":"Libtmux.Session.name","publicId":"Libtmux.Session.name","qualifiedName":"Libtmux.Session.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-name"},{"id":"Libtmux.Session.same_entity","publicId":"Libtmux.Session.same_entity","qualifiedName":"Libtmux.Session.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_entity"},{"id":"Libtmux.Session.same_observation","publicId":"Libtmux.Session.same_observation","qualifiedName":"Libtmux.Session.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_observation"},{"id":"Libtmux.Session.source","publicId":"Libtmux.Session.source","qualifiedName":"Libtmux.Session.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-source"},{"id":"Libtmux.Session.t","publicId":"Libtmux.Session.t","qualifiedName":"Libtmux.Session.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-t"},{"id":"Libtmux.Session.target","publicId":"Libtmux.Session.target","qualifiedName":"Libtmux.Session.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-session-target-iu8j"},{"id":"Libtmux.Session.target:type","publicId":"Libtmux.Session.target:type","qualifiedName":"Libtmux.Session.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-session-target-type"},{"id":"Libtmux.Session.window_links","publicId":"Libtmux.Session.window_links","qualifiedName":"Libtmux.Session.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" All captured links, in capture order, including repeated windows. "],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","doc":{"summary":"All captured links, in capture order, including repeated windows.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-session-window_links"},{"id":"Libtmux.Session.windows","publicId":"Libtmux.Session.windows","qualifiedName":"Libtmux.Session.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Distinct windows in first-link order. All accesses are local. "],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Session","doc":{"summary":"Distinct windows in first-link order. All accesses are local."},"signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-session-windows"},{"id":"Libtmux.Snapshot","publicId":"Libtmux.Snapshot","qualifiedName":"Libtmux.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A complete immutable graph captured over an acquisition interval.\n Collections are replayable immutable arrays. Capturing several tmux commands\n does not establish an atomic transaction. "],"declarations":[{"kind":"module","text":"module Snapshot : sig\n type t\n\n module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end\n\n module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end\n\n val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result\n (** Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. *)\n\n val id : t -> Id.t\n val source : t -> Source.t\n val started_at_ns : t -> int64\n val finished_at_ns : t -> int64\n val sessions : t -> Session.t Iarray.t\n val windows : t -> Window.t Iarray.t\n val window_links : t -> Window_link.t Iarray.t\n val panes : t -> Pane.t Iarray.t\n\n val clients : t -> Client_observation.t Iarray.t\n (** Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. *)\n\n val find_session : t -> Session.Id.t -> Session.t option\n val find_window : t -> Window.Id.t -> Window.t option\n val find_pane : t -> Pane.Id.t -> Pane.t option\nend","source":{"file":"lib/libtmux.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"A complete immutable graph captured over an acquisition interval. Collections are replayable immutable arrays. Capturing several tmux commands does not establish an atomic transaction."},"slug":"libtmux-snapshot"},{"id":"Libtmux.Snapshot.Id","publicId":"Libtmux.Snapshot.Id","qualifiedName":"Libtmux.Snapshot.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":384,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end","source":{"file":"lib/libtmux.mli","line":384,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-id-1y9h"},{"id":"Libtmux.Snapshot.Id.equal","publicId":"Libtmux.Snapshot.Id.equal","qualifiedName":"Libtmux.Snapshot.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":389,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":389,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-snapshot-id-equal"},{"id":"Libtmux.Snapshot.Id.of_string","publicId":"Libtmux.Snapshot.Id.of_string","qualifiedName":"Libtmux.Snapshot.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-id-of_string"},{"id":"Libtmux.Snapshot.Id.t","publicId":"Libtmux.Snapshot.Id.t","qualifiedName":"Libtmux.Snapshot.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":385,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":385,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-id-t"},{"id":"Libtmux.Snapshot.Id.to_string","publicId":"Libtmux.Snapshot.Id.to_string","qualifiedName":"Libtmux.Snapshot.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":388,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":388,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-snapshot-id-to_string"},{"id":"Libtmux.Snapshot.Input","publicId":"Libtmux.Snapshot.Input","qualifiedName":"Libtmux.Snapshot.Input","name":"Input","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":392,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end","source":{"file":"lib/libtmux.mli","line":392,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-input"},{"id":"Libtmux.Snapshot.Input.client","publicId":"Libtmux.Snapshot.Input.client","qualifiedName":"Libtmux.Snapshot.Input.client","name":"client","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }","source":{"file":"lib/libtmux.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n}","params":[]}],"slug":"libtmux-snapshot-input-client"},{"id":"Libtmux.Snapshot.Input.client.control_mode","publicId":"Libtmux.Snapshot.Input.client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":432,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"control_mode : bool;","source":{"file":"lib/libtmux.mli","line":432,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.client","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.control_mode","slug":"libtmux-snapshot-input-client-control_mode"},{"id":"Libtmux.Snapshot.Input.client.height","publicId":"Libtmux.Snapshot.Input.client.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":431,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":431,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-client-height"},{"id":"Libtmux.Snapshot.Input.client.name","publicId":"Libtmux.Snapshot.Input.client.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.client","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-client-name"},{"id":"Libtmux.Snapshot.Input.client.pid","publicId":"Libtmux.Snapshot.Input.client.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":429,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int;","source":{"file":"lib/libtmux.mli","line":429,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-client-pid"},{"id":"Libtmux.Snapshot.Input.client.session_id","publicId":"Libtmux.Snapshot.Input.client.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":428,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t option;","source":{"file":"lib/libtmux.mli","line":428,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.client","type":"Session.Id.t option","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-client-session_id"},{"id":"Libtmux.Snapshot.Input.client.width","publicId":"Libtmux.Snapshot.Input.client.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":430,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":430,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-client-width"},{"id":"Libtmux.Snapshot.Input.pane","publicId":"Libtmux.Snapshot.Input.pane","qualifiedName":"Libtmux.Snapshot.Input.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }","source":{"file":"lib/libtmux.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n}","params":[]}],"slug":"libtmux-snapshot-input-pane"},{"id":"Libtmux.Snapshot.Input.pane.active","publicId":"Libtmux.Snapshot.Input.pane.active","name":"active","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"active : bool;","source":{"file":"lib/libtmux.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.active","slug":"libtmux-snapshot-input-pane-active"},{"id":"Libtmux.Snapshot.Input.pane.current_command","publicId":"Libtmux.Snapshot.Input.pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_command : string;","source":{"file":"lib/libtmux.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_command","slug":"libtmux-snapshot-input-pane-current_command"},{"id":"Libtmux.Snapshot.Input.pane.current_path","publicId":"Libtmux.Snapshot.Input.pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":418,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_path : string;","source":{"file":"lib/libtmux.mli","line":418,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_path","slug":"libtmux-snapshot-input-pane-current_path"},{"id":"Libtmux.Snapshot.Input.pane.dead","publicId":"Libtmux.Snapshot.Input.pane.dead","name":"dead","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"dead : bool;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.dead","slug":"libtmux-snapshot-input-pane-dead"},{"id":"Libtmux.Snapshot.Input.pane.height","publicId":"Libtmux.Snapshot.Input.pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":421,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":421,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-pane-height"},{"id":"Libtmux.Snapshot.Input.pane.id","publicId":"Libtmux.Snapshot.Input.pane.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Pane.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-pane-id"},{"id":"Libtmux.Snapshot.Input.pane.index","publicId":"Libtmux.Snapshot.Input.pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":413,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":413,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-pane-index"},{"id":"Libtmux.Snapshot.Input.pane.left","publicId":"Libtmux.Snapshot.Input.pane.left","name":"left","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"left : int;","source":{"file":"lib/libtmux.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.left","slug":"libtmux-snapshot-input-pane-left"},{"id":"Libtmux.Snapshot.Input.pane.pid","publicId":"Libtmux.Snapshot.Input.pane.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":419,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int option;","source":{"file":"lib/libtmux.mli","line":419,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-pane-pid"},{"id":"Libtmux.Snapshot.Input.pane.title","publicId":"Libtmux.Snapshot.Input.pane.title","name":"title","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":416,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"title : string;","source":{"file":"lib/libtmux.mli","line":416,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.title","slug":"libtmux-snapshot-input-pane-title"},{"id":"Libtmux.Snapshot.Input.pane.top","publicId":"Libtmux.Snapshot.Input.pane.top","name":"top","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"top : int;","source":{"file":"lib/libtmux.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.top","slug":"libtmux-snapshot-input-pane-top"},{"id":"Libtmux.Snapshot.Input.pane.width","publicId":"Libtmux.Snapshot.Input.pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":420,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":420,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-pane-width"},{"id":"Libtmux.Snapshot.Input.pane.window_id","publicId":"Libtmux.Snapshot.Input.pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":412,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":412,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-pane-window_id"},{"id":"Libtmux.Snapshot.Input.session","publicId":"Libtmux.Snapshot.Input.session","qualifiedName":"Libtmux.Snapshot.Input.session","name":"session","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type session = { id : Session.Id.t; name : string; attached : int }","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type session = { id : Session.Id.t; name : string; attached : int; }","params":[]}],"slug":"libtmux-snapshot-input-session"},{"id":"Libtmux.Snapshot.Input.session.attached","publicId":"Libtmux.Snapshot.Input.session.attached","name":"attached","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"attached : int","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.session","type":"int","qualifiedName":"Libtmux.Snapshot.Input.attached","slug":"libtmux-snapshot-input-session-attached"},{"id":"Libtmux.Snapshot.Input.session.id","publicId":"Libtmux.Snapshot.Input.session.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.session","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-session-id"},{"id":"Libtmux.Snapshot.Input.session.name","publicId":"Libtmux.Snapshot.Input.session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.session","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-session-name"},{"id":"Libtmux.Snapshot.Input.window","publicId":"Libtmux.Snapshot.Input.window","qualifiedName":"Libtmux.Snapshot.Input.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":395,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }","source":{"file":"lib/libtmux.mli","line":395,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n}","params":[]}],"slug":"libtmux-snapshot-input-window"},{"id":"Libtmux.Snapshot.Input.window.height","publicId":"Libtmux.Snapshot.Input.window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":399,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":399,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-window-height"},{"id":"Libtmux.Snapshot.Input.window.id","publicId":"Libtmux.Snapshot.Input.window.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":396,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":396,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-window-id"},{"id":"Libtmux.Snapshot.Input.window.layout","publicId":"Libtmux.Snapshot.Input.window.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":400,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : string;","source":{"file":"lib/libtmux.mli","line":400,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.layout","slug":"libtmux-snapshot-input-window-layout"},{"id":"Libtmux.Snapshot.Input.window.name","publicId":"Libtmux.Snapshot.Input.window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-window-name"},{"id":"Libtmux.Snapshot.Input.window.width","publicId":"Libtmux.Snapshot.Input.window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":398,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":398,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-window-width"},{"id":"Libtmux.Snapshot.Input.window_link","publicId":"Libtmux.Snapshot.Input.window_link","qualifiedName":"Libtmux.Snapshot.Input.window_link","name":"window_link","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }","source":{"file":"lib/libtmux.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n}","params":[]}],"slug":"libtmux-snapshot-input-window_link"},{"id":"Libtmux.Snapshot.Input.window_link.index","publicId":"Libtmux.Snapshot.Input.window_link.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-window_link-index"},{"id":"Libtmux.Snapshot.Input.window_link.is_current","publicId":"Libtmux.Snapshot.Input.window_link.is_current","name":"is_current","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":407,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"is_current : bool;","source":{"file":"lib/libtmux.mli","line":407,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.is_current","slug":"libtmux-snapshot-input-window_link-is_current"},{"id":"Libtmux.Snapshot.Input.window_link.session_id","publicId":"Libtmux.Snapshot.Input.window_link.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":404,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":404,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-window_link-session_id"},{"id":"Libtmux.Snapshot.Input.window_link.window_id","publicId":"Libtmux.Snapshot.Input.window_link.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":405,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":405,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-window_link-window_id"},{"id":"Libtmux.Snapshot.clients","publicId":"Libtmux.Snapshot.clients","qualifiedName":"Libtmux.Snapshot.clients","name":"clients","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":464,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. "],"declarations":[{"kind":"function","text":"val clients : t -> Client_observation.t Iarray.t","source":{"file":"lib/libtmux.mli","line":464,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Collections and their contents are immutable. They retain capture order, are replayable and remain readable after the acquiring client closes."},"signatures":[{"raw":"val clients : t -> Client_observation.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_observation.t Iarray.t"}],"slug":"libtmux-snapshot-clients"},{"id":"Libtmux.Snapshot.create","publicId":"Libtmux.Snapshot.create","qualifiedName":"Libtmux.Snapshot.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":436,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. "],"declarations":[{"kind":"function","text":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":436,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Validate and materialize a complete captured graph without I/O. Equal duplicate global rows collapse in first-occurrence order; conflicting rows and dangling references return {!Error.Capture_raced}. Links at different indexes remain distinct, including within one session. At most 10,000 input rows are admitted. Each session needs one current link and each window one active pane. Capture spans an interval, not an atomic instant. Input strings are bytes; no Unicode normalization is performed."},"signatures":[{"raw":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list -> clients:Input.client list -> (t, Error.t) result","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"id","type":"Id.t","keywordOnly":true},{"name":"started_at_ns","type":"int64","keywordOnly":true},{"name":"finished_at_ns","type":"int64","keywordOnly":true},{"name":"sessions","type":"Input.session list","keywordOnly":true},{"name":"windows","type":"Input.window list","keywordOnly":true},{"name":"window_links","type":"Input.window_link list","keywordOnly":true},{"name":"panes","type":"Input.pane list","keywordOnly":true},{"name":"clients","type":"Input.client list","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-create"},{"id":"Libtmux.Snapshot.find_pane","publicId":"Libtmux.Snapshot.find_pane","qualifiedName":"Libtmux.Snapshot.find_pane","name":"find_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":470,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_pane : t -> Pane.Id.t -> Pane.t option","source":{"file":"lib/libtmux.mli","line":470,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_pane : t -> Pane.Id.t -> Pane.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Pane.Id.t"}],"returns":"Pane.t option"}],"slug":"libtmux-snapshot-find_pane"},{"id":"Libtmux.Snapshot.find_session","publicId":"Libtmux.Snapshot.find_session","qualifiedName":"Libtmux.Snapshot.find_session","name":"find_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":468,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_session : t -> Session.Id.t -> Session.t option","source":{"file":"lib/libtmux.mli","line":468,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_session : t -> Session.Id.t -> Session.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Session.Id.t"}],"returns":"Session.t option"}],"slug":"libtmux-snapshot-find_session"},{"id":"Libtmux.Snapshot.find_window","publicId":"Libtmux.Snapshot.find_window","qualifiedName":"Libtmux.Snapshot.find_window","name":"find_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":469,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_window : t -> Window.Id.t -> Window.t option","source":{"file":"lib/libtmux.mli","line":469,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_window : t -> Window.Id.t -> Window.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Window.Id.t"}],"returns":"Window.t option"}],"slug":"libtmux-snapshot-find_window"},{"id":"Libtmux.Snapshot.finished_at_ns","publicId":"Libtmux.Snapshot.finished_at_ns","qualifiedName":"Libtmux.Snapshot.finished_at_ns","name":"finished_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val finished_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val finished_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-finished_at_ns"},{"id":"Libtmux.Snapshot.id","publicId":"Libtmux.Snapshot.id","qualifiedName":"Libtmux.Snapshot.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":455,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":455,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-snapshot-id-1y6d"},{"id":"Libtmux.Snapshot.panes","publicId":"Libtmux.Snapshot.panes","qualifiedName":"Libtmux.Snapshot.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":462,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":462,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"slug":"libtmux-snapshot-panes"},{"id":"Libtmux.Snapshot.sessions","publicId":"Libtmux.Snapshot.sessions","qualifiedName":"Libtmux.Snapshot.sessions","name":"sessions","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":459,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val sessions : t -> Session.t Iarray.t","source":{"file":"lib/libtmux.mli","line":459,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val sessions : t -> Session.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-snapshot-sessions"},{"id":"Libtmux.Snapshot.source","publicId":"Libtmux.Snapshot.source","qualifiedName":"Libtmux.Snapshot.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":456,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":456,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-snapshot-source"},{"id":"Libtmux.Snapshot.started_at_ns","publicId":"Libtmux.Snapshot.started_at_ns","qualifiedName":"Libtmux.Snapshot.started_at_ns","name":"started_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":457,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val started_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":457,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val started_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-started_at_ns"},{"id":"Libtmux.Snapshot.t","publicId":"Libtmux.Snapshot.t","qualifiedName":"Libtmux.Snapshot.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":382,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":382,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-t"},{"id":"Libtmux.Snapshot.window_links","publicId":"Libtmux.Snapshot.window_links","qualifiedName":"Libtmux.Snapshot.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":461,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":461,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-snapshot-window_links"},{"id":"Libtmux.Snapshot.windows","publicId":"Libtmux.Snapshot.windows","qualifiedName":"Libtmux.Snapshot.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":460,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":460,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-snapshot-windows"},{"id":"Libtmux.Source","publicId":"Libtmux.Source","qualifiedName":"Libtmux.Source","name":"Source","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":92,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Endpoint and observed daemon identity for one connection generation.\n Constructing metadata alone does not establish a live binding. "],"declarations":[{"kind":"module","text":"module Source : sig\n type t\n\n val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result\n (** Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. *)\n\n val endpoint : t -> Endpoint.t\n val generation : t -> Generation.t\n val server_pid : t -> int\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":92,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"Endpoint and observed daemon identity for one connection generation. Constructing metadata alone does not establish a live binding."},"slug":"libtmux-source"},{"id":"Libtmux.Source.create","publicId":"Libtmux.Source.create","qualifiedName":"Libtmux.Source.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. "],"declarations":[{"kind":"function","text":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Source","doc":{"summary":"Pure metadata import for capture adapters. This neither establishes a connection nor verifies process identity. The backend must bind the generation to a live daemon before it admits operations."},"signatures":[{"raw":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t -> server_pid:int -> (t, Error.t) result","params":[{"name":"endpoint","type":"Endpoint.t","keywordOnly":true},{"name":"generation","type":"Generation.t","keywordOnly":true},{"name":"server_pid","type":"int","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-source-create"},{"id":"Libtmux.Source.endpoint","publicId":"Libtmux.Source.endpoint","qualifiedName":"Libtmux.Source.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Endpoint.t","source":{"file":"lib/libtmux.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val endpoint : t -> Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Endpoint.t"}],"slug":"libtmux-source-endpoint"},{"id":"Libtmux.Source.equal","publicId":"Libtmux.Source.equal","qualifiedName":"Libtmux.Source.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":107,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":107,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-source-equal"},{"id":"Libtmux.Source.generation","publicId":"Libtmux.Source.generation","qualifiedName":"Libtmux.Source.generation","name":"generation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":105,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val generation : t -> Generation.t","source":{"file":"lib/libtmux.mli","line":105,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val generation : t -> Generation.t","params":[{"name":"arg1","type":"t"}],"returns":"Generation.t"}],"slug":"libtmux-source-generation"},{"id":"Libtmux.Source.server_pid","publicId":"Libtmux.Source.server_pid","qualifiedName":"Libtmux.Source.server_pid","name":"server_pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val server_pid : t -> int","source":{"file":"lib/libtmux.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val server_pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-source-server_pid"},{"id":"Libtmux.Source.t","publicId":"Libtmux.Source.t","qualifiedName":"Libtmux.Source.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Source","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-source-t"},{"id":"Libtmux.Spawn","publicId":"Libtmux.Spawn","qualifiedName":"Libtmux.Spawn","name":"Spawn","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":717,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A process description with explicit argv or shell semantics, working\n directory and environment. Describing a process performs no I/O. "],"declarations":[{"kind":"module","text":"module Spawn : sig\n type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string\n\n type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }\n\n val make : ?cwd:string -> ?environment:(string * string) list -> command -> t\n (** Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. *)\n\n val default : t\nend","source":{"file":"lib/libtmux.mli","line":717,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"A process description with explicit argv or shell semantics, working directory and environment. Describing a process performs no I/O."},"slug":"libtmux-spawn"},{"id":"Libtmux.Spawn.command","publicId":"Libtmux.Spawn.command","qualifiedName":"Libtmux.Spawn.command","name":"command","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":718,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string","source":{"file":"lib/libtmux.mli","line":718,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type command =\n Default\n | Exec of { program : string; args : string list; }\n | Shell of string","params":[]}],"slug":"libtmux-spawn-command"},{"id":"Libtmux.Spawn.command.Default","publicId":"Libtmux.Spawn.command.Default","name":"Default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":719,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Default","source":{"file":"lib/libtmux.mli","line":719,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.command","variant":"unit","qualifiedName":"Libtmux.Spawn.Default","slug":"libtmux-spawn-command-default"},{"id":"Libtmux.Spawn.command.Exec","publicId":"Libtmux.Spawn.command.Exec","name":"Exec","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Exec of { program : string; args : string list }","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.command","variant":"struct","qualifiedName":"Libtmux.Spawn.Exec","slug":"libtmux-spawn-command-exec"},{"id":"Libtmux.Spawn.command.Exec.args","publicId":"Libtmux.Spawn.command.Exec.args","name":"args","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"args : string list","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string list","qualifiedName":"Libtmux.Spawn.args","slug":"libtmux-spawn-command-exec-args"},{"id":"Libtmux.Spawn.command.Exec.program","publicId":"Libtmux.Spawn.command.Exec.program","name":"program","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":720,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"program : string;","source":{"file":"lib/libtmux.mli","line":720,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string","qualifiedName":"Libtmux.Spawn.program","slug":"libtmux-spawn-command-exec-program"},{"id":"Libtmux.Spawn.command.Shell","publicId":"Libtmux.Spawn.command.Shell","name":"Shell","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Shell of string","source":{"file":"lib/libtmux.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.command","variant":"tuple","qualifiedName":"Libtmux.Spawn.Shell","slug":"libtmux-spawn-command-shell"},{"id":"Libtmux.Spawn.default","publicId":"Libtmux.Spawn.default","qualifiedName":"Libtmux.Spawn.default","name":"default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":737,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val default : t","source":{"file":"lib/libtmux.mli","line":737,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"val default : t","params":[],"returns":"t"}],"slug":"libtmux-spawn-default"},{"id":"Libtmux.Spawn.make","publicId":"Libtmux.Spawn.make","qualifiedName":"Libtmux.Spawn.make","name":"make","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. "],"declarations":[{"kind":"function","text":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","source":{"file":"lib/libtmux.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn","doc":{"summary":"Describe a program without I/O. `Exec` preserves argv; `Shell` explicitly requests the daemon's configured shell. `cwd` must be absolute. Validation occurs at admission. With no arguments, `Exec` uses a fixed `/bin/sh` trampoline because tmux treats a single argument as shell code. `Default` follows tmux defaults on creation and reuses the previous command on respawn."},"signatures":[{"raw":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"arg1","type":"command"}],"returns":"t"}],"slug":"libtmux-spawn-make"},{"id":"Libtmux.Spawn.t","publicId":"Libtmux.Spawn.t","qualifiedName":"Libtmux.Spawn.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":723,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }","source":{"file":"lib/libtmux.mli","line":723,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n}","params":[]}],"slug":"libtmux-spawn-t"},{"id":"Libtmux.Spawn.t.command","publicId":"Libtmux.Spawn.t.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : command;","source":{"file":"lib/libtmux.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.t","type":"command","qualifiedName":"Libtmux.Spawn.command","slug":"libtmux-spawn-t-command"},{"id":"Libtmux.Spawn.t.cwd","publicId":"Libtmux.Spawn.t.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":725,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"lib/libtmux.mli","line":725,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.t","type":"string option","qualifiedName":"Libtmux.Spawn.cwd","slug":"libtmux-spawn-t-cwd"},{"id":"Libtmux.Spawn.t.environment","publicId":"Libtmux.Spawn.t.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":726,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"lib/libtmux.mli","line":726,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Spawn.t","type":"(string * string) list","qualifiedName":"Libtmux.Spawn.environment","slug":"libtmux-spawn-t-environment"},{"id":"Libtmux.Window","publicId":"Libtmux.Window","qualifiedName":"Libtmux.Window","name":"Window","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A global window shared by its session links. Window index and current state\n belong to a link, while panes and geometry belong to the window. "],"declarations":[{"kind":"module","text":"and Window : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end\n\n module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val width : t -> int\n val height : t -> int\n val layout : t -> string\n val source : t -> Source.t\n val target : t -> target\n val same_entity : t -> t -> bool\n val same_observation : t -> t -> bool\n val panes : t -> Pane.t Iarray.t\n val links : t -> Window_link.t Iarray.t\nend","source":{"file":"lib/libtmux.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"A global window shared by its session links. Window index and current state belong to a link, while panes and geometry belong to the window."},"slug":"libtmux-window"},{"id":"Libtmux.Window.Fields","publicId":"Libtmux.Window.Fields","qualifiedName":"Libtmux.Window.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end","source":{"file":"lib/libtmux.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","slug":"libtmux-window-fields"},{"id":"Libtmux.Window.Fields.height","publicId":"Libtmux.Window.Fields.height","qualifiedName":"Libtmux.Window.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-height"},{"id":"Libtmux.Window.Fields.id","publicId":"Libtmux.Window.Fields.id","qualifiedName":"Libtmux.Window.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-id"},{"id":"Libtmux.Window.Fields.layout","publicId":"Libtmux.Window.Fields.layout","qualifiedName":"Libtmux.Window.Fields.layout","name":"layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":225,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val layout : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val layout : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-layout"},{"id":"Libtmux.Window.Fields.name","publicId":"Libtmux.Window.Fields.name","qualifiedName":"Libtmux.Window.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-name"},{"id":"Libtmux.Window.Fields.width","publicId":"Libtmux.Window.Fields.width","qualifiedName":"Libtmux.Window.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-width"},{"id":"Libtmux.Window.Id","publicId":"Libtmux.Window.Id","qualifiedName":"Libtmux.Window.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","slug":"libtmux-window-id-1sgu"},{"id":"Libtmux.Window.Id.compare","publicId":"Libtmux.Window.Id.compare","qualifiedName":"Libtmux.Window.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-window-id-compare"},{"id":"Libtmux.Window.Id.equal","publicId":"Libtmux.Window.Id.equal","qualifiedName":"Libtmux.Window.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-id-equal"},{"id":"Libtmux.Window.Id.of_string","publicId":"Libtmux.Window.Id.of_string","qualifiedName":"Libtmux.Window.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-window-id-of_string"},{"id":"Libtmux.Window.Id.pp","publicId":"Libtmux.Window.Id.pp","qualifiedName":"Libtmux.Window.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-window-id-pp"},{"id":"Libtmux.Window.Id.t","publicId":"Libtmux.Window.Id.t","qualifiedName":"Libtmux.Window.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-id-t"},{"id":"Libtmux.Window.Id.to_string","publicId":"Libtmux.Window.Id.to_string","qualifiedName":"Libtmux.Window.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-id-to_string"},{"id":"Libtmux.Window.Relations","publicId":"Libtmux.Window.Relations","qualifiedName":"Libtmux.Window.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":228,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":228,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","slug":"libtmux-window-relations"},{"id":"Libtmux.Window.Relations.links","publicId":"Libtmux.Window.Relations.links","qualifiedName":"Libtmux.Window.Relations.links","name":"links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-window-relations-links"},{"id":"Libtmux.Window.Relations.panes","publicId":"Libtmux.Window.Relations.panes","qualifiedName":"Libtmux.Window.Relations.panes","name":"panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val panes : (t, Pane.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val panes : (t, Pane.t) Relation.Many.t","params":[],"returns":"(t, Pane.t) Relation.Many.t"}],"slug":"libtmux-window-relations-panes"},{"id":"Libtmux.Window.Target","publicId":"Libtmux.Window.Target","qualifiedName":"Libtmux.Window.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","slug":"libtmux-window-target-6ecc"},{"id":"Libtmux.Window.Target.id","publicId":"Libtmux.Window.Target.id","qualifiedName":"Libtmux.Window.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":240,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":240,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-target-id"},{"id":"Libtmux.Window.Target.of_id","publicId":"Libtmux.Window.Target.of_id","qualifiedName":"Libtmux.Window.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-window-target-of_id"},{"id":"Libtmux.Window.Target.source","publicId":"Libtmux.Window.Target.source","qualifiedName":"Libtmux.Window.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":239,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-target-source"},{"id":"Libtmux.Window.Target.t","publicId":"Libtmux.Window.Target.t","qualifiedName":"Libtmux.Window.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-target-t"},{"id":"Libtmux.Window.height","publicId":"Libtmux.Window.height","qualifiedName":"Libtmux.Window.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-height"},{"id":"Libtmux.Window.id","publicId":"Libtmux.Window.id","qualifiedName":"Libtmux.Window.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-id-1sjw"},{"id":"Libtmux.Window.layout","publicId":"Libtmux.Window.layout","qualifiedName":"Libtmux.Window.layout","name":"layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val layout : t -> string","source":{"file":"lib/libtmux.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val layout : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-layout"},{"id":"Libtmux.Window.links","publicId":"Libtmux.Window.links","qualifiedName":"Libtmux.Window.links","name":"links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":255,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":255,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-window-links"},{"id":"Libtmux.Window.name","publicId":"Libtmux.Window.name","qualifiedName":"Libtmux.Window.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-name"},{"id":"Libtmux.Window.panes","publicId":"Libtmux.Window.panes","qualifiedName":"Libtmux.Window.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":254,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":254,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-window-panes"},{"id":"Libtmux.Window.same_entity","publicId":"Libtmux.Window.same_entity","qualifiedName":"Libtmux.Window.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_entity"},{"id":"Libtmux.Window.same_observation","publicId":"Libtmux.Window.same_observation","qualifiedName":"Libtmux.Window.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_observation"},{"id":"Libtmux.Window.source","publicId":"Libtmux.Window.source","qualifiedName":"Libtmux.Window.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":250,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":250,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-source"},{"id":"Libtmux.Window.t","publicId":"Libtmux.Window.t","qualifiedName":"Libtmux.Window.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-t"},{"id":"Libtmux.Window.target","publicId":"Libtmux.Window.target","qualifiedName":"Libtmux.Window.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-window-target-1sbf"},{"id":"Libtmux.Window.target:type","publicId":"Libtmux.Window.target:type","qualifiedName":"Libtmux.Window.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":243,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":243,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-window-target-type"},{"id":"Libtmux.Window.width","publicId":"Libtmux.Window.width","qualifiedName":"Libtmux.Window.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":247,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":247,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-width"},{"id":"Libtmux.Window_link","publicId":"Libtmux.Window_link","qualifiedName":"Libtmux.Window_link","name":"Window_link","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" One captured session/index/window context. It is not a stable link\n incarnation across unlinking, movement or reindexing. "],"declarations":[{"kind":"module","text":"and Window_link : sig\n type t\n\n module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end\n\n val index : t -> int\n val is_current : t -> bool\n val session : t -> Session.t\n val window : t -> Window.t\n\n val same_context : t -> t -> bool\n (** Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. *)\n\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux","doc":{"summary":"One captured session/index/window context. It is not a stable link incarnation across unlinking, movement or reindexing."},"slug":"libtmux-window_link"},{"id":"Libtmux.Window_link.Fields","publicId":"Libtmux.Window_link.Fields","qualifiedName":"Libtmux.Window_link.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-fields"},{"id":"Libtmux.Window_link.Fields.index","publicId":"Libtmux.Window_link.Fields.index","qualifiedName":"Libtmux.Window_link.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window_link-fields-index"},{"id":"Libtmux.Window_link.Fields.is_current","publicId":"Libtmux.Window_link.Fields.is_current","qualifiedName":"Libtmux.Window_link.Fields.is_current","name":"is_current","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":265,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val is_current : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":265,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val is_current : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-window_link-fields-is_current"},{"id":"Libtmux.Window_link.Relations","publicId":"Libtmux.Window_link.Relations","qualifiedName":"Libtmux.Window_link.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":268,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":268,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-relations"},{"id":"Libtmux.Window_link.Relations.session","publicId":"Libtmux.Window_link.Relations.session","qualifiedName":"Libtmux.Window_link.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.One.t","params":[],"returns":"(t, Session.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-session"},{"id":"Libtmux.Window_link.Relations.window","publicId":"Libtmux.Window_link.Relations.window","qualifiedName":"Libtmux.Window_link.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":270,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":270,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-window"},{"id":"Libtmux.Window_link.index","publicId":"Libtmux.Window_link.index","qualifiedName":"Libtmux.Window_link.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window_link-index"},{"id":"Libtmux.Window_link.is_current","publicId":"Libtmux.Window_link.is_current","qualifiedName":"Libtmux.Window_link.is_current","name":"is_current","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_current : t -> bool","source":{"file":"lib/libtmux.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val is_current : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-is_current"},{"id":"Libtmux.Window_link.same_context","publicId":"Libtmux.Window_link.same_context","qualifiedName":"Libtmux.Window_link.same_context","name":"same_context","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":278,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. "],"declarations":[{"kind":"function","text":"val same_context : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":278,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","doc":{"summary":"Compare source, session, index and window. An equal context does not certify a stable link incarnation across reindexing or unlink/relink."},"signatures":[{"raw":"val same_context : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_context"},{"id":"Libtmux.Window_link.same_observation","publicId":"Libtmux.Window_link.same_observation","qualifiedName":"Libtmux.Window_link.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_observation"},{"id":"Libtmux.Window_link.session","publicId":"Libtmux.Window_link.session","qualifiedName":"Libtmux.Window_link.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":275,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> Session.t","source":{"file":"lib/libtmux.mli","line":275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val session : t -> Session.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t"}],"slug":"libtmux-window_link-session"},{"id":"Libtmux.Window_link.t","publicId":"Libtmux.Window_link.t","qualifiedName":"Libtmux.Window_link.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window_link-t"},{"id":"Libtmux.Window_link.window","publicId":"Libtmux.Window_link.window","qualifiedName":"Libtmux.Window_link.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":276,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":276,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-window_link-window"},{"id":"Libtmux_eio","publicId":"Libtmux_eio","qualifiedName":"Libtmux_eio","name":"Libtmux_eio","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Concurrent Linux tmux clients using the application's Eio scheduler.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md}streaming\n guide} demonstrates application-owned switches, cancellation and continuity\n gaps. "],"declarations":[{"kind":"module","text":"","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"doc":{"summary":"Concurrent Linux tmux clients using the application's Eio scheduler.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [streaming guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md) demonstrates application-owned switches, cancellation and continuity gaps."},"slug":"libtmux_eio"},{"id":"Libtmux_eio.Client","publicId":"Libtmux_eio.Client","qualifiedName":"Libtmux_eio.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. *)\n\n val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. No history/barrier guarantee. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve bounded capacity without I/O. *)\n\n val await : 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. *)\n\n val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result\n (** Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. *)\n\n val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. *)\n\n val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Retire the generation and close owned control clients and descriptors.\n tmux's [exit-unattached] and [exit-empty] policies can end the daemon\n after its clients or sessions disappear. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_eio-client"},{"id":"Libtmux_eio.Client.await","publicId":"Libtmux_eio.Client.await","qualifiedName":"Libtmux_eio.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. "],"declarations":[{"kind":"function","text":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Cancellation propagates as Eio cancellation. Store the handle outside the cancelled fiber: the client drains written work independently, and the eventual result remains inspectable."},"signatures":[{"raw":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-await"},{"id":"Libtmux_eio.Client.break_pane","publicId":"Libtmux_eio.Client.break_pane","qualifiedName":"Libtmux_eio.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-break_pane"},{"id":"Libtmux_eio.Client.capture","publicId":"Libtmux_eio.Client.capture","qualifiedName":"Libtmux_eio.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. "],"declarations":[{"kind":"function","text":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a complete immutable graph over an interval. Conflicting or disappearing entities fail capture; they do not become empty relations. The returned values remain readable after client closure."},"signatures":[{"raw":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture"},{"id":"Libtmux_eio.Client.capture_environment","publicId":"Libtmux_eio.Client.capture_environment","qualifiedName":"Libtmux_eio.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_environment"},{"id":"Libtmux_eio.Client.capture_hooks","publicId":"Libtmux_eio.Client.capture_hooks","qualifiedName":"Libtmux_eio.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_hooks"},{"id":"Libtmux_eio.Client.capture_options","publicId":"Libtmux_eio.Client.capture_options","qualifiedName":"Libtmux_eio.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":283,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_options"},{"id":"Libtmux_eio.Client.capture_text","publicId":"Libtmux_eio.Client.capture_text","qualifiedName":"Libtmux_eio.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Inclusive ordinary screen rows, using a bounded private file transfer. Qualified local scratch storage must be shared with the daemon."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_text"},{"id":"Libtmux_eio.Client.clear_history","publicId":"Libtmux_eio.Client.clear_history","qualifiedName":"Libtmux_eio.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_history"},{"id":"Libtmux_eio.Client.clear_option_array","publicId":"Libtmux_eio.Client.clear_option_array","qualifiedName":"Libtmux_eio.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_option_array"},{"id":"Libtmux_eio.Client.close","publicId":"Libtmux_eio.Client.close","qualifiedName":"Libtmux_eio.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Retire the generation and close owned control clients and descriptors.\n tmux's [exit-unattached] and [exit-empty] policies can end the daemon\n after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Retire the generation and close owned control clients and descriptors. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-close"},{"id":"Libtmux_eio.Client.connect","publicId":"Libtmux_eio.Client.connect","qualifiedName":"Libtmux_eio.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n "],"declarations":[{"kind":"function","text":"val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Attach to an existing local Linux daemon in the same PID namespace and shared filesystem. Requires pidfd support. Default exchange timeout: one second. All client calls belong to the connecting OCaml domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-connect"},{"id":"Libtmux_eio.Client.create_session","publicId":"Libtmux_eio.Client.create_session","qualifiedName":"Libtmux_eio.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":380,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":380,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_session"},{"id":"Libtmux_eio.Client.create_window","publicId":"Libtmux_eio.Client.create_window","qualifiedName":"Libtmux_eio.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":391,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":391,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_window"},{"id":"Libtmux_eio.Client.cycle_layout","publicId":"Libtmux_eio.Client.cycle_layout","qualifiedName":"Libtmux_eio.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-cycle_layout"},{"id":"Libtmux_eio.Client.kill_pane","publicId":"Libtmux_eio.Client.kill_pane","qualifiedName":"Libtmux_eio.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":431,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":431,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_pane"},{"id":"Libtmux_eio.Client.kill_session","publicId":"Libtmux_eio.Client.kill_session","qualifiedName":"Libtmux_eio.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_session"},{"id":"Libtmux_eio.Client.kill_window","publicId":"Libtmux_eio.Client.kill_window","qualifiedName":"Libtmux_eio.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_window"},{"id":"Libtmux_eio.Client.link_window","publicId":"Libtmux_eio.Client.link_window","qualifiedName":"Libtmux_eio.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-link_window"},{"id":"Libtmux_eio.Client.move_pane","publicId":"Libtmux_eio.Client.move_pane","qualifiedName":"Libtmux_eio.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_pane"},{"id":"Libtmux_eio.Client.move_window_at","publicId":"Libtmux_eio.Client.move_window_at","qualifiedName":"Libtmux_eio.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_window_at"},{"id":"Libtmux_eio.Client.read_hook","publicId":"Libtmux_eio.Client.read_hook","qualifiedName":"Libtmux_eio.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_hook"},{"id":"Libtmux_eio.Client.read_option","publicId":"Libtmux_eio.Client.read_option","qualifiedName":"Libtmux_eio.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_option"},{"id":"Libtmux_eio.Client.refresh_client_at","publicId":"Libtmux_eio.Client.refresh_client_at","qualifiedName":"Libtmux_eio.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-refresh_client_at"},{"id":"Libtmux_eio.Client.remove_environment","publicId":"Libtmux_eio.Client.remove_environment","qualifiedName":"Libtmux_eio.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_environment"},{"id":"Libtmux_eio.Client.remove_hook","publicId":"Libtmux_eio.Client.remove_hook","qualifiedName":"Libtmux_eio.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":362,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":362,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_hook"},{"id":"Libtmux_eio.Client.rename_session","publicId":"Libtmux_eio.Client.rename_session","qualifiedName":"Libtmux_eio.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_session"},{"id":"Libtmux_eio.Client.rename_window","publicId":"Libtmux_eio.Client.rename_window","qualifiedName":"Libtmux_eio.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":193,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":193,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_window"},{"id":"Libtmux_eio.Client.request_detach_client_at","publicId":"Libtmux_eio.Client.request_detach_client_at","qualifiedName":"Libtmux_eio.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-request_detach_client_at"},{"id":"Libtmux_eio.Client.resize_control_client_at","publicId":"Libtmux_eio.Client.resize_control_client_at","qualifiedName":"Libtmux_eio.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_control_client_at"},{"id":"Libtmux_eio.Client.resize_pane","publicId":"Libtmux_eio.Client.resize_pane","qualifiedName":"Libtmux_eio.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":477,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":477,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_pane"},{"id":"Libtmux_eio.Client.resize_window","publicId":"Libtmux_eio.Client.resize_window","qualifiedName":"Libtmux_eio.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":487,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":487,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_window"},{"id":"Libtmux_eio.Client.respawn_pane","publicId":"Libtmux_eio.Client.respawn_pane","qualifiedName":"Libtmux_eio.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-respawn_pane"},{"id":"Libtmux_eio.Client.rotate_panes","publicId":"Libtmux_eio.Client.rotate_panes","qualifiedName":"Libtmux_eio.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rotate_panes"},{"id":"Libtmux_eio.Client.run","publicId":"Libtmux_eio.Client.run","qualifiedName":"Libtmux_eio.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. "],"declarations":[{"kind":"function","text":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Submit and await an explicit command. Retain a separate submitted handle when the outcome must remain inspectable after caller cancellation."},"signatures":[{"raw":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run"},{"id":"Libtmux_eio.Client.run_hook","publicId":"Libtmux_eio.Client.run_hook","qualifiedName":"Libtmux_eio.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":371,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":371,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run_hook"},{"id":"Libtmux_eio.Client.select_layout","publicId":"Libtmux_eio.Client.select_layout","qualifiedName":"Libtmux_eio.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout :\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_layout"},{"id":"Libtmux_eio.Client.select_pane","publicId":"Libtmux_eio.Client.select_pane","qualifiedName":"Libtmux_eio.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":468,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":468,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_pane"},{"id":"Libtmux_eio.Client.select_window_at","publicId":"Libtmux_eio.Client.select_window_at","qualifiedName":"Libtmux_eio.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":435,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":435,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_window_at"},{"id":"Libtmux_eio.Client.send_keys","publicId":"Libtmux_eio.Client.send_keys","qualifiedName":"Libtmux_eio.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys :\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_keys"},{"id":"Libtmux_eio.Client.send_text","publicId":"Libtmux_eio.Client.send_text","qualifiedName":"Libtmux_eio.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_text"},{"id":"Libtmux_eio.Client.set_environment","publicId":"Libtmux_eio.Client.set_environment","qualifiedName":"Libtmux_eio.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_environment"},{"id":"Libtmux_eio.Client.set_hook","publicId":"Libtmux_eio.Client.set_hook","qualifiedName":"Libtmux_eio.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":346,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_hook"},{"id":"Libtmux_eio.Client.set_option","publicId":"Libtmux_eio.Client.set_option","qualifiedName":"Libtmux_eio.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_option"},{"id":"Libtmux_eio.Client.set_pane_title","publicId":"Libtmux_eio.Client.set_pane_title","qualifiedName":"Libtmux_eio.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_pane_title"},{"id":"Libtmux_eio.Client.signal","publicId":"Libtmux_eio.Client.signal","qualifiedName":"Libtmux_eio.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-signal"},{"id":"Libtmux_eio.Client.source","publicId":"Libtmux_eio.Client.source","qualifiedName":"Libtmux_eio.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_eio-client-source"},{"id":"Libtmux_eio.Client.split_pane","publicId":"Libtmux_eio.Client.split_pane","qualifiedName":"Libtmux_eio.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":400,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":400,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-split_pane"},{"id":"Libtmux_eio.Client.submit","publicId":"Libtmux_eio.Client.submit","qualifiedName":"Libtmux_eio.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate and reserve bounded capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate and reserve bounded capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-submit"},{"id":"Libtmux_eio.Client.subscribe","publicId":"Libtmux_eio.Client.subscribe","qualifiedName":"Libtmux_eio.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire verified coverage through one shared lane per session; choose the least observed session ID unless supplied. A client-owned reader delivers future bytes without application callbacks. Default queue bounds are 1 MiB/1024 events; max 16 subscribers and eight total client lanes, sharing the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap then End. Data starts after admission's marker, with no snapshot/history barrier, automatic reconnect or silent cursor reuse.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-subscribe"},{"id":"Libtmux_eio.Client.swap_panes","publicId":"Libtmux_eio.Client.swap_panes","qualifiedName":"Libtmux_eio.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-swap_panes"},{"id":"Libtmux_eio.Client.switch_client_at","publicId":"Libtmux_eio.Client.switch_client_at","qualifiedName":"Libtmux_eio.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-switch_client_at"},{"id":"Libtmux_eio.Client.t","publicId":"Libtmux_eio.Client.t","qualifiedName":"Libtmux_eio.Client.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-client-t"},{"id":"Libtmux_eio.Client.unlink_window_at","publicId":"Libtmux_eio.Client.unlink_window_at","qualifiedName":"Libtmux_eio.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unlink_window_at"},{"id":"Libtmux_eio.Client.unset_environment","publicId":"Libtmux_eio.Client.unset_environment","qualifiedName":"Libtmux_eio.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_environment"},{"id":"Libtmux_eio.Client.unset_option","publicId":"Libtmux_eio.Client.unset_option","qualifiedName":"Libtmux_eio.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_option"},{"id":"Libtmux_eio.Client.version","publicId":"Libtmux_eio.Client.version","qualifiedName":"Libtmux_eio.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":132,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"eio/libtmux_eio.mli","line":132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_eio-client-version"},{"id":"Libtmux_eio.Client.wait_for","publicId":"Libtmux_eio.Client.wait_for","qualifiedName":"Libtmux_eio.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for"},{"id":"Libtmux_eio.Client.wait_for_text","publicId":"Libtmux_eio.Client.wait_for_text","qualifiedName":"Libtmux_eio.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. No history/barrier guarantee. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Subscribe and capture the screen immediately, then recapture on output. Membership/overflow gaps establish fresh coverage in the same binding. Maximum pattern: 64 KiB. Return captured rendered text containing it; transient text may be missed. Deadlines are checked between bounded acquisitions, whose I/O retains the client exchange timeout. Cancellation propagates and releases the subscription. No history/barrier guarantee."},"signatures":[{"raw":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for_text"},{"id":"Libtmux_eio.Client.zoom_pane","publicId":"Libtmux_eio.Client.zoom_pane","qualifiedName":"Libtmux_eio.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":539,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":539,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-zoom_pane"},{"id":"Libtmux_eio.Operation","publicId":"Libtmux_eio.Operation","qualifiedName":"Libtmux_eio.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":45,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** Read without I/O, including after client closure. Owning domain only. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove unsent work. A written request remains owned and drained by the\n client. *)\n\n val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result\n (** Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":45,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_eio-operation"},{"id":"Libtmux_eio.Operation.await_stage","publicId":"Libtmux_eio.Operation.await_stage","qualifiedName":"Libtmux_eio.Operation.await_stage","name":"await_stage","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n "],"declarations":[{"kind":"function","text":"val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Wait for the named stage or a terminal state. Acknowledgement does not establish completion. Cancelling this observer leaves the operation alone."},"signatures":[{"raw":"val await_stage :\n 'a t -> [ `Acknowledged | `Written ] -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"[ `Acknowledged | `Written ]"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-await_stage"},{"id":"Libtmux_eio.Operation.cancel","publicId":"Libtmux_eio.Operation.cancel","qualifiedName":"Libtmux_eio.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove unsent work. A written request remains owned and drained by the\n client. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Remove unsent work. A written request remains owned and drained by the client."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-cancel"},{"id":"Libtmux_eio.Operation.cleanup_receipt","publicId":"Libtmux_eio.Operation.cleanup_receipt","qualifiedName":"Libtmux_eio.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":48,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"eio/libtmux_eio.mli","line":48,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n}","params":[]}],"slug":"libtmux_eio-operation-cleanup_receipt"},{"id":"Libtmux_eio.Operation.cleanup_receipt.cause","publicId":"Libtmux_eio.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"eio/libtmux_eio.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_eio.Operation.cause","slug":"libtmux_eio-operation-cleanup_receipt-cause"},{"id":"Libtmux_eio.Operation.cleanup_receipt.created","publicId":"Libtmux_eio.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"eio/libtmux_eio.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_eio.Operation.created","slug":"libtmux_eio-operation-cleanup_receipt-created"},{"id":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"eio/libtmux_eio.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_eio.Operation.owned_buffers","slug":"libtmux_eio-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_eio.Operation.id","publicId":"Libtmux_eio.Operation.id","qualifiedName":"Libtmux_eio.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"eio/libtmux_eio.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_eio-operation-id"},{"id":"Libtmux_eio.Operation.inspect","publicId":"Libtmux_eio.Operation.inspect","qualifiedName":"Libtmux_eio.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read without I/O, including after client closure. Owning domain only. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Read without I/O, including after client closure. Owning domain only."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-inspect"},{"id":"Libtmux_eio.Operation.state","publicId":"Libtmux_eio.Operation.state","qualifiedName":"Libtmux_eio.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a state =\n Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","params":[]}],"slug":"libtmux_eio-operation-state"},{"id":"Libtmux_eio.Operation.state.Acknowledged","publicId":"Libtmux_eio.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Acknowledged","slug":"libtmux_eio-operation-state-acknowledged"},{"id":"Libtmux_eio.Operation.state.Finished","publicId":"Libtmux_eio.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Finished","slug":"libtmux_eio-operation-state-finished"},{"id":"Libtmux_eio.Operation.state.Not_started","publicId":"Libtmux_eio.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Not_started","slug":"libtmux_eio-operation-state-not_started"},{"id":"Libtmux_eio.Operation.state.Outcome_unknown","publicId":"Libtmux_eio.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Outcome_unknown","slug":"libtmux_eio-operation-state-outcome_unknown"},{"id":"Libtmux_eio.Operation.state.Queued","publicId":"Libtmux_eio.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"eio/libtmux_eio.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Queued","slug":"libtmux_eio-operation-state-queued"},{"id":"Libtmux_eio.Operation.state.Written","publicId":"Libtmux_eio.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Written","slug":"libtmux_eio-operation-state-written"},{"id":"Libtmux_eio.Operation.t","publicId":"Libtmux_eio.Operation.t","qualifiedName":"Libtmux_eio.Operation.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":46,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"eio/libtmux_eio.mli","line":46,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-operation-t"},{"id":"Libtmux_eio.Rendered","publicId":"Libtmux_eio.Rendered","qualifiedName":"Libtmux_eio.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio","exportedFrom":"Libtmux.Captured_text","slug":"libtmux_eio-rendered"},{"id":"Libtmux_eio.Subscription","publicId":"Libtmux_eio.Subscription","qualifiedName":"Libtmux_eio.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O, on the owning domain. *)\n\n val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Discard pending data and retain End Cancelled. Borrowed clients and the\n daemon remain alive. *)\n\n val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_eio-subscription"},{"id":"Libtmux_eio.Subscription.close","publicId":"Libtmux_eio.Subscription.close","qualifiedName":"Libtmux_eio.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Discard pending data and retain End Cancelled. Borrowed clients and the\n daemon remain alive. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Discard pending data and retain End Cancelled. Borrowed clients and the daemon remain alive."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-close"},{"id":"Libtmux_eio.Subscription.next","publicId":"Libtmux_eio.Subscription.next","qualifiedName":"Libtmux_eio.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":88,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. "],"declarations":[{"kind":"function","text":"val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":88,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Await one event, defaulting to a one-second deadline. `None` follows a consumed End. A deadline keeps the subscription active. Eio cancellation closes it, releases its lane when unused, and propagates."},"signatures":[{"raw":"val next :\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-next"},{"id":"Libtmux_eio.Subscription.poll","publicId":"Libtmux_eio.Subscription.poll","qualifiedName":"Libtmux_eio.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":85,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove a queued event without I/O, on the owning domain. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":85,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Remove a queued event without I/O, on the owning domain."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-poll"},{"id":"Libtmux_eio.Subscription.t","publicId":"Libtmux_eio.Subscription.t","qualifiedName":"Libtmux_eio.Subscription.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-subscription-t"},{"id":"Libtmux_eio.Subscription.wait_for_bytes","publicId":"Libtmux_eio.Subscription.wait_for_bytes","qualifiedName":"Libtmux_eio.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Consume future observed bytes through a match, with a maximum 64 KiB nonempty pattern. Match across Data boundaries and return its end cursor. Gaps end matching. This searches neither rendered text nor history. A deadline leaves the subscription active; cancellation closes it.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_eio-subscription-wait_for_bytes"},{"id":"Libtmux_eio.Terminal","publicId":"Libtmux_eio.Terminal","qualifiedName":"Libtmux_eio.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_eio-terminal"},{"id":"Libtmux_eio.Terminal.attach_current","publicId":"Libtmux_eio.Terminal.attach_current","qualifiedName":"Libtmux_eio.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Terminal","doc":{"summary":"Run an interactive terminal client until exit, using the application's process manager and standard streams unless explicit flows are supplied. `stdin` must be backed by a terminal descriptor; a pipe-backed flow is rejected by tmux. Select the exact ID on the daemon currently listening at `endpoint`, without a captured target, binding, retry or daemon startup.","body":"Environment updates and read-only mode default to false. Clear inherited `TMUX` and `TMUX_PANE`. Cancellation propagates after terminating and reaping this client; it does not stop the daemon. Success proves terminal client exit. Diagnostics go to `stderr`; borrowed flows stay open."},"signatures":[{"raw":"val attach_current :\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:[> Eio.Flow.source_ty ] Eio.Flow.source ->\n ?stdout:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n ?stderr:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"[> Eio.Flow.source_ty ] Eio.Flow.source","optional":true,"keywordOnly":true},{"name":"stdout","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"stderr","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-terminal-attach_current"},{"id":"Libtmux_eio.Workspace","publicId":"Libtmux_eio.Workspace","qualifiedName":"Libtmux_eio.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":567,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Apply workspace plans through Eio while retaining journals across caller\n cancellation. Handles belong to the creating domain; the application owns\n the scheduler and switch. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. *)\n\n val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. *)\n\n val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Read a journal copy without I/O, including any late retained outcome. *)\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":567,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio","doc":{"summary":"Apply workspace plans through Eio while retaining journals across caller cancellation. Handles belong to the creating domain; the application owns the scheduler and switch."},"slug":"libtmux_eio-workspace"},{"id":"Libtmux_eio.Workspace.await","publicId":"Libtmux_eio.Workspace.await","qualifiedName":"Libtmux_eio.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. "],"declarations":[{"kind":"function","text":"val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Apply once. Expected failures return a retained journal. Eio cancellation propagates after progress is recorded and at most 500 ms of protected compensation. Admitted commands can still complete under client ownership; inspect the receipt before attempting manual recovery."},"signatures":[{"raw":"val await :\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-await"},{"id":"Libtmux_eio.Workspace.client","publicId":"Libtmux_eio.Workspace.client","qualifiedName":"Libtmux_eio.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_eio-workspace-client"},{"id":"Libtmux_eio.Workspace.close","publicId":"Libtmux_eio.Workspace.close","qualifiedName":"Libtmux_eio.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Closing is idempotent; completed journals remain readable."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-close"},{"id":"Libtmux_eio.Workspace.inspect","publicId":"Libtmux_eio.Workspace.inspect","qualifiedName":"Libtmux_eio.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read a journal copy without I/O, including any late retained outcome. "],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Read a journal copy without I/O, including any late retained outcome."},"signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-inspect"},{"id":"Libtmux_eio.Workspace.submit","publicId":"Libtmux_eio.Workspace.submit","qualifiedName":"Libtmux_eio.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":570,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":570,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a generation-bound handle without I/O. The supplied client is borrowed; closing the handle leaves it open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit"},{"id":"Libtmux_eio.Workspace.submit_bootstrap","publicId":"Libtmux_eio.Workspace.submit_bootstrap","qualifiedName":"Libtmux_eio.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a missing-endpoint execution without I/O. Await starts control new-session and binds that same connection. The handle owns its new client within `sw`; it never owns the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit_bootstrap"},{"id":"Libtmux_eio.Workspace.t","publicId":"Libtmux_eio.Workspace.t","qualifiedName":"Libtmux_eio.Workspace.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_eio.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-workspace-t"},{"id":"Libtmux_json","publicId":"Libtmux_json","qualifiedName":"Libtmux_json","name":"Libtmux_json","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Pure, bounded query and workspace JSON interchange.\n\n {!Expr} validates portable queries and {!Workspace} decodes configurations\n and encodes plans and receipts. Both return {!Decode_error.t} on invalid\n data. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} and\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for complete programs. "],"declarations":[{"kind":"module","text":"","source":{"file":"json/libtmux_json.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"doc":{"summary":"Pure, bounded query and workspace JSON interchange.","body":"{!Expr} validates portable queries and {!Workspace} decodes configurations and encodes plans and receipts. Both return {!Decode_error.t} on invalid data. See the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) and [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for complete programs."},"slug":"libtmux_json"},{"id":"Libtmux_json.Decode_error","publicId":"Libtmux_json.Decode_error","qualifiedName":"Libtmux_json.Decode_error","name":"Decode_error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Decode_error : sig\n type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported\n\n type t = { pointer : string; category : category; message : string }\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"json/libtmux_json.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json","slug":"libtmux_json-decode_error"},{"id":"Libtmux_json.Decode_error.category","publicId":"Libtmux_json.Decode_error.category","qualifiedName":"Libtmux_json.Decode_error.category","name":"category","kind":"enum","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":12,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","source":{"file":"json/libtmux_json.mli","line":12,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type category =\n Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","params":[]}],"slug":"libtmux_json-decode_error-category"},{"id":"Libtmux_json.Decode_error.category.Limit","publicId":"Libtmux_json.Decode_error.category.Limit","name":"Limit","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Limit","source":{"file":"json/libtmux_json.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Limit","slug":"libtmux_json-decode_error-category-limit"},{"id":"Libtmux_json.Decode_error.category.Out_of_range","publicId":"Libtmux_json.Decode_error.category.Out_of_range","name":"Out_of_range","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Out_of_range","source":{"file":"json/libtmux_json.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Out_of_range","slug":"libtmux_json-decode_error-category-out_of_range"},{"id":"Libtmux_json.Decode_error.category.Syntax","publicId":"Libtmux_json.Decode_error.category.Syntax","name":"Syntax","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Syntax","source":{"file":"json/libtmux_json.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Syntax","slug":"libtmux_json-decode_error-category-syntax"},{"id":"Libtmux_json.Decode_error.category.Unknown","publicId":"Libtmux_json.Decode_error.category.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"json/libtmux_json.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unknown","slug":"libtmux_json-decode_error-category-unknown"},{"id":"Libtmux_json.Decode_error.category.Unsupported","publicId":"Libtmux_json.Decode_error.category.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"json/libtmux_json.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unsupported","slug":"libtmux_json-decode_error-category-unsupported"},{"id":"Libtmux_json.Decode_error.category.Wrong_type","publicId":"Libtmux_json.Decode_error.category.Wrong_type","name":"Wrong_type","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_type","source":{"file":"json/libtmux_json.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Wrong_type","slug":"libtmux_json-decode_error-category-wrong_type"},{"id":"Libtmux_json.Decode_error.pp","publicId":"Libtmux_json.Decode_error.pp","qualifiedName":"Libtmux_json.Decode_error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"json/libtmux_json.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux_json-decode_error-pp"},{"id":"Libtmux_json.Decode_error.t","publicId":"Libtmux_json.Decode_error.t","qualifiedName":"Libtmux_json.Decode_error.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = { pointer : string; category : category; message : string }","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type t = { pointer : string; category : category; message : string; }","params":[]}],"slug":"libtmux_json-decode_error-t"},{"id":"Libtmux_json.Decode_error.t.category","publicId":"Libtmux_json.Decode_error.t.category","name":"category","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"category : category;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.t","type":"category","qualifiedName":"Libtmux_json.Decode_error.category","slug":"libtmux_json-decode_error-t-category"},{"id":"Libtmux_json.Decode_error.t.message","publicId":"Libtmux_json.Decode_error.t.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.message","slug":"libtmux_json-decode_error-t-message"},{"id":"Libtmux_json.Decode_error.t.pointer","publicId":"Libtmux_json.Decode_error.t.pointer","name":"pointer","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pointer : string;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.pointer","slug":"libtmux_json-decode_error-t-pointer"},{"id":"Libtmux_json.Error","publicId":"Libtmux_json.Error","qualifiedName":"Libtmux_json.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Structured native failures for JSON consumers. "],"declarations":[{"kind":"module","text":"module Error : sig\n val encode : Libtmux.Error.t -> Yojson.Safe.t\n (** Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json","doc":{"summary":"Structured native failures for JSON consumers."},"slug":"libtmux_json-error"},{"id":"Libtmux_json.Error.encode","publicId":"Libtmux_json.Error.encode","qualifiedName":"Libtmux_json.Error.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. "],"declarations":[{"kind":"function","text":"val encode : Libtmux.Error.t -> Yojson.Safe.t","source":{"file":"json/libtmux_json.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Error","doc":{"summary":"Return a stable `code`, bounded `message`, `message_truncated` flag and relevant operation, resource or target metadata. Messages and text attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex representation described by {!Workspace.encode_receipt}. No I/O."},"signatures":[{"raw":"val encode : Libtmux.Error.t -> Yojson.Safe.t","params":[{"name":"arg1","type":"Libtmux.Error.t"}],"returns":"Yojson.Safe.t"}],"slug":"libtmux_json-error-encode"},{"id":"Libtmux_json.Expr","publicId":"Libtmux_json.Expr","qualifiedName":"Libtmux_json.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Expr : sig\n val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result\n (** Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. *)\n\n val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result\n (** Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. *)\n\n val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result\n\n val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result\n (** Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json","slug":"libtmux_json-expr"},{"id":"Libtmux_json.Expr.decode","publicId":"Libtmux_json.Expr.decode","qualifiedName":"Libtmux_json.Expr.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. "],"declarations":[{"kind":"function","text":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Validate the supplied tree, including duplicate properties, before typed construction. Only the shared scalar pane registry and Boolean composition are accepted. Java regex, relationships and native extension fields return `Unsupported`. Numbers must fit signed 32-bit integers."},"signatures":[{"raw":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"Yojson.Safe.t"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-decode"},{"id":"Libtmux_json.Expr.encode","publicId":"Libtmux_json.Expr.encode","qualifiedName":"Libtmux_json.Expr.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Expr","signatures":[{"raw":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-encode"},{"id":"Libtmux_json.Expr.of_string","publicId":"Libtmux_json.Expr.of_string","qualifiedName":"Libtmux_json.Expr.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. "],"declarations":[{"kind":"function","text":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at most 256 values. Errors include a JSON pointer, never the whole input."},"signatures":[{"raw":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"string"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-of_string"},{"id":"Libtmux_json.Expr.to_string","publicId":"Libtmux_json.Expr.to_string","qualifiedName":"Libtmux_json.Expr.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. "],"declarations":[{"kind":"function","text":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Apply the same bounds and subset when encoding. Text with invalid UTF-8 has no representation in this schema. These functions perform no I/O."},"signatures":[{"raw":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(string, Decode_error.t) result"}],"slug":"libtmux_json-expr-to_string"},{"id":"Libtmux_json.Workspace","publicId":"Libtmux_json.Workspace","qualifiedName":"Libtmux_json.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Validate workspace documents and describe plans and retained execution.\n Preview output never supplies executable targets. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n\n val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n (** Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. *)\n\n val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. *)\n\n val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. *)\nend","source":{"file":"json/libtmux_json.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json","doc":{"summary":"Validate workspace documents and describe plans and retained execution. Preview output never supplies executable targets."},"slug":"libtmux_json-workspace"},{"id":"Libtmux_json.Workspace.decode","publicId":"Libtmux_json.Workspace.decode","qualifiedName":"Libtmux_json.Workspace.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Workspace","signatures":[{"raw":"val decode :\n directory:string ->\n Yojson.Safe.t -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"Yojson.Safe.t"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-decode"},{"id":"Libtmux_json.Workspace.encode_plan","publicId":"Libtmux_json.Workspace.encode_plan","qualifiedName":"Libtmux_json.Workspace.encode_plan","name":"encode_plan","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. "],"declarations":[{"kind":"function","text":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-plan/1` without I/O. The advisory preview contains command argv, cwd and environment names, excluding environment values, option values and startup text. It is not an execution script."},"signatures":[{"raw":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_plan"},{"id":"Libtmux_json.Workspace.encode_receipt","publicId":"Libtmux_json.Workspace.encode_receipt","qualifiedName":"Libtmux_json.Workspace.encode_receipt","name":"encode_receipt","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. "],"declarations":[{"kind":"function","text":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-receipt/1` with ordered steps, outcome index lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic messages are limited to 4096 bytes with an explicit truncation flag; command payloads are omitted.","body":"Both output schemas have a 4 MiB bound. Invalid UTF-8 values use `{\"encoding\":\"hex\",\"bytes\":\"...\"}` instead of losing bytes. Imported IDs and hints never establish a connection binding."},"signatures":[{"raw":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Execution.receipt"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_receipt"},{"id":"Libtmux_json.Workspace.of_string","publicId":"Libtmux_json.Workspace.of_string","qualifiedName":"Libtmux_json.Workspace.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":42,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. "],"declarations":[{"kind":"function","text":"val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":42,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Decode `libtmux.workspace/1` with the query codec's 64 KiB, UTF-8 and 32-level JSON bounds. Reject duplicate and unknown properties, invalid argv/shell combinations and configuration errors. `directory` is the absolute document directory; these functions perform no filesystem I/O."},"signatures":[{"raw":"val of_string :\n directory:string ->\n string -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-of_string"},{"id":"Libtmux_unix","publicId":"Libtmux_unix","qualifiedName":"Libtmux_unix","name":"Libtmux_unix","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Blocking Linux tmux clients with explicit scoped cancellation.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md}control\n guide} explains binding, completion and recovery. "],"declarations":[{"kind":"module","text":"","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"doc":{"summary":"Blocking Linux tmux clients with explicit scoped cancellation.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [control guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md) explains binding, completion and recovery."},"slug":"libtmux_unix"},{"id":"Libtmux_unix.Cancellation","publicId":"Libtmux_unix.Cancellation","qualifiedName":"Libtmux_unix.Cancellation","name":"Cancellation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cancellation : sig\n type t\n\n exception Cancelled\n\n val with_ : (t -> 'a) -> 'a\n (** Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. *)\n\n val cancel : t -> unit\n (** Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","slug":"libtmux_unix-cancellation"},{"id":"Libtmux_unix.Cancellation.Cancelled","publicId":"Libtmux_unix.Cancellation.Cancelled","qualifiedName":"Libtmux_unix.Cancellation.Cancelled","name":"Cancelled","kind":"exception","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"exception","text":"exception Cancelled","source":{"file":"unix/libtmux_unix.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type exn += Cancelled","params":[]}],"slug":"libtmux_unix-cancellation-cancelled"},{"id":"Libtmux_unix.Cancellation.cancel","publicId":"Libtmux_unix.Cancellation.cancel","qualifiedName":"Libtmux_unix.Cancellation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. "],"declarations":[{"kind":"function","text":"val cancel : t -> unit","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Wake waiters. Safe from another domain or systhread, but not from a signal handler. Repeated calls and calls after scope exit have no effect."},"signatures":[{"raw":"val cancel : t -> unit","params":[{"name":"arg1","type":"t"}],"returns":"unit"}],"slug":"libtmux_unix-cancellation-cancel"},{"id":"Libtmux_unix.Cancellation.t","publicId":"Libtmux_unix.Cancellation.t","qualifiedName":"Libtmux_unix.Cancellation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-cancellation-t"},{"id":"Libtmux_unix.Cancellation.with_","publicId":"Libtmux_unix.Cancellation.with_","qualifiedName":"Libtmux_unix.Cancellation.with_","name":"with_","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. "],"declarations":[{"kind":"function","text":"val with_ : (t -> 'a) -> 'a","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Own a cancellation token for the callback's lifetime. Leaving the scope cancels outstanding waiters and releases its descriptors after they finish. An escaped token is cancelled and cannot be reused."},"signatures":[{"raw":"val with_ : (t -> 'a) -> 'a","params":[{"name":"arg1","type":"t -> 'a"}],"returns":"'a"}],"slug":"libtmux_unix-cancellation-with_"},{"id":"Libtmux_unix.Client","publicId":"Libtmux_unix.Client","qualifiedName":"Libtmux_unix.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. *)\n\n val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. No capture/stream barrier exists.\n *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve queue capacity without I/O. *)\n\n val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O must also finish. No background\n scheduler or worker is started. *)\n\n val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result\n (** Submit and await. Use the two calls separately to retain an operation\n handle. *)\n\n val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. *)\n\n val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Close owned control clients and descriptors. Idempotent on the owning\n domain. tmux's [exit-unattached] and [exit-empty] policies can end the\n daemon after its clients or sessions disappear. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_unix-client"},{"id":"Libtmux_unix.Client.await","publicId":"Libtmux_unix.Client.await","qualifiedName":"Libtmux_unix.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O must also finish. No background\n scheduler or worker is started. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Pump admitted work until this operation is finished. Only one blocking caller may own the client at a time. Cancellation removes queued work or drains admitted work before raising `Cancellation.Cancelled`. The handle retains its outcome. Draining has at most one exchange timeout from detection; local scratch filesystem I/O must also finish. No background scheduler or worker is started."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-await"},{"id":"Libtmux_unix.Client.break_pane","publicId":"Libtmux_unix.Client.break_pane","qualifiedName":"Libtmux_unix.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-break_pane"},{"id":"Libtmux_unix.Client.capture","publicId":"Libtmux_unix.Client.capture","qualifiedName":"Libtmux_unix.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. "],"declarations":[{"kind":"function","text":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a complete graph over a recorded interval, with a fixed number of listing commands. Races fail validation. Access to returned values performs no I/O, including after closing the client.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture"},{"id":"Libtmux_unix.Client.capture_environment","publicId":"Libtmux_unix.Client.capture_environment","qualifiedName":"Libtmux_unix.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":308,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":308,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_environment"},{"id":"Libtmux_unix.Client.capture_hooks","publicId":"Libtmux_unix.Client.capture_hooks","qualifiedName":"Libtmux_unix.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":405,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":405,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_hooks"},{"id":"Libtmux_unix.Client.capture_options","publicId":"Libtmux_unix.Client.capture_options","qualifiedName":"Libtmux_unix.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":348,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":348,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_options"},{"id":"Libtmux_unix.Client.capture_text","publicId":"Libtmux_unix.Client.capture_text","qualifiedName":"Libtmux_unix.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture ordinary rendered screen rows, inclusively, via an owned paste buffer and private file. Reject applicable capture/save hooks. The scratch directory defaults to `/tmp` and must be local storage shared with the daemon. Pending and alternate-screen byte modes are unsupported. This observes an interval and establishes no stream continuity barrier."},"signatures":[{"raw":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_text"},{"id":"Libtmux_unix.Client.clear_history","publicId":"Libtmux_unix.Client.clear_history","qualifiedName":"Libtmux_unix.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":677,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":677,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_history"},{"id":"Libtmux_unix.Client.clear_option_array","publicId":"Libtmux_unix.Client.clear_option_array","qualifiedName":"Libtmux_unix.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_option_array"},{"id":"Libtmux_unix.Client.close","publicId":"Libtmux_unix.Client.close","qualifiedName":"Libtmux_unix.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":687,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Close owned control clients and descriptors. Idempotent on the owning\n domain. tmux's [exit-unattached] and [exit-empty] policies can end the\n daemon after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":687,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Close owned control clients and descriptors. Idempotent on the owning domain. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-close"},{"id":"Libtmux_unix.Client.connect","publicId":"Libtmux_unix.Client.connect","qualifiedName":"Libtmux_unix.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":132,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. "],"declarations":[{"kind":"function","text":"val connect :\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Attach to an existing local daemon with at least one session. The caller and daemon must share the PID namespace and filesystem. A local socket pathname alone does not establish these preconditions. `timeout` is the maximum seconds per control exchange, defaulting to one second. Requires Linux pidfd support. The client belongs to the current domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?binary:string ->\n ?timeout:float -> Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-connect"},{"id":"Libtmux_unix.Client.create_session","publicId":"Libtmux_unix.Client.create_session","qualifiedName":"Libtmux_unix.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":463,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":463,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_session"},{"id":"Libtmux_unix.Client.create_window","publicId":"Libtmux_unix.Client.create_window","qualifiedName":"Libtmux_unix.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_create_window.ml","intro":"Create a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"created: logs\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_window"},{"id":"Libtmux_unix.Client.cycle_layout","publicId":"Libtmux_unix.Client.cycle_layout","qualifiedName":"Libtmux_unix.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-cycle_layout"},{"id":"Libtmux_unix.Client.kill_pane","publicId":"Libtmux_unix.Client.kill_pane","qualifiedName":"Libtmux_unix.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_pane"},{"id":"Libtmux_unix.Client.kill_session","publicId":"Libtmux_unix.Client.kill_session","qualifiedName":"Libtmux_unix.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":509,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":509,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_session"},{"id":"Libtmux_unix.Client.kill_window","publicId":"Libtmux_unix.Client.kill_window","qualifiedName":"Libtmux_unix.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":517,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":517,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_window"},{"id":"Libtmux_unix.Client.link_window","publicId":"Libtmux_unix.Client.link_window","qualifiedName":"Libtmux_unix.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":552,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":552,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-link_window"},{"id":"Libtmux_unix.Client.move_pane","publicId":"Libtmux_unix.Client.move_pane","qualifiedName":"Libtmux_unix.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_pane"},{"id":"Libtmux_unix.Client.move_window_at","publicId":"Libtmux_unix.Client.move_window_at","qualifiedName":"Libtmux_unix.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_move_window.ml","intro":"Move a window between sessions. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"moved: build at 7\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_window_at"},{"id":"Libtmux_unix.Client.read_hook","publicId":"Libtmux_unix.Client.read_hook","qualifiedName":"Libtmux_unix.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":413,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":413,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_hook"},{"id":"Libtmux_unix.Client.read_option","publicId":"Libtmux_unix.Client.read_option","qualifiedName":"Libtmux_unix.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":360,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":360,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_option"},{"id":"Libtmux_unix.Client.refresh_client_at","publicId":"Libtmux_unix.Client.refresh_client_at","qualifiedName":"Libtmux_unix.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":265,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":265,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-refresh_client_at"},{"id":"Libtmux_unix.Client.remove_environment","publicId":"Libtmux_unix.Client.remove_environment","qualifiedName":"Libtmux_unix.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_environment"},{"id":"Libtmux_unix.Client.remove_hook","publicId":"Libtmux_unix.Client.remove_hook","qualifiedName":"Libtmux_unix.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_hook"},{"id":"Libtmux_unix.Client.rename_session","publicId":"Libtmux_unix.Client.rename_session","qualifiedName":"Libtmux_unix.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_session"},{"id":"Libtmux_unix.Client.rename_window","publicId":"Libtmux_unix.Client.rename_window","qualifiedName":"Libtmux_unix.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_rename_window.ml","intro":"Rename a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"renamed: editor-main\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val rename_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_window"},{"id":"Libtmux_unix.Client.request_detach_client_at","publicId":"Libtmux_unix.Client.request_detach_client_at","qualifiedName":"Libtmux_unix.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":256,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":256,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-request_detach_client_at"},{"id":"Libtmux_unix.Client.resize_control_client_at","publicId":"Libtmux_unix.Client.resize_control_client_at","qualifiedName":"Libtmux_unix.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_control_client_at"},{"id":"Libtmux_unix.Client.resize_pane","publicId":"Libtmux_unix.Client.resize_pane","qualifiedName":"Libtmux_unix.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_pane"},{"id":"Libtmux_unix.Client.resize_window","publicId":"Libtmux_unix.Client.resize_window","qualifiedName":"Libtmux_unix.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_window"},{"id":"Libtmux_unix.Client.respawn_pane","publicId":"Libtmux_unix.Client.respawn_pane","qualifiedName":"Libtmux_unix.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-respawn_pane"},{"id":"Libtmux_unix.Client.rotate_panes","publicId":"Libtmux_unix.Client.rotate_panes","qualifiedName":"Libtmux_unix.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":650,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":650,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rotate_panes"},{"id":"Libtmux_unix.Client.run","publicId":"Libtmux_unix.Client.run","qualifiedName":"Libtmux_unix.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Submit and await. Use the two calls separately to retain an operation\n handle. "],"declarations":[{"kind":"function","text":"val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Submit and await. Use the two calls separately to retain an operation handle."},"signatures":[{"raw":"val run :\n ?cancel:Cancellation.t ->\n t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run"},{"id":"Libtmux_unix.Client.run_hook","publicId":"Libtmux_unix.Client.run_hook","qualifiedName":"Libtmux_unix.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run_hook"},{"id":"Libtmux_unix.Client.select_layout","publicId":"Libtmux_unix.Client.select_layout","qualifiedName":"Libtmux_unix.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_layout.ml","intro":"Apply a layout. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"layout: 3 horizontal panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_layout"},{"id":"Libtmux_unix.Client.select_pane","publicId":"Libtmux_unix.Client.select_pane","qualifiedName":"Libtmux_unix.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":573,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":573,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_pane"},{"id":"Libtmux_unix.Client.select_window_at","publicId":"Libtmux_unix.Client.select_window_at","qualifiedName":"Libtmux_unix.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":533,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":533,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_window_at"},{"id":"Libtmux_unix.Client.send_keys","publicId":"Libtmux_unix.Client.send_keys","qualifiedName":"Libtmux_unix.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":290,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":290,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_keys"},{"id":"Libtmux_unix.Client.send_text","publicId":"Libtmux_unix.Client.send_text","qualifiedName":"Libtmux_unix.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/427271bfc31ed1c1acd1112d1b2ca7fef59b1af2/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_text :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_text"},{"id":"Libtmux_unix.Client.set_environment","publicId":"Libtmux_unix.Client.set_environment","qualifiedName":"Libtmux_unix.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_environment"},{"id":"Libtmux_unix.Client.set_hook","publicId":"Libtmux_unix.Client.set_hook","qualifiedName":"Libtmux_unix.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_hook"},{"id":"Libtmux_unix.Client.set_option","publicId":"Libtmux_unix.Client.set_option","qualifiedName":"Libtmux_unix.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_option"},{"id":"Libtmux_unix.Client.set_pane_title","publicId":"Libtmux_unix.Client.set_pane_title","qualifiedName":"Libtmux_unix.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_pane_title"},{"id":"Libtmux_unix.Client.signal","publicId":"Libtmux_unix.Client.signal","qualifiedName":"Libtmux_unix.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":303,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":303,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-signal"},{"id":"Libtmux_unix.Client.source","publicId":"Libtmux_unix.Client.source","qualifiedName":"Libtmux_unix.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"unix/libtmux_unix.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_unix-client-source"},{"id":"Libtmux_unix.Client.split_pane","publicId":"Libtmux_unix.Client.split_pane","qualifiedName":"Libtmux_unix.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-split_pane"},{"id":"Libtmux_unix.Client.submit","publicId":"Libtmux_unix.Client.submit","qualifiedName":"Libtmux_unix.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Validate and reserve queue capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate and reserve queue capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-submit"},{"id":"Libtmux_unix.Client.subscribe","publicId":"Libtmux_unix.Client.subscribe","qualifiedName":"Libtmux_unix.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire verified coverage of the pane's observed session/window. Choose the least session ID unless explicitly supplied. Reuse one lane per session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16 subscribers and eight client lanes including commands. Reserve payload against the shared 32 MiB budget before admission.","body":"Data starts after admission's marker. Layout/membership changes end continuity conservatively. Overflow emits Gap then End, without blocking another subscriber. Blocking delivery advances during Subscription.next. There is no snapshot/history barrier or automatic recovery."},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-subscribe"},{"id":"Libtmux_unix.Client.swap_panes","publicId":"Libtmux_unix.Client.swap_panes","qualifiedName":"Libtmux_unix.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-swap_panes"},{"id":"Libtmux_unix.Client.switch_client_at","publicId":"Libtmux_unix.Client.switch_client_at","qualifiedName":"Libtmux_unix.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-switch_client_at"},{"id":"Libtmux_unix.Client.t","publicId":"Libtmux_unix.Client.t","qualifiedName":"Libtmux_unix.Client.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-client-t"},{"id":"Libtmux_unix.Client.unlink_window_at","publicId":"Libtmux_unix.Client.unlink_window_at","qualifiedName":"Libtmux_unix.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":542,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":542,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unlink_window_at"},{"id":"Libtmux_unix.Client.unset_environment","publicId":"Libtmux_unix.Client.unset_environment","qualifiedName":"Libtmux_unix.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":331,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":331,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_environment"},{"id":"Libtmux_unix.Client.unset_option","publicId":"Libtmux_unix.Client.unset_option","qualifiedName":"Libtmux_unix.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_option"},{"id":"Libtmux_unix.Client.version","publicId":"Libtmux_unix.Client.version","qualifiedName":"Libtmux_unix.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"unix/libtmux_unix.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_unix-client-version"},{"id":"Libtmux_unix.Client.wait_for","publicId":"Libtmux_unix.Client.wait_for","qualifiedName":"Libtmux_unix.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":299,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":299,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for"},{"id":"Libtmux_unix.Client.wait_for_text","publicId":"Libtmux_unix.Client.wait_for_text","qualifiedName":"Libtmux_unix.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. No capture/stream barrier exists.\n "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Subscribe, capture the ordinary screen immediately, and recapture after output. Membership/overflow gaps trigger explicit fresh capture and new coverage in the same binding. Maximum pattern: 64 KiB. Success returns a capture that contains the text. Transient text between captures may be missed. Check the deadline between bounded acquisitions; in-flight I/O retains the client's exchange timeout. No capture/stream barrier exists."},"signatures":[{"raw":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for_text"},{"id":"Libtmux_unix.Client.zoom_pane","publicId":"Libtmux_unix.Client.zoom_pane","qualifiedName":"Libtmux_unix.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":659,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":659,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-zoom_pane"},{"id":"Libtmux_unix.Operation","publicId":"Libtmux_unix.Operation","qualifiedName":"Libtmux_unix.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** No I/O. Results remain inspectable after client closure, on the owning\n domain. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_unix-operation"},{"id":"Libtmux_unix.Operation.cancel","publicId":"Libtmux_unix.Operation.cancel","qualifiedName":"Libtmux_unix.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"Remove queued work before it is written. Admitted commands retain their owner and are drained by {!Client.await}; cancellation does not undo effects. Returns `Busy` while another blocking caller owns the client; use a {!Cancellation.t} token to interrupt that caller."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-cancel"},{"id":"Libtmux_unix.Operation.cleanup_receipt","publicId":"Libtmux_unix.Operation.cleanup_receipt","qualifiedName":"Libtmux_unix.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n}","params":[]}],"slug":"libtmux_unix-operation-cleanup_receipt"},{"id":"Libtmux_unix.Operation.cleanup_receipt.cause","publicId":"Libtmux_unix.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"unix/libtmux_unix.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_unix.Operation.cause","slug":"libtmux_unix-operation-cleanup_receipt-cause"},{"id":"Libtmux_unix.Operation.cleanup_receipt.created","publicId":"Libtmux_unix.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"unix/libtmux_unix.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_unix.Operation.created","slug":"libtmux_unix-operation-cleanup_receipt-created"},{"id":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_unix.Operation.owned_buffers","slug":"libtmux_unix-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_unix.Operation.id","publicId":"Libtmux_unix.Operation.id","qualifiedName":"Libtmux_unix.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"unix/libtmux_unix.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_unix-operation-id"},{"id":"Libtmux_unix.Operation.inspect","publicId":"Libtmux_unix.Operation.inspect","qualifiedName":"Libtmux_unix.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" No I/O. Results remain inspectable after client closure, on the owning\n domain. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"No I/O. Results remain inspectable after client closure, on the owning domain."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-inspect"},{"id":"Libtmux_unix.Operation.state","publicId":"Libtmux_unix.Operation.state","qualifiedName":"Libtmux_unix.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a state =\n Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","params":[]}],"slug":"libtmux_unix-operation-state"},{"id":"Libtmux_unix.Operation.state.Acknowledged","publicId":"Libtmux_unix.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"unix/libtmux_unix.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Acknowledged","slug":"libtmux_unix-operation-state-acknowledged"},{"id":"Libtmux_unix.Operation.state.Finished","publicId":"Libtmux_unix.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":77,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":77,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Finished","slug":"libtmux_unix-operation-state-finished"},{"id":"Libtmux_unix.Operation.state.Not_started","publicId":"Libtmux_unix.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"unix/libtmux_unix.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Not_started","slug":"libtmux_unix-operation-state-not_started"},{"id":"Libtmux_unix.Operation.state.Outcome_unknown","publicId":"Libtmux_unix.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":78,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":78,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Outcome_unknown","slug":"libtmux_unix-operation-state-outcome_unknown"},{"id":"Libtmux_unix.Operation.state.Queued","publicId":"Libtmux_unix.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Queued","slug":"libtmux_unix-operation-state-queued"},{"id":"Libtmux_unix.Operation.state.Written","publicId":"Libtmux_unix.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"unix/libtmux_unix.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Written","slug":"libtmux_unix-operation-state-written"},{"id":"Libtmux_unix.Operation.t","publicId":"Libtmux_unix.Operation.t","qualifiedName":"Libtmux_unix.Operation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"unix/libtmux_unix.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-operation-t"},{"id":"Libtmux_unix.Rendered","publicId":"Libtmux_unix.Rendered","qualifiedName":"Libtmux_unix.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Blocking native Linux transport. No Eio scheduler is started. "],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"unix/libtmux_unix.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","doc":{"summary":"Blocking native Linux transport. No Eio scheduler is started."},"exportedFrom":"Libtmux.Captured_text","slug":"libtmux_unix-rendered"},{"id":"Libtmux_unix.Subscription","publicId":"Libtmux_unix.Subscription","qualifiedName":"Libtmux_unix.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. *)\n\n val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Discard pending data and retain End Cancelled. Release an unused lane.\n Does not stop the daemon. *)\n\n val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_unix-subscription"},{"id":"Libtmux_unix.Subscription.close","publicId":"Libtmux_unix.Subscription.close","qualifiedName":"Libtmux_unix.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Discard pending data and retain End Cancelled. Release an unused lane.\n Does not stop the daemon. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Discard pending data and retain End Cancelled. Release an unused lane. Does not stop the daemon."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-close"},{"id":"Libtmux_unix.Subscription.next","publicId":"Libtmux_unix.Subscription.next","qualifiedName":"Libtmux_unix.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. "],"declarations":[{"kind":"function","text":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Pump all subscription lanes until one event is available. Default deadline is one second. `None` follows a consumed End. A deadline keeps the subscription active; cancellation closes it and raises Cancelled."},"signatures":[{"raw":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-next"},{"id":"Libtmux_unix.Subscription.poll","publicId":"Libtmux_unix.Subscription.poll","qualifiedName":"Libtmux_unix.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Remove a queued event without I/O. Owning domain only, including after client closure. `None` means no queued event, not proof of continuity."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-poll"},{"id":"Libtmux_unix.Subscription.t","publicId":"Libtmux_unix.Subscription.t","qualifiedName":"Libtmux_unix.Subscription.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-subscription-t"},{"id":"Libtmux_unix.Subscription.wait_for_bytes","publicId":"Libtmux_unix.Subscription.wait_for_bytes","qualifiedName":"Libtmux_unix.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Consume future bytes until the nonempty pattern matches, including across Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's end within its consumed event. Gaps stop matching; no rendered or earlier output is searched. Timeout leaves the subscription active."},"signatures":[{"raw":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_unix-subscription-wait_for_bytes"},{"id":"Libtmux_unix.Terminal","publicId":"Libtmux_unix.Terminal","qualifiedName":"Libtmux_unix.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises [Cancellation.Cancelled]. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_unix-terminal"},{"id":"Libtmux_unix.Terminal.attach_current","publicId":"Libtmux_unix.Terminal.attach_current","qualifiedName":"Libtmux_unix.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises [Cancellation.Cancelled]. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Terminal","doc":{"summary":"Run an interactive terminal client until it exits. Select the exact session ID on the daemon currently listening at `endpoint`; this is explicitly unbound and accepts no captured target. No retry or daemon startup occurs. A successful result proves client exit, not continued attachment. Diagnostics go to `stderr`.","body":"Descriptors default to the application's standard streams and remain caller-owned. `stdin` must be a terminal. Environment updates and read-only mode are disabled by default; inherited `TMUX` and `TMUX_PANE` are removed. Cancellation terminates and reaps this terminal client, leaves the daemon running, then raises `Cancellation.Cancelled`."},"signatures":[{"raw":"val attach_current :\n ?cancel:Cancellation.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stdout","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stderr","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-terminal-attach_current"},{"id":"Libtmux_unix.Workspace","publicId":"Libtmux_unix.Workspace","qualifiedName":"Libtmux_unix.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":696,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Apply validated plans with blocking I/O and scoped cancellation tokens.\n Execution handles retain journals and borrow existing clients; bootstrap\n handles own their newly bound clients without owning the daemon. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. *)\n\n val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. *)\n\n val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":696,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix","doc":{"summary":"Apply validated plans with blocking I/O and scoped cancellation tokens. Execution handles retain journals and borrow existing clients; bootstrap handles own their newly bound clients without owning the daemon."},"slug":"libtmux_unix-workspace"},{"id":"Libtmux_unix.Workspace.await","publicId":"Libtmux_unix.Workspace.await","qualifiedName":"Libtmux_unix.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":713,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":713,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Expected apply failures are retained receipts. Cancellation propagates after recording progress and at most 500 ms of protected compensation."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-await"},{"id":"Libtmux_unix.Workspace.client","publicId":"Libtmux_unix.Workspace.client","qualifiedName":"Libtmux_unix.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"unix/libtmux_unix.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_unix-workspace-client"},{"id":"Libtmux_unix.Workspace.close","publicId":"Libtmux_unix.Workspace.close","qualifiedName":"Libtmux_unix.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Completed journals remain readable after close."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-close"},{"id":"Libtmux_unix.Workspace.inspect","publicId":"Libtmux_unix.Workspace.inspect","qualifiedName":"Libtmux_unix.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-inspect"},{"id":"Libtmux_unix.Workspace.submit","publicId":"Libtmux_unix.Workspace.submit","qualifiedName":"Libtmux_unix.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":699,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":699,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a generation-bound execution handle without I/O. The caller owns the supplied client; closing this handle leaves that client open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit"},{"id":"Libtmux_unix.Workspace.submit_bootstrap","publicId":"Libtmux_unix.Workspace.submit_bootstrap","qualifiedName":"Libtmux_unix.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":704,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":704,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a handle for a missing-endpoint plan. Awaiting it starts control new-session and binds the same connection. The handle owns its new client; it never acquires ownership of the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?binary:string ->\n ?timeout:float -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit_bootstrap"},{"id":"Libtmux_unix.Workspace.t","publicId":"Libtmux_unix.Workspace.t","qualifiedName":"Libtmux_unix.Workspace.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-workspace-t"},{"id":"Libtmux_workspace","publicId":"Libtmux_workspace","qualifiedName":"Libtmux_workspace","name":"Libtmux_workspace","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" {!Config} validates workspace descriptions and {!Plan} previews their\n actions without I/O. {!Execution} delegates effects to an explicit executor\n and retains a recovery journal. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for JSON loading, preview, apply and receipt inspection. "],"declarations":[{"kind":"module","text":"","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"doc":{"summary":"{!Config} validates workspace descriptions and {!Plan} previews their actions without I/O. {!Execution} delegates effects to an explicit executor and retains a recovery journal. See the [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for JSON loading, preview, apply and receipt inspection."},"slug":"libtmux_workspace"},{"id":"Libtmux_workspace.Config","publicId":"Libtmux_workspace.Config","qualifiedName":"Libtmux_workspace.Config","name":"Config","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Validate native workspace values without contacting tmux or reading the\n filesystem. Relative directories resolve against the document directory;\n only declared variables participate in expansion. "],"declarations":[{"kind":"module","text":"module Config : sig\n type error = { path : string; message : string }\n\n val pp_error : Format.formatter -> error -> unit\n\n type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }\n\n type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n\n type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }\n\n type t\n\n val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane\n\n val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window\n (** Builders are unchecked descriptions; {!make} validates the whole document.\n *)\n\n val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result\n (** Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. *)\n\n val session : t -> string\n val windows : t -> window Iarray.t\n val environment : t -> (string * string) list\n val options : t -> setting list\n val dimensions : t -> int * int\nend","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace","doc":{"summary":"Validate native workspace values without contacting tmux or reading the filesystem. Relative directories resolve against the document directory; only declared variables participate in expansion."},"slug":"libtmux_workspace-config"},{"id":"Libtmux_workspace.Config.dimensions","publicId":"Libtmux_workspace.Config.dimensions","qualifiedName":"Libtmux_workspace.Config.dimensions","name":"dimensions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dimensions : t -> int * int","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val dimensions : t -> int * int","params":[{"name":"arg1","type":"t"}],"returns":"int * int"}],"slug":"libtmux_workspace-config-dimensions"},{"id":"Libtmux_workspace.Config.environment","publicId":"Libtmux_workspace.Config.environment","qualifiedName":"Libtmux_workspace.Config.environment","name":"environment","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val environment : t -> (string * string) list","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val environment : t -> (string * string) list","params":[{"name":"arg1","type":"t"}],"returns":"(string * string) list"}],"slug":"libtmux_workspace-config-environment"},{"id":"Libtmux_workspace.Config.error","publicId":"Libtmux_workspace.Config.error","qualifiedName":"Libtmux_workspace.Config.error","name":"error","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type error = { path : string; message : string }","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type error = { path : string; message : string; }","params":[]}],"slug":"libtmux_workspace-config-error"},{"id":"Libtmux_workspace.Config.error.message","publicId":"Libtmux_workspace.Config.error.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.message","slug":"libtmux_workspace-config-error-message"},{"id":"Libtmux_workspace.Config.error.path","publicId":"Libtmux_workspace.Config.error.path","name":"path","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"path : string;","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.path","slug":"libtmux_workspace-config-error-path"},{"id":"Libtmux_workspace.Config.make","publicId":"Libtmux_workspace.Config.make","qualifiedName":"Libtmux_workspace.Config.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. "],"declarations":[{"kind":"function","text":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Resolve relative working directories against the absolute document directory. Explicit variables expand `${NAME}` in directories only; they never read the process environment. Cycles and unknown names fail. Command arguments, shell code, startup text and environment values remain literal.","body":"At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names and settings must be unique in their scope. No filesystem is consulted."},"signatures":[{"raw":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string -> session:string -> window list -> (t, error) result","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"variables","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"directory","type":"string","keywordOnly":true},{"name":"session","type":"string","keywordOnly":true},{"name":"arg1","type":"window list"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-config-make"},{"id":"Libtmux_workspace.Config.options","publicId":"Libtmux_workspace.Config.options","qualifiedName":"Libtmux_workspace.Config.options","name":"options","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val options : t -> setting list","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val options : t -> setting list","params":[{"name":"arg1","type":"t"}],"returns":"setting list"}],"slug":"libtmux_workspace-config-options"},{"id":"Libtmux_workspace.Config.pane","publicId":"Libtmux_workspace.Config.pane","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size -> unit -> pane","params":[{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"startup","type":"string list","optional":true,"keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"pane"}],"slug":"libtmux_workspace-config-pane"},{"id":"Libtmux_workspace.Config.pane:type","publicId":"Libtmux_workspace.Config.pane:type","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n}","params":[]}],"slug":"libtmux_workspace-config-pane-type"},{"id":"Libtmux_workspace.Config.pane:type.direction","publicId":"Libtmux_workspace.Config.pane:type.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Config.direction","slug":"libtmux_workspace-config-pane-type-direction"},{"id":"Libtmux_workspace.Config.pane:type.options","publicId":"Libtmux_workspace.Config.pane:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-pane-type-options"},{"id":"Libtmux_workspace.Config.pane:type.size","publicId":"Libtmux_workspace.Config.pane:type.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Config.size","slug":"libtmux_workspace-config-pane-type-size"},{"id":"Libtmux_workspace.Config.pane:type.spawn","publicId":"Libtmux_workspace.Config.pane:type.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Config.spawn","slug":"libtmux_workspace-config-pane-type-spawn"},{"id":"Libtmux_workspace.Config.pane:type.startup","publicId":"Libtmux_workspace.Config.pane:type.startup","name":"startup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"startup : string list;","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"string list","qualifiedName":"Libtmux_workspace.Config.startup","slug":"libtmux_workspace-config-pane-type-startup"},{"id":"Libtmux_workspace.Config.pp_error","publicId":"Libtmux_workspace.Config.pp_error","qualifiedName":"Libtmux_workspace.Config.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-config-pp_error"},{"id":"Libtmux_workspace.Config.session","publicId":"Libtmux_workspace.Config.session","qualifiedName":"Libtmux_workspace.Config.session","name":"session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> string","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val session : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_workspace-config-session"},{"id":"Libtmux_workspace.Config.setting","publicId":"Libtmux_workspace.Config.setting","qualifiedName":"Libtmux_workspace.Config.setting","name":"setting","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n}","params":[]}],"slug":"libtmux_workspace-config-setting"},{"id":"Libtmux_workspace.Config.setting.index","publicId":"Libtmux_workspace.Config.setting.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.setting","type":"int option","qualifiedName":"Libtmux_workspace.Config.index","slug":"libtmux_workspace-config-setting-index"},{"id":"Libtmux_workspace.Config.setting.name","publicId":"Libtmux_workspace.Config.setting.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.setting","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-setting-name"},{"id":"Libtmux_workspace.Config.setting.value","publicId":"Libtmux_workspace.Config.setting.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Libtmux.Options.scalar;","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.setting","type":"Libtmux.Options.scalar","qualifiedName":"Libtmux_workspace.Config.value","slug":"libtmux_workspace-config-setting-value"},{"id":"Libtmux_workspace.Config.t","publicId":"Libtmux_workspace.Config.t","qualifiedName":"Libtmux_workspace.Config.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-config-t"},{"id":"Libtmux_workspace.Config.window","publicId":"Libtmux_workspace.Config.window","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Builders are unchecked descriptions; {!make} validates the whole document.\n "],"declarations":[{"kind":"function","text":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Builders are unchecked descriptions; {!make} validates the whole document."},"signatures":[{"raw":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t -> name:string -> pane list -> window","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"layout","type":"Libtmux.Layout.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"pane list"}],"returns":"window"}],"slug":"libtmux_workspace-config-window"},{"id":"Libtmux_workspace.Config.window:type","publicId":"Libtmux_workspace.Config.window:type","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n}","params":[]}],"slug":"libtmux_workspace-config-window-type"},{"id":"Libtmux_workspace.Config.window:type.cwd","publicId":"Libtmux_workspace.Config.window:type.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string option","qualifiedName":"Libtmux_workspace.Config.cwd","slug":"libtmux_workspace-config-window-type-cwd"},{"id":"Libtmux_workspace.Config.window:type.environment","publicId":"Libtmux_workspace.Config.window:type.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.window:type","type":"(string * string) list","qualifiedName":"Libtmux_workspace.Config.environment","slug":"libtmux_workspace-config-window-type-environment"},{"id":"Libtmux_workspace.Config.window:type.layout","publicId":"Libtmux_workspace.Config.window:type.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : Libtmux.Layout.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.window:type","type":"Libtmux.Layout.t option","qualifiedName":"Libtmux_workspace.Config.layout","slug":"libtmux_workspace-config-window-type-layout"},{"id":"Libtmux_workspace.Config.window:type.name","publicId":"Libtmux_workspace.Config.window:type.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-window-type-name"},{"id":"Libtmux_workspace.Config.window:type.options","publicId":"Libtmux_workspace.Config.window:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.window:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-window-type-options"},{"id":"Libtmux_workspace.Config.window:type.panes","publicId":"Libtmux_workspace.Config.window:type.panes","name":"panes","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"panes : pane list;","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config.window:type","type":"pane list","qualifiedName":"Libtmux_workspace.Config.panes","slug":"libtmux_workspace-config-window-type-panes"},{"id":"Libtmux_workspace.Config.windows","publicId":"Libtmux_workspace.Config.windows","qualifiedName":"Libtmux_workspace.Config.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> window Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val windows : t -> window Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"window Iarray.t"}],"slug":"libtmux_workspace-config-windows"},{"id":"Libtmux_workspace.Execution","publicId":"Libtmux_workspace.Execution","qualifiedName":"Libtmux_workspace.Execution","name":"Execution","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":162,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Apply a plan once and retain an immutable journal of effects, uncertainty\n and cleanup. Ordinary applications use their backend's Workspace module;\n executors below integrate another transport. "],"declarations":[{"kind":"module","text":"module Execution : sig\n type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }\n (** A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. *)\n\n type certainty = Not_started | Applied | Unknown\n\n type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }\n (** Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. *)\n\n type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t\n\n type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }\n\n type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t\n\n type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }\n\n type t\n\n val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. *)\n\n val inspect : t -> receipt\n (** Return an immutable copy of the retained journal without I/O. *)\n\n val await : ?compensate_on_failure:bool -> t -> receipt\n (** Execute once, rechecking generation and captured preconditions first.\n Expected failures return a partial journal. Exceptions, including native\n cancellation, propagate after recording progress and bounded compensation.\n Subsequent calls only return the retained receipt; mutations never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":162,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace","doc":{"summary":"Apply a plan once and retain an immutable journal of effects, uncertainty and cleanup. Ordinary applications use their backend's Workspace module; executors below integrate another transport."},"slug":"libtmux_workspace-execution"},{"id":"Libtmux_workspace.Execution.await","publicId":"Libtmux_workspace.Execution.await","qualifiedName":"Libtmux_workspace.Execution.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Execute once, rechecking generation and captured preconditions first.\n Expected failures return a partial journal. Exceptions, including native\n cancellation, propagate after recording progress and bounded compensation.\n Subsequent calls only return the retained receipt; mutations never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. "],"declarations":[{"kind":"function","text":"val await : ?compensate_on_failure:bool -> t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Execute once, rechecking generation and captured preconditions first. Expected failures return a partial journal. Exceptions, including native cancellation, propagate after recording progress and bounded compensation. Subsequent calls only return the retained receipt; mutations never retry.","body":"Compensation kills only panes reported by completed creation commands, in reverse creation order. tmux removes windows and sessions that become empty. Containers with foreign panes or window links remain; adding a borrowed pane never makes it eligible for cleanup. Cleanup failures have separate outcomes."},"signatures":[{"raw":"val await : ?compensate_on_failure:bool -> t -> receipt","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-await"},{"id":"Libtmux_workspace.Execution.certainty","publicId":"Libtmux_workspace.Execution.certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","name":"certainty","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type certainty = Not_started | Applied | Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type certainty = Not_started | Applied | Unknown","params":[]}],"slug":"libtmux_workspace-execution-certainty"},{"id":"Libtmux_workspace.Execution.certainty.Applied","publicId":"Libtmux_workspace.Execution.certainty.Applied","name":"Applied","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applied","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applied","slug":"libtmux_workspace-execution-certainty-applied"},{"id":"Libtmux_workspace.Execution.certainty.Not_started","publicId":"Libtmux_workspace.Execution.certainty.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Not_started","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Not_started","slug":"libtmux_workspace-execution-certainty-not_started"},{"id":"Libtmux_workspace.Execution.certainty.Unknown","publicId":"Libtmux_workspace.Execution.certainty.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":174,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Unknown","slug":"libtmux_workspace-execution-certainty-unknown"},{"id":"Libtmux_workspace.Execution.cleanup","publicId":"Libtmux_workspace.Execution.cleanup","qualifiedName":"Libtmux_workspace.Execution.cleanup","name":"cleanup","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n}","params":[]}],"slug":"libtmux_workspace-execution-cleanup"},{"id":"Libtmux_workspace.Execution.cleanup.outcome","publicId":"Libtmux_workspace.Execution.cleanup.outcome","name":"outcome","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":214,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"outcome : (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":214,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"(unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.outcome","slug":"libtmux_workspace-execution-cleanup-outcome"},{"id":"Libtmux_workspace.Execution.cleanup.pane","publicId":"Libtmux_workspace.Execution.cleanup.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.target;","source":{"file":"workspace/libtmux_workspace.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"Libtmux.Pane.target","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-cleanup-pane"},{"id":"Libtmux_workspace.Execution.create","publicId":"Libtmux_workspace.Execution.create","qualifiedName":"Libtmux_workspace.Execution.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":237,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. "],"declarations":[{"kind":"function","text":"val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"workspace/libtmux_workspace.mli","line":237,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Allocate a retained handle without I/O. IDs have 1..64 ASCII letters, digits, underscores or hyphens."},"signatures":[{"raw":"val create :\n operation_id:string ->\n executor:executor -> Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"operation_id","type":"string","keywordOnly":true},{"name":"executor","type":"executor","keywordOnly":true},{"name":"arg1","type":"Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_workspace-execution-create"},{"id":"Libtmux_workspace.Execution.executor","publicId":"Libtmux_workspace.Execution.executor","qualifiedName":"Libtmux_workspace.Execution.executor","name":"executor","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. "],"declarations":[{"kind":"struct","text":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Backend integration: `inspect` returns a callback tied to the latest operation, reading only its retained state even after later submissions. `protect` bounds compensation and shields it from caller cancellation, reporting expected failures as `Error`. Ordinary callers use their backend's Workspace API."},"signatures":[{"raw":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n}","params":[]}],"slug":"libtmux_workspace-execution-executor"},{"id":"Libtmux_workspace.Execution.executor.bootstrap","publicId":"Libtmux_workspace.Execution.executor.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.executor","type":"Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.bootstrap","slug":"libtmux_workspace-execution-executor-bootstrap"},{"id":"Libtmux_workspace.Execution.executor.capture","publicId":"Libtmux_workspace.Execution.executor.capture","name":"capture","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":184,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":184,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.capture","slug":"libtmux_workspace-execution-executor-capture"},{"id":"Libtmux_workspace.Execution.executor.inspect","publicId":"Libtmux_workspace.Execution.executor.inspect","name":"inspect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inspect : unit -> unit -> observation;","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> unit -> observation","qualifiedName":"Libtmux_workspace.Execution.inspect","slug":"libtmux_workspace-execution-executor-inspect"},{"id":"Libtmux_workspace.Execution.executor.protect","publicId":"Libtmux_workspace.Execution.executor.protect","name":"protect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.executor","type":"(unit -> unit) -> (unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.protect","slug":"libtmux_workspace-execution-executor-protect"},{"id":"Libtmux_workspace.Execution.executor.run","publicId":"Libtmux_workspace.Execution.executor.run","name":"run","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.executor","type":"'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.run","slug":"libtmux_workspace-execution-executor-run"},{"id":"Libtmux_workspace.Execution.executor.source","publicId":"Libtmux_workspace.Execution.executor.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : unit -> Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-executor-source"},{"id":"Libtmux_workspace.Execution.hint","publicId":"Libtmux_workspace.Execution.hint","qualifiedName":"Libtmux_workspace.Execution.hint","name":"hint","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. "],"declarations":[{"kind":"struct","text":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"A creation row received before daemon binding finished. Hints are not operational targets and are never eligible for automatic compensation."},"signatures":[{"raw":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n}","params":[]}],"slug":"libtmux_workspace-execution-hint"},{"id":"Libtmux_workspace.Execution.hint.pane","publicId":"Libtmux_workspace.Execution.hint.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-hint-pane"},{"id":"Libtmux_workspace.Execution.hint.pane_index","publicId":"Libtmux_workspace.Execution.hint.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.pane_index","slug":"libtmux_workspace-execution-hint-pane_index"},{"id":"Libtmux_workspace.Execution.hint.server_pid","publicId":"Libtmux_workspace.Execution.hint.server_pid","name":"server_pid","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"server_pid : int;","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.server_pid","slug":"libtmux_workspace-execution-hint-server_pid"},{"id":"Libtmux_workspace.Execution.hint.session","publicId":"Libtmux_workspace.Execution.hint.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":164,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Libtmux.Session.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":164,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Session.Id.t","qualifiedName":"Libtmux_workspace.Execution.session","slug":"libtmux_workspace-execution-hint-session"},{"id":"Libtmux_workspace.Execution.hint.window","publicId":"Libtmux_workspace.Execution.hint.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Libtmux.Window.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Window.Id.t","qualifiedName":"Libtmux_workspace.Execution.window","slug":"libtmux_workspace-execution-hint-window"},{"id":"Libtmux_workspace.Execution.hint.window_index","publicId":"Libtmux_workspace.Execution.hint.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.window_index","slug":"libtmux_workspace-execution-hint-window_index"},{"id":"Libtmux_workspace.Execution.inspect","publicId":"Libtmux_workspace.Execution.inspect","qualifiedName":"Libtmux_workspace.Execution.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Return an immutable copy of the retained journal without I/O. "],"declarations":[{"kind":"function","text":"val inspect : t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Return an immutable copy of the retained journal without I/O."},"signatures":[{"raw":"val inspect : t -> receipt","params":[{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-inspect"},{"id":"Libtmux_workspace.Execution.observation","publicId":"Libtmux_workspace.Execution.observation","qualifiedName":"Libtmux_workspace.Execution.observation","name":"observation","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":176,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":176,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n}","params":[]}],"slug":"libtmux_workspace-execution-observation"},{"id":"Libtmux_workspace.Execution.observation.certainty","publicId":"Libtmux_workspace.Execution.observation.certainty","name":"certainty","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"certainty : certainty;","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.observation","type":"certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","slug":"libtmux_workspace-execution-observation-certainty"},{"id":"Libtmux_workspace.Execution.observation.created","publicId":"Libtmux_workspace.Execution.observation.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.observation","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-observation-created"},{"id":"Libtmux_workspace.Execution.observation.unbound","publicId":"Libtmux_workspace.Execution.observation.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.observation","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-observation-unbound"},{"id":"Libtmux_workspace.Execution.receipt","publicId":"Libtmux_workspace.Execution.receipt","qualifiedName":"Libtmux_workspace.Execution.receipt","name":"receipt","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n}","params":[]}],"slug":"libtmux_workspace-execution-receipt"},{"id":"Libtmux_workspace.Execution.receipt.cleanup","publicId":"Libtmux_workspace.Execution.receipt.cleanup","name":"cleanup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup : cleanup Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"cleanup Iarray.t","qualifiedName":"Libtmux_workspace.Execution.cleanup","slug":"libtmux_workspace-execution-receipt-cleanup"},{"id":"Libtmux_workspace.Execution.receipt.cleanup_error","publicId":"Libtmux_workspace.Execution.receipt.cleanup_error","name":"cleanup_error","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup_error : Libtmux.Error.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_workspace.Execution.cleanup_error","slug":"libtmux_workspace-execution-receipt-cleanup_error"},{"id":"Libtmux_workspace.Execution.receipt.operation_id","publicId":"Libtmux_workspace.Execution.receipt.operation_id","name":"operation_id","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation_id : string;","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"string","qualifiedName":"Libtmux_workspace.Execution.operation_id","slug":"libtmux_workspace-execution-receipt-operation_id"},{"id":"Libtmux_workspace.Execution.receipt.source","publicId":"Libtmux_workspace.Execution.receipt.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":228,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":228,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-receipt-source"},{"id":"Libtmux_workspace.Execution.receipt.status","publicId":"Libtmux_workspace.Execution.receipt.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : status;","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-receipt-status"},{"id":"Libtmux_workspace.Execution.receipt.steps","publicId":"Libtmux_workspace.Execution.receipt.steps","name":"steps","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"steps : step Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"step Iarray.t","qualifiedName":"Libtmux_workspace.Execution.steps","slug":"libtmux_workspace-execution-receipt-steps"},{"id":"Libtmux_workspace.Execution.status","publicId":"Libtmux_workspace.Execution.status","qualifiedName":"Libtmux_workspace.Execution.status","name":"status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type status =\n Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","params":[]}],"slug":"libtmux_workspace-execution-status"},{"id":"Libtmux_workspace.Execution.status.Applying","publicId":"Libtmux_workspace.Execution.status.Applying","name":"Applying","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applying","source":{"file":"workspace/libtmux_workspace.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applying","slug":"libtmux_workspace-execution-status-applying"},{"id":"Libtmux_workspace.Execution.status.Interrupted","publicId":"Libtmux_workspace.Execution.status.Interrupted","name":"Interrupted","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Interrupted","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Interrupted","slug":"libtmux_workspace-execution-status-interrupted"},{"id":"Libtmux_workspace.Execution.status.Partial","publicId":"Libtmux_workspace.Execution.status.Partial","name":"Partial","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Partial","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Partial","slug":"libtmux_workspace-execution-status-partial"},{"id":"Libtmux_workspace.Execution.status.Queued","publicId":"Libtmux_workspace.Execution.status.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"workspace/libtmux_workspace.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Queued","slug":"libtmux_workspace-execution-status-queued"},{"id":"Libtmux_workspace.Execution.status.Rejected","publicId":"Libtmux_workspace.Execution.status.Rejected","name":"Rejected","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rejected of Plan.error","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Rejected","slug":"libtmux_workspace-execution-status-rejected"},{"id":"Libtmux_workspace.Execution.status.Succeeded","publicId":"Libtmux_workspace.Execution.status.Succeeded","name":"Succeeded","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Succeeded","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Succeeded","slug":"libtmux_workspace-execution-status-succeeded"},{"id":"Libtmux_workspace.Execution.status.Unavailable","publicId":"Libtmux_workspace.Execution.status.Unavailable","name":"Unavailable","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Unavailable","slug":"libtmux_workspace-execution-status-unavailable"},{"id":"Libtmux_workspace.Execution.step","publicId":"Libtmux_workspace.Execution.step","qualifiedName":"Libtmux_workspace.Execution.step","name":"step","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n}","params":[]}],"slug":"libtmux_workspace-execution-step"},{"id":"Libtmux_workspace.Execution.step.action","publicId":"Libtmux_workspace.Execution.step.action","name":"action","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"action : Plan.action;","source":{"file":"workspace/libtmux_workspace.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step","type":"Plan.action","qualifiedName":"Libtmux_workspace.Execution.action","slug":"libtmux_workspace-execution-step-action"},{"id":"Libtmux_workspace.Execution.step.created","publicId":"Libtmux_workspace.Execution.step.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-step-created"},{"id":"Libtmux_workspace.Execution.step.index","publicId":"Libtmux_workspace.Execution.step.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step","type":"int","qualifiedName":"Libtmux_workspace.Execution.index","slug":"libtmux_workspace-execution-step-index"},{"id":"Libtmux_workspace.Execution.step.status","publicId":"Libtmux_workspace.Execution.step.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : step_status;","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step","type":"step_status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-step-status"},{"id":"Libtmux_workspace.Execution.step.unbound","publicId":"Libtmux_workspace.Execution.step.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-step-unbound"},{"id":"Libtmux_workspace.Execution.step_status","publicId":"Libtmux_workspace.Execution.step_status","qualifiedName":"Libtmux_workspace.Execution.step_status","name":"step_status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":196,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":196,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step_status =\n Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","params":[]}],"slug":"libtmux_workspace-execution-step_status"},{"id":"Libtmux_workspace.Execution.step_status.Completed","publicId":"Libtmux_workspace.Execution.step_status.Completed","name":"Completed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Completed","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Completed","slug":"libtmux_workspace-execution-step_status-completed"},{"id":"Libtmux_workspace.Execution.step_status.Failed","publicId":"Libtmux_workspace.Execution.step_status.Failed","name":"Failed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Failed of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Failed","slug":"libtmux_workspace-execution-step_status-failed"},{"id":"Libtmux_workspace.Execution.step_status.Pending","publicId":"Libtmux_workspace.Execution.step_status.Pending","name":"Pending","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":197,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pending","source":{"file":"workspace/libtmux_workspace.mli","line":197,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Pending","slug":"libtmux_workspace-execution-step_status-pending"},{"id":"Libtmux_workspace.Execution.step_status.Running","publicId":"Libtmux_workspace.Execution.step_status.Running","name":"Running","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Running","source":{"file":"workspace/libtmux_workspace.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Running","slug":"libtmux_workspace-execution-step_status-running"},{"id":"Libtmux_workspace.Execution.step_status.Skipped","publicId":"Libtmux_workspace.Execution.step_status.Skipped","name":"Skipped","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Skipped","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Skipped","slug":"libtmux_workspace-execution-step_status-skipped"},{"id":"Libtmux_workspace.Execution.step_status.Uncertain","publicId":"Libtmux_workspace.Execution.step_status.Uncertain","name":"Uncertain","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Uncertain","slug":"libtmux_workspace-execution-step_status-uncertain"},{"id":"Libtmux_workspace.Execution.t","publicId":"Libtmux_workspace.Execution.t","qualifiedName":"Libtmux_workspace.Execution.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-execution-t"},{"id":"Libtmux_workspace.Plan","publicId":"Libtmux_workspace.Plan","qualifiedName":"Libtmux_workspace.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[" Preview ordered workspace actions against one observed daemon generation. A\n plan retains collision policy and bound targets; it is not a portable\n command script. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type server_policy = Create_if_missing | Require_existing_server\n type window_collision = Reject\n\n type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }\n\n type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale\n\n val pp_error : Format.formatter -> error -> unit\n\n type scope = Session | Window of int | Pane of { window : int; pane : int }\n\n type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t\n\n type t\n\n val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result\n (** [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. *)\n\n val endpoint : t -> Libtmux.Endpoint.t\n val source : t -> Libtmux.Source.t option\n val existing_session : t -> Libtmux.Session.target option\n val actions : t -> action Iarray.t\n val config : t -> Config.t\n\n val check_source : t -> Libtmux.Source.t option -> (unit, error) result\n (** Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace","doc":{"summary":"Preview ordered workspace actions against one observed daemon generation. A plan retains collision policy and bound targets; it is not a portable command script."},"slug":"libtmux_workspace-plan"},{"id":"Libtmux_workspace.Plan.action","publicId":"Libtmux_workspace.Plan.action","qualifiedName":"Libtmux_workspace.Plan.action","name":"action","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type action =\n Create_session of { bootstrap : bool; name : string;\n window_name : string; spawn : Libtmux.Spawn.t; width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t;\n }\n | Split_pane of { window : int; pane : int; spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string; }\n | Send_enter of { window : int; pane : int; }\n | Select_layout of int * Libtmux.Layout.t","params":[]}],"slug":"libtmux_workspace-plan-action"},{"id":"Libtmux_workspace.Plan.action.Create_session","publicId":"Libtmux_workspace.Plan.action.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_session","slug":"libtmux_workspace-plan-action-create_session"},{"id":"Libtmux_workspace.Plan.action.Create_session.bootstrap","publicId":"Libtmux_workspace.Plan.action.Create_session.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : bool;","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"bool","qualifiedName":"Libtmux_workspace.Plan.bootstrap","slug":"libtmux_workspace-plan-action-create_session-bootstrap"},{"id":"Libtmux_workspace.Plan.action.Create_session.height","publicId":"Libtmux_workspace.Plan.action.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.height","slug":"libtmux_workspace-plan-action-create_session-height"},{"id":"Libtmux_workspace.Plan.action.Create_session.name","publicId":"Libtmux_workspace.Plan.action.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_session-name"},{"id":"Libtmux_workspace.Plan.action.Create_session.spawn","publicId":"Libtmux_workspace.Plan.action.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_session-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_session.width","publicId":"Libtmux_workspace.Plan.action.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.width","slug":"libtmux_workspace-plan-action-create_session-width"},{"id":"Libtmux_workspace.Plan.action.Create_session.window_name","publicId":"Libtmux_workspace.Plan.action.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.window_name","slug":"libtmux_workspace-plan-action-create_session-window_name"},{"id":"Libtmux_workspace.Plan.action.Create_window","publicId":"Libtmux_workspace.Plan.action.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_window","slug":"libtmux_workspace-plan-action-create_window"},{"id":"Libtmux_workspace.Plan.action.Create_window.name","publicId":"Libtmux_workspace.Plan.action.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_window-name"},{"id":"Libtmux_workspace.Plan.action.Create_window.spawn","publicId":"Libtmux_workspace.Plan.action.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_window-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_window.window","publicId":"Libtmux_workspace.Plan.action.Create_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-create_window-window"},{"id":"Libtmux_workspace.Plan.action.Select_layout","publicId":"Libtmux_workspace.Plan.action.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Select_layout","slug":"libtmux_workspace-plan-action-select_layout"},{"id":"Libtmux_workspace.Plan.action.Send_enter","publicId":"Libtmux_workspace.Plan.action.Send_enter","name":"Send_enter","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_enter of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_enter","slug":"libtmux_workspace-plan-action-send_enter"},{"id":"Libtmux_workspace.Plan.action.Send_enter.pane","publicId":"Libtmux_workspace.Plan.action.Send_enter.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_enter-pane"},{"id":"Libtmux_workspace.Plan.action.Send_enter.window","publicId":"Libtmux_workspace.Plan.action.Send_enter.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_enter-window"},{"id":"Libtmux_workspace.Plan.action.Send_text","publicId":"Libtmux_workspace.Plan.action.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text of { window : int; pane : int; text : string }","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_text","slug":"libtmux_workspace-plan-action-send_text"},{"id":"Libtmux_workspace.Plan.action.Send_text.pane","publicId":"Libtmux_workspace.Plan.action.Send_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_text-pane"},{"id":"Libtmux_workspace.Plan.action.Send_text.text","publicId":"Libtmux_workspace.Plan.action.Send_text.text","name":"text","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"text : string","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"string","qualifiedName":"Libtmux_workspace.Plan.text","slug":"libtmux_workspace-plan-action-send_text-text"},{"id":"Libtmux_workspace.Plan.action.Send_text.window","publicId":"Libtmux_workspace.Plan.action.Send_text.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_text-window"},{"id":"Libtmux_workspace.Plan.action.Set_environment","publicId":"Libtmux_workspace.Plan.action.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of string * string","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_environment","slug":"libtmux_workspace-plan-action-set_environment"},{"id":"Libtmux_workspace.Plan.action.Set_option","publicId":"Libtmux_workspace.Plan.action.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of scope * Config.setting","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_option","slug":"libtmux_workspace-plan-action-set_option"},{"id":"Libtmux_workspace.Plan.action.Split_pane","publicId":"Libtmux_workspace.Plan.action.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Split_pane","slug":"libtmux_workspace-plan-action-split_pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.direction","publicId":"Libtmux_workspace.Plan.action.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Plan.direction","slug":"libtmux_workspace-plan-action-split_pane-direction"},{"id":"Libtmux_workspace.Plan.action.Split_pane.pane","publicId":"Libtmux_workspace.Plan.action.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-split_pane-pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.size","publicId":"Libtmux_workspace.Plan.action.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Plan.size","slug":"libtmux_workspace-plan-action-split_pane-size"},{"id":"Libtmux_workspace.Plan.action.Split_pane.spawn","publicId":"Libtmux_workspace.Plan.action.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-split_pane-spawn"},{"id":"Libtmux_workspace.Plan.action.Split_pane.window","publicId":"Libtmux_workspace.Plan.action.Split_pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-split_pane-window"},{"id":"Libtmux_workspace.Plan.actions","publicId":"Libtmux_workspace.Plan.actions","qualifiedName":"Libtmux_workspace.Plan.actions","name":"actions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val actions : t -> action Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val actions : t -> action Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"action Iarray.t"}],"slug":"libtmux_workspace-plan-actions"},{"id":"Libtmux_workspace.Plan.check_source","publicId":"Libtmux_workspace.Plan.check_source","qualifiedName":"Libtmux_workspace.Plan.check_source","name":"check_source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. "],"declarations":[{"kind":"function","text":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"Operational plans are ephemeral and bound to one connection generation. A printed or serialized preview cannot supply operational targets."},"signatures":[{"raw":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Source.t option"}],"returns":"(unit, error) result"}],"slug":"libtmux_workspace-plan-check_source"},{"id":"Libtmux_workspace.Plan.collision_policy","publicId":"Libtmux_workspace.Plan.collision_policy","qualifiedName":"Libtmux_workspace.Plan.collision_policy","name":"collision_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type collision_policy =\n Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision; }","params":[]}],"slug":"libtmux_workspace-plan-collision_policy"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","name":"Append_new_windows","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Append_new_windows","slug":"libtmux_workspace-plan-collision_policy-append_new_windows"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","name":"window_collision","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_collision : window_collision","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","type":"window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","slug":"libtmux_workspace-plan-collision_policy-append_new_windows-window_collision"},{"id":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","publicId":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","name":"Fail_if_session_exists","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Fail_if_session_exists","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Fail_if_session_exists","slug":"libtmux_workspace-plan-collision_policy-fail_if_session_exists"},{"id":"Libtmux_workspace.Plan.config","publicId":"Libtmux_workspace.Plan.config","qualifiedName":"Libtmux_workspace.Plan.config","name":"config","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val config : t -> Config.t","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val config : t -> Config.t","params":[{"name":"arg1","type":"t"}],"returns":"Config.t"}],"slug":"libtmux_workspace-plan-config"},{"id":"Libtmux_workspace.Plan.endpoint","publicId":"Libtmux_workspace.Plan.endpoint","qualifiedName":"Libtmux_workspace.Plan.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Libtmux.Endpoint.t","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val endpoint : t -> Libtmux.Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Endpoint.t"}],"slug":"libtmux_workspace-plan-endpoint"},{"id":"Libtmux_workspace.Plan.error","publicId":"Libtmux_workspace.Plan.error","qualifiedName":"Libtmux_workspace.Plan.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type error =\n Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","params":[]}],"slug":"libtmux_workspace-plan-error"},{"id":"Libtmux_workspace.Plan.error.Append_session_options","publicId":"Libtmux_workspace.Plan.error.Append_session_options","name":"Append_session_options","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_session_options","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Append_session_options","slug":"libtmux_workspace-plan-error-append_session_options"},{"id":"Libtmux_workspace.Plan.error.Missing_endpoint","publicId":"Libtmux_workspace.Plan.error.Missing_endpoint","name":"Missing_endpoint","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing_endpoint","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Missing_endpoint","slug":"libtmux_workspace-plan-error-missing_endpoint"},{"id":"Libtmux_workspace.Plan.error.Session_conflict","publicId":"Libtmux_workspace.Plan.error.Session_conflict","name":"Session_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Session_conflict","slug":"libtmux_workspace-plan-error-session_conflict"},{"id":"Libtmux_workspace.Plan.error.Stale","publicId":"Libtmux_workspace.Plan.error.Stale","name":"Stale","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Stale","slug":"libtmux_workspace-plan-error-stale"},{"id":"Libtmux_workspace.Plan.error.Too_many_steps","publicId":"Libtmux_workspace.Plan.error.Too_many_steps","name":"Too_many_steps","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Too_many_steps","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Too_many_steps","slug":"libtmux_workspace-plan-error-too_many_steps"},{"id":"Libtmux_workspace.Plan.error.Unsupported_setting","publicId":"Libtmux_workspace.Plan.error.Unsupported_setting","name":"Unsupported_setting","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_setting of Config.error","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Unsupported_setting","slug":"libtmux_workspace-plan-error-unsupported_setting"},{"id":"Libtmux_workspace.Plan.error.Window_conflict","publicId":"Libtmux_workspace.Plan.error.Window_conflict","name":"Window_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window_conflict","slug":"libtmux_workspace-plan-error-window_conflict"},{"id":"Libtmux_workspace.Plan.existing_session","publicId":"Libtmux_workspace.Plan.existing_session","qualifiedName":"Libtmux_workspace.Plan.existing_session","name":"existing_session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val existing_session : t -> Libtmux.Session.target option","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val existing_session : t -> Libtmux.Session.target option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Session.target option"}],"slug":"libtmux_workspace-plan-existing_session"},{"id":"Libtmux_workspace.Plan.make","publicId":"Libtmux_workspace.Plan.make","qualifiedName":"Libtmux_workspace.Plan.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[" [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. "],"declarations":[{"kind":"function","text":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"`None` means an explicitly observed missing endpoint. It is not an empty successful snapshot. A plan does not start a server. Append rejects any existing requested window name and never changes session options. `version` selects the generated option catalog."},"signatures":[{"raw":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option -> Config.t -> (t, error) result","params":[{"name":"server_policy","type":"server_policy","optional":true,"keywordOnly":true},{"name":"collision_policy","type":"collision_policy","optional":true,"keywordOnly":true},{"name":"endpoint","type":"Libtmux.Endpoint.t","keywordOnly":true},{"name":"version","type":"string","keywordOnly":true},{"name":"observed","type":"Libtmux.Snapshot.t option","keywordOnly":true},{"name":"arg1","type":"Config.t"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-plan-make"},{"id":"Libtmux_workspace.Plan.pp_error","publicId":"Libtmux_workspace.Plan.pp_error","qualifiedName":"Libtmux_workspace.Plan.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-plan-pp_error"},{"id":"Libtmux_workspace.Plan.scope","publicId":"Libtmux_workspace.Plan.scope","qualifiedName":"Libtmux_workspace.Plan.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Session | Window of int | Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type scope = Session | Window of int | Pane of { window : int; pane : int; }","params":[]}],"slug":"libtmux_workspace-plan-scope"},{"id":"Libtmux_workspace.Plan.scope.Pane","publicId":"Libtmux_workspace.Plan.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Pane","slug":"libtmux_workspace-plan-scope-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.pane","publicId":"Libtmux_workspace.Plan.scope.Pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-scope-pane-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.window","publicId":"Libtmux_workspace.Plan.scope.Pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-scope-pane-window"},{"id":"Libtmux_workspace.Plan.scope.Session","publicId":"Libtmux_workspace.Plan.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Session","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Session","slug":"libtmux_workspace-plan-scope-session"},{"id":"Libtmux_workspace.Plan.scope.Window","publicId":"Libtmux_workspace.Plan.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window","slug":"libtmux_workspace-plan-scope-window"},{"id":"Libtmux_workspace.Plan.server_policy","publicId":"Libtmux_workspace.Plan.server_policy","qualifiedName":"Libtmux_workspace.Plan.server_policy","name":"server_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type server_policy = Create_if_missing | Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type server_policy = Create_if_missing | Require_existing_server","params":[]}],"slug":"libtmux_workspace-plan-server_policy"},{"id":"Libtmux_workspace.Plan.server_policy.Create_if_missing","publicId":"Libtmux_workspace.Plan.server_policy.Create_if_missing","name":"Create_if_missing","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Create_if_missing","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Create_if_missing","slug":"libtmux_workspace-plan-server_policy-create_if_missing"},{"id":"Libtmux_workspace.Plan.server_policy.Require_existing_server","publicId":"Libtmux_workspace.Plan.server_policy.Require_existing_server","name":"Require_existing_server","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Require_existing_server","slug":"libtmux_workspace-plan-server_policy-require_existing_server"},{"id":"Libtmux_workspace.Plan.source","publicId":"Libtmux_workspace.Plan.source","qualifiedName":"Libtmux_workspace.Plan.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t option","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val source : t -> Libtmux.Source.t option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t option"}],"slug":"libtmux_workspace-plan-source"},{"id":"Libtmux_workspace.Plan.t","publicId":"Libtmux_workspace.Plan.t","qualifiedName":"Libtmux_workspace.Plan.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-plan-t"},{"id":"Libtmux_workspace.Plan.window_collision","publicId":"Libtmux_workspace.Plan.window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","name":"window_collision","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type window_collision = Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type window_collision = Reject","params":[]}],"slug":"libtmux_workspace-plan-window_collision"},{"id":"Libtmux_workspace.Plan.window_collision.Reject","publicId":"Libtmux_workspace.Plan.window_collision.Reject","name":"Reject","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","extractedRevision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2"}}],"parent":"Libtmux_workspace.Plan.window_collision","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Reject","slug":"libtmux_workspace-plan-window_collision-reject"}]} +{"port":"ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","repo":"libtmux/libtmux-ocaml","sources":[{"product":"core","package":"libtmux","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"core","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"workspace","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"core","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"workspace","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"core","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"workspace","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}],"extractor":"OCaml 5.5.2 compiler-libs .cmti + odoc-parser 3.2.2","nativeProvenance":{"files":[{"path":"lib/libtmux.mli","sha256":"8262ba511b3d25d7c8a3ff97dc5a7a3811dabaab4cd6ee06416ceba4426d6ec9"},{"path":"_build/install/default/lib/libtmux/libtmux.cmti","sha256":"1e4e255170c306f1b2c8147d42ab0128bf37d0c3df5e4c6e89d92bf8f32791a9"},{"path":"workspace/libtmux_workspace.mli","sha256":"7f828d52abc58665510de7cf87bc03479d85feaaca5f00e678fda58f47713a4d"},{"path":"_build/install/default/lib/libtmux-workspace/libtmux_workspace.cmti","sha256":"d8f04955cadde1923e7b5444b37f91b07abba65b0b7f4c536c39eae020d4508e"},{"path":"json/libtmux_json.mli","sha256":"0df1e135b74307a8ef363bcd484e499c463172f6a0451a8ebbd511ec8adb57bc"},{"path":"_build/install/default/lib/libtmux-json/libtmux_json.cmti","sha256":"ba11efc5bcb909c7680eb332f45916cac3c8657ddcdca0cce97552eac3fbad23"},{"path":"unix/libtmux_unix.mli","sha256":"5be5fbbf96adab6ed3d3ac68ae3bd698128d044a41dac2a37d29c3754f51a0fa"},{"path":"_build/install/default/lib/libtmux-unix/libtmux_unix.cmti","sha256":"35cf4eeb0f0f2148aa4ee4e02f48742d44e0a127327afee95d37406998fb9c06"},{"path":"eio/libtmux_eio.mli","sha256":"a5f6f29e78fa079d4a7e2aecc1a5d5767fbd4ea5c371ccb70a393d40411e86fb"},{"path":"_build/install/default/lib/libtmux-eio/libtmux_eio.cmti","sha256":"57422a797bd595464cb61c8a53a8db78edebf3f282448b8face2035334933044"}],"exporter":{"revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","baseRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287","files":[{"path":"tools/api_export.ml","sha256":"34b59e728494aeed3595c5a88e1a1482d7dfa65ddcda725e43cd6c21ee131945"},{"path":"tools/api_doc.ml","sha256":"94d9b4dff3f86d570a31161019e06cea250926200b8cc4562f7d14f9f3cd0d59"},{"path":"tools/export_api.py","sha256":"5188348adc7e3ea577889e144de30da6204ec14ec6fc1577f86a732bc7625973"},{"path":"tools/api_modules.json","sha256":"233ef409440fa5015f522a11933e74f059a301aecbce5ab5126f14e8a35614cf"},{"path":"tools/dune","sha256":"777e122d729870f9f8dc6fc13485ce0eea29f0e741b9bb22cb0245d433ff9442"}],"compiler":"5.5.2","schema":"libtmux.ocaml-api/1","publicManifest":"tools/api_modules.json"}},"symbols":[{"id":"Libtmux","publicId":"Libtmux","qualifiedName":"Libtmux","name":"Libtmux","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Native captured values, typed queries and explicit command descriptions.\n\n A {!Snapshot.t} owns immutable observations. Entity accessors and query\n evaluation perform no I/O, preserve captured order and remain usable after\n client closure. Use [Libtmux_unix.Client] or [Libtmux_eio.Client] to acquire\n or mutate state.\n\n Retaining any entity retains its complete snapshot graph. Copy scalar\n summaries when captured relationships are no longer needed. Targets omit the\n graph but remain restricted to their original {!Source.t}.\n\n {1 Typical flow}\n\n Capture explicitly, traverse {!Session.window_links} and {!Window.panes},\n filter with [Seq.filter] or {!Query.matching}, establish cardinality with\n {!Query.exactly_one}, then submit a command with a bound target.\n\n The core depends only on the standard library. Its abstract observations are\n safe to share; live clients and subscriptions belong to their backend.\n\n See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md}graph\n guide} for window links and the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} for native predicates and typed expressions. "],"declarations":[{"kind":"module","text":"","source":{"file":"lib/libtmux.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"doc":{"summary":"Native captured values, typed queries and explicit command descriptions.","body":"A {!Snapshot.t} owns immutable observations. Entity accessors and query evaluation perform no I/O, preserve captured order and remain usable after client closure. Use `Libtmux_unix.Client` or `Libtmux_eio.Client` to acquire or mutate state.\n\nRetaining any entity retains its complete snapshot graph. Copy scalar summaries when captured relationships are no longer needed. Targets omit the graph but remain restricted to their original {!Source.t}.\n\n## Typical flow\n\nCapture explicitly, traverse {!Session.window_links} and {!Window.panes}, filter with `Seq.filter` or {!Query.matching}, establish cardinality with {!Query.exactly_one}, then submit a command with a bound target.\n\nThe core depends only on the standard library. Its abstract observations are safe to share; live clients and subscriptions belong to their backend.\n\nSee the [graph guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md) for window links and the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) for native predicates and typed expressions."},"slug":"libtmux"},{"id":"Libtmux.Captured_text","publicId":"Libtmux.Captured_text","qualifiedName":"Libtmux.Captured_text","name":"Captured_text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Captured_text : sig\n type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. *)\nend","source":{"file":"lib/libtmux.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-captured_text"},{"id":"Libtmux.Captured_text.t","publicId":"Libtmux.Captured_text.t","qualifiedName":"Libtmux.Captured_text.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":713,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. "],"declarations":[{"kind":"struct","text":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":713,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Captured_text","doc":{"summary":"Ordinary rendered rows captured over an interval. This value has no implied relationship to a subscription cursor."},"signatures":[{"raw":"type t =\n {\n bytes: string ;\n source: Source.t ;\n pane: Pane.Id.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-captured_text-t"},{"id":"Libtmux.Captured_text.t.bytes","publicId":"Libtmux.Captured_text.t.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":714,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string;","source":{"file":"lib/libtmux.mli","line":714,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Captured_text.t","type":"string","qualifiedName":"Libtmux.Captured_text.bytes","slug":"libtmux-captured_text-t-bytes"},{"id":"Libtmux.Captured_text.t.finished_at_ns","publicId":"Libtmux.Captured_text.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":718,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":718,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.finished_at_ns","slug":"libtmux-captured_text-t-finished_at_ns"},{"id":"Libtmux.Captured_text.t.pane","publicId":"Libtmux.Captured_text.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":716,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":716,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Captured_text.t","type":"Pane.Id.t","qualifiedName":"Libtmux.Captured_text.pane","slug":"libtmux-captured_text-t-pane"},{"id":"Libtmux.Captured_text.t.source","publicId":"Libtmux.Captured_text.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":715,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":715,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Captured_text.t","type":"Source.t","qualifiedName":"Libtmux.Captured_text.source","slug":"libtmux-captured_text-t-source"},{"id":"Libtmux.Captured_text.t.started_at_ns","publicId":"Libtmux.Captured_text.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":717,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":717,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.started_at_ns","slug":"libtmux-captured_text-t-started_at_ns"},{"id":"Libtmux.Cardinality","publicId":"Libtmux.Cardinality","qualifiedName":"Libtmux.Cardinality","name":"Cardinality","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":685,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cardinality : sig\n type error = No_match | Multiple_matches of { at_least : int }\n\n val pp_error : Format.formatter -> error -> unit\nend","source":{"file":"lib/libtmux.mli","line":685,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-cardinality"},{"id":"Libtmux.Cardinality.error","publicId":"Libtmux.Cardinality.error","qualifiedName":"Libtmux.Cardinality.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error = No_match | Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"type error =\n | No_match \n | Multiple_matches of {\n at_least: int } ","params":[]}],"slug":"libtmux-cardinality-error"},{"id":"Libtmux.Cardinality.error.Multiple_matches","publicId":"Libtmux.Cardinality.error.Multiple_matches","name":"Multiple_matches","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Cardinality.error","variant":"struct","qualifiedName":"Libtmux.Cardinality.Multiple_matches","slug":"libtmux-cardinality-error-multiple_matches"},{"id":"Libtmux.Cardinality.error.Multiple_matches.at_least","publicId":"Libtmux.Cardinality.error.Multiple_matches.at_least","name":"at_least","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"at_least : int","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Cardinality.error.Multiple_matches","type":"int","qualifiedName":"Libtmux.Cardinality.at_least","slug":"libtmux-cardinality-error-multiple_matches-at_least"},{"id":"Libtmux.Cardinality.error.No_match","publicId":"Libtmux.Cardinality.error.No_match","name":"No_match","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"No_match","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Cardinality.error","variant":"unit","qualifiedName":"Libtmux.Cardinality.No_match","slug":"libtmux-cardinality-error-no_match"},{"id":"Libtmux.Cardinality.pp_error","publicId":"Libtmux.Cardinality.pp_error","qualifiedName":"Libtmux.Cardinality.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":688,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"lib/libtmux.mli","line":688,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux-cardinality-pp_error"},{"id":"Libtmux.Client_name","publicId":"Libtmux.Client_name","qualifiedName":"Libtmux.Client_name","name":"Client_name","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Client_name : sig\n type t\n (** A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. *)\n\n val source : t -> Source.t\n val to_string : t -> string\nend","source":{"file":"lib/libtmux.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-client_name"},{"id":"Libtmux.Client_name.source","publicId":"Libtmux.Client_name.source","qualifiedName":"Libtmux.Client_name.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_name-source"},{"id":"Libtmux.Client_name.t","publicId":"Libtmux.Client_name.t","qualifiedName":"Libtmux.Client_name.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_name","doc":{"summary":"A name in one connection generation, with current-name semantics. It does not identify a stable client incarnation; tmux may reuse client names."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_name-t"},{"id":"Libtmux.Client_name.to_string","publicId":"Libtmux.Client_name.to_string","qualifiedName":"Libtmux.Client_name.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_name-to_string"},{"id":"Libtmux.Client_observation","publicId":"Libtmux.Client_observation","qualifiedName":"Libtmux.Client_observation","name":"Client_observation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"and Client_observation : sig\n type t\n\n module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end\n\n val name : t -> string\n val pid : t -> int\n val width : t -> int\n\n val height : t -> int option\n (** No height is reported until the client has a started terminal. *)\n\n val control_mode : t -> bool\n val source : t -> Source.t\n\n val current_name : t -> Client_name.t\n (** Address whichever client has this name when a command executes. *)\n\n val session : t -> Session.t option\n (** [None] means the captured client has no attached session. *)\n\n val same_observation : t -> t -> bool\n (** Client names may be reused. No cross-snapshot entity equality is offered.\n *)\nend","source":{"file":"lib/libtmux.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-client_observation"},{"id":"Libtmux.Client_observation.Fields","publicId":"Libtmux.Client_observation.Fields","qualifiedName":"Libtmux.Client_observation.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":368,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":368,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-fields"},{"id":"Libtmux.Client_observation.Fields.control_mode","publicId":"Libtmux.Client_observation.Fields.control_mode","qualifiedName":"Libtmux.Client_observation.Fields.control_mode","name":"control_mode","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val control_mode : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val control_mode : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-client_observation-fields-control_mode"},{"id":"Libtmux.Client_observation.Fields.name","publicId":"Libtmux.Client_observation.Fields.name","qualifiedName":"Libtmux.Client_observation.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":369,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":369,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-client_observation-fields-name"},{"id":"Libtmux.Client_observation.Fields.pid","publicId":"Libtmux.Client_observation.Fields.pid","qualifiedName":"Libtmux.Client_observation.Fields.pid","name":"pid","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pid : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val pid : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-pid"},{"id":"Libtmux.Client_observation.Fields.width","publicId":"Libtmux.Client_observation.Fields.width","qualifiedName":"Libtmux.Client_observation.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":371,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":371,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-width"},{"id":"Libtmux.Client_observation.Relations","publicId":"Libtmux.Client_observation.Relations","qualifiedName":"Libtmux.Client_observation.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":375,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end","source":{"file":"lib/libtmux.mli","line":375,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-relations"},{"id":"Libtmux.Client_observation.Relations.session","publicId":"Libtmux.Client_observation.Relations.session","qualifiedName":"Libtmux.Client_observation.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":376,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.Optional.t","source":{"file":"lib/libtmux.mli","line":376,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.Optional.t","params":[],"returns":"(t, Session.t) Relation.Optional.t"}],"slug":"libtmux-client_observation-relations-session"},{"id":"Libtmux.Client_observation.control_mode","publicId":"Libtmux.Client_observation.control_mode","qualifiedName":"Libtmux.Client_observation.control_mode","name":"control_mode","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":386,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val control_mode : t -> bool","source":{"file":"lib/libtmux.mli","line":386,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val control_mode : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-control_mode"},{"id":"Libtmux.Client_observation.current_name","publicId":"Libtmux.Client_observation.current_name","qualifiedName":"Libtmux.Client_observation.current_name","name":"current_name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":389,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Address whichever client has this name when a command executes. "],"declarations":[{"kind":"function","text":"val current_name : t -> Client_name.t","source":{"file":"lib/libtmux.mli","line":389,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Address whichever client has this name when a command executes."},"signatures":[{"raw":"val current_name : t -> Client_name.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_name.t"}],"slug":"libtmux-client_observation-current_name"},{"id":"Libtmux.Client_observation.height","publicId":"Libtmux.Client_observation.height","qualifiedName":"Libtmux.Client_observation.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":383,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" No height is reported until the client has a started terminal. "],"declarations":[{"kind":"function","text":"val height : t -> int option","source":{"file":"lib/libtmux.mli","line":383,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"No height is reported until the client has a started terminal."},"signatures":[{"raw":"val height : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-client_observation-height"},{"id":"Libtmux.Client_observation.name","publicId":"Libtmux.Client_observation.name","qualifiedName":"Libtmux.Client_observation.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":379,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":379,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_observation-name"},{"id":"Libtmux.Client_observation.pid","publicId":"Libtmux.Client_observation.pid","qualifiedName":"Libtmux.Client_observation.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":380,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pid : t -> int","source":{"file":"lib/libtmux.mli","line":380,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-pid"},{"id":"Libtmux.Client_observation.same_observation","publicId":"Libtmux.Client_observation.same_observation","qualifiedName":"Libtmux.Client_observation.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":395,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Client names may be reused. No cross-snapshot entity equality is offered.\n "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":395,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Client names may be reused. No cross-snapshot entity equality is offered."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-same_observation"},{"id":"Libtmux.Client_observation.session","publicId":"Libtmux.Client_observation.session","qualifiedName":"Libtmux.Client_observation.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":392,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [None] means the captured client has no attached session. "],"declarations":[{"kind":"function","text":"val session : t -> Session.t option","source":{"file":"lib/libtmux.mli","line":392,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"`None` means the captured client has no attached session."},"signatures":[{"raw":"val session : t -> Session.t option","params":[{"name":"arg1","type":"t"}],"returns":"Session.t option"}],"slug":"libtmux-client_observation-session"},{"id":"Libtmux.Client_observation.source","publicId":"Libtmux.Client_observation.source","qualifiedName":"Libtmux.Client_observation.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_observation-source"},{"id":"Libtmux.Client_observation.t","publicId":"Libtmux.Client_observation.t","qualifiedName":"Libtmux.Client_observation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":366,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":366,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_observation-t"},{"id":"Libtmux.Client_observation.width","publicId":"Libtmux.Client_observation.width","qualifiedName":"Libtmux.Client_observation.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-width"},{"id":"Libtmux.Command","publicId":"Libtmux.Command","qualifiedName":"Libtmux.Command","name":"Command","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":883,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Typed descriptions of explicit acquisition and mutation operations.\n Construction performs no I/O; a backend validates and admits the command. "],"declarations":[{"kind":"module","text":"module Command : sig\n type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }\n\n type 'a t\n (** An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. *)\n\n type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view\n\n val view : 'a t -> 'a view\n (** Read-only inspection for transport adapters. *)\nend","source":{"file":"lib/libtmux.mli","line":883,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Typed descriptions of explicit acquisition and mutation operations. Construction performs no I/O; a backend validates and admits the command."},"slug":"libtmux-command"},{"id":"Libtmux.Command.mutation","publicId":"Libtmux.Command.mutation","qualifiedName":"Libtmux.Command.mutation","name":"mutation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":884,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":884,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type mutation =\n | Kill_session of Session.target \n | Kill_window of Window.target \n | Kill_pane of Pane.target \n | Select_window_at of Session.target * int \n | Unlink_window_at of\n {\n session: Session.target ;\n index: int ;\n allow_kill: bool } \n | Link_window of\n {\n window: Window.target ;\n session: Session.target ;\n index: int } \n | Move_window_at of\n {\n from_session: Session.target ;\n from_index: int ;\n session: Session.target ;\n index: int } \n | Select_pane of Pane.target \n | Set_pane_title of Pane.target * string \n | Resize_pane of\n {\n pane: Pane.target ;\n width: int option ;\n height: int option } \n | Resize_window of\n {\n window: Window.target ;\n width: int option ;\n height: int option } \n | Select_layout of Window.target * Layout.t \n | Cycle_layout of Window.target * [ `Next | `Previous ] \n | Move_pane of\n {\n pane: Pane.target ;\n beside: Pane.target ;\n direction: Geometry.direction ;\n size: Geometry.size option } \n | Swap_panes of Pane.target * Pane.target \n | Rotate_panes of Window.target * [ `Forward | `Backward ] \n | Zoom_pane of Pane.target \n | Respawn_pane of {\n pane: Pane.target ;\n spawn: Spawn.t ;\n kill_running: bool } \n | Clear_history of Pane.target \n | Set_environment of\n {\n scope: Environment.scope ;\n name: string ;\n value: string ;\n hidden: bool } \n | Unset_environment of Environment.scope * string \n | Remove_environment of Environment.scope * string \n | Set_option of\n {\n scope: Options.scope ;\n name: string ;\n index: int option ;\n value: Options.scalar ;\n append: bool } \n | Unset_option of Options.scope * string * int option \n | Clear_option_array of Options.scope * string \n | Set_hook of\n {\n scope: Options.scope ;\n name: string ;\n index: int option ;\n commands: Hook.command list ;\n append: bool } \n | Remove_hook of Options.scope * string * int option \n | Run_hook of Options.scope * string \n | Switch_client_at of\n {\n client: Client_name.t ;\n session: Session.target ;\n update_environment: bool } \n | Request_detach_client_at of Client_name.t \n | Refresh_client_at of Client_name.t * bool \n | Resize_control_client_at of\n {\n client: Client_name.t ;\n width: int ;\n height: int } ","params":[]}],"slug":"libtmux-command-mutation"},{"id":"Libtmux.Command.mutation.Clear_history","publicId":"Libtmux.Command.mutation.Clear_history","name":"Clear_history","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":933,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_history of Pane.target","source":{"file":"lib/libtmux.mli","line":933,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_history","slug":"libtmux-command-mutation-clear_history"},{"id":"Libtmux.Command.mutation.Clear_option_array","publicId":"Libtmux.Command.mutation.Clear_option_array","name":"Clear_option_array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":950,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_option_array of Options.scope * string","source":{"file":"lib/libtmux.mli","line":950,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_option_array","slug":"libtmux-command-mutation-clear_option_array"},{"id":"Libtmux.Command.mutation.Cycle_layout","publicId":"Libtmux.Command.mutation.Cycle_layout","name":"Cycle_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":918,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cycle_layout of Window.target * [ `Next | `Previous ]","source":{"file":"lib/libtmux.mli","line":918,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Cycle_layout","slug":"libtmux-command-mutation-cycle_layout"},{"id":"Libtmux.Command.mutation.Kill_pane","publicId":"Libtmux.Command.mutation.Kill_pane","name":"Kill_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":887,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":887,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_pane","slug":"libtmux-command-mutation-kill_pane"},{"id":"Libtmux.Command.mutation.Kill_session","publicId":"Libtmux.Command.mutation.Kill_session","name":"Kill_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":885,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_session of Session.target","source":{"file":"lib/libtmux.mli","line":885,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_session","slug":"libtmux-command-mutation-kill_session"},{"id":"Libtmux.Command.mutation.Kill_window","publicId":"Libtmux.Command.mutation.Kill_window","name":"Kill_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":886,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_window of Window.target","source":{"file":"lib/libtmux.mli","line":886,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_window","slug":"libtmux-command-mutation-kill_window"},{"id":"Libtmux.Command.mutation.Link_window","publicId":"Libtmux.Command.mutation.Link_window","name":"Link_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":894,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":894,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Link_window","slug":"libtmux-command-mutation-link_window"},{"id":"Libtmux.Command.mutation.Link_window.index","publicId":"Libtmux.Command.mutation.Link_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":897,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":897,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-link_window-index"},{"id":"Libtmux.Command.mutation.Link_window.session","publicId":"Libtmux.Command.mutation.Link_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":896,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":896,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-link_window-session"},{"id":"Libtmux.Command.mutation.Link_window.window","publicId":"Libtmux.Command.mutation.Link_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":895,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":895,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-link_window-window"},{"id":"Libtmux.Command.mutation.Move_pane","publicId":"Libtmux.Command.mutation.Move_pane","name":"Move_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":919,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }","source":{"file":"lib/libtmux.mli","line":919,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_pane","slug":"libtmux-command-mutation-move_pane"},{"id":"Libtmux.Command.mutation.Move_pane.beside","publicId":"Libtmux.Command.mutation.Move_pane.beside","name":"beside","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":921,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"beside : Pane.target;","source":{"file":"lib/libtmux.mli","line":921,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.beside","slug":"libtmux-command-mutation-move_pane-beside"},{"id":"Libtmux.Command.mutation.Move_pane.direction","publicId":"Libtmux.Command.mutation.Move_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":922,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":922,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-mutation-move_pane-direction"},{"id":"Libtmux.Command.mutation.Move_pane.pane","publicId":"Libtmux.Command.mutation.Move_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":920,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":920,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-move_pane-pane"},{"id":"Libtmux.Command.mutation.Move_pane.size","publicId":"Libtmux.Command.mutation.Move_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":923,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":923,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-mutation-move_pane-size"},{"id":"Libtmux.Command.mutation.Move_window_at","publicId":"Libtmux.Command.mutation.Move_window_at","name":"Move_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":899,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":899,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_window_at","slug":"libtmux-command-mutation-move_window_at"},{"id":"Libtmux.Command.mutation.Move_window_at.from_index","publicId":"Libtmux.Command.mutation.Move_window_at.from_index","name":"from_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":901,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_index : int;","source":{"file":"lib/libtmux.mli","line":901,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.from_index","slug":"libtmux-command-mutation-move_window_at-from_index"},{"id":"Libtmux.Command.mutation.Move_window_at.from_session","publicId":"Libtmux.Command.mutation.Move_window_at.from_session","name":"from_session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":900,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_session : Session.target;","source":{"file":"lib/libtmux.mli","line":900,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.from_session","slug":"libtmux-command-mutation-move_window_at-from_session"},{"id":"Libtmux.Command.mutation.Move_window_at.index","publicId":"Libtmux.Command.mutation.Move_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":903,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":903,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-move_window_at-index"},{"id":"Libtmux.Command.mutation.Move_window_at.session","publicId":"Libtmux.Command.mutation.Move_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":902,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":902,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-move_window_at-session"},{"id":"Libtmux.Command.mutation.Refresh_client_at","publicId":"Libtmux.Command.mutation.Refresh_client_at","name":"Refresh_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":966,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Refresh_client_at of Client_name.t * bool","source":{"file":"lib/libtmux.mli","line":966,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Refresh_client_at","slug":"libtmux-command-mutation-refresh_client_at"},{"id":"Libtmux.Command.mutation.Remove_environment","publicId":"Libtmux.Command.mutation.Remove_environment","name":"Remove_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":941,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":941,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_environment","slug":"libtmux-command-mutation-remove_environment"},{"id":"Libtmux.Command.mutation.Remove_hook","publicId":"Libtmux.Command.mutation.Remove_hook","name":"Remove_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":958,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_hook of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":958,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_hook","slug":"libtmux-command-mutation-remove_hook"},{"id":"Libtmux.Command.mutation.Request_detach_client_at","publicId":"Libtmux.Command.mutation.Request_detach_client_at","name":"Request_detach_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":965,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Request_detach_client_at of Client_name.t","source":{"file":"lib/libtmux.mli","line":965,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Request_detach_client_at","slug":"libtmux-command-mutation-request_detach_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at","publicId":"Libtmux.Command.mutation.Resize_control_client_at","name":"Resize_control_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":967,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":967,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_control_client_at","slug":"libtmux-command-mutation-resize_control_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.client","publicId":"Libtmux.Command.mutation.Resize_control_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":968,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":968,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-resize_control_client_at-client"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.height","publicId":"Libtmux.Command.mutation.Resize_control_client_at.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":970,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":970,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_control_client_at-height"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.width","publicId":"Libtmux.Command.mutation.Resize_control_client_at.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":969,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":969,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_control_client_at-width"},{"id":"Libtmux.Command.mutation.Resize_pane","publicId":"Libtmux.Command.mutation.Resize_pane","name":"Resize_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":907,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":907,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_pane","slug":"libtmux-command-mutation-resize_pane"},{"id":"Libtmux.Command.mutation.Resize_pane.height","publicId":"Libtmux.Command.mutation.Resize_pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":910,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":910,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_pane-height"},{"id":"Libtmux.Command.mutation.Resize_pane.pane","publicId":"Libtmux.Command.mutation.Resize_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":908,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":908,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-resize_pane-pane"},{"id":"Libtmux.Command.mutation.Resize_pane.width","publicId":"Libtmux.Command.mutation.Resize_pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":909,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":909,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_pane-width"},{"id":"Libtmux.Command.mutation.Resize_window","publicId":"Libtmux.Command.mutation.Resize_window","name":"Resize_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":912,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":912,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_window","slug":"libtmux-command-mutation-resize_window"},{"id":"Libtmux.Command.mutation.Resize_window.height","publicId":"Libtmux.Command.mutation.Resize_window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":915,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":915,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_window-height"},{"id":"Libtmux.Command.mutation.Resize_window.width","publicId":"Libtmux.Command.mutation.Resize_window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":914,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":914,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_window-width"},{"id":"Libtmux.Command.mutation.Resize_window.window","publicId":"Libtmux.Command.mutation.Resize_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":913,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":913,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-resize_window-window"},{"id":"Libtmux.Command.mutation.Respawn_pane","publicId":"Libtmux.Command.mutation.Respawn_pane","name":"Respawn_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":928,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }","source":{"file":"lib/libtmux.mli","line":928,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Respawn_pane","slug":"libtmux-command-mutation-respawn_pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.kill_running","publicId":"Libtmux.Command.mutation.Respawn_pane.kill_running","name":"kill_running","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":931,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kill_running : bool;","source":{"file":"lib/libtmux.mli","line":931,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"bool","qualifiedName":"Libtmux.Command.kill_running","slug":"libtmux-command-mutation-respawn_pane-kill_running"},{"id":"Libtmux.Command.mutation.Respawn_pane.pane","publicId":"Libtmux.Command.mutation.Respawn_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":929,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":929,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-respawn_pane-pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.spawn","publicId":"Libtmux.Command.mutation.Respawn_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":930,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":930,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-mutation-respawn_pane-spawn"},{"id":"Libtmux.Command.mutation.Rotate_panes","publicId":"Libtmux.Command.mutation.Rotate_panes","name":"Rotate_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":926,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rotate_panes of Window.target * [ `Forward | `Backward ]","source":{"file":"lib/libtmux.mli","line":926,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Rotate_panes","slug":"libtmux-command-mutation-rotate_panes"},{"id":"Libtmux.Command.mutation.Run_hook","publicId":"Libtmux.Command.mutation.Run_hook","name":"Run_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":959,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Run_hook of Options.scope * string","source":{"file":"lib/libtmux.mli","line":959,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Run_hook","slug":"libtmux-command-mutation-run_hook"},{"id":"Libtmux.Command.mutation.Select_layout","publicId":"Libtmux.Command.mutation.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":917,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of Window.target * Layout.t","source":{"file":"lib/libtmux.mli","line":917,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_layout","slug":"libtmux-command-mutation-select_layout"},{"id":"Libtmux.Command.mutation.Select_pane","publicId":"Libtmux.Command.mutation.Select_pane","name":"Select_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":905,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":905,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_pane","slug":"libtmux-command-mutation-select_pane"},{"id":"Libtmux.Command.mutation.Select_window_at","publicId":"Libtmux.Command.mutation.Select_window_at","name":"Select_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":888,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_window_at of Session.target * int","source":{"file":"lib/libtmux.mli","line":888,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_window_at","slug":"libtmux-command-mutation-select_window_at"},{"id":"Libtmux.Command.mutation.Set_environment","publicId":"Libtmux.Command.mutation.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":934,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }","source":{"file":"lib/libtmux.mli","line":934,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_environment","slug":"libtmux-command-mutation-set_environment"},{"id":"Libtmux.Command.mutation.Set_environment.hidden","publicId":"Libtmux.Command.mutation.Set_environment.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":938,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":938,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"bool","qualifiedName":"Libtmux.Command.hidden","slug":"libtmux-command-mutation-set_environment-hidden"},{"id":"Libtmux.Command.mutation.Set_environment.name","publicId":"Libtmux.Command.mutation.Set_environment.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":936,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":936,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_environment-name"},{"id":"Libtmux.Command.mutation.Set_environment.scope","publicId":"Libtmux.Command.mutation.Set_environment.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":935,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Environment.scope;","source":{"file":"lib/libtmux.mli","line":935,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"Environment.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_environment-scope"},{"id":"Libtmux.Command.mutation.Set_environment.value","publicId":"Libtmux.Command.mutation.Set_environment.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":937,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : string;","source":{"file":"lib/libtmux.mli","line":937,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_environment-value"},{"id":"Libtmux.Command.mutation.Set_hook","publicId":"Libtmux.Command.mutation.Set_hook","name":"Set_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":951,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":951,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_hook","slug":"libtmux-command-mutation-set_hook"},{"id":"Libtmux.Command.mutation.Set_hook.append","publicId":"Libtmux.Command.mutation.Set_hook.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":956,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":956,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_hook-append"},{"id":"Libtmux.Command.mutation.Set_hook.commands","publicId":"Libtmux.Command.mutation.Set_hook.commands","name":"commands","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":955,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"commands : Hook.command list;","source":{"file":"lib/libtmux.mli","line":955,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Hook.command list","qualifiedName":"Libtmux.Command.commands","slug":"libtmux-command-mutation-set_hook-commands"},{"id":"Libtmux.Command.mutation.Set_hook.index","publicId":"Libtmux.Command.mutation.Set_hook.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":954,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":954,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_hook-index"},{"id":"Libtmux.Command.mutation.Set_hook.name","publicId":"Libtmux.Command.mutation.Set_hook.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":953,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":953,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_hook-name"},{"id":"Libtmux.Command.mutation.Set_hook.scope","publicId":"Libtmux.Command.mutation.Set_hook.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":952,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":952,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_hook-scope"},{"id":"Libtmux.Command.mutation.Set_option","publicId":"Libtmux.Command.mutation.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":942,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":942,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_option","slug":"libtmux-command-mutation-set_option"},{"id":"Libtmux.Command.mutation.Set_option.append","publicId":"Libtmux.Command.mutation.Set_option.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":947,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":947,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_option-append"},{"id":"Libtmux.Command.mutation.Set_option.index","publicId":"Libtmux.Command.mutation.Set_option.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":945,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":945,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_option-index"},{"id":"Libtmux.Command.mutation.Set_option.name","publicId":"Libtmux.Command.mutation.Set_option.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":944,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":944,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_option-name"},{"id":"Libtmux.Command.mutation.Set_option.scope","publicId":"Libtmux.Command.mutation.Set_option.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":943,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":943,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_option-scope"},{"id":"Libtmux.Command.mutation.Set_option.value","publicId":"Libtmux.Command.mutation.Set_option.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":946,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Options.scalar;","source":{"file":"lib/libtmux.mli","line":946,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scalar","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_option-value"},{"id":"Libtmux.Command.mutation.Set_pane_title","publicId":"Libtmux.Command.mutation.Set_pane_title","name":"Set_pane_title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":906,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_pane_title of Pane.target * string","source":{"file":"lib/libtmux.mli","line":906,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Set_pane_title","slug":"libtmux-command-mutation-set_pane_title"},{"id":"Libtmux.Command.mutation.Swap_panes","publicId":"Libtmux.Command.mutation.Swap_panes","name":"Swap_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":925,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Swap_panes of Pane.target * Pane.target","source":{"file":"lib/libtmux.mli","line":925,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Swap_panes","slug":"libtmux-command-mutation-swap_panes"},{"id":"Libtmux.Command.mutation.Switch_client_at","publicId":"Libtmux.Command.mutation.Switch_client_at","name":"Switch_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":960,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }","source":{"file":"lib/libtmux.mli","line":960,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Switch_client_at","slug":"libtmux-command-mutation-switch_client_at"},{"id":"Libtmux.Command.mutation.Switch_client_at.client","publicId":"Libtmux.Command.mutation.Switch_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":961,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":961,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-switch_client_at-client"},{"id":"Libtmux.Command.mutation.Switch_client_at.session","publicId":"Libtmux.Command.mutation.Switch_client_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":962,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":962,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-switch_client_at-session"},{"id":"Libtmux.Command.mutation.Switch_client_at.update_environment","publicId":"Libtmux.Command.mutation.Switch_client_at.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":963,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"update_environment : bool;","source":{"file":"lib/libtmux.mli","line":963,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"bool","qualifiedName":"Libtmux.Command.update_environment","slug":"libtmux-command-mutation-switch_client_at-update_environment"},{"id":"Libtmux.Command.mutation.Unlink_window_at","publicId":"Libtmux.Command.mutation.Unlink_window_at","name":"Unlink_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":889,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }","source":{"file":"lib/libtmux.mli","line":889,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Unlink_window_at","slug":"libtmux-command-mutation-unlink_window_at"},{"id":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","publicId":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","name":"allow_kill","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":892,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"allow_kill : bool;","source":{"file":"lib/libtmux.mli","line":892,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"bool","qualifiedName":"Libtmux.Command.allow_kill","slug":"libtmux-command-mutation-unlink_window_at-allow_kill"},{"id":"Libtmux.Command.mutation.Unlink_window_at.index","publicId":"Libtmux.Command.mutation.Unlink_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":891,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":891,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-unlink_window_at-index"},{"id":"Libtmux.Command.mutation.Unlink_window_at.session","publicId":"Libtmux.Command.mutation.Unlink_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":890,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":890,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-unlink_window_at-session"},{"id":"Libtmux.Command.mutation.Unset_environment","publicId":"Libtmux.Command.mutation.Unset_environment","name":"Unset_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":940,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":940,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_environment","slug":"libtmux-command-mutation-unset_environment"},{"id":"Libtmux.Command.mutation.Unset_option","publicId":"Libtmux.Command.mutation.Unset_option","name":"Unset_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":949,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_option of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":949,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_option","slug":"libtmux-command-mutation-unset_option"},{"id":"Libtmux.Command.mutation.Zoom_pane","publicId":"Libtmux.Command.mutation.Zoom_pane","name":"Zoom_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":927,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Zoom_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":927,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Zoom_pane","slug":"libtmux-command-mutation-zoom_pane"},{"id":"Libtmux.Command.t","publicId":"Libtmux.Command.t","qualifiedName":"Libtmux.Command.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":973,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. "],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":973,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command","doc":{"summary":"An immutable description, validated by a backend before admission. Constructing or inspecting it performs no I/O."},"signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-command-t"},{"id":"Libtmux.Command.view","publicId":"Libtmux.Command.view","qualifiedName":"Libtmux.Command.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read-only inspection for transport adapters. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command","doc":{"summary":"Read-only inspection for transport adapters."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-command-view"},{"id":"Libtmux.Command.view:type","publicId":"Libtmux.Command.view:type","qualifiedName":"Libtmux.Command.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":977,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":977,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type _ view =\n | Capture: Snapshot.t view \n | Capture_text: {\n pane: Pane.t ;\n start: int ;\n end_: int ;\n scratch_dir: string } -> Captured_text.t view \n | Rename_window: Window.target * string -> unit view \n | Rename_session: Session.target * string -> unit view \n | Send_text: Pane.target * string -> unit view \n | Send_keys: Pane.target * Key.t list -> unit view \n | Wait_for: string -> unit view \n | Signal: string -> unit view \n | Capture_environment: Environment.scope * bool -> Environment.t view \n | Capture_options: Options.scope * bool -> Options.t view \n | Read_option: Options.scope * string * bool -> Options.value option view \n | Capture_hooks: Options.scope -> Options.t view \n | Read_hook: Options.scope * string * bool -> Options.value option view \n | Mutate: mutation -> unit view \n | Create_session:\n {\n name: string ;\n window_name: string option ;\n width: int ;\n height: int ;\n spawn: Spawn.t } -> Created.t view \n | Create_window:\n {\n session: Session.target ;\n index: int option ;\n name: string option ;\n spawn: Spawn.t } -> Created.t view \n | Split_pane:\n {\n pane: Pane.target ;\n direction: Geometry.direction ;\n size: Geometry.size option ;\n spawn: Spawn.t } -> Created.t view \n | Break_pane:\n {\n pane: Pane.target ;\n session: Session.target ;\n index: int ;\n name: string option } -> Created.t view ","params":[]}],"slug":"libtmux-command-view-type"},{"id":"Libtmux.Command.view:type.Break_pane","publicId":"Libtmux.Command.view:type.Break_pane","name":"Break_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1020,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1020,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Break_pane","slug":"libtmux-command-view-type-break_pane"},{"id":"Libtmux.Command.view:type.Break_pane.index","publicId":"Libtmux.Command.view:type.Break_pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1023,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":1023,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-break_pane-index"},{"id":"Libtmux.Command.view:type.Break_pane.name","publicId":"Libtmux.Command.view:type.Break_pane.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1024,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1024,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-break_pane-name"},{"id":"Libtmux.Command.view:type.Break_pane.pane","publicId":"Libtmux.Command.view:type.Break_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1021,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":1021,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-break_pane-pane"},{"id":"Libtmux.Command.view:type.Break_pane.session","publicId":"Libtmux.Command.view:type.Break_pane.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1022,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1022,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-break_pane-session"},{"id":"Libtmux.Command.view:type.Capture","publicId":"Libtmux.Command.view:type.Capture","name":"Capture","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":978,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture : Snapshot.t view","source":{"file":"lib/libtmux.mli","line":978,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"unit","qualifiedName":"Libtmux.Command.Capture","slug":"libtmux-command-view-type-capture"},{"id":"Libtmux.Command.view:type.Capture_environment","publicId":"Libtmux.Command.view:type.Capture_environment","name":"Capture_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":992,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_environment : Environment.scope * bool -> Environment.t view","source":{"file":"lib/libtmux.mli","line":992,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_environment","slug":"libtmux-command-view-type-capture_environment"},{"id":"Libtmux.Command.view:type.Capture_hooks","publicId":"Libtmux.Command.view:type.Capture_hooks","name":"Capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":995,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_hooks : Options.scope -> Options.t view","source":{"file":"lib/libtmux.mli","line":995,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_hooks","slug":"libtmux-command-view-type-capture_hooks"},{"id":"Libtmux.Command.view:type.Capture_options","publicId":"Libtmux.Command.view:type.Capture_options","name":"Capture_options","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":993,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_options : Options.scope * bool -> Options.t view","source":{"file":"lib/libtmux.mli","line":993,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_options","slug":"libtmux-command-view-type-capture_options"},{"id":"Libtmux.Command.view:type.Capture_text","publicId":"Libtmux.Command.view:type.Capture_text","name":"Capture_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":979,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view","source":{"file":"lib/libtmux.mli","line":979,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Capture_text","slug":"libtmux-command-view-type-capture_text"},{"id":"Libtmux.Command.view:type.Capture_text.end_","publicId":"Libtmux.Command.view:type.Capture_text.end_","name":"end_","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":982,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"end_ : int;","source":{"file":"lib/libtmux.mli","line":982,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.end_","slug":"libtmux-command-view-type-capture_text-end_"},{"id":"Libtmux.Command.view:type.Capture_text.pane","publicId":"Libtmux.Command.view:type.Capture_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":980,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.t;","source":{"file":"lib/libtmux.mli","line":980,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"Pane.t","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-capture_text-pane"},{"id":"Libtmux.Command.view:type.Capture_text.scratch_dir","publicId":"Libtmux.Command.view:type.Capture_text.scratch_dir","name":"scratch_dir","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":983,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scratch_dir : string;","source":{"file":"lib/libtmux.mli","line":983,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"string","qualifiedName":"Libtmux.Command.scratch_dir","slug":"libtmux-command-view-type-capture_text-scratch_dir"},{"id":"Libtmux.Command.view:type.Capture_text.start","publicId":"Libtmux.Command.view:type.Capture_text.start","name":"start","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":981,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"start : int;","source":{"file":"lib/libtmux.mli","line":981,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.start","slug":"libtmux-command-view-type-capture_text-start"},{"id":"Libtmux.Command.view:type.Create_session","publicId":"Libtmux.Command.view:type.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":998,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":998,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_session","slug":"libtmux-command-view-type-create_session"},{"id":"Libtmux.Command.view:type.Create_session.height","publicId":"Libtmux.Command.view:type.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1002,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":1002,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-view-type-create_session-height"},{"id":"Libtmux.Command.view:type.Create_session.name","publicId":"Libtmux.Command.view:type.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":999,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":999,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_session-name"},{"id":"Libtmux.Command.view:type.Create_session.spawn","publicId":"Libtmux.Command.view:type.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1003,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1003,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_session-spawn"},{"id":"Libtmux.Command.view:type.Create_session.width","publicId":"Libtmux.Command.view:type.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1001,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":1001,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-view-type-create_session-width"},{"id":"Libtmux.Command.view:type.Create_session.window_name","publicId":"Libtmux.Command.view:type.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1000,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string option;","source":{"file":"lib/libtmux.mli","line":1000,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string option","qualifiedName":"Libtmux.Command.window_name","slug":"libtmux-command-view-type-create_session-window_name"},{"id":"Libtmux.Command.view:type.Create_window","publicId":"Libtmux.Command.view:type.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1006,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1006,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_window","slug":"libtmux-command-view-type-create_window"},{"id":"Libtmux.Command.view:type.Create_window.index","publicId":"Libtmux.Command.view:type.Create_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1008,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":1008,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-create_window-index"},{"id":"Libtmux.Command.view:type.Create_window.name","publicId":"Libtmux.Command.view:type.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1009,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1009,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_window-name"},{"id":"Libtmux.Command.view:type.Create_window.session","publicId":"Libtmux.Command.view:type.Create_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1007,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1007,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-create_window-session"},{"id":"Libtmux.Command.view:type.Create_window.spawn","publicId":"Libtmux.Command.view:type.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1010,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1010,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_window-spawn"},{"id":"Libtmux.Command.view:type.Mutate","publicId":"Libtmux.Command.view:type.Mutate","name":"Mutate","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":997,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mutate : mutation -> unit view","source":{"file":"lib/libtmux.mli","line":997,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Mutate","slug":"libtmux-command-view-type-mutate"},{"id":"Libtmux.Command.view:type.Read_hook","publicId":"Libtmux.Command.view:type.Read_hook","name":"Read_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":996,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_hook : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":996,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_hook","slug":"libtmux-command-view-type-read_hook"},{"id":"Libtmux.Command.view:type.Read_option","publicId":"Libtmux.Command.view:type.Read_option","name":"Read_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":994,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_option : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":994,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_option","slug":"libtmux-command-view-type-read_option"},{"id":"Libtmux.Command.view:type.Rename_session","publicId":"Libtmux.Command.view:type.Rename_session","name":"Rename_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":987,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_session : Session.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":987,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_session","slug":"libtmux-command-view-type-rename_session"},{"id":"Libtmux.Command.view:type.Rename_window","publicId":"Libtmux.Command.view:type.Rename_window","name":"Rename_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":986,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_window : Window.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":986,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_window","slug":"libtmux-command-view-type-rename_window"},{"id":"Libtmux.Command.view:type.Send_keys","publicId":"Libtmux.Command.view:type.Send_keys","name":"Send_keys","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":989,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_keys : Pane.target * Key.t list -> unit view","source":{"file":"lib/libtmux.mli","line":989,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_keys","slug":"libtmux-command-view-type-send_keys"},{"id":"Libtmux.Command.view:type.Send_text","publicId":"Libtmux.Command.view:type.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":988,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text : Pane.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":988,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_text","slug":"libtmux-command-view-type-send_text"},{"id":"Libtmux.Command.view:type.Signal","publicId":"Libtmux.Command.view:type.Signal","name":"Signal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":991,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Signal : string -> unit view","source":{"file":"lib/libtmux.mli","line":991,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Signal","slug":"libtmux-command-view-type-signal"},{"id":"Libtmux.Command.view:type.Split_pane","publicId":"Libtmux.Command.view:type.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Split_pane","slug":"libtmux-command-view-type-split_pane"},{"id":"Libtmux.Command.view:type.Split_pane.direction","publicId":"Libtmux.Command.view:type.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1015,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":1015,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-view-type-split_pane-direction"},{"id":"Libtmux.Command.view:type.Split_pane.pane","publicId":"Libtmux.Command.view:type.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1014,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":1014,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-split_pane-pane"},{"id":"Libtmux.Command.view:type.Split_pane.size","publicId":"Libtmux.Command.view:type.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1016,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":1016,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-view-type-split_pane-size"},{"id":"Libtmux.Command.view:type.Split_pane.spawn","publicId":"Libtmux.Command.view:type.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1017,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1017,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-split_pane-spawn"},{"id":"Libtmux.Command.view:type.Wait_for","publicId":"Libtmux.Command.view:type.Wait_for","name":"Wait_for","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":990,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wait_for : string -> unit view","source":{"file":"lib/libtmux.mli","line":990,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Wait_for","slug":"libtmux-command-view-type-wait_for"},{"id":"Libtmux.Created","publicId":"Libtmux.Created","qualifiedName":"Libtmux.Created","name":"Created","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":779,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" IDs reported by a successful creation reply. Only the requested kind is\n newly created; the other fields can describe existing containers. "],"declarations":[{"kind":"module","text":"module Created : sig\n type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }\n (** IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. *)\nend","source":{"file":"lib/libtmux.mli","line":779,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"IDs reported by a successful creation reply. Only the requested kind is newly created; the other fields can describe existing containers."},"slug":"libtmux-created"},{"id":"Libtmux.Created.t","publicId":"Libtmux.Created.t","qualifiedName":"Libtmux.Created.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. "],"declarations":[{"kind":"struct","text":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }","source":{"file":"lib/libtmux.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Created","doc":{"summary":"IDs returned by the creation command, without a second capture. Indexes describe the creation response and may change afterward. Only the resource requested by the command is newly created: splitting a pane does not create the reported session or window."},"signatures":[{"raw":"type t =\n {\n session: Session.target ;\n window: Window.target ;\n pane: Pane.target ;\n window_index: int ;\n pane_index: int }","params":[]}],"slug":"libtmux-created-t"},{"id":"Libtmux.Created.t.pane","publicId":"Libtmux.Created.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":783,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":783,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Created.t","type":"Pane.target","qualifiedName":"Libtmux.Created.pane","slug":"libtmux-created-t-pane"},{"id":"Libtmux.Created.t.pane_index","publicId":"Libtmux.Created.t.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":785,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"lib/libtmux.mli","line":785,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.pane_index","slug":"libtmux-created-t-pane_index"},{"id":"Libtmux.Created.t.session","publicId":"Libtmux.Created.t.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":781,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":781,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Created.t","type":"Session.target","qualifiedName":"Libtmux.Created.session","slug":"libtmux-created-t-session"},{"id":"Libtmux.Created.t.window","publicId":"Libtmux.Created.t.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":782,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":782,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Created.t","type":"Window.target","qualifiedName":"Libtmux.Created.window","slug":"libtmux-created-t-window"},{"id":"Libtmux.Created.t.window_index","publicId":"Libtmux.Created.t.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":784,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"lib/libtmux.mli","line":784,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.window_index","slug":"libtmux-created-t-window_index"},{"id":"Libtmux.Endpoint","publicId":"Libtmux.Endpoint","qualifiedName":"Libtmux.Endpoint","name":"Endpoint","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" An explicit socket description. Constructing an endpoint neither reads the\n environment nor starts a daemon. {!Source.t} adds the observed daemon and\n connection generation. "],"declarations":[{"kind":"module","text":"module Endpoint : sig\n type t\n (** An explicit socket description, independent of the environment. *)\n\n type kind = Named_socket of string | Socket_path of string\n\n val named_socket : string -> t\n (** [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. *)\n\n val socket_path : string -> t\n (** [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. *)\n\n val kind : t -> kind\n\n val equal : t -> t -> bool\n (** Equality compares descriptions, not server instances or resolved paths. *)\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"An explicit socket description. Constructing an endpoint neither reads the environment nor starts a daemon. {!Source.t} adds the observed daemon and connection generation."},"slug":"libtmux-endpoint"},{"id":"Libtmux.Endpoint.equal","publicId":"Libtmux.Endpoint.equal","qualifiedName":"Libtmux.Endpoint.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":47,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Equality compares descriptions, not server instances or resolved paths. "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":47,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"Equality compares descriptions, not server instances or resolved paths."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-endpoint-equal"},{"id":"Libtmux.Endpoint.kind","publicId":"Libtmux.Endpoint.kind","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":45,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : t -> kind","source":{"file":"lib/libtmux.mli","line":45,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val kind : t -> kind","params":[{"name":"arg1","type":"t"}],"returns":"kind"}],"slug":"libtmux-endpoint-kind"},{"id":"Libtmux.Endpoint.kind:type","publicId":"Libtmux.Endpoint.kind:type","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type kind = Named_socket of string | Socket_path of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"type kind =\n | Named_socket of string \n | Socket_path of string ","params":[]}],"slug":"libtmux-endpoint-kind-type"},{"id":"Libtmux.Endpoint.kind:type.Named_socket","publicId":"Libtmux.Endpoint.kind:type.Named_socket","name":"Named_socket","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Named_socket of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Named_socket","slug":"libtmux-endpoint-kind-type-named_socket"},{"id":"Libtmux.Endpoint.kind:type.Socket_path","publicId":"Libtmux.Endpoint.kind:type.Socket_path","name":"Socket_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Socket_path of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Socket_path","slug":"libtmux-endpoint-kind-type-socket_path"},{"id":"Libtmux.Endpoint.named_socket","publicId":"Libtmux.Endpoint.named_socket","qualifiedName":"Libtmux.Endpoint.named_socket","name":"named_socket","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. "],"declarations":[{"kind":"function","text":"val named_socket : string -> t","source":{"file":"lib/libtmux.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`named_socket name` describes tmux's `-L name` endpoint. Raises `Invalid_argument` if `name` is empty or contains NUL or `/`."},"signatures":[{"raw":"val named_socket : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-named_socket"},{"id":"Libtmux.Endpoint.pp","publicId":"Libtmux.Endpoint.pp","qualifiedName":"Libtmux.Endpoint.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-endpoint-pp"},{"id":"Libtmux.Endpoint.socket_path","publicId":"Libtmux.Endpoint.socket_path","qualifiedName":"Libtmux.Endpoint.socket_path","name":"socket_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. "],"declarations":[{"kind":"function","text":"val socket_path : string -> t","source":{"file":"lib/libtmux.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`socket_path path` describes an absolute `-S path` endpoint. It does not check existence or resolve symbolic links. Raises `Invalid_argument` if `path` is relative, empty or contains NUL."},"signatures":[{"raw":"val socket_path : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-socket_path"},{"id":"Libtmux.Endpoint.t","publicId":"Libtmux.Endpoint.t","qualifiedName":"Libtmux.Endpoint.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" An explicit socket description, independent of the environment. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"An explicit socket description, independent of the environment."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-endpoint-t"},{"id":"Libtmux.Environment","publicId":"Libtmux.Environment","qualifiedName":"Libtmux.Environment","name":"Environment","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":793,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Environment : sig\n type scope = Global | Session of Session.target\n type value = Value of string | Removed\n type entry = { name : string; value : value }\n\n type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. *)\n\n val lookup : t -> string -> value option\n (** No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. *)\nend","source":{"file":"lib/libtmux.mli","line":793,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-environment"},{"id":"Libtmux.Environment.entry","publicId":"Libtmux.Environment.entry","qualifiedName":"Libtmux.Environment.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { name : string; value : value }","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type entry = {\n name: string ;\n value: value }","params":[]}],"slug":"libtmux-environment-entry"},{"id":"Libtmux.Environment.entry.name","publicId":"Libtmux.Environment.entry.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.entry","type":"string","qualifiedName":"Libtmux.Environment.name","slug":"libtmux-environment-entry-name"},{"id":"Libtmux.Environment.entry.value","publicId":"Libtmux.Environment.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.entry","type":"value","qualifiedName":"Libtmux.Environment.value","slug":"libtmux-environment-entry-value"},{"id":"Libtmux.Environment.lookup","publicId":"Libtmux.Environment.lookup","qualifiedName":"Libtmux.Environment.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":810,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> value option","source":{"file":"lib/libtmux.mli","line":810,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment","doc":{"summary":"No I/O. `None` means absent from the selected table and visibility. `Removed` masks a global value; `Value \"\"` is an explicitly empty value. Names must be ASCII identifiers; values preserve non-NUL bytes."},"signatures":[{"raw":"val lookup : t -> string -> value option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"value option"}],"slug":"libtmux-environment-lookup"},{"id":"Libtmux.Environment.scope","publicId":"Libtmux.Environment.scope","qualifiedName":"Libtmux.Environment.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Global | Session of Session.target","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type scope =\n | Global \n | Session of Session.target ","params":[]}],"slug":"libtmux-environment-scope"},{"id":"Libtmux.Environment.scope.Global","publicId":"Libtmux.Environment.scope.Global","name":"Global","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Global","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.scope","variant":"unit","qualifiedName":"Libtmux.Environment.Global","slug":"libtmux-environment-scope-global"},{"id":"Libtmux.Environment.scope.Session","publicId":"Libtmux.Environment.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.scope","variant":"tuple","qualifiedName":"Libtmux.Environment.Session","slug":"libtmux-environment-scope-session"},{"id":"Libtmux.Environment.t","publicId":"Libtmux.Environment.t","qualifiedName":"Libtmux.Environment.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment","doc":{"summary":"One captured environment table, in tmux order. `hidden` selects hidden variables exclusively. Session tables contain local entries, including removal markers; they do not merge the global environment."},"signatures":[{"raw":"type t =\n {\n source: Source.t ;\n scope: scope ;\n hidden: bool ;\n entries: entry Iarray.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-environment-t"},{"id":"Libtmux.Environment.t.entries","publicId":"Libtmux.Environment.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":802,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":802,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Environment.entries","slug":"libtmux-environment-t-entries"},{"id":"Libtmux.Environment.t.finished_at_ns","publicId":"Libtmux.Environment.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":804,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":804,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.finished_at_ns","slug":"libtmux-environment-t-finished_at_ns"},{"id":"Libtmux.Environment.t.hidden","publicId":"Libtmux.Environment.t.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":801,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":801,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.t","type":"bool","qualifiedName":"Libtmux.Environment.hidden","slug":"libtmux-environment-t-hidden"},{"id":"Libtmux.Environment.t.scope","publicId":"Libtmux.Environment.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":800,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":800,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.t","type":"scope","qualifiedName":"Libtmux.Environment.scope","slug":"libtmux-environment-t-scope"},{"id":"Libtmux.Environment.t.source","publicId":"Libtmux.Environment.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":799,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":799,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.t","type":"Source.t","qualifiedName":"Libtmux.Environment.source","slug":"libtmux-environment-t-source"},{"id":"Libtmux.Environment.t.started_at_ns","publicId":"Libtmux.Environment.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":803,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":803,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.started_at_ns","slug":"libtmux-environment-t-started_at_ns"},{"id":"Libtmux.Environment.value","publicId":"Libtmux.Environment.value","qualifiedName":"Libtmux.Environment.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Value of string | Removed","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type value =\n | Value of string \n | Removed ","params":[]}],"slug":"libtmux-environment-value"},{"id":"Libtmux.Environment.value.Removed","publicId":"Libtmux.Environment.value.Removed","name":"Removed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Removed","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.value","variant":"unit","qualifiedName":"Libtmux.Environment.Removed","slug":"libtmux-environment-value-removed"},{"id":"Libtmux.Environment.value.Value","publicId":"Libtmux.Environment.value.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Value of string","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.value","variant":"tuple","qualifiedName":"Libtmux.Environment.Value","slug":"libtmux-environment-value-value"},{"id":"Libtmux.Error","publicId":"Libtmux.Error","qualifiedName":"Libtmux.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Expected input, capture, capability and transport failures. Cancellation\n belongs to the chosen backend and is not converted into an ordinary error.\n"],"declarations":[{"kind":"module","text":"module Error : sig\n type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Expected input, capture, capability and transport failures. Cancellation belongs to the chosen backend and is not converted into an ordinary error."},"slug":"libtmux-error"},{"id":"Libtmux.Error.pp","publicId":"Libtmux.Error.pp","qualifiedName":"Libtmux.Error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":78,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":78,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-error-pp"},{"id":"Libtmux.Error.t","publicId":"Libtmux.Error.t","qualifiedName":"Libtmux.Error.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error","signatures":[{"raw":"type t =\n | Invalid_input of string \n | Malformed_data of string \n | Capture_raced of string \n | Unsupported_version of string \n | Unsupported_binding of string \n | Unsupported_capture_hooks \n | Unsupported of string \n | Closed \n | Disconnected of string \n | Filesystem of {\n operation: string ;\n message: string } \n | Wrong_domain \n | Busy \n | Capacity of {\n resource: string ;\n limit: int } \n | Stale_target \n | No_such_entity of {\n kind: string ;\n id: string } \n | Command_failed of {\n command: string ;\n message: string } \n | Deadline_exceeded \n | Not_started \n | Outcome_unknown of string ","params":[]}],"slug":"libtmux-error-t"},{"id":"Libtmux.Error.t.Busy","publicId":"Libtmux.Error.t.Busy","name":"Busy","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Busy","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Busy","slug":"libtmux-error-t-busy"},{"id":"Libtmux.Error.t.Capacity","publicId":"Libtmux.Error.t.Capacity","name":"Capacity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capacity of { resource : string; limit : int }","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Capacity","slug":"libtmux-error-t-capacity"},{"id":"Libtmux.Error.t.Capacity.limit","publicId":"Libtmux.Error.t.Capacity.limit","name":"limit","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"limit : int","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.Capacity","type":"int","qualifiedName":"Libtmux.Error.limit","slug":"libtmux-error-t-capacity-limit"},{"id":"Libtmux.Error.t.Capacity.resource","publicId":"Libtmux.Error.t.Capacity.resource","name":"resource","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"resource : string;","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.Capacity","type":"string","qualifiedName":"Libtmux.Error.resource","slug":"libtmux-error-t-capacity-resource"},{"id":"Libtmux.Error.t.Capture_raced","publicId":"Libtmux.Error.t.Capture_raced","name":"Capture_raced","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_raced of string","source":{"file":"lib/libtmux.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Capture_raced","slug":"libtmux-error-t-capture_raced"},{"id":"Libtmux.Error.t.Closed","publicId":"Libtmux.Error.t.Closed","name":"Closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Closed","source":{"file":"lib/libtmux.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Closed","slug":"libtmux-error-t-closed"},{"id":"Libtmux.Error.t.Command_failed","publicId":"Libtmux.Error.t.Command_failed","name":"Command_failed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command_failed of { command : string; message : string }","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Command_failed","slug":"libtmux-error-t-command_failed"},{"id":"Libtmux.Error.t.Command_failed.command","publicId":"Libtmux.Error.t.Command_failed.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : string;","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.command","slug":"libtmux-error-t-command_failed-command"},{"id":"Libtmux.Error.t.Command_failed.message","publicId":"Libtmux.Error.t.Command_failed.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-command_failed-message"},{"id":"Libtmux.Error.t.Deadline_exceeded","publicId":"Libtmux.Error.t.Deadline_exceeded","name":"Deadline_exceeded","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Deadline_exceeded","source":{"file":"lib/libtmux.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Deadline_exceeded","slug":"libtmux-error-t-deadline_exceeded"},{"id":"Libtmux.Error.t.Disconnected","publicId":"Libtmux.Error.t.Disconnected","name":"Disconnected","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Disconnected of string","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Disconnected","slug":"libtmux-error-t-disconnected"},{"id":"Libtmux.Error.t.Filesystem","publicId":"Libtmux.Error.t.Filesystem","name":"Filesystem","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Filesystem of { operation : string; message : string }","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Filesystem","slug":"libtmux-error-t-filesystem"},{"id":"Libtmux.Error.t.Filesystem.message","publicId":"Libtmux.Error.t.Filesystem.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-filesystem-message"},{"id":"Libtmux.Error.t.Filesystem.operation","publicId":"Libtmux.Error.t.Filesystem.operation","name":"operation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation : string;","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.operation","slug":"libtmux-error-t-filesystem-operation"},{"id":"Libtmux.Error.t.Invalid_input","publicId":"Libtmux.Error.t.Invalid_input","name":"Invalid_input","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Invalid_input of string","source":{"file":"lib/libtmux.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Invalid_input","slug":"libtmux-error-t-invalid_input"},{"id":"Libtmux.Error.t.Malformed_data","publicId":"Libtmux.Error.t.Malformed_data","name":"Malformed_data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Malformed_data of string","source":{"file":"lib/libtmux.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Malformed_data","slug":"libtmux-error-t-malformed_data"},{"id":"Libtmux.Error.t.No_such_entity","publicId":"Libtmux.Error.t.No_such_entity","name":"No_such_entity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| No_such_entity of { kind : string; id : string }","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.No_such_entity","slug":"libtmux-error-t-no_such_entity"},{"id":"Libtmux.Error.t.No_such_entity.id","publicId":"Libtmux.Error.t.No_such_entity.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : string","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.id","slug":"libtmux-error-t-no_such_entity-id"},{"id":"Libtmux.Error.t.No_such_entity.kind","publicId":"Libtmux.Error.t.No_such_entity.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : string;","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.kind","slug":"libtmux-error-t-no_such_entity-kind"},{"id":"Libtmux.Error.t.Not_started","publicId":"Libtmux.Error.t.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"lib/libtmux.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Not_started","slug":"libtmux-error-t-not_started"},{"id":"Libtmux.Error.t.Outcome_unknown","publicId":"Libtmux.Error.t.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Outcome_unknown","slug":"libtmux-error-t-outcome_unknown"},{"id":"Libtmux.Error.t.Stale_target","publicId":"Libtmux.Error.t.Stale_target","name":"Stale_target","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale_target","source":{"file":"lib/libtmux.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Stale_target","slug":"libtmux-error-t-stale_target"},{"id":"Libtmux.Error.t.Unsupported","publicId":"Libtmux.Error.t.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported of string","source":{"file":"lib/libtmux.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported","slug":"libtmux-error-t-unsupported"},{"id":"Libtmux.Error.t.Unsupported_binding","publicId":"Libtmux.Error.t.Unsupported_binding","name":"Unsupported_binding","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_binding of string","source":{"file":"lib/libtmux.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_binding","slug":"libtmux-error-t-unsupported_binding"},{"id":"Libtmux.Error.t.Unsupported_capture_hooks","publicId":"Libtmux.Error.t.Unsupported_capture_hooks","name":"Unsupported_capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_capture_hooks","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Unsupported_capture_hooks","slug":"libtmux-error-t-unsupported_capture_hooks"},{"id":"Libtmux.Error.t.Unsupported_version","publicId":"Libtmux.Error.t.Unsupported_version","name":"Unsupported_version","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_version of string","source":{"file":"lib/libtmux.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_version","slug":"libtmux-error-t-unsupported_version"},{"id":"Libtmux.Error.t.Wrong_domain","publicId":"Libtmux.Error.t.Wrong_domain","name":"Wrong_domain","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_domain","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Wrong_domain","slug":"libtmux-error-t-wrong_domain"},{"id":"Libtmux.Expr","publicId":"Libtmux.Expr","qualifiedName":"Libtmux.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":574,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Inspectable predicates whose entity and operand types are checked by the\n compiler. Combine native closures separately with [Seq.filter]. Evaluation\n follows captured relationships without acquisition or hidden caches. "],"declarations":[{"kind":"module","text":"module Expr : sig\n type 'entity t\n\n val all : 'a t list -> 'a t\n (** Boolean conjunction; the empty conjunction is true. *)\n\n val any : 'a t list -> 'a t\n (** Boolean disjunction; the empty disjunction is false. *)\n\n val not_ : 'a t -> 'a t\n\n module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end\n\n module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end\n\n module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end\n\n module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end\n\n val compile : 'a t -> 'a -> bool\n (** Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n *)\n\n val pp : Format.formatter -> 'a t -> unit\n val describe : 'a t -> string\n\n type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison\n\n type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view\n\n val view : 'a t -> 'a view\n (** Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. *)\nend","source":{"file":"lib/libtmux.mli","line":574,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Inspectable predicates whose entity and operand types are checked by the compiler. Combine native closures separately with `Seq.filter`. Evaluation follows captured relationships without acquisition or hidden caches."},"slug":"libtmux-expr"},{"id":"Libtmux.Expr.Bool","publicId":"Libtmux.Expr.Bool","qualifiedName":"Libtmux.Expr.Bool","name":"Bool","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":585,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":585,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-bool"},{"id":"Libtmux.Expr.Bool.equal","publicId":"Libtmux.Expr.Bool.equal","qualifiedName":"Libtmux.Expr.Bool.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":586,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, bool) Field.t -> bool -> 'a t","source":{"file":"lib/libtmux.mli","line":586,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val equal : ('a, bool) Field.t -> bool -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"},{"name":"arg2","type":"bool"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-equal"},{"id":"Libtmux.Expr.Bool.is_false","publicId":"Libtmux.Expr.Bool.is_false","qualifiedName":"Libtmux.Expr.Bool.is_false","name":"is_false","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":588,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_false : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":588,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_false : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_false"},{"id":"Libtmux.Expr.Bool.is_true","publicId":"Libtmux.Expr.Bool.is_true","qualifiedName":"Libtmux.Expr.Bool.is_true","name":"is_true","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_true : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_true : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_true"},{"id":"Libtmux.Expr.Int","publicId":"Libtmux.Expr.Int","qualifiedName":"Libtmux.Expr.Int","name":"Int","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":591,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":591,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-int"},{"id":"Libtmux.Expr.Int.equal","publicId":"Libtmux.Expr.Int.equal","qualifiedName":"Libtmux.Expr.Int.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":592,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":592,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val equal : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-equal"},{"id":"Libtmux.Expr.Int.ge","publicId":"Libtmux.Expr.Int.ge","qualifiedName":"Libtmux.Expr.Int.ge","name":"ge","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ge : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val ge : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-ge"},{"id":"Libtmux.Expr.Int.gt","publicId":"Libtmux.Expr.Int.gt","qualifiedName":"Libtmux.Expr.Int.gt","name":"gt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":595,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val gt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":595,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val gt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-gt"},{"id":"Libtmux.Expr.Int.is_in","publicId":"Libtmux.Expr.Int.is_in","qualifiedName":"Libtmux.Expr.Int.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_in : ('a, int) Field.t -> int list -> 'a t","source":{"file":"lib/libtmux.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val is_in : ('a, int) Field.t -> int list -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int list"}],"returns":"'a t"}],"slug":"libtmux-expr-int-is_in"},{"id":"Libtmux.Expr.Int.le","publicId":"Libtmux.Expr.Int.le","qualifiedName":"Libtmux.Expr.Int.le","name":"le","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":594,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val le : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":594,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val le : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-le"},{"id":"Libtmux.Expr.Int.lt","publicId":"Libtmux.Expr.Int.lt","qualifiedName":"Libtmux.Expr.Int.lt","name":"lt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":593,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val lt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":593,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val lt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-lt"},{"id":"Libtmux.Expr.Rel","publicId":"Libtmux.Expr.Rel","qualifiedName":"Libtmux.Expr.Rel","name":"Rel","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":611,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":611,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-rel"},{"id":"Libtmux.Expr.Rel.all","publicId":"Libtmux.Expr.Rel.all","qualifiedName":"Libtmux.Expr.Rel.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":613,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":613,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-all"},{"id":"Libtmux.Expr.Rel.any","publicId":"Libtmux.Expr.Rel.any","qualifiedName":"Libtmux.Expr.Rel.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-any"},{"id":"Libtmux.Expr.Rel.exists","publicId":"Libtmux.Expr.Rel.exists","qualifiedName":"Libtmux.Expr.Rel.exists","name":"exists","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-exists"},{"id":"Libtmux.Expr.Rel.is","publicId":"Libtmux.Expr.Rel.is","qualifiedName":"Libtmux.Expr.Rel.is","name":"is","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":619,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":619,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.One.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is"},{"id":"Libtmux.Expr.Rel.is_absent","publicId":"Libtmux.Expr.Rel.is_absent","qualifiedName":"Libtmux.Expr.Rel.is_absent","name":"is_absent","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","source":{"file":"lib/libtmux.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is_absent"},{"id":"Libtmux.Expr.Rel.none","publicId":"Libtmux.Expr.Rel.none","qualifiedName":"Libtmux.Expr.Rel.none","name":"none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":615,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. "],"declarations":[{"kind":"function","text":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":615,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Rel","doc":{"summary":"On empty relations, `any` is false; `all` and `none` are true. One child must satisfy the complete nested expression."},"signatures":[{"raw":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-none"},{"id":"Libtmux.Expr.Text","publicId":"Libtmux.Expr.Text","qualifiedName":"Libtmux.Expr.Text","name":"Text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end","source":{"file":"lib/libtmux.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-text"},{"id":"Libtmux.Expr.Text.contains","publicId":"Libtmux.Expr.Text.contains","qualifiedName":"Libtmux.Expr.Text.contains","name":"contains","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":604,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val contains : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":604,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val contains : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-contains"},{"id":"Libtmux.Expr.Text.ends_with","publicId":"Libtmux.Expr.Text.ends_with","qualifiedName":"Libtmux.Expr.Text.ends_with","name":"ends_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":603,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ends_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":603,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val ends_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-ends_with"},{"id":"Libtmux.Expr.Text.equal","publicId":"Libtmux.Expr.Text.equal","qualifiedName":"Libtmux.Expr.Text.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":601,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":601,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val equal : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-equal"},{"id":"Libtmux.Expr.Text.is_in","publicId":"Libtmux.Expr.Text.is_in","qualifiedName":"Libtmux.Expr.Text.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":606,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. "],"declarations":[{"kind":"function","text":"val is_in : ('a, string) Field.t -> string list -> 'a t","source":{"file":"lib/libtmux.mli","line":606,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Text","doc":{"summary":"Comparisons use exact bytes, without case folding or normalization. The empty substring matches every string."},"signatures":[{"raw":"val is_in : ('a, string) Field.t -> string list -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string list"}],"returns":"'a t"}],"slug":"libtmux-expr-text-is_in"},{"id":"Libtmux.Expr.Text.starts_with","publicId":"Libtmux.Expr.Text.starts_with","qualifiedName":"Libtmux.Expr.Text.starts_with","name":"starts_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val starts_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val starts_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-starts_with"},{"id":"Libtmux.Expr.all","publicId":"Libtmux.Expr.all","qualifiedName":"Libtmux.Expr.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":577,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Boolean conjunction; the empty conjunction is true. "],"declarations":[{"kind":"function","text":"val all : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":577,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean conjunction; the empty conjunction is true."},"signatures":[{"raw":"val all : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-all"},{"id":"Libtmux.Expr.any","publicId":"Libtmux.Expr.any","qualifiedName":"Libtmux.Expr.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":580,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Boolean disjunction; the empty disjunction is false. "],"declarations":[{"kind":"function","text":"val any : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":580,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean disjunction; the empty disjunction is false."},"signatures":[{"raw":"val any : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-any"},{"id":"Libtmux.Expr.comparison","publicId":"Libtmux.Expr.comparison","qualifiedName":"Libtmux.Expr.comparison","name":"comparison","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":631,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":631,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type _ comparison =\n | Bool_equal: bool -> bool comparison \n | Int_equal: int -> int comparison \n | Int_lt: int -> int comparison \n | Int_le: int -> int comparison \n | Int_gt: int -> int comparison \n | Int_ge: int -> int comparison \n | Int_in: int list -> int comparison \n | Text_equal: string -> string comparison \n | Text_starts_with: string -> string comparison \n | Text_ends_with: string -> string comparison \n | Text_contains: string -> string comparison \n | Text_in: string list -> string comparison ","params":[]}],"slug":"libtmux-expr-comparison"},{"id":"Libtmux.Expr.comparison.Bool_equal","publicId":"Libtmux.Expr.comparison.Bool_equal","name":"Bool_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":632,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool_equal : bool -> bool comparison","source":{"file":"lib/libtmux.mli","line":632,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Bool_equal","slug":"libtmux-expr-comparison-bool_equal"},{"id":"Libtmux.Expr.comparison.Int_equal","publicId":"Libtmux.Expr.comparison.Int_equal","name":"Int_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_equal : int -> int comparison","source":{"file":"lib/libtmux.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_equal","slug":"libtmux-expr-comparison-int_equal"},{"id":"Libtmux.Expr.comparison.Int_ge","publicId":"Libtmux.Expr.comparison.Int_ge","name":"Int_ge","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":637,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_ge : int -> int comparison","source":{"file":"lib/libtmux.mli","line":637,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_ge","slug":"libtmux-expr-comparison-int_ge"},{"id":"Libtmux.Expr.comparison.Int_gt","publicId":"Libtmux.Expr.comparison.Int_gt","name":"Int_gt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":636,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_gt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":636,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_gt","slug":"libtmux-expr-comparison-int_gt"},{"id":"Libtmux.Expr.comparison.Int_in","publicId":"Libtmux.Expr.comparison.Int_in","name":"Int_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":638,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_in : int list -> int comparison","source":{"file":"lib/libtmux.mli","line":638,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_in","slug":"libtmux-expr-comparison-int_in"},{"id":"Libtmux.Expr.comparison.Int_le","publicId":"Libtmux.Expr.comparison.Int_le","name":"Int_le","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_le : int -> int comparison","source":{"file":"lib/libtmux.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_le","slug":"libtmux-expr-comparison-int_le"},{"id":"Libtmux.Expr.comparison.Int_lt","publicId":"Libtmux.Expr.comparison.Int_lt","name":"Int_lt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":634,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_lt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":634,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_lt","slug":"libtmux-expr-comparison-int_lt"},{"id":"Libtmux.Expr.comparison.Text_contains","publicId":"Libtmux.Expr.comparison.Text_contains","name":"Text_contains","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":642,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_contains : string -> string comparison","source":{"file":"lib/libtmux.mli","line":642,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_contains","slug":"libtmux-expr-comparison-text_contains"},{"id":"Libtmux.Expr.comparison.Text_ends_with","publicId":"Libtmux.Expr.comparison.Text_ends_with","name":"Text_ends_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":641,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_ends_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":641,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_ends_with","slug":"libtmux-expr-comparison-text_ends_with"},{"id":"Libtmux.Expr.comparison.Text_equal","publicId":"Libtmux.Expr.comparison.Text_equal","name":"Text_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":639,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_equal : string -> string comparison","source":{"file":"lib/libtmux.mli","line":639,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_equal","slug":"libtmux-expr-comparison-text_equal"},{"id":"Libtmux.Expr.comparison.Text_in","publicId":"Libtmux.Expr.comparison.Text_in","name":"Text_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":643,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":643,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_in","slug":"libtmux-expr-comparison-text_in"},{"id":"Libtmux.Expr.comparison.Text_starts_with","publicId":"Libtmux.Expr.comparison.Text_starts_with","name":"Text_starts_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":640,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_starts_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":640,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_starts_with","slug":"libtmux-expr-comparison-text_starts_with"},{"id":"Libtmux.Expr.compile","publicId":"Libtmux.Expr.compile","qualifiedName":"Libtmux.Expr.compile","name":"compile","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n "],"declarations":[{"kind":"function","text":"val compile : 'a t -> 'a -> bool","source":{"file":"lib/libtmux.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","doc":{"summary":"Prepare a reusable predicate. Compilation and evaluation perform no I/O."},"signatures":[{"raw":"val compile : 'a t -> 'a -> bool","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"'a"}],"returns":"bool"}],"slug":"libtmux-expr-compile"},{"id":"Libtmux.Expr.describe","publicId":"Libtmux.Expr.describe","qualifiedName":"Libtmux.Expr.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : 'a t -> string","source":{"file":"lib/libtmux.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val describe : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-expr-describe"},{"id":"Libtmux.Expr.not_","publicId":"Libtmux.Expr.not_","qualifiedName":"Libtmux.Expr.not_","name":"not_","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":583,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val not_ : 'a t -> 'a t","source":{"file":"lib/libtmux.mli","line":583,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val not_ : 'a t -> 'a t","params":[{"name":"arg1","type":"'a t"}],"returns":"'a t"}],"slug":"libtmux-expr-not_"},{"id":"Libtmux.Expr.pp","publicId":"Libtmux.Expr.pp","qualifiedName":"Libtmux.Expr.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":628,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> 'a t -> unit","source":{"file":"lib/libtmux.mli","line":628,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val pp : Format.formatter -> 'a t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"'a t"}],"returns":"unit"}],"slug":"libtmux-expr-pp"},{"id":"Libtmux.Expr.t","publicId":"Libtmux.Expr.t","qualifiedName":"Libtmux.Expr.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'entity t","source":{"file":"lib/libtmux.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'entity t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-expr-t"},{"id":"Libtmux.Expr.view","publicId":"Libtmux.Expr.view","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":657,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":657,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","doc":{"summary":"Typed read-only inspection for codecs and planners. A view cannot add custom accessors or closures to an expression."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-expr-view"},{"id":"Libtmux.Expr.view:type","publicId":"Libtmux.Expr.view:type","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'a view =\n | Compare: ('a, 'v) Field.t * 'v comparison -> 'a view \n | All of 'a t list \n | Any of 'a t list \n | Not of 'a t \n | Related_any: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_all: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_none: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_one: ('a, 'b) Relation.One.t * 'b t -> 'a view \n | Related_optional: ('a, 'b) Relation.Optional.t * 'b t -> 'a view \n | Absent: ('a, 'b) Relation.Optional.t -> 'a view ","params":[]}],"slug":"libtmux-expr-view-type"},{"id":"Libtmux.Expr.view:type.Absent","publicId":"Libtmux.Expr.view:type.Absent","name":"Absent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":655,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":655,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Absent","slug":"libtmux-expr-view-type-absent"},{"id":"Libtmux.Expr.view:type.All","publicId":"Libtmux.Expr.view:type.All","name":"All","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":647,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| All of 'a t list","source":{"file":"lib/libtmux.mli","line":647,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.All","slug":"libtmux-expr-view-type-all"},{"id":"Libtmux.Expr.view:type.Any","publicId":"Libtmux.Expr.view:type.Any","name":"Any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":648,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Any of 'a t list","source":{"file":"lib/libtmux.mli","line":648,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Any","slug":"libtmux-expr-view-type-any"},{"id":"Libtmux.Expr.view:type.Compare","publicId":"Libtmux.Expr.view:type.Compare","name":"Compare","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":646,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Compare : ('a, 'v) Field.t * 'v comparison -> 'a view","source":{"file":"lib/libtmux.mli","line":646,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Compare","slug":"libtmux-expr-view-type-compare"},{"id":"Libtmux.Expr.view:type.Not","publicId":"Libtmux.Expr.view:type.Not","name":"Not","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":649,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not of 'a t","source":{"file":"lib/libtmux.mli","line":649,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Not","slug":"libtmux-expr-view-type-not"},{"id":"Libtmux.Expr.view:type.Related_all","publicId":"Libtmux.Expr.view:type.Related_all","name":"Related_all","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":651,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":651,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_all","slug":"libtmux-expr-view-type-related_all"},{"id":"Libtmux.Expr.view:type.Related_any","publicId":"Libtmux.Expr.view:type.Related_any","name":"Related_any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":650,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":650,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_any","slug":"libtmux-expr-view-type-related_any"},{"id":"Libtmux.Expr.view:type.Related_none","publicId":"Libtmux.Expr.view:type.Related_none","name":"Related_none","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":652,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":652,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_none","slug":"libtmux-expr-view-type-related_none"},{"id":"Libtmux.Expr.view:type.Related_one","publicId":"Libtmux.Expr.view:type.Related_one","name":"Related_one","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":653,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":653,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_one","slug":"libtmux-expr-view-type-related_one"},{"id":"Libtmux.Expr.view:type.Related_optional","publicId":"Libtmux.Expr.view:type.Related_optional","name":"Related_optional","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":654,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":654,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_optional","slug":"libtmux-expr-view-type-related_optional"},{"id":"Libtmux.Field","publicId":"Libtmux.Field","qualifiedName":"Libtmux.Field","name":"Field","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":143,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Sealed scalar descriptors carrying entity and value types. Descriptors read\n captured data and provide trusted identities for {!Expr} values. Use\n {!Relation} for graph edges. "],"declarations":[{"kind":"module","text":"module Field : sig\n type _ kind = Bool : bool kind | Int : int kind | Text : string kind\n type ('entity, 'value) t\n type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed\n\n val name : ('entity, 'value) t -> string\n val kind : ('entity, 'value) t -> 'value kind\n\n val get : ('entity, 'value) t -> 'entity -> 'value\n (** Canonical descriptors are sealed. Accessing a field reads captured data.\n *)\nend","source":{"file":"lib/libtmux.mli","line":143,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Sealed scalar descriptors carrying entity and value types. Descriptors read captured data and provide trusted identities for {!Expr} values. Use {!Relation} for graph edges."},"slug":"libtmux-field"},{"id":"Libtmux.Field.get","publicId":"Libtmux.Field.get","qualifiedName":"Libtmux.Field.get","name":"get","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Canonical descriptors are sealed. Accessing a field reads captured data.\n "],"declarations":[{"kind":"function","text":"val get : ('entity, 'value) t -> 'entity -> 'value","source":{"file":"lib/libtmux.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field","doc":{"summary":"Canonical descriptors are sealed. Accessing a field reads captured data."},"signatures":[{"raw":"val get : ('entity, 'value) t -> 'entity -> 'value","params":[{"name":"arg1","type":"('entity, 'value) t"},{"name":"arg2","type":"'entity"}],"returns":"'value"}],"slug":"libtmux-field-get"},{"id":"Libtmux.Field.kind","publicId":"Libtmux.Field.kind","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : ('entity, 'value) t -> 'value kind","source":{"file":"lib/libtmux.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val kind : ('entity, 'value) t -> 'value kind","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"'value kind"}],"slug":"libtmux-field-kind"},{"id":"Libtmux.Field.kind:type","publicId":"Libtmux.Field.kind:type","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type _ kind =\n | Bool: bool kind \n | Int: int kind \n | Text: string kind ","params":[]}],"slug":"libtmux-field-kind-type"},{"id":"Libtmux.Field.kind:type.Bool","publicId":"Libtmux.Field.kind:type.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool : bool kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Bool","slug":"libtmux-field-kind-type-bool"},{"id":"Libtmux.Field.kind:type.Int","publicId":"Libtmux.Field.kind:type.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int : int kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Int","slug":"libtmux-field-kind-type-int"},{"id":"Libtmux.Field.kind:type.Text","publicId":"Libtmux.Field.kind:type.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text : string kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Text","slug":"libtmux-field-kind-type-text"},{"id":"Libtmux.Field.name","publicId":"Libtmux.Field.name","qualifiedName":"Libtmux.Field.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('entity, 'value) t -> string","source":{"file":"lib/libtmux.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val name : ('entity, 'value) t -> string","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"string"}],"slug":"libtmux-field-name"},{"id":"Libtmux.Field.packed","publicId":"Libtmux.Field.packed","qualifiedName":"Libtmux.Field.packed","name":"packed","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type 'entity packed =\n | Pack: ('entity, 'value) t -> 'entity packed ","params":[]}],"slug":"libtmux-field-packed"},{"id":"Libtmux.Field.packed.Pack","publicId":"Libtmux.Field.packed.Pack","name":"Pack","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field.packed","variant":"tuple","qualifiedName":"Libtmux.Field.Pack","slug":"libtmux-field-packed-pack"},{"id":"Libtmux.Field.t","publicId":"Libtmux.Field.t","qualifiedName":"Libtmux.Field.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":145,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('entity, 'value) t","source":{"file":"lib/libtmux.mli","line":145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type ('entity, 'value) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-field-t"},{"id":"Libtmux.Formats","publicId":"Libtmux.Formats","qualifiedName":"Libtmux.Formats","name":"Formats","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Formats : sig\n module Kind : sig\n type t = Text | Timestamp\n end\n\n module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }\n (** Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. *)\n\n type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t\n\n type scalar = Bool of bool | Int of int | Text of string\n\n type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported\n (** [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor option, Error.t) result\n\n val lookup :\n version:string -> observation -> string -> (state, Error.t) result\n (** No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. *)\nend","source":{"file":"lib/libtmux.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-formats"},{"id":"Libtmux.Formats.Context","publicId":"Libtmux.Formats.Context","qualifiedName":"Libtmux.Formats.Context","name":"Context","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":500,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end","source":{"file":"lib/libtmux.mli","line":500,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-context"},{"id":"Libtmux.Formats.Context.t","publicId":"Libtmux.Formats.Context.t","qualifiedName":"Libtmux.Formats.Context.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":501,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","source":{"file":"lib/libtmux.mli","line":501,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context","signatures":[{"raw":"type t =\n | Server \n | Connection \n | Session \n | Window \n | Window_link \n | Pane \n | Client \n | Buffer \n | Mouse \n | Command ","params":[]}],"slug":"libtmux-formats-context-t"},{"id":"Libtmux.Formats.Context.t.Buffer","publicId":"Libtmux.Formats.Context.t.Buffer","name":"Buffer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":509,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Buffer","source":{"file":"lib/libtmux.mli","line":509,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Buffer","slug":"libtmux-formats-context-t-buffer"},{"id":"Libtmux.Formats.Context.t.Client","publicId":"Libtmux.Formats.Context.t.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":508,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client","source":{"file":"lib/libtmux.mli","line":508,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Client","slug":"libtmux-formats-context-t-client"},{"id":"Libtmux.Formats.Context.t.Command","publicId":"Libtmux.Formats.Context.t.Command","name":"Command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":511,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command","source":{"file":"lib/libtmux.mli","line":511,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Command","slug":"libtmux-formats-context-t-command"},{"id":"Libtmux.Formats.Context.t.Connection","publicId":"Libtmux.Formats.Context.t.Connection","name":"Connection","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Connection","source":{"file":"lib/libtmux.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Connection","slug":"libtmux-formats-context-t-connection"},{"id":"Libtmux.Formats.Context.t.Mouse","publicId":"Libtmux.Formats.Context.t.Mouse","name":"Mouse","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mouse","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Mouse","slug":"libtmux-formats-context-t-mouse"},{"id":"Libtmux.Formats.Context.t.Pane","publicId":"Libtmux.Formats.Context.t.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":507,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane","source":{"file":"lib/libtmux.mli","line":507,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Pane","slug":"libtmux-formats-context-t-pane"},{"id":"Libtmux.Formats.Context.t.Server","publicId":"Libtmux.Formats.Context.t.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Server","slug":"libtmux-formats-context-t-server"},{"id":"Libtmux.Formats.Context.t.Session","publicId":"Libtmux.Formats.Context.t.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":504,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session","source":{"file":"lib/libtmux.mli","line":504,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Session","slug":"libtmux-formats-context-t-session"},{"id":"Libtmux.Formats.Context.t.Window","publicId":"Libtmux.Formats.Context.t.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window","source":{"file":"lib/libtmux.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window","slug":"libtmux-formats-context-t-window"},{"id":"Libtmux.Formats.Context.t.Window_link","publicId":"Libtmux.Formats.Context.t.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":506,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link","source":{"file":"lib/libtmux.mli","line":506,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window_link","slug":"libtmux-formats-context-t-window_link"},{"id":"Libtmux.Formats.Kind","publicId":"Libtmux.Formats.Kind","qualifiedName":"Libtmux.Formats.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":496,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Timestamp\n end","source":{"file":"lib/libtmux.mli","line":496,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-kind"},{"id":"Libtmux.Formats.Kind.t","publicId":"Libtmux.Formats.Kind.t","qualifiedName":"Libtmux.Formats.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Timestamp","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Kind","signatures":[{"raw":"type t =\n | Text \n | Timestamp ","params":[]}],"slug":"libtmux-formats-kind-t"},{"id":"Libtmux.Formats.Kind.t.Text","publicId":"Libtmux.Formats.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Text","slug":"libtmux-formats-kind-t-text"},{"id":"Libtmux.Formats.Kind.t.Timestamp","publicId":"Libtmux.Formats.Kind.t.Timestamp","name":"Timestamp","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Timestamp","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Timestamp","slug":"libtmux-formats-kind-t-timestamp"},{"id":"Libtmux.Formats.catalog","publicId":"Libtmux.Formats.catalog","qualifiedName":"Libtmux.Formats.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-formats-catalog"},{"id":"Libtmux.Formats.describe","publicId":"Libtmux.Formats.describe","qualifiedName":"Libtmux.Formats.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":547,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor option, Error.t) result","source":{"file":"lib/libtmux.mli","line":547,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val describe :\n version:string -> string -> (descriptor option, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor option, Error.t) result"}],"slug":"libtmux-formats-describe"},{"id":"Libtmux.Formats.descriptor","publicId":"Libtmux.Formats.descriptor","qualifiedName":"Libtmux.Formats.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":514,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":514,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","doc":{"summary":"Metadata generated from pinned tmux format callbacks. `contexts` lists direct context dependencies, not a promise that a value exists. Caller variables from hooks and menus are outside this built-in catalog."},"signatures":[{"raw":"type descriptor =\n {\n name: string ;\n kind: Kind.t ;\n contexts: Context.t list ;\n versions: string list }","params":[]}],"slug":"libtmux-formats-descriptor"},{"id":"Libtmux.Formats.descriptor.contexts","publicId":"Libtmux.Formats.descriptor.contexts","name":"contexts","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":517,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"contexts : Context.t list;","source":{"file":"lib/libtmux.mli","line":517,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.descriptor","type":"Context.t list","qualifiedName":"Libtmux.Formats.contexts","slug":"libtmux-formats-descriptor-contexts"},{"id":"Libtmux.Formats.descriptor.kind","publicId":"Libtmux.Formats.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":516,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":516,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Formats.kind","slug":"libtmux-formats-descriptor-kind"},{"id":"Libtmux.Formats.descriptor.name","publicId":"Libtmux.Formats.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":515,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":515,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.descriptor","type":"string","qualifiedName":"Libtmux.Formats.name","slug":"libtmux-formats-descriptor-name"},{"id":"Libtmux.Formats.descriptor.versions","publicId":"Libtmux.Formats.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":518,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":518,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.descriptor","type":"string list","qualifiedName":"Libtmux.Formats.versions","slug":"libtmux-formats-descriptor-versions"},{"id":"Libtmux.Formats.lookup","publicId":"Libtmux.Formats.lookup","qualifiedName":"Libtmux.Formats.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":549,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. "],"declarations":[{"kind":"function","text":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","source":{"file":"lib/libtmux.mli","line":549,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","doc":{"summary":"No I/O. Supply the version recorded by the acquiring client's `version` accessor. Unsupported catalog versions return an error. Native typed accessors remain the primary API; lookup does not acquire extra fields."},"signatures":[{"raw":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"observation"},{"name":"arg2","type":"string"}],"returns":"(state, Error.t) result"}],"slug":"libtmux-formats-lookup"},{"id":"Libtmux.Formats.observation","publicId":"Libtmux.Formats.observation","qualifiedName":"Libtmux.Formats.observation","name":"observation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":524,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":524,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type observation =\n | Snapshot of Snapshot.t \n | Session of Session.t \n | Window of Window.t \n | Window_link of Window_link.t \n | Pane of Pane.t \n | Client of Client_observation.t ","params":[]}],"slug":"libtmux-formats-observation"},{"id":"Libtmux.Formats.observation.Client","publicId":"Libtmux.Formats.observation.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":530,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":530,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Client","slug":"libtmux-formats-observation-client"},{"id":"Libtmux.Formats.observation.Pane","publicId":"Libtmux.Formats.observation.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":529,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.t","source":{"file":"lib/libtmux.mli","line":529,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Pane","slug":"libtmux-formats-observation-pane"},{"id":"Libtmux.Formats.observation.Session","publicId":"Libtmux.Formats.observation.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":526,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.t","source":{"file":"lib/libtmux.mli","line":526,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Session","slug":"libtmux-formats-observation-session"},{"id":"Libtmux.Formats.observation.Snapshot","publicId":"Libtmux.Formats.observation.Snapshot","name":"Snapshot","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Snapshot of Snapshot.t","source":{"file":"lib/libtmux.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Snapshot","slug":"libtmux-formats-observation-snapshot"},{"id":"Libtmux.Formats.observation.Window","publicId":"Libtmux.Formats.observation.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":527,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.t","source":{"file":"lib/libtmux.mli","line":527,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window","slug":"libtmux-formats-observation-window"},{"id":"Libtmux.Formats.observation.Window_link","publicId":"Libtmux.Formats.observation.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":528,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link of Window_link.t","source":{"file":"lib/libtmux.mli","line":528,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window_link","slug":"libtmux-formats-observation-window_link"},{"id":"Libtmux.Formats.scalar","publicId":"Libtmux.Formats.scalar","qualifiedName":"Libtmux.Formats.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar = Bool of bool | Int of int | Text of string","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type scalar =\n | Bool of bool \n | Int of int \n | Text of string ","params":[]}],"slug":"libtmux-formats-scalar"},{"id":"Libtmux.Formats.scalar.Bool","publicId":"Libtmux.Formats.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool of bool","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Bool","slug":"libtmux-formats-scalar-bool"},{"id":"Libtmux.Formats.scalar.Int","publicId":"Libtmux.Formats.scalar.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int of int","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Int","slug":"libtmux-formats-scalar-int"},{"id":"Libtmux.Formats.scalar.Text","publicId":"Libtmux.Formats.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Text","slug":"libtmux-formats-scalar-text"},{"id":"Libtmux.Formats.state","publicId":"Libtmux.Formats.state","qualifiedName":"Libtmux.Formats.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":534,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported","source":{"file":"lib/libtmux.mli","line":534,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type state =\n | Value of scalar \n | Missing \n | Unacquired \n | Unsupported ","params":[]}],"slug":"libtmux-formats-state"},{"id":"Libtmux.Formats.state.Missing","publicId":"Libtmux.Formats.state.Missing","name":"Missing","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":536,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing","source":{"file":"lib/libtmux.mli","line":536,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Missing","slug":"libtmux-formats-state-missing"},{"id":"Libtmux.Formats.state.Unacquired","publicId":"Libtmux.Formats.state.Unacquired","name":"Unacquired","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unacquired","source":{"file":"lib/libtmux.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Unacquired","slug":"libtmux-formats-state-unacquired"},{"id":"Libtmux.Formats.state.Unsupported","publicId":"Libtmux.Formats.state.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":538,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. "],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"lib/libtmux.mli","line":538,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.state","doc":{"summary":"`Missing` is an absence explicitly recorded in the observation, such as a client without terminal height. `Unacquired` means no captured value for this observation, including ambiguous session context for a pane. `Unsupported` means the name is outside the selected release's catalog. `Value (Text \"\")` is a captured empty string, never inferred absence."},"variant":"unit","qualifiedName":"Libtmux.Formats.Unsupported","slug":"libtmux-formats-state-unsupported"},{"id":"Libtmux.Formats.state.Value","publicId":"Libtmux.Formats.state.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":535,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Value of scalar","source":{"file":"lib/libtmux.mli","line":535,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.state","variant":"tuple","qualifiedName":"Libtmux.Formats.Value","slug":"libtmux-formats-state-value"},{"id":"Libtmux.Generation","publicId":"Libtmux.Generation","qualifiedName":"Libtmux.Generation","name":"Generation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A random connection-generation identifier. Reconnecting creates a new\n generation even when the socket and server PID are unchanged. "],"declarations":[{"kind":"module","text":"module Generation : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"A random connection-generation identifier. Reconnecting creates a new generation even when the socket and server PID are unchanged."},"slug":"libtmux-generation"},{"id":"Libtmux.Generation.equal","publicId":"Libtmux.Generation.equal","qualifiedName":"Libtmux.Generation.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-generation-equal"},{"id":"Libtmux.Generation.of_string","publicId":"Libtmux.Generation.of_string","qualifiedName":"Libtmux.Generation.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Generation","doc":{"summary":"Import a 256-bit connection nonce as 64 lowercase hexadecimal characters. Backends generate a fresh random nonce for each connection."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-generation-of_string"},{"id":"Libtmux.Generation.t","publicId":"Libtmux.Generation.t","qualifiedName":"Libtmux.Generation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":84,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":84,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-generation-t"},{"id":"Libtmux.Generation.to_string","publicId":"Libtmux.Generation.to_string","qualifiedName":"Libtmux.Generation.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-generation-to_string"},{"id":"Libtmux.Geometry","publicId":"Libtmux.Geometry","qualifiedName":"Libtmux.Geometry","name":"Geometry","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Geometry : sig\n type direction = Left | Right | Above | Below\n type size = Cells of int | Percent of int\nend","source":{"file":"lib/libtmux.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-geometry"},{"id":"Libtmux.Geometry.direction","publicId":"Libtmux.Geometry.direction","qualifiedName":"Libtmux.Geometry.direction","name":"direction","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type direction = Left | Right | Above | Below","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type direction =\n | Left \n | Right \n | Above \n | Below ","params":[]}],"slug":"libtmux-geometry-direction"},{"id":"Libtmux.Geometry.direction.Above","publicId":"Libtmux.Geometry.direction.Above","name":"Above","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Above","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Above","slug":"libtmux-geometry-direction-above"},{"id":"Libtmux.Geometry.direction.Below","publicId":"Libtmux.Geometry.direction.Below","name":"Below","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Below","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Below","slug":"libtmux-geometry-direction-below"},{"id":"Libtmux.Geometry.direction.Left","publicId":"Libtmux.Geometry.direction.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Left","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Left","slug":"libtmux-geometry-direction-left"},{"id":"Libtmux.Geometry.direction.Right","publicId":"Libtmux.Geometry.direction.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Right","slug":"libtmux-geometry-direction-right"},{"id":"Libtmux.Geometry.size","publicId":"Libtmux.Geometry.size","qualifiedName":"Libtmux.Geometry.size","name":"size","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type size = Cells of int | Percent of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type size =\n | Cells of int \n | Percent of int ","params":[]}],"slug":"libtmux-geometry-size"},{"id":"Libtmux.Geometry.size.Cells","publicId":"Libtmux.Geometry.size.Cells","name":"Cells","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Cells of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Cells","slug":"libtmux-geometry-size-cells"},{"id":"Libtmux.Geometry.size.Percent","publicId":"Libtmux.Geometry.size.Percent","name":"Percent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Percent of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Percent","slug":"libtmux-geometry-size-percent"},{"id":"Libtmux.Hook","publicId":"Libtmux.Hook","qualifiedName":"Libtmux.Hook","name":"Hook","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":873,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Hook : sig\n type command = { name : string; arguments : string list }\n (** A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. *)\nend","source":{"file":"lib/libtmux.mli","line":873,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-hook"},{"id":"Libtmux.Hook.command","publicId":"Libtmux.Hook.command","qualifiedName":"Libtmux.Hook.command","name":"command","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. "],"declarations":[{"kind":"struct","text":"type command = { name : string; arguments : string list }","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Hook","doc":{"summary":"A tmux command and its distinct arguments. Setting a hook encodes these as command data; it does not concatenate arguments into shell code. Argument-specific tmux behavior, including format expansion, still applies when the hook runs."},"signatures":[{"raw":"type command = {\n name: string ;\n arguments: string list }","params":[]}],"slug":"libtmux-hook-command"},{"id":"Libtmux.Hook.command.arguments","publicId":"Libtmux.Hook.command.arguments","name":"arguments","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"arguments : string list","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Hook.command","type":"string list","qualifiedName":"Libtmux.Hook.arguments","slug":"libtmux-hook-command-arguments"},{"id":"Libtmux.Hook.command.name","publicId":"Libtmux.Hook.command.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Hook.command","type":"string","qualifiedName":"Libtmux.Hook.name","slug":"libtmux-hook-command-name"},{"id":"Libtmux.ID","publicId":"Libtmux.ID","qualifiedName":"Libtmux.ID","name":"ID","kind":"interface","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"interface","text":"module type ID = sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Accept a canonical prefixed decimal tmux ID in the uint32 range. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\n val compare : t -> t -> int\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-id"},{"id":"Libtmux.ID.compare","publicId":"Libtmux.ID.compare","qualifiedName":"Libtmux.ID.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-id-compare"},{"id":"Libtmux.ID.equal","publicId":"Libtmux.ID.equal","qualifiedName":"Libtmux.ID.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-id-equal"},{"id":"Libtmux.ID.of_string","publicId":"Libtmux.ID.of_string","qualifiedName":"Libtmux.ID.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.ID","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-id-of_string"},{"id":"Libtmux.ID.pp","publicId":"Libtmux.ID.pp","qualifiedName":"Libtmux.ID.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-id-pp"},{"id":"Libtmux.ID.t","publicId":"Libtmux.ID.t","qualifiedName":"Libtmux.ID.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.ID","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-id-t"},{"id":"Libtmux.ID.to_string","publicId":"Libtmux.ID.to_string","qualifiedName":"Libtmux.ID.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-id-to_string"},{"id":"Libtmux.Key","publicId":"Libtmux.Key","qualifiedName":"Libtmux.Key","name":"Key","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Key : sig\n type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char\nend","source":{"file":"lib/libtmux.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-key"},{"id":"Libtmux.Key.t","publicId":"Libtmux.Key.t","qualifiedName":"Libtmux.Key.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":725,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","source":{"file":"lib/libtmux.mli","line":725,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key","signatures":[{"raw":"type t =\n | Enter \n | Tab \n | Escape \n | Backspace \n | Up \n | Down \n | Left \n | Right \n | Control of char ","params":[]}],"slug":"libtmux-key-t"},{"id":"Libtmux.Key.t.Backspace","publicId":"Libtmux.Key.t.Backspace","name":"Backspace","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Backspace","source":{"file":"lib/libtmux.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Backspace","slug":"libtmux-key-t-backspace"},{"id":"Libtmux.Key.t.Control","publicId":"Libtmux.Key.t.Control","name":"Control","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":734,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Control of char","source":{"file":"lib/libtmux.mli","line":734,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"tuple","qualifiedName":"Libtmux.Key.Control","slug":"libtmux-key-t-control"},{"id":"Libtmux.Key.t.Down","publicId":"Libtmux.Key.t.Down","name":"Down","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":731,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Down","source":{"file":"lib/libtmux.mli","line":731,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Down","slug":"libtmux-key-t-down"},{"id":"Libtmux.Key.t.Enter","publicId":"Libtmux.Key.t.Enter","name":"Enter","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":726,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Enter","source":{"file":"lib/libtmux.mli","line":726,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Enter","slug":"libtmux-key-t-enter"},{"id":"Libtmux.Key.t.Escape","publicId":"Libtmux.Key.t.Escape","name":"Escape","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":728,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Escape","source":{"file":"lib/libtmux.mli","line":728,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Escape","slug":"libtmux-key-t-escape"},{"id":"Libtmux.Key.t.Left","publicId":"Libtmux.Key.t.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":732,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Left","source":{"file":"lib/libtmux.mli","line":732,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Left","slug":"libtmux-key-t-left"},{"id":"Libtmux.Key.t.Right","publicId":"Libtmux.Key.t.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":733,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":733,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Right","slug":"libtmux-key-t-right"},{"id":"Libtmux.Key.t.Tab","publicId":"Libtmux.Key.t.Tab","name":"Tab","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":727,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tab","source":{"file":"lib/libtmux.mli","line":727,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Tab","slug":"libtmux-key-t-tab"},{"id":"Libtmux.Key.t.Up","publicId":"Libtmux.Key.t.Up","name":"Up","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":730,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Up","source":{"file":"lib/libtmux.mli","line":730,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Up","slug":"libtmux-key-t-up"},{"id":"Libtmux.Layout","publicId":"Libtmux.Layout","qualifiedName":"Libtmux.Layout","name":"Layout","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":767,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Layout : sig\n type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string\nend","source":{"file":"lib/libtmux.mli","line":767,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-layout"},{"id":"Libtmux.Layout.t","publicId":"Libtmux.Layout.t","qualifiedName":"Libtmux.Layout.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":768,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","source":{"file":"lib/libtmux.mli","line":768,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout","signatures":[{"raw":"type t =\n | Even_horizontal \n | Even_vertical \n | Main_horizontal \n | Main_vertical \n | Tiled \n | Custom of string ","params":[]}],"slug":"libtmux-layout-t"},{"id":"Libtmux.Layout.t.Custom","publicId":"Libtmux.Layout.t.Custom","name":"Custom","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Custom of string","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout.t","variant":"tuple","qualifiedName":"Libtmux.Layout.Custom","slug":"libtmux-layout-t-custom"},{"id":"Libtmux.Layout.t.Even_horizontal","publicId":"Libtmux.Layout.t.Even_horizontal","name":"Even_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":769,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_horizontal","source":{"file":"lib/libtmux.mli","line":769,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_horizontal","slug":"libtmux-layout-t-even_horizontal"},{"id":"Libtmux.Layout.t.Even_vertical","publicId":"Libtmux.Layout.t.Even_vertical","name":"Even_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":770,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_vertical","source":{"file":"lib/libtmux.mli","line":770,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_vertical","slug":"libtmux-layout-t-even_vertical"},{"id":"Libtmux.Layout.t.Main_horizontal","publicId":"Libtmux.Layout.t.Main_horizontal","name":"Main_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":771,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_horizontal","source":{"file":"lib/libtmux.mli","line":771,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_horizontal","slug":"libtmux-layout-t-main_horizontal"},{"id":"Libtmux.Layout.t.Main_vertical","publicId":"Libtmux.Layout.t.Main_vertical","name":"Main_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_vertical","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_vertical","slug":"libtmux-layout-t-main_vertical"},{"id":"Libtmux.Layout.t.Tiled","publicId":"Libtmux.Layout.t.Tiled","name":"Tiled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tiled","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Tiled","slug":"libtmux-layout-t-tiled"},{"id":"Libtmux.Model","publicId":"Libtmux.Model","qualifiedName":"Libtmux.Model","name":"Model","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Built-in model witnesses and canonical field lookup for typed codecs.\n Untrusted field names must resolve against the selected model. "],"declarations":[{"kind":"module","text":"module Model : sig\n type 'a t\n\n val session : Session.t t\n val window : Window.t t\n val window_link : Window_link.t t\n val pane : Pane.t t\n val client : Client_observation.t t\n val name : 'a t -> string\n val fields : 'a t -> 'a Field.packed list\n val find_field : 'a t -> string -> 'a Field.packed option\nend","source":{"file":"lib/libtmux.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Built-in model witnesses and canonical field lookup for typed codecs. Untrusted field names must resolve against the selected model."},"slug":"libtmux-model"},{"id":"Libtmux.Model.client","publicId":"Libtmux.Model.client","qualifiedName":"Libtmux.Model.client","name":"client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val client : Client_observation.t t","source":{"file":"lib/libtmux.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val client : Client_observation.t t","params":[],"returns":"Client_observation.t t"}],"slug":"libtmux-model-client"},{"id":"Libtmux.Model.fields","publicId":"Libtmux.Model.fields","qualifiedName":"Libtmux.Model.fields","name":"fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":567,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val fields : 'a t -> 'a Field.packed list","source":{"file":"lib/libtmux.mli","line":567,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val fields : 'a t -> 'a Field.packed list","params":[{"name":"arg1","type":"'a t"}],"returns":"'a Field.packed list"}],"slug":"libtmux-model-fields"},{"id":"Libtmux.Model.find_field","publicId":"Libtmux.Model.find_field","qualifiedName":"Libtmux.Model.find_field","name":"find_field","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_field : 'a t -> string -> 'a Field.packed option","source":{"file":"lib/libtmux.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val find_field : 'a t -> string -> 'a Field.packed option","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"string"}],"returns":"'a Field.packed option"}],"slug":"libtmux-model-find_field"},{"id":"Libtmux.Model.name","publicId":"Libtmux.Model.name","qualifiedName":"Libtmux.Model.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":566,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : 'a t -> string","source":{"file":"lib/libtmux.mli","line":566,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val name : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-model-name"},{"id":"Libtmux.Model.pane","publicId":"Libtmux.Model.pane","qualifiedName":"Libtmux.Model.pane","name":"pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":564,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pane : Pane.t t","source":{"file":"lib/libtmux.mli","line":564,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val pane : Pane.t t","params":[],"returns":"Pane.t t"}],"slug":"libtmux-model-pane"},{"id":"Libtmux.Model.session","publicId":"Libtmux.Model.session","qualifiedName":"Libtmux.Model.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":561,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : Session.t t","source":{"file":"lib/libtmux.mli","line":561,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val session : Session.t t","params":[],"returns":"Session.t t"}],"slug":"libtmux-model-session"},{"id":"Libtmux.Model.t","publicId":"Libtmux.Model.t","qualifiedName":"Libtmux.Model.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":559,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":559,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-model-t"},{"id":"Libtmux.Model.window","publicId":"Libtmux.Model.window","qualifiedName":"Libtmux.Model.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : Window.t t","source":{"file":"lib/libtmux.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window : Window.t t","params":[],"returns":"Window.t t"}],"slug":"libtmux-model-window"},{"id":"Libtmux.Model.window_link","publicId":"Libtmux.Model.window_link","qualifiedName":"Libtmux.Model.window_link","name":"window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":563,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_link : Window_link.t t","source":{"file":"lib/libtmux.mli","line":563,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window_link : Window_link.t t","params":[],"returns":"Window_link.t t"}],"slug":"libtmux-model-window_link"},{"id":"Libtmux.Operations","publicId":"Libtmux.Operations","qualifiedName":"Libtmux.Operations","name":"Operations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1073,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Construct typed tmux operations for a backend client. Observations are\n immutable, mutations use explicit targets, and no command retries a mutation\n against another connection generation. Construction performs no I/O; the\n descriptions below state what execution does. "],"declarations":[{"kind":"module","text":"module Operations : sig\n val capture : unit -> Snapshot.t Command.t\n (** Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. *)\n\n val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t\n (** Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. *)\n\n val rename_window : Window.target -> name:string -> unit Command.t\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session : Session.target -> name:string -> unit Command.t\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at : Client_name.t -> unit Command.t\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text : Pane.target -> text:string -> unit Command.t\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys : Pane.target -> Key.t list -> unit Command.t\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : string -> unit Command.t\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : string -> unit Command.t\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment : Environment.scope -> string -> unit Command.t\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment : Environment.scope -> string -> unit Command.t\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array : Options.scope -> string -> unit Command.t\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks : Options.scope -> Options.t Command.t\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. *)\n\n val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook : Options.scope -> string -> unit Command.t\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session : Session.target -> unit Command.t\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : Window.target -> unit Command.t\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : Pane.target -> unit Command.t\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at : Session.target -> index:int -> unit Command.t\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : Pane.target -> unit Command.t\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title : Pane.target -> title:string -> unit Command.t\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout : Window.target -> Layout.t -> unit Command.t\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes : Pane.target -> Pane.target -> unit Command.t\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : Pane.target -> unit Command.t\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : Pane.target -> unit Command.t\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\nend","source":{"file":"lib/libtmux.mli","line":1073,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Construct typed tmux operations for a backend client. Observations are immutable, mutations use explicit targets, and no command retries a mutation against another connection generation. Construction performs no I/O; the descriptions below state what execution does."},"slug":"libtmux-operations"},{"id":"Libtmux.Operations.break_pane","publicId":"Libtmux.Operations.break_pane","qualifiedName":"Libtmux.Operations.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1257,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n Pane.target -> session:Session.target -> index:int -> Created.t Command.t","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-break_pane"},{"id":"Libtmux.Operations.capture","publicId":"Libtmux.Operations.capture","qualifiedName":"Libtmux.Operations.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1074,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. "],"declarations":[{"kind":"function","text":"val capture : unit -> Snapshot.t Command.t","source":{"file":"lib/libtmux.mli","line":1074,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture and validate the complete session/window-link/pane graph. The result records an acquisition interval, not an atomic server instant."},"signatures":[{"raw":"val capture : unit -> Snapshot.t Command.t","params":[{"name":"arg1","type":"unit"}],"returns":"Snapshot.t Command.t"}],"slug":"libtmux-operations-capture"},{"id":"Libtmux.Operations.capture_environment","publicId":"Libtmux.Operations.capture_environment","qualifiedName":"Libtmux.Operations.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1132,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","source":{"file":"lib/libtmux.mli","line":1132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"}],"returns":"Environment.t Command.t"}],"slug":"libtmux-operations-capture_environment"},{"id":"Libtmux.Operations.capture_hooks","publicId":"Libtmux.Operations.capture_hooks","qualifiedName":"Libtmux.Operations.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1190,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks : Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks : Options.scope -> Options.t Command.t","params":[{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_hooks"},{"id":"Libtmux.Operations.capture_options","publicId":"Libtmux.Operations.capture_options","qualifiedName":"Libtmux.Operations.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1152,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_options"},{"id":"Libtmux.Operations.capture_text","publicId":"Libtmux.Operations.capture_text","qualifiedName":"Libtmux.Operations.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1078,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t","source":{"file":"lib/libtmux.mli","line":1078,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture inclusive visible rows through an operation-owned temporary file. Require `0 <= start <= end_ < Pane.height pane`; scrollback is excluded. Retained bytes survive client close. The scratch directory must share the daemon filesystem."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n Pane.t -> start:int -> end_:int -> Captured_text.t Command.t","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"Captured_text.t Command.t"}],"slug":"libtmux-operations-capture_text"},{"id":"Libtmux.Operations.clear_history","publicId":"Libtmux.Operations.clear_history","qualifiedName":"Libtmux.Operations.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1355,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1355,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_history"},{"id":"Libtmux.Operations.clear_option_array","publicId":"Libtmux.Operations.clear_option_array","qualifiedName":"Libtmux.Operations.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1187,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_option_array"},{"id":"Libtmux.Operations.create_session","publicId":"Libtmux.Operations.create_session","qualifiedName":"Libtmux.Operations.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1229,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int -> ?spawn:Spawn.t -> name:string -> unit -> Created.t Command.t","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_session"},{"id":"Libtmux.Operations.create_window","publicId":"Libtmux.Operations.create_window","qualifiedName":"Libtmux.Operations.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1239,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string -> ?spawn:Spawn.t -> Session.target -> Created.t Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_window"},{"id":"Libtmux.Operations.cycle_layout","publicId":"Libtmux.Operations.cycle_layout","qualifiedName":"Libtmux.Operations.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1325,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1325,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Next | `Previous ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-cycle_layout"},{"id":"Libtmux.Operations.kill_pane","publicId":"Libtmux.Operations.kill_pane","qualifiedName":"Libtmux.Operations.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1275,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_pane"},{"id":"Libtmux.Operations.kill_session","publicId":"Libtmux.Operations.kill_session","qualifiedName":"Libtmux.Operations.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1267,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session : Session.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1267,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session : Session.target -> unit Command.t","params":[{"name":"arg1","type":"Session.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_session"},{"id":"Libtmux.Operations.kill_window","publicId":"Libtmux.Operations.kill_window","qualifiedName":"Libtmux.Operations.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1271,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1271,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window : Window.target -> unit Command.t","params":[{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_window"},{"id":"Libtmux.Operations.link_window","publicId":"Libtmux.Operations.link_window","qualifiedName":"Libtmux.Operations.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1288,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-link_window"},{"id":"Libtmux.Operations.move_pane","publicId":"Libtmux.Operations.move_pane","qualifiedName":"Libtmux.Operations.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1328,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target -> direction:Geometry.direction -> unit Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"beside","type":"Pane.target","keywordOnly":true},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_pane"},{"id":"Libtmux.Operations.move_window_at","publicId":"Libtmux.Operations.move_window_at","qualifiedName":"Libtmux.Operations.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1293,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n Session.target ->\n from_index:int -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_window_at"},{"id":"Libtmux.Operations.read_hook","publicId":"Libtmux.Operations.read_hook","qualifiedName":"Libtmux.Operations.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1194,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_hook"},{"id":"Libtmux.Operations.read_option","publicId":"Libtmux.Operations.read_option","qualifiedName":"Libtmux.Operations.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1160,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_option"},{"id":"Libtmux.Operations.refresh_client_at","publicId":"Libtmux.Operations.refresh_client_at","qualifiedName":"Libtmux.Operations.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1111,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-refresh_client_at"},{"id":"Libtmux.Operations.remove_environment","publicId":"Libtmux.Operations.remove_environment","qualifiedName":"Libtmux.Operations.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1149,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_environment"},{"id":"Libtmux.Operations.remove_hook","publicId":"Libtmux.Operations.remove_hook","qualifiedName":"Libtmux.Operations.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1217,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_hook"},{"id":"Libtmux.Operations.rename_session","publicId":"Libtmux.Operations.rename_session","qualifiedName":"Libtmux.Operations.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1093,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session : Session.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1093,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session : Session.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_session"},{"id":"Libtmux.Operations.rename_window","publicId":"Libtmux.Operations.rename_window","qualifiedName":"Libtmux.Operations.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1089,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window : Window.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1089,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window : Window.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_window"},{"id":"Libtmux.Operations.request_detach_client_at","publicId":"Libtmux.Operations.request_detach_client_at","qualifiedName":"Libtmux.Operations.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1106,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at : Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at : Client_name.t -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-request_detach_client_at"},{"id":"Libtmux.Operations.resize_control_client_at","publicId":"Libtmux.Operations.resize_control_client_at","qualifiedName":"Libtmux.Operations.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1114,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_control_client_at"},{"id":"Libtmux.Operations.resize_pane","publicId":"Libtmux.Operations.resize_pane","qualifiedName":"Libtmux.Operations.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1310,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1310,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_pane"},{"id":"Libtmux.Operations.resize_window","publicId":"Libtmux.Operations.resize_window","qualifiedName":"Libtmux.Operations.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1315,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_window"},{"id":"Libtmux.Operations.respawn_pane","publicId":"Libtmux.Operations.respawn_pane","qualifiedName":"Libtmux.Operations.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1349,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1349,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Spawn.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-respawn_pane"},{"id":"Libtmux.Operations.rotate_panes","publicId":"Libtmux.Operations.rotate_panes","qualifiedName":"Libtmux.Operations.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1342,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1342,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n Window.target -> [ `Backward | `Forward ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Backward | `Forward ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rotate_panes"},{"id":"Libtmux.Operations.run_hook","publicId":"Libtmux.Operations.run_hook","qualifiedName":"Libtmux.Operations.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1221,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-run_hook"},{"id":"Libtmux.Operations.select_layout","publicId":"Libtmux.Operations.select_layout","qualifiedName":"Libtmux.Operations.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1321,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout : Window.target -> Layout.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1321,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout : Window.target -> Layout.t -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"Layout.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_layout"},{"id":"Libtmux.Operations.select_pane","publicId":"Libtmux.Operations.select_pane","qualifiedName":"Libtmux.Operations.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1302,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_pane"},{"id":"Libtmux.Operations.select_window_at","publicId":"Libtmux.Operations.select_window_at","qualifiedName":"Libtmux.Operations.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1279,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at : Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at : Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_window_at"},{"id":"Libtmux.Operations.send_keys","publicId":"Libtmux.Operations.send_keys","qualifiedName":"Libtmux.Operations.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1121,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys : Pane.target -> Key.t list -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys : Pane.target -> Key.t list -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Key.t list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_keys"},{"id":"Libtmux.Operations.send_text","publicId":"Libtmux.Operations.send_text","qualifiedName":"Libtmux.Operations.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1118,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text : Pane.target -> text:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1118,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text : Pane.target -> text:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_text"},{"id":"Libtmux.Operations.set_environment","publicId":"Libtmux.Operations.set_environment","qualifiedName":"Libtmux.Operations.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1139,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1139,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n Environment.scope -> name:string -> string -> unit Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_environment"},{"id":"Libtmux.Operations.set_hook","publicId":"Libtmux.Operations.set_hook","qualifiedName":"Libtmux.Operations.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1202,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Hook.command list -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Hook.command list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_hook"},{"id":"Libtmux.Operations.set_option","publicId":"Libtmux.Operations.set_option","qualifiedName":"Libtmux.Operations.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1170,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1170,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Options.scalar -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Options.scalar"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_option"},{"id":"Libtmux.Operations.set_pane_title","publicId":"Libtmux.Operations.set_pane_title","qualifiedName":"Libtmux.Operations.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1306,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title : Pane.target -> title:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title : Pane.target -> title:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_pane_title"},{"id":"Libtmux.Operations.signal","publicId":"Libtmux.Operations.signal","qualifiedName":"Libtmux.Operations.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1128,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-signal"},{"id":"Libtmux.Operations.split_pane","publicId":"Libtmux.Operations.split_pane","qualifiedName":"Libtmux.Operations.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1247,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1247,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target -> direction:Geometry.direction -> Created.t Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-split_pane"},{"id":"Libtmux.Operations.swap_panes","publicId":"Libtmux.Operations.swap_panes","qualifiedName":"Libtmux.Operations.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1338,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1338,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-swap_panes"},{"id":"Libtmux.Operations.switch_client_at","publicId":"Libtmux.Operations.switch_client_at","qualifiedName":"Libtmux.Operations.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1097,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1097,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t -> session:Session.target -> unit Command.t","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"},{"name":"session","type":"Session.target","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-switch_client_at"},{"id":"Libtmux.Operations.unlink_window_at","publicId":"Libtmux.Operations.unlink_window_at","qualifiedName":"Libtmux.Operations.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1283,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unlink_window_at"},{"id":"Libtmux.Operations.unset_environment","publicId":"Libtmux.Operations.unset_environment","qualifiedName":"Libtmux.Operations.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1145,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_environment"},{"id":"Libtmux.Operations.unset_option","publicId":"Libtmux.Operations.unset_option","qualifiedName":"Libtmux.Operations.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1183,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_option"},{"id":"Libtmux.Operations.wait_for","publicId":"Libtmux.Operations.wait_for","qualifiedName":"Libtmux.Operations.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1125,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-wait_for"},{"id":"Libtmux.Operations.zoom_pane","publicId":"Libtmux.Operations.zoom_pane","qualifiedName":"Libtmux.Operations.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1346,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-zoom_pane"},{"id":"Libtmux.Options","publicId":"Libtmux.Options","qualifiedName":"Libtmux.Options","name":"Options","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":818,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Version-aware option descriptors and captured scoped values. Sparse array\n indexes and inherited entries retain their tmux meaning. "],"declarations":[{"kind":"module","text":"module Options : sig\n module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }\n (** Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. *)\n\n type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target\n\n type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string\n\n type value = Scalar of scalar | Array of (int * scalar) Iarray.t\n type entry = { descriptor : descriptor; value : value; inherited : bool }\n\n type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor, Error.t) result\n\n val lookup : t -> string -> entry option\n (** [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. *)\nend","source":{"file":"lib/libtmux.mli","line":818,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Version-aware option descriptors and captured scoped values. Sparse array indexes and inherited entries retain their tmux meaning."},"slug":"libtmux-options"},{"id":"Libtmux.Options.Kind","publicId":"Libtmux.Options.Kind","qualifiedName":"Libtmux.Options.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":819,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end","source":{"file":"lib/libtmux.mli","line":819,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","slug":"libtmux-options-kind"},{"id":"Libtmux.Options.Kind.t","publicId":"Libtmux.Options.Kind.t","qualifiedName":"Libtmux.Options.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind","signatures":[{"raw":"type t =\n | Text \n | Number \n | Flag \n | Choice \n | Key \n | Colour \n | Commands ","params":[]}],"slug":"libtmux-options-kind-t"},{"id":"Libtmux.Options.Kind.t.Choice","publicId":"Libtmux.Options.Kind.t.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Choice","slug":"libtmux-options-kind-t-choice"},{"id":"Libtmux.Options.Kind.t.Colour","publicId":"Libtmux.Options.Kind.t.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Colour","slug":"libtmux-options-kind-t-colour"},{"id":"Libtmux.Options.Kind.t.Commands","publicId":"Libtmux.Options.Kind.t.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Commands","slug":"libtmux-options-kind-t-commands"},{"id":"Libtmux.Options.Kind.t.Flag","publicId":"Libtmux.Options.Kind.t.Flag","name":"Flag","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Flag","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Flag","slug":"libtmux-options-kind-t-flag"},{"id":"Libtmux.Options.Kind.t.Key","publicId":"Libtmux.Options.Kind.t.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Key","slug":"libtmux-options-kind-t-key"},{"id":"Libtmux.Options.Kind.t.Number","publicId":"Libtmux.Options.Kind.t.Number","name":"Number","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Number","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Number","slug":"libtmux-options-kind-t-number"},{"id":"Libtmux.Options.Kind.t.Text","publicId":"Libtmux.Options.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Text","slug":"libtmux-options-kind-t-text"},{"id":"Libtmux.Options.catalog","publicId":"Libtmux.Options.catalog","qualifiedName":"Libtmux.Options.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":865,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":865,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-options-catalog"},{"id":"Libtmux.Options.describe","publicId":"Libtmux.Options.describe","qualifiedName":"Libtmux.Options.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":866,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor, Error.t) result","source":{"file":"lib/libtmux.mli","line":866,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val describe : version:string -> string -> (descriptor, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor, Error.t) result"}],"slug":"libtmux-options-describe"},{"id":"Libtmux.Options.descriptor","publicId":"Libtmux.Options.descriptor","qualifiedName":"Libtmux.Options.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":823,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":823,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","doc":{"summary":"Generated upstream descriptors. `versions` lists qualified releases; user options have no built-in release history."},"signatures":[{"raw":"type descriptor =\n {\n name: string ;\n kind: Kind.t ;\n array: bool ;\n hook: bool ;\n scopes: [ `Server | `Session | `Window | `Pane ] list ;\n versions: string list }","params":[]}],"slug":"libtmux-options-descriptor"},{"id":"Libtmux.Options.descriptor.array","publicId":"Libtmux.Options.descriptor.array","name":"array","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":826,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"array : bool;","source":{"file":"lib/libtmux.mli","line":826,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.array","slug":"libtmux-options-descriptor-array"},{"id":"Libtmux.Options.descriptor.hook","publicId":"Libtmux.Options.descriptor.hook","name":"hook","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":827,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hook : bool;","source":{"file":"lib/libtmux.mli","line":827,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.hook","slug":"libtmux-options-descriptor-hook"},{"id":"Libtmux.Options.descriptor.kind","publicId":"Libtmux.Options.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":825,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":825,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Options.kind","slug":"libtmux-options-descriptor-kind"},{"id":"Libtmux.Options.descriptor.name","publicId":"Libtmux.Options.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":824,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":824,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.descriptor","type":"string","qualifiedName":"Libtmux.Options.name","slug":"libtmux-options-descriptor-name"},{"id":"Libtmux.Options.descriptor.scopes","publicId":"Libtmux.Options.descriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":828,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scopes : [ `Server | `Session | `Window | `Pane ] list;","source":{"file":"lib/libtmux.mli","line":828,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.descriptor","type":"[ `Pane | `Server | `Session | `Window ] list","qualifiedName":"Libtmux.Options.scopes","slug":"libtmux-options-descriptor-scopes"},{"id":"Libtmux.Options.descriptor.versions","publicId":"Libtmux.Options.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.descriptor","type":"string list","qualifiedName":"Libtmux.Options.versions","slug":"libtmux-options-descriptor-versions"},{"id":"Libtmux.Options.entry","publicId":"Libtmux.Options.entry","qualifiedName":"Libtmux.Options.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { descriptor : descriptor; value : value; inherited : bool }","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type entry = {\n descriptor: descriptor ;\n value: value ;\n inherited: bool }","params":[]}],"slug":"libtmux-options-entry"},{"id":"Libtmux.Options.entry.descriptor","publicId":"Libtmux.Options.entry.descriptor","name":"descriptor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"descriptor : descriptor;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.entry","type":"descriptor","qualifiedName":"Libtmux.Options.descriptor","slug":"libtmux-options-entry-descriptor"},{"id":"Libtmux.Options.entry.inherited","publicId":"Libtmux.Options.entry.inherited","name":"inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inherited : bool","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.entry","type":"bool","qualifiedName":"Libtmux.Options.inherited","slug":"libtmux-options-entry-inherited"},{"id":"Libtmux.Options.entry.value","publicId":"Libtmux.Options.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.entry","type":"value","qualifiedName":"Libtmux.Options.value","slug":"libtmux-options-entry-value"},{"id":"Libtmux.Options.lookup","publicId":"Libtmux.Options.lookup","qualifiedName":"Libtmux.Options.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":868,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> entry option","source":{"file":"lib/libtmux.mli","line":868,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","doc":{"summary":"`None` means absent from this capture's selected scope and inheritance policy. Use `describe` to distinguish an unsupported built-in name."},"signatures":[{"raw":"val lookup : t -> string -> entry option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"entry option"}],"slug":"libtmux-options-lookup"},{"id":"Libtmux.Options.scalar","publicId":"Libtmux.Options.scalar","qualifiedName":"Libtmux.Options.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":842,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","source":{"file":"lib/libtmux.mli","line":842,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scalar =\n | Text of string \n | Integer of int64 \n | Bool of bool \n | Choice of string \n | Key of string \n | Colour of string \n | Commands of string ","params":[]}],"slug":"libtmux-options-scalar"},{"id":"Libtmux.Options.scalar.Bool","publicId":"Libtmux.Options.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":845,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool of bool","source":{"file":"lib/libtmux.mli","line":845,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Bool","slug":"libtmux-options-scalar-bool"},{"id":"Libtmux.Options.scalar.Choice","publicId":"Libtmux.Options.scalar.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":846,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice of string","source":{"file":"lib/libtmux.mli","line":846,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Choice","slug":"libtmux-options-scalar-choice"},{"id":"Libtmux.Options.scalar.Colour","publicId":"Libtmux.Options.scalar.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":848,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour of string","source":{"file":"lib/libtmux.mli","line":848,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Colour","slug":"libtmux-options-scalar-colour"},{"id":"Libtmux.Options.scalar.Commands","publicId":"Libtmux.Options.scalar.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":849,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands of string","source":{"file":"lib/libtmux.mli","line":849,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Commands","slug":"libtmux-options-scalar-commands"},{"id":"Libtmux.Options.scalar.Integer","publicId":"Libtmux.Options.scalar.Integer","name":"Integer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":844,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Integer of int64","source":{"file":"lib/libtmux.mli","line":844,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Integer","slug":"libtmux-options-scalar-integer"},{"id":"Libtmux.Options.scalar.Key","publicId":"Libtmux.Options.scalar.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":847,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key of string","source":{"file":"lib/libtmux.mli","line":847,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Key","slug":"libtmux-options-scalar-key"},{"id":"Libtmux.Options.scalar.Text","publicId":"Libtmux.Options.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":843,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":843,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Text","slug":"libtmux-options-scalar-text"},{"id":"Libtmux.Options.scope","publicId":"Libtmux.Options.scope","qualifiedName":"Libtmux.Options.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":834,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":834,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scope =\n | Server \n | Global_sessions \n | Global_windows \n | Session of Session.target \n | Window of Window.target \n | Pane of Pane.target ","params":[]}],"slug":"libtmux-options-scope"},{"id":"Libtmux.Options.scope.Global_sessions","publicId":"Libtmux.Options.scope.Global_sessions","name":"Global_sessions","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":836,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_sessions","source":{"file":"lib/libtmux.mli","line":836,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_sessions","slug":"libtmux-options-scope-global_sessions"},{"id":"Libtmux.Options.scope.Global_windows","publicId":"Libtmux.Options.scope.Global_windows","name":"Global_windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":837,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_windows","source":{"file":"lib/libtmux.mli","line":837,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_windows","slug":"libtmux-options-scope-global_windows"},{"id":"Libtmux.Options.scope.Pane","publicId":"Libtmux.Options.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":840,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":840,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Pane","slug":"libtmux-options-scope-pane"},{"id":"Libtmux.Options.scope.Server","publicId":"Libtmux.Options.scope.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":835,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":835,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Server","slug":"libtmux-options-scope-server"},{"id":"Libtmux.Options.scope.Session","publicId":"Libtmux.Options.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":838,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":838,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Session","slug":"libtmux-options-scope-session"},{"id":"Libtmux.Options.scope.Window","publicId":"Libtmux.Options.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":839,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.target","source":{"file":"lib/libtmux.mli","line":839,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Window","slug":"libtmux-options-scope-window"},{"id":"Libtmux.Options.t","publicId":"Libtmux.Options.t","qualifiedName":"Libtmux.Options.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":854,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":854,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","doc":{"summary":"Captured options in tmux order, with original array indexes. An empty array differs from an absent local entry. No accessor performs I/O."},"signatures":[{"raw":"type t =\n {\n source: Source.t ;\n scope: scope ;\n include_inherited: bool ;\n entries: entry Iarray.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-options-t"},{"id":"Libtmux.Options.t.entries","publicId":"Libtmux.Options.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":858,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":858,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Options.entries","slug":"libtmux-options-t-entries"},{"id":"Libtmux.Options.t.finished_at_ns","publicId":"Libtmux.Options.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":860,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":860,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.finished_at_ns","slug":"libtmux-options-t-finished_at_ns"},{"id":"Libtmux.Options.t.include_inherited","publicId":"Libtmux.Options.t.include_inherited","name":"include_inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":857,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"include_inherited : bool;","source":{"file":"lib/libtmux.mli","line":857,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.t","type":"bool","qualifiedName":"Libtmux.Options.include_inherited","slug":"libtmux-options-t-include_inherited"},{"id":"Libtmux.Options.t.scope","publicId":"Libtmux.Options.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":856,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":856,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.t","type":"scope","qualifiedName":"Libtmux.Options.scope","slug":"libtmux-options-t-scope"},{"id":"Libtmux.Options.t.source","publicId":"Libtmux.Options.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":855,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":855,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.t","type":"Source.t","qualifiedName":"Libtmux.Options.source","slug":"libtmux-options-t-source"},{"id":"Libtmux.Options.t.started_at_ns","publicId":"Libtmux.Options.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":859,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":859,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.started_at_ns","slug":"libtmux-options-t-started_at_ns"},{"id":"Libtmux.Options.value","publicId":"Libtmux.Options.value","qualifiedName":"Libtmux.Options.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type value =\n | Scalar of scalar \n | Array of (int * scalar) Iarray.t ","params":[]}],"slug":"libtmux-options-value"},{"id":"Libtmux.Options.value.Array","publicId":"Libtmux.Options.value.Array","name":"Array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Array","slug":"libtmux-options-value-array"},{"id":"Libtmux.Options.value.Scalar","publicId":"Libtmux.Options.value.Scalar","name":"Scalar","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Scalar of scalar","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Scalar","slug":"libtmux-options-value-scalar"},{"id":"Libtmux.Output","publicId":"Libtmux.Output","qualifiedName":"Libtmux.Output","name":"Output","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1034,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Future observed pane bytes, local cursors and explicit continuity loss.\n Output cursors are unrelated to snapshot times or server-side history. "],"declarations":[{"kind":"module","text":"module Output : sig\n type cursor = { generation : Generation.t; offset : int64 }\n (** [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. *)\n\n type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t\n\n type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason\n (** Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. *)\n\n val reason_pp : Format.formatter -> reason -> unit\n\n type wait_error =\n | Ended of reason\n | Failure of Error.t\n (** A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. *)\nend","source":{"file":"lib/libtmux.mli","line":1034,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Future observed pane bytes, local cursors and explicit continuity loss. Output cursors are unrelated to snapshot times or server-side history."},"slug":"libtmux-output"},{"id":"Libtmux.Output.cursor","publicId":"Libtmux.Output.cursor","qualifiedName":"Libtmux.Output.cursor","name":"cursor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. "],"declarations":[{"kind":"struct","text":"type cursor = { generation : Generation.t; offset : int64 }","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output","doc":{"summary":"`offset` is the number of observed bytes through the end of a Data event. Cursors from different subscription generations are unrelated. No cursor identifies a snapshot instant or a server-side historical position."},"signatures":[{"raw":"type cursor = {\n generation: Generation.t ;\n offset: int64 }","params":[]}],"slug":"libtmux-output-cursor"},{"id":"Libtmux.Output.cursor.generation","publicId":"Libtmux.Output.cursor.generation","name":"generation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"generation : Generation.t;","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.cursor","type":"Generation.t","qualifiedName":"Libtmux.Output.generation","slug":"libtmux-output-cursor-generation"},{"id":"Libtmux.Output.cursor.offset","publicId":"Libtmux.Output.cursor.offset","name":"offset","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"offset : int64","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.cursor","type":"int64","qualifiedName":"Libtmux.Output.offset","slug":"libtmux-output-cursor-offset"},{"id":"Libtmux.Output.event","publicId":"Libtmux.Output.event","qualifiedName":"Libtmux.Output.event","name":"event","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1048,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason","source":{"file":"lib/libtmux.mli","line":1048,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type event =\n | Data of {\n cursor: cursor ;\n bytes: string } \n | Gap of {\n after: cursor option ;\n lost_bytes: int option ;\n reason: reason } \n | End of reason ","params":[]}],"slug":"libtmux-output-event"},{"id":"Libtmux.Output.event.Data","publicId":"Libtmux.Output.event.Data","name":"Data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Data of { cursor : cursor; bytes : string }","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Data","slug":"libtmux-output-event-data"},{"id":"Libtmux.Output.event.Data.bytes","publicId":"Libtmux.Output.event.Data.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event.Data","type":"string","qualifiedName":"Libtmux.Output.bytes","slug":"libtmux-output-event-data-bytes"},{"id":"Libtmux.Output.event.Data.cursor","publicId":"Libtmux.Output.event.Data.cursor","name":"cursor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cursor : cursor;","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event.Data","type":"cursor","qualifiedName":"Libtmux.Output.cursor","slug":"libtmux-output-event-data-cursor"},{"id":"Libtmux.Output.event.End","publicId":"Libtmux.Output.event.End","name":"End","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1051,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. "],"declarations":[{"kind":"constant","text":"| End of reason","source":{"file":"lib/libtmux.mli","line":1051,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event","doc":{"summary":"Immutable event values. `Gap.after` is the last cursor delivered to the caller. Unknown loss is `None`. A gap ends continuity and is followed by End; recover with a fresh capture and a new subscription. Data preserves bytes, including NUL and invalid UTF-8. It is future observed output, not rendered text or historical reconstruction."},"variant":"tuple","qualifiedName":"Libtmux.Output.End","slug":"libtmux-output-event-end"},{"id":"Libtmux.Output.event.Gap","publicId":"Libtmux.Output.event.Gap","name":"Gap","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Gap of { after : cursor option; lost_bytes : int option; reason : reason }","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Gap","slug":"libtmux-output-event-gap"},{"id":"Libtmux.Output.event.Gap.after","publicId":"Libtmux.Output.event.Gap.after","name":"after","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"after : cursor option;","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event.Gap","type":"cursor option","qualifiedName":"Libtmux.Output.after","slug":"libtmux-output-event-gap-after"},{"id":"Libtmux.Output.event.Gap.lost_bytes","publicId":"Libtmux.Output.event.Gap.lost_bytes","name":"lost_bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"lost_bytes : int option;","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event.Gap","type":"int option","qualifiedName":"Libtmux.Output.lost_bytes","slug":"libtmux-output-event-gap-lost_bytes"},{"id":"Libtmux.Output.event.Gap.reason","publicId":"Libtmux.Output.event.Gap.reason","name":"reason","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"reason : reason","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event.Gap","type":"reason","qualifiedName":"Libtmux.Output.reason","slug":"libtmux-output-event-gap-reason"},{"id":"Libtmux.Output.reason","publicId":"Libtmux.Output.reason","qualifiedName":"Libtmux.Output.reason","name":"reason","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1040,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1040,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type reason =\n | Overflow \n | Membership_changed \n | Server_paused \n | Cancelled \n | Client_closed \n | Transport_error of Error.t ","params":[]}],"slug":"libtmux-output-reason"},{"id":"Libtmux.Output.reason.Cancelled","publicId":"Libtmux.Output.reason.Cancelled","name":"Cancelled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1044,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancelled","source":{"file":"lib/libtmux.mli","line":1044,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Cancelled","slug":"libtmux-output-reason-cancelled"},{"id":"Libtmux.Output.reason.Client_closed","publicId":"Libtmux.Output.reason.Client_closed","name":"Client_closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1045,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client_closed","source":{"file":"lib/libtmux.mli","line":1045,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Client_closed","slug":"libtmux-output-reason-client_closed"},{"id":"Libtmux.Output.reason.Membership_changed","publicId":"Libtmux.Output.reason.Membership_changed","name":"Membership_changed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1042,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Membership_changed","source":{"file":"lib/libtmux.mli","line":1042,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Membership_changed","slug":"libtmux-output-reason-membership_changed"},{"id":"Libtmux.Output.reason.Overflow","publicId":"Libtmux.Output.reason.Overflow","name":"Overflow","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1041,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Overflow","source":{"file":"lib/libtmux.mli","line":1041,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Overflow","slug":"libtmux-output-reason-overflow"},{"id":"Libtmux.Output.reason.Server_paused","publicId":"Libtmux.Output.reason.Server_paused","name":"Server_paused","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1043,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server_paused","source":{"file":"lib/libtmux.mli","line":1043,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Server_paused","slug":"libtmux-output-reason-server_paused"},{"id":"Libtmux.Output.reason.Transport_error","publicId":"Libtmux.Output.reason.Transport_error","name":"Transport_error","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1046,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1046,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.reason","variant":"tuple","qualifiedName":"Libtmux.Output.Transport_error","slug":"libtmux-output-reason-transport_error"},{"id":"Libtmux.Output.reason_pp","publicId":"Libtmux.Output.reason_pp","qualifiedName":"Libtmux.Output.reason_pp","name":"reason_pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1059,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val reason_pp : Format.formatter -> reason -> unit","source":{"file":"lib/libtmux.mli","line":1059,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output","signatures":[{"raw":"val reason_pp : Format.formatter -> reason -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"reason"}],"returns":"unit"}],"slug":"libtmux-output-reason_pp"},{"id":"Libtmux.Output.wait_error","publicId":"Libtmux.Output.wait_error","qualifiedName":"Libtmux.Output.wait_error","name":"wait_error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1061,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type wait_error =\n | Ended of reason\n | Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1061,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type wait_error =\n | Ended of reason \n | Failure of Error.t ","params":[]}],"slug":"libtmux-output-wait_error"},{"id":"Libtmux.Output.wait_error.Ended","publicId":"Libtmux.Output.wait_error.Ended","name":"Ended","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1062,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Ended of reason","source":{"file":"lib/libtmux.mli","line":1062,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.wait_error","variant":"tuple","qualifiedName":"Libtmux.Output.Ended","slug":"libtmux-output-wait_error-ended"},{"id":"Libtmux.Output.wait_error.Failure","publicId":"Libtmux.Output.wait_error.Failure","name":"Failure","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1063,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. "],"declarations":[{"kind":"constant","text":"| Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1063,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.wait_error","doc":{"summary":"A future-byte wait either loses its subscription's continuity or fails an operation. Neither result establishes that the text was absent earlier."},"variant":"tuple","qualifiedName":"Libtmux.Output.Failure","slug":"libtmux-output-wait_error-failure"},{"id":"Libtmux.Pane","publicId":"Libtmux.Pane","qualifiedName":"Libtmux.Pane","name":"Pane","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A captured pane with local geometry, process metadata and a window\n relationship. Use {!Pane.val-target} for explicit actions; reading the\n observation never refreshes it. "],"declarations":[{"kind":"module","text":"and Pane : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end\n\n module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val index : t -> int\n val active : t -> bool\n val dead : t -> bool\n val title : t -> string\n val current_command : t -> string\n val current_path : t -> string\n\n val pid : t -> int option\n (** The captured process ID, absent when tmux reports no process. *)\n\n val width : t -> int\n val height : t -> int\n val left : t -> int\n val top : t -> int\n val window : t -> Window.t\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\nend","source":{"file":"lib/libtmux.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"A captured pane with local geometry, process metadata and a window relationship. Use {!Pane.val-target} for explicit actions; reading the observation never refreshes it."},"slug":"libtmux-pane"},{"id":"Libtmux.Pane.Fields","publicId":"Libtmux.Pane.Fields","qualifiedName":"Libtmux.Pane.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-fields"},{"id":"Libtmux.Pane.Fields.active","publicId":"Libtmux.Pane.Fields.active","qualifiedName":"Libtmux.Pane.Fields.active","name":"active","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":312,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val active : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":312,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val active : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-active"},{"id":"Libtmux.Pane.Fields.current_command","publicId":"Libtmux.Pane.Fields.current_command","qualifiedName":"Libtmux.Pane.Fields.current_command","name":"current_command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":315,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_command : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_command : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_command"},{"id":"Libtmux.Pane.Fields.current_path","publicId":"Libtmux.Pane.Fields.current_path","qualifiedName":"Libtmux.Pane.Fields.current_path","name":"current_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":316,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_path : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_path : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_path"},{"id":"Libtmux.Pane.Fields.dead","publicId":"Libtmux.Pane.Fields.dead","qualifiedName":"Libtmux.Pane.Fields.dead","name":"dead","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":313,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val dead : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":313,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val dead : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-dead"},{"id":"Libtmux.Pane.Fields.height","publicId":"Libtmux.Pane.Fields.height","qualifiedName":"Libtmux.Pane.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":318,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":318,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-height"},{"id":"Libtmux.Pane.Fields.id","publicId":"Libtmux.Pane.Fields.id","qualifiedName":"Libtmux.Pane.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":310,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":310,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-id"},{"id":"Libtmux.Pane.Fields.index","publicId":"Libtmux.Pane.Fields.index","qualifiedName":"Libtmux.Pane.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":311,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":311,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-index"},{"id":"Libtmux.Pane.Fields.left","publicId":"Libtmux.Pane.Fields.left","qualifiedName":"Libtmux.Pane.Fields.left","name":"left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val left : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val left : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-left"},{"id":"Libtmux.Pane.Fields.title","publicId":"Libtmux.Pane.Fields.title","qualifiedName":"Libtmux.Pane.Fields.title","name":"title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":314,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val title : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":314,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val title : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-title"},{"id":"Libtmux.Pane.Fields.top","publicId":"Libtmux.Pane.Fields.top","qualifiedName":"Libtmux.Pane.Fields.top","name":"top","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":320,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val top : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val top : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-top"},{"id":"Libtmux.Pane.Fields.width","publicId":"Libtmux.Pane.Fields.width","qualifiedName":"Libtmux.Pane.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":317,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":317,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-width"},{"id":"Libtmux.Pane.Id","publicId":"Libtmux.Pane.Id","qualifiedName":"Libtmux.Pane.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-id-16to"},{"id":"Libtmux.Pane.Id.compare","publicId":"Libtmux.Pane.Id.compare","qualifiedName":"Libtmux.Pane.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-id-compare"},{"id":"Libtmux.Pane.Id.equal","publicId":"Libtmux.Pane.Id.equal","qualifiedName":"Libtmux.Pane.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-id-equal"},{"id":"Libtmux.Pane.Id.of_string","publicId":"Libtmux.Pane.Id.of_string","qualifiedName":"Libtmux.Pane.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-pane-id-of_string"},{"id":"Libtmux.Pane.Id.pp","publicId":"Libtmux.Pane.Id.pp","qualifiedName":"Libtmux.Pane.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-pane-id-pp"},{"id":"Libtmux.Pane.Id.t","publicId":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux.Pane.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-id-t"},{"id":"Libtmux.Pane.Id.to_string","publicId":"Libtmux.Pane.Id.to_string","qualifiedName":"Libtmux.Pane.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-id-to_string"},{"id":"Libtmux.Pane.Relations","publicId":"Libtmux.Pane.Relations","qualifiedName":"Libtmux.Pane.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":323,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":323,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-relations"},{"id":"Libtmux.Pane.Relations.window","publicId":"Libtmux.Pane.Relations.window","qualifiedName":"Libtmux.Pane.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":324,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-pane-relations-window"},{"id":"Libtmux.Pane.Target","publicId":"Libtmux.Pane.Target","qualifiedName":"Libtmux.Pane.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":329,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":329,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-target-nx8w"},{"id":"Libtmux.Pane.Target.id","publicId":"Libtmux.Pane.Target.id","qualifiedName":"Libtmux.Pane.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":334,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":334,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-target-id"},{"id":"Libtmux.Pane.Target.of_id","publicId":"Libtmux.Pane.Target.of_id","qualifiedName":"Libtmux.Pane.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-pane-target-of_id"},{"id":"Libtmux.Pane.Target.source","publicId":"Libtmux.Pane.Target.source","qualifiedName":"Libtmux.Pane.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":333,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-target-source"},{"id":"Libtmux.Pane.Target.t","publicId":"Libtmux.Pane.Target.t","qualifiedName":"Libtmux.Pane.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":330,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":330,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-target-t"},{"id":"Libtmux.Pane.active","publicId":"Libtmux.Pane.active","qualifiedName":"Libtmux.Pane.active","name":"active","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":341,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val active : t -> bool","source":{"file":"lib/libtmux.mli","line":341,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val active : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-active"},{"id":"Libtmux.Pane.current_command","publicId":"Libtmux.Pane.current_command","qualifiedName":"Libtmux.Pane.current_command","name":"current_command","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_command : t -> string","source":{"file":"lib/libtmux.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_command : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_command"},{"id":"Libtmux.Pane.current_path","publicId":"Libtmux.Pane.current_path","qualifiedName":"Libtmux.Pane.current_path","name":"current_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":345,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_path : t -> string","source":{"file":"lib/libtmux.mli","line":345,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_path : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_path"},{"id":"Libtmux.Pane.dead","publicId":"Libtmux.Pane.dead","qualifiedName":"Libtmux.Pane.dead","name":"dead","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":342,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dead : t -> bool","source":{"file":"lib/libtmux.mli","line":342,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val dead : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-dead"},{"id":"Libtmux.Pane.height","publicId":"Libtmux.Pane.height","qualifiedName":"Libtmux.Pane.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":351,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":351,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-height"},{"id":"Libtmux.Pane.id","publicId":"Libtmux.Pane.id","qualifiedName":"Libtmux.Pane.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":339,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":339,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-id-19ve"},{"id":"Libtmux.Pane.index","publicId":"Libtmux.Pane.index","qualifiedName":"Libtmux.Pane.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-index"},{"id":"Libtmux.Pane.left","publicId":"Libtmux.Pane.left","qualifiedName":"Libtmux.Pane.left","name":"left","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":352,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val left : t -> int","source":{"file":"lib/libtmux.mli","line":352,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val left : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-left"},{"id":"Libtmux.Pane.pid","publicId":"Libtmux.Pane.pid","qualifiedName":"Libtmux.Pane.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":347,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" The captured process ID, absent when tmux reports no process. "],"declarations":[{"kind":"function","text":"val pid : t -> int option","source":{"file":"lib/libtmux.mli","line":347,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","doc":{"summary":"The captured process ID, absent when tmux reports no process."},"signatures":[{"raw":"val pid : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-pane-pid"},{"id":"Libtmux.Pane.same_entity","publicId":"Libtmux.Pane.same_entity","qualifiedName":"Libtmux.Pane.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_entity"},{"id":"Libtmux.Pane.same_observation","publicId":"Libtmux.Pane.same_observation","qualifiedName":"Libtmux.Pane.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_observation"},{"id":"Libtmux.Pane.source","publicId":"Libtmux.Pane.source","qualifiedName":"Libtmux.Pane.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":355,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":355,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-source"},{"id":"Libtmux.Pane.t","publicId":"Libtmux.Pane.t","qualifiedName":"Libtmux.Pane.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":307,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":307,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-t"},{"id":"Libtmux.Pane.target","publicId":"Libtmux.Pane.target","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":356,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":356,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-pane-target-t3h1"},{"id":"Libtmux.Pane.target:type","publicId":"Libtmux.Pane.target:type","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-pane-target-type"},{"id":"Libtmux.Pane.title","publicId":"Libtmux.Pane.title","qualifiedName":"Libtmux.Pane.title","name":"title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":343,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val title : t -> string","source":{"file":"lib/libtmux.mli","line":343,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val title : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-title"},{"id":"Libtmux.Pane.top","publicId":"Libtmux.Pane.top","qualifiedName":"Libtmux.Pane.top","name":"top","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":353,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val top : t -> int","source":{"file":"lib/libtmux.mli","line":353,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val top : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-top"},{"id":"Libtmux.Pane.width","publicId":"Libtmux.Pane.width","qualifiedName":"Libtmux.Pane.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":350,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":350,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-width"},{"id":"Libtmux.Pane.window","publicId":"Libtmux.Pane.window","qualifiedName":"Libtmux.Pane.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-pane-window"},{"id":"Libtmux.Plan","publicId":"Libtmux.Plan","qualifiedName":"Libtmux.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Explicit source-filter planning for a new acquisition. A plan separates\n supported tmux predicates from residual local evaluation; it never changes\n the I/O-free contract of {!Query.matching}. Backend capture operations\n acquire a complete graph and do not consume these plans. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type pushdown = Auto | Never | Require_exact\n type t\n\n val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result\n (** Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. *)\n\n val source_filter : t -> string option\n val residual : t -> Pane.t Expr.t\n val required_fields : t -> string list\n val required_relations : t -> string list\n val explanation : t -> string\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Explicit source-filter planning for a new acquisition. A plan separates supported tmux predicates from residual local evaluation; it never changes the I/O-free contract of {!Query.matching}. Backend capture operations acquire a complete graph and do not consume these plans."},"slug":"libtmux-plan"},{"id":"Libtmux.Plan.explanation","publicId":"Libtmux.Plan.explanation","qualifiedName":"Libtmux.Plan.explanation","name":"explanation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":681,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val explanation : t -> string","source":{"file":"lib/libtmux.mli","line":681,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val explanation : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-plan-explanation"},{"id":"Libtmux.Plan.panes","publicId":"Libtmux.Plan.panes","qualifiedName":"Libtmux.Plan.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":670,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. "],"declarations":[{"kind":"function","text":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":670,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","doc":{"summary":"Plan without I/O. Exact lowering covers pane active/dead flags and complete Boolean combinations. Unsupported children prevent lowering the whole expression, including under OR and NOT. Relationships always stay local. `Require_exact` rejects an unsupported expression before acquisition."},"signatures":[{"raw":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","params":[{"name":"pushdown","type":"pushdown","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t Expr.t"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-plan-panes"},{"id":"Libtmux.Plan.pp","publicId":"Libtmux.Plan.pp","qualifiedName":"Libtmux.Plan.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":682,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":682,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-plan-pp"},{"id":"Libtmux.Plan.pushdown","publicId":"Libtmux.Plan.pushdown","qualifiedName":"Libtmux.Plan.pushdown","name":"pushdown","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type pushdown = Auto | Never | Require_exact","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type pushdown =\n | Auto \n | Never \n | Require_exact ","params":[]}],"slug":"libtmux-plan-pushdown"},{"id":"Libtmux.Plan.pushdown.Auto","publicId":"Libtmux.Plan.pushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Auto","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Auto","slug":"libtmux-plan-pushdown-auto"},{"id":"Libtmux.Plan.pushdown.Never","publicId":"Libtmux.Plan.pushdown.Never","name":"Never","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Never","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Never","slug":"libtmux-plan-pushdown-never"},{"id":"Libtmux.Plan.pushdown.Require_exact","publicId":"Libtmux.Plan.pushdown.Require_exact","name":"Require_exact","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_exact","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Require_exact","slug":"libtmux-plan-pushdown-require_exact"},{"id":"Libtmux.Plan.required_fields","publicId":"Libtmux.Plan.required_fields","qualifiedName":"Libtmux.Plan.required_fields","name":"required_fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":679,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_fields : t -> string list","source":{"file":"lib/libtmux.mli","line":679,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_fields : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_fields"},{"id":"Libtmux.Plan.required_relations","publicId":"Libtmux.Plan.required_relations","qualifiedName":"Libtmux.Plan.required_relations","name":"required_relations","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":680,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_relations : t -> string list","source":{"file":"lib/libtmux.mli","line":680,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_relations : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_relations"},{"id":"Libtmux.Plan.residual","publicId":"Libtmux.Plan.residual","qualifiedName":"Libtmux.Plan.residual","name":"residual","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":678,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val residual : t -> Pane.t Expr.t","source":{"file":"lib/libtmux.mli","line":678,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val residual : t -> Pane.t Expr.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Expr.t"}],"slug":"libtmux-plan-residual"},{"id":"Libtmux.Plan.source_filter","publicId":"Libtmux.Plan.source_filter","qualifiedName":"Libtmux.Plan.source_filter","name":"source_filter","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":677,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source_filter : t -> string option","source":{"file":"lib/libtmux.mli","line":677,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val source_filter : t -> string option","params":[{"name":"arg1","type":"t"}],"returns":"string option"}],"slug":"libtmux-plan-source_filter"},{"id":"Libtmux.Plan.t","publicId":"Libtmux.Plan.t","qualifiedName":"Libtmux.Plan.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":668,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":668,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-plan-t"},{"id":"Libtmux.Query","publicId":"Libtmux.Query","qualifiedName":"Libtmux.Query","name":"Query","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":694,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Sequence adapters and bounded cardinality checks over captured values.\n Matching preserves order and duplicates. Expected absence and ambiguity\n remain ordinary result values. "],"declarations":[{"kind":"module","text":"module Query : sig\n val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t\n (** [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. *)\n\n val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result\n (** Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. *)\n\n val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result\n (** As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n *)\nend","source":{"file":"lib/libtmux.mli","line":694,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Sequence adapters and bounded cardinality checks over captured values. Matching preserves order and duplicates. Expected absence and ambiguity remain ordinary result values."},"slug":"libtmux-query"},{"id":"Libtmux.Query.exactly_one","publicId":"Libtmux.Query.exactly_one","qualifiedName":"Libtmux.Query.exactly_one","name":"exactly_one","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":701,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. "],"declarations":[{"kind":"function","text":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":701,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Query","doc":{"summary":"Return the unique value. Stop when a second value is found; proving uniqueness requires exhausting the remaining sequence. The input's effects and exceptions propagate. This does not execute a mutation."},"signatures":[{"raw":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a, Cardinality.error) result"}],"slug":"libtmux-query-exactly_one"},{"id":"Libtmux.Query.matching","publicId":"Libtmux.Query.matching","qualifiedName":"Libtmux.Query.matching","name":"matching","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":695,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. "],"declarations":[{"kind":"function","text":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","source":{"file":"lib/libtmux.mli","line":695,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Query","doc":{"summary":"`matching expression` compiles once when the adapter is constructed. Filtering preserves order and duplicates. Snapshot-derived sequences replay captured values; arbitrary input sequences retain their effects, exceptions and replay semantics. No tmux acquisition occurs."},"signatures":[{"raw":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","params":[{"name":"arg1","type":"'a Expr.t"},{"name":"arg2","type":"'a Seq.t"}],"returns":"'a Seq.t"}],"slug":"libtmux-query-matching"},{"id":"Libtmux.Query.one_or_none","publicId":"Libtmux.Query.one_or_none","qualifiedName":"Libtmux.Query.one_or_none","name":"one_or_none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":706,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n "],"declarations":[{"kind":"function","text":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":706,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Query","doc":{"summary":"As {!exactly_one}, with `Ok None` for an empty sequence. Order and duplicate entries count toward cardinality; values are not deduplicated."},"signatures":[{"raw":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a option, Cardinality.error) result"}],"slug":"libtmux-query-one_or_none"},{"id":"Libtmux.Relation","publicId":"Libtmux.Relation","qualifiedName":"Libtmux.Relation","name":"Relation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":159,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Typed edges in a captured graph. Many, one and optional relations are\n distinct; an unacquired relationship is never represented as an empty one.\n"],"declarations":[{"kind":"module","text":"module Relation : sig\n module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\nend","source":{"file":"lib/libtmux.mli","line":159,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Typed edges in a captured graph. Many, one and optional relations are distinct; an unacquired relationship is never represented as an empty one."},"slug":"libtmux-relation"},{"id":"Libtmux.Relation.Many","publicId":"Libtmux.Relation.Many","qualifiedName":"Libtmux.Relation.Many","name":"Many","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":160,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-many"},{"id":"Libtmux.Relation.Many.name","publicId":"Libtmux.Relation.Many.name","qualifiedName":"Libtmux.Relation.Many.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-many-name"},{"id":"Libtmux.Relation.Many.t","publicId":"Libtmux.Relation.Many.t","qualifiedName":"Libtmux.Relation.Many.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":161,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":161,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-many-t"},{"id":"Libtmux.Relation.One","publicId":"Libtmux.Relation.One","qualifiedName":"Libtmux.Relation.One","name":"One","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-one"},{"id":"Libtmux.Relation.One.name","publicId":"Libtmux.Relation.One.name","qualifiedName":"Libtmux.Relation.One.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-one-name"},{"id":"Libtmux.Relation.One.t","publicId":"Libtmux.Relation.One.t","qualifiedName":"Libtmux.Relation.One.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-one-t"},{"id":"Libtmux.Relation.Optional","publicId":"Libtmux.Relation.Optional","qualifiedName":"Libtmux.Relation.Optional","name":"Optional","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-optional"},{"id":"Libtmux.Relation.Optional.name","publicId":"Libtmux.Relation.Optional.name","qualifiedName":"Libtmux.Relation.Optional.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":175,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":175,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-optional-name"},{"id":"Libtmux.Relation.Optional.t","publicId":"Libtmux.Relation.Optional.t","qualifiedName":"Libtmux.Relation.Optional.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-optional-t"},{"id":"Libtmux.Session","publicId":"Libtmux.Session","qualifiedName":"Libtmux.Session","name":"Session","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A captured session and its ordered window-link contexts. A session can\n contain repeated links to the same global window. "],"declarations":[{"kind":"module","text":"module rec Session : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end\n\n module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val attached : t -> int\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\n\n val window_links : t -> Window_link.t Iarray.t\n (** All captured links, in capture order, including repeated windows. *)\n\n val windows : t -> Window.t Iarray.t\n (** Distinct windows in first-link order. All accesses are local. *)\nend","source":{"file":"lib/libtmux.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"A captured session and its ordered window-link contexts. A session can contain repeated links to the same global window."},"slug":"libtmux-session"},{"id":"Libtmux.Session.Fields","publicId":"Libtmux.Session.Fields","qualifiedName":"Libtmux.Session.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":184,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":184,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","slug":"libtmux-session-fields"},{"id":"Libtmux.Session.Fields.attached","publicId":"Libtmux.Session.Fields.attached","qualifiedName":"Libtmux.Session.Fields.attached","name":"attached","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val attached : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val attached : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-session-fields-attached"},{"id":"Libtmux.Session.Fields.id","publicId":"Libtmux.Session.Fields.id","qualifiedName":"Libtmux.Session.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-id"},{"id":"Libtmux.Session.Fields.name","publicId":"Libtmux.Session.Fields.name","qualifiedName":"Libtmux.Session.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-name"},{"id":"Libtmux.Session.Id","publicId":"Libtmux.Session.Id","qualifiedName":"Libtmux.Session.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":195,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","slug":"libtmux-session-id-12k2"},{"id":"Libtmux.Session.Id.compare","publicId":"Libtmux.Session.Id.compare","qualifiedName":"Libtmux.Session.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-session-id-compare"},{"id":"Libtmux.Session.Id.equal","publicId":"Libtmux.Session.Id.equal","qualifiedName":"Libtmux.Session.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-id-equal"},{"id":"Libtmux.Session.Id.of_string","publicId":"Libtmux.Session.Id.of_string","qualifiedName":"Libtmux.Session.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-session-id-of_string"},{"id":"Libtmux.Session.Id.pp","publicId":"Libtmux.Session.Id.pp","qualifiedName":"Libtmux.Session.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-session-id-pp"},{"id":"Libtmux.Session.Id.t","publicId":"Libtmux.Session.Id.t","qualifiedName":"Libtmux.Session.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-id-t"},{"id":"Libtmux.Session.Id.to_string","publicId":"Libtmux.Session.Id.to_string","qualifiedName":"Libtmux.Session.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-id-to_string"},{"id":"Libtmux.Session.Relations","publicId":"Libtmux.Session.Relations","qualifiedName":"Libtmux.Session.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":190,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","slug":"libtmux-session-relations"},{"id":"Libtmux.Session.Relations.window_links","publicId":"Libtmux.Session.Relations.window_links","qualifiedName":"Libtmux.Session.Relations.window_links","name":"window_links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val window_links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-session-relations-window_links"},{"id":"Libtmux.Session.Relations.windows","publicId":"Libtmux.Session.Relations.windows","qualifiedName":"Libtmux.Session.Relations.windows","name":"windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":192,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val windows : (t, Window.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":192,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val windows : (t, Window.t) Relation.Many.t","params":[],"returns":"(t, Window.t) Relation.Many.t"}],"slug":"libtmux-session-relations-windows"},{"id":"Libtmux.Session.Target","publicId":"Libtmux.Session.Target","qualifiedName":"Libtmux.Session.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":197,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":197,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","slug":"libtmux-session-target-5p2d"},{"id":"Libtmux.Session.Target.id","publicId":"Libtmux.Session.Target.id","qualifiedName":"Libtmux.Session.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-target-id"},{"id":"Libtmux.Session.Target.of_id","publicId":"Libtmux.Session.Target.of_id","qualifiedName":"Libtmux.Session.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Describe a target in an existing connection generation. No I/O. "],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Target","doc":{"summary":"Describe a target in an existing connection generation. No I/O."},"signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-session-target-of_id"},{"id":"Libtmux.Session.Target.source","publicId":"Libtmux.Session.Target.source","qualifiedName":"Libtmux.Session.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-target-source"},{"id":"Libtmux.Session.Target.t","publicId":"Libtmux.Session.Target.t","qualifiedName":"Libtmux.Session.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-target-t"},{"id":"Libtmux.Session.attached","publicId":"Libtmux.Session.attached","qualifiedName":"Libtmux.Session.attached","name":"attached","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val attached : t -> int","source":{"file":"lib/libtmux.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val attached : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-session-attached"},{"id":"Libtmux.Session.id","publicId":"Libtmux.Session.id","qualifiedName":"Libtmux.Session.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-id-12gy"},{"id":"Libtmux.Session.name","publicId":"Libtmux.Session.name","qualifiedName":"Libtmux.Session.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":210,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":210,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-name"},{"id":"Libtmux.Session.same_entity","publicId":"Libtmux.Session.same_entity","qualifiedName":"Libtmux.Session.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":215,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":215,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_entity"},{"id":"Libtmux.Session.same_observation","publicId":"Libtmux.Session.same_observation","qualifiedName":"Libtmux.Session.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_observation"},{"id":"Libtmux.Session.source","publicId":"Libtmux.Session.source","qualifiedName":"Libtmux.Session.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-source"},{"id":"Libtmux.Session.t","publicId":"Libtmux.Session.t","qualifiedName":"Libtmux.Session.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-t"},{"id":"Libtmux.Session.target","publicId":"Libtmux.Session.target","qualifiedName":"Libtmux.Session.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-session-target-iu8j"},{"id":"Libtmux.Session.target:type","publicId":"Libtmux.Session.target:type","qualifiedName":"Libtmux.Session.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-session-target-type"},{"id":"Libtmux.Session.window_links","publicId":"Libtmux.Session.window_links","qualifiedName":"Libtmux.Session.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" All captured links, in capture order, including repeated windows. "],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","doc":{"summary":"All captured links, in capture order, including repeated windows.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-session-window_links"},{"id":"Libtmux.Session.windows","publicId":"Libtmux.Session.windows","qualifiedName":"Libtmux.Session.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Distinct windows in first-link order. All accesses are local. "],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","doc":{"summary":"Distinct windows in first-link order. All accesses are local."},"signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-session-windows"},{"id":"Libtmux.Snapshot","publicId":"Libtmux.Snapshot","qualifiedName":"Libtmux.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A complete immutable graph captured over an acquisition interval.\n Collections are replayable immutable arrays. Capturing several tmux commands\n does not establish an atomic transaction. "],"declarations":[{"kind":"module","text":"module Snapshot : sig\n type t\n\n module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end\n\n module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end\n\n val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result\n (** Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. *)\n\n val id : t -> Id.t\n val source : t -> Source.t\n val started_at_ns : t -> int64\n val finished_at_ns : t -> int64\n val sessions : t -> Session.t Iarray.t\n val windows : t -> Window.t Iarray.t\n val window_links : t -> Window_link.t Iarray.t\n val panes : t -> Pane.t Iarray.t\n\n val clients : t -> Client_observation.t Iarray.t\n (** Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. *)\n\n val find_session : t -> Session.Id.t -> Session.t option\n val find_window : t -> Window.Id.t -> Window.t option\n val find_pane : t -> Pane.Id.t -> Pane.t option\nend","source":{"file":"lib/libtmux.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"A complete immutable graph captured over an acquisition interval. Collections are replayable immutable arrays. Capturing several tmux commands does not establish an atomic transaction."},"slug":"libtmux-snapshot"},{"id":"Libtmux.Snapshot.Id","publicId":"Libtmux.Snapshot.Id","qualifiedName":"Libtmux.Snapshot.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end","source":{"file":"lib/libtmux.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-id-1y9h"},{"id":"Libtmux.Snapshot.Id.equal","publicId":"Libtmux.Snapshot.Id.equal","qualifiedName":"Libtmux.Snapshot.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-snapshot-id-equal"},{"id":"Libtmux.Snapshot.Id.of_string","publicId":"Libtmux.Snapshot.Id.of_string","qualifiedName":"Libtmux.Snapshot.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":409,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":409,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-id-of_string"},{"id":"Libtmux.Snapshot.Id.t","publicId":"Libtmux.Snapshot.Id.t","qualifiedName":"Libtmux.Snapshot.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":407,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":407,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-id-t"},{"id":"Libtmux.Snapshot.Id.to_string","publicId":"Libtmux.Snapshot.Id.to_string","qualifiedName":"Libtmux.Snapshot.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-snapshot-id-to_string"},{"id":"Libtmux.Snapshot.Input","publicId":"Libtmux.Snapshot.Input","qualifiedName":"Libtmux.Snapshot.Input","name":"Input","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end","source":{"file":"lib/libtmux.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-input"},{"id":"Libtmux.Snapshot.Input.client","publicId":"Libtmux.Snapshot.Input.client","qualifiedName":"Libtmux.Snapshot.Input.client","name":"client","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":448,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }","source":{"file":"lib/libtmux.mli","line":448,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type client =\n {\n name: string ;\n session_id: Session.Id.t option ;\n pid: int ;\n width: int ;\n height: int option ;\n control_mode: bool }","params":[]}],"slug":"libtmux-snapshot-input-client"},{"id":"Libtmux.Snapshot.Input.client.control_mode","publicId":"Libtmux.Snapshot.Input.client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":454,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"control_mode : bool;","source":{"file":"lib/libtmux.mli","line":454,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.client","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.control_mode","slug":"libtmux-snapshot-input-client-control_mode"},{"id":"Libtmux.Snapshot.Input.client.height","publicId":"Libtmux.Snapshot.Input.client.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":453,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":453,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-client-height"},{"id":"Libtmux.Snapshot.Input.client.name","publicId":"Libtmux.Snapshot.Input.client.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.client","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-client-name"},{"id":"Libtmux.Snapshot.Input.client.pid","publicId":"Libtmux.Snapshot.Input.client.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":451,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int;","source":{"file":"lib/libtmux.mli","line":451,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-client-pid"},{"id":"Libtmux.Snapshot.Input.client.session_id","publicId":"Libtmux.Snapshot.Input.client.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t option;","source":{"file":"lib/libtmux.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.client","type":"Session.Id.t option","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-client-session_id"},{"id":"Libtmux.Snapshot.Input.client.width","publicId":"Libtmux.Snapshot.Input.client.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":452,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":452,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-client-width"},{"id":"Libtmux.Snapshot.Input.pane","publicId":"Libtmux.Snapshot.Input.pane","qualifiedName":"Libtmux.Snapshot.Input.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":432,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }","source":{"file":"lib/libtmux.mli","line":432,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type pane =\n {\n id: Pane.Id.t ;\n window_id: Window.Id.t ;\n index: int ;\n active: bool ;\n dead: bool ;\n title: string ;\n current_command: string ;\n current_path: string ;\n pid: int option ;\n width: int ;\n height: int ;\n left: int ;\n top: int }","params":[]}],"slug":"libtmux-snapshot-input-pane"},{"id":"Libtmux.Snapshot.Input.pane.active","publicId":"Libtmux.Snapshot.Input.pane.active","name":"active","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":436,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"active : bool;","source":{"file":"lib/libtmux.mli","line":436,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.active","slug":"libtmux-snapshot-input-pane-active"},{"id":"Libtmux.Snapshot.Input.pane.current_command","publicId":"Libtmux.Snapshot.Input.pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":439,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_command : string;","source":{"file":"lib/libtmux.mli","line":439,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_command","slug":"libtmux-snapshot-input-pane-current_command"},{"id":"Libtmux.Snapshot.Input.pane.current_path","publicId":"Libtmux.Snapshot.Input.pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_path : string;","source":{"file":"lib/libtmux.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_path","slug":"libtmux-snapshot-input-pane-current_path"},{"id":"Libtmux.Snapshot.Input.pane.dead","publicId":"Libtmux.Snapshot.Input.pane.dead","name":"dead","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":437,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"dead : bool;","source":{"file":"lib/libtmux.mli","line":437,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.dead","slug":"libtmux-snapshot-input-pane-dead"},{"id":"Libtmux.Snapshot.Input.pane.height","publicId":"Libtmux.Snapshot.Input.pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":443,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":443,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-pane-height"},{"id":"Libtmux.Snapshot.Input.pane.id","publicId":"Libtmux.Snapshot.Input.pane.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":433,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":433,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Pane.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-pane-id"},{"id":"Libtmux.Snapshot.Input.pane.index","publicId":"Libtmux.Snapshot.Input.pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":435,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":435,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-pane-index"},{"id":"Libtmux.Snapshot.Input.pane.left","publicId":"Libtmux.Snapshot.Input.pane.left","name":"left","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":444,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"left : int;","source":{"file":"lib/libtmux.mli","line":444,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.left","slug":"libtmux-snapshot-input-pane-left"},{"id":"Libtmux.Snapshot.Input.pane.pid","publicId":"Libtmux.Snapshot.Input.pane.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":441,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int option;","source":{"file":"lib/libtmux.mli","line":441,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-pane-pid"},{"id":"Libtmux.Snapshot.Input.pane.title","publicId":"Libtmux.Snapshot.Input.pane.title","name":"title","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":438,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"title : string;","source":{"file":"lib/libtmux.mli","line":438,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.title","slug":"libtmux-snapshot-input-pane-title"},{"id":"Libtmux.Snapshot.Input.pane.top","publicId":"Libtmux.Snapshot.Input.pane.top","name":"top","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":445,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"top : int;","source":{"file":"lib/libtmux.mli","line":445,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.top","slug":"libtmux-snapshot-input-pane-top"},{"id":"Libtmux.Snapshot.Input.pane.width","publicId":"Libtmux.Snapshot.Input.pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":442,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":442,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-pane-width"},{"id":"Libtmux.Snapshot.Input.pane.window_id","publicId":"Libtmux.Snapshot.Input.pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":434,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":434,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-pane-window_id"},{"id":"Libtmux.Snapshot.Input.session","publicId":"Libtmux.Snapshot.Input.session","qualifiedName":"Libtmux.Snapshot.Input.session","name":"session","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type session = { id : Session.Id.t; name : string; attached : int }","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type session = {\n id: Session.Id.t ;\n name: string ;\n attached: int }","params":[]}],"slug":"libtmux-snapshot-input-session"},{"id":"Libtmux.Snapshot.Input.session.attached","publicId":"Libtmux.Snapshot.Input.session.attached","name":"attached","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"attached : int","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.session","type":"int","qualifiedName":"Libtmux.Snapshot.Input.attached","slug":"libtmux-snapshot-input-session-attached"},{"id":"Libtmux.Snapshot.Input.session.id","publicId":"Libtmux.Snapshot.Input.session.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.session","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-session-id"},{"id":"Libtmux.Snapshot.Input.session.name","publicId":"Libtmux.Snapshot.Input.session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.session","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-session-name"},{"id":"Libtmux.Snapshot.Input.window","publicId":"Libtmux.Snapshot.Input.window","qualifiedName":"Libtmux.Snapshot.Input.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }","source":{"file":"lib/libtmux.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window =\n {\n id: Window.Id.t ;\n name: string ;\n width: int ;\n height: int ;\n layout: string }","params":[]}],"slug":"libtmux-snapshot-input-window"},{"id":"Libtmux.Snapshot.Input.window.height","publicId":"Libtmux.Snapshot.Input.window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":421,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":421,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-window-height"},{"id":"Libtmux.Snapshot.Input.window.id","publicId":"Libtmux.Snapshot.Input.window.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":418,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":418,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-window-id"},{"id":"Libtmux.Snapshot.Input.window.layout","publicId":"Libtmux.Snapshot.Input.window.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : string;","source":{"file":"lib/libtmux.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.layout","slug":"libtmux-snapshot-input-window-layout"},{"id":"Libtmux.Snapshot.Input.window.name","publicId":"Libtmux.Snapshot.Input.window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":419,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":419,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-window-name"},{"id":"Libtmux.Snapshot.Input.window.width","publicId":"Libtmux.Snapshot.Input.window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":420,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":420,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-window-width"},{"id":"Libtmux.Snapshot.Input.window_link","publicId":"Libtmux.Snapshot.Input.window_link","qualifiedName":"Libtmux.Snapshot.Input.window_link","name":"window_link","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":425,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }","source":{"file":"lib/libtmux.mli","line":425,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window_link =\n {\n session_id: Session.Id.t ;\n window_id: Window.Id.t ;\n index: int ;\n is_current: bool }","params":[]}],"slug":"libtmux-snapshot-input-window_link"},{"id":"Libtmux.Snapshot.Input.window_link.index","publicId":"Libtmux.Snapshot.Input.window_link.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":428,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":428,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-window_link-index"},{"id":"Libtmux.Snapshot.Input.window_link.is_current","publicId":"Libtmux.Snapshot.Input.window_link.is_current","name":"is_current","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":429,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"is_current : bool;","source":{"file":"lib/libtmux.mli","line":429,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.is_current","slug":"libtmux-snapshot-input-window_link-is_current"},{"id":"Libtmux.Snapshot.Input.window_link.session_id","publicId":"Libtmux.Snapshot.Input.window_link.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-window_link-session_id"},{"id":"Libtmux.Snapshot.Input.window_link.window_id","publicId":"Libtmux.Snapshot.Input.window_link.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-window_link-window_id"},{"id":"Libtmux.Snapshot.clients","publicId":"Libtmux.Snapshot.clients","qualifiedName":"Libtmux.Snapshot.clients","name":"clients","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":486,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. "],"declarations":[{"kind":"function","text":"val clients : t -> Client_observation.t Iarray.t","source":{"file":"lib/libtmux.mli","line":486,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Collections and their contents are immutable. They retain capture order, are replayable and remain readable after the acquiring client closes."},"signatures":[{"raw":"val clients : t -> Client_observation.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_observation.t Iarray.t"}],"slug":"libtmux-snapshot-clients"},{"id":"Libtmux.Snapshot.create","publicId":"Libtmux.Snapshot.create","qualifiedName":"Libtmux.Snapshot.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. "],"declarations":[{"kind":"function","text":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Validate and materialize a complete captured graph without I/O. Equal duplicate global rows collapse in first-occurrence order; conflicting rows and dangling references return {!Error.Capture_raced}. Links at different indexes remain distinct, including within one session. At most 10,000 input rows are admitted. Each session needs one current link and each window one active pane. Capture spans an interval, not an atomic instant. Input strings are bytes; no Unicode normalization is performed."},"signatures":[{"raw":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list -> clients:Input.client list -> (t, Error.t) result","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"id","type":"Id.t","keywordOnly":true},{"name":"started_at_ns","type":"int64","keywordOnly":true},{"name":"finished_at_ns","type":"int64","keywordOnly":true},{"name":"sessions","type":"Input.session list","keywordOnly":true},{"name":"windows","type":"Input.window list","keywordOnly":true},{"name":"window_links","type":"Input.window_link list","keywordOnly":true},{"name":"panes","type":"Input.pane list","keywordOnly":true},{"name":"clients","type":"Input.client list","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-create"},{"id":"Libtmux.Snapshot.find_pane","publicId":"Libtmux.Snapshot.find_pane","qualifiedName":"Libtmux.Snapshot.find_pane","name":"find_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":492,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_pane : t -> Pane.Id.t -> Pane.t option","source":{"file":"lib/libtmux.mli","line":492,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_pane : t -> Pane.Id.t -> Pane.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Pane.Id.t"}],"returns":"Pane.t option"}],"slug":"libtmux-snapshot-find_pane"},{"id":"Libtmux.Snapshot.find_session","publicId":"Libtmux.Snapshot.find_session","qualifiedName":"Libtmux.Snapshot.find_session","name":"find_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":490,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_session : t -> Session.Id.t -> Session.t option","source":{"file":"lib/libtmux.mli","line":490,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_session : t -> Session.Id.t -> Session.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Session.Id.t"}],"returns":"Session.t option"}],"slug":"libtmux-snapshot-find_session"},{"id":"Libtmux.Snapshot.find_window","publicId":"Libtmux.Snapshot.find_window","qualifiedName":"Libtmux.Snapshot.find_window","name":"find_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":491,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_window : t -> Window.Id.t -> Window.t option","source":{"file":"lib/libtmux.mli","line":491,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_window : t -> Window.Id.t -> Window.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Window.Id.t"}],"returns":"Window.t option"}],"slug":"libtmux-snapshot-find_window"},{"id":"Libtmux.Snapshot.finished_at_ns","publicId":"Libtmux.Snapshot.finished_at_ns","qualifiedName":"Libtmux.Snapshot.finished_at_ns","name":"finished_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":480,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val finished_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":480,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val finished_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-finished_at_ns"},{"id":"Libtmux.Snapshot.id","publicId":"Libtmux.Snapshot.id","qualifiedName":"Libtmux.Snapshot.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":477,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":477,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-snapshot-id-1y6d"},{"id":"Libtmux.Snapshot.panes","publicId":"Libtmux.Snapshot.panes","qualifiedName":"Libtmux.Snapshot.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"slug":"libtmux-snapshot-panes"},{"id":"Libtmux.Snapshot.sessions","publicId":"Libtmux.Snapshot.sessions","qualifiedName":"Libtmux.Snapshot.sessions","name":"sessions","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val sessions : t -> Session.t Iarray.t","source":{"file":"lib/libtmux.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val sessions : t -> Session.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-snapshot-sessions"},{"id":"Libtmux.Snapshot.source","publicId":"Libtmux.Snapshot.source","qualifiedName":"Libtmux.Snapshot.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":478,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":478,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-snapshot-source"},{"id":"Libtmux.Snapshot.started_at_ns","publicId":"Libtmux.Snapshot.started_at_ns","qualifiedName":"Libtmux.Snapshot.started_at_ns","name":"started_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":479,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val started_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":479,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val started_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-started_at_ns"},{"id":"Libtmux.Snapshot.t","publicId":"Libtmux.Snapshot.t","qualifiedName":"Libtmux.Snapshot.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":404,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":404,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-t"},{"id":"Libtmux.Snapshot.window_links","publicId":"Libtmux.Snapshot.window_links","qualifiedName":"Libtmux.Snapshot.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":483,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":483,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-snapshot-window_links"},{"id":"Libtmux.Snapshot.windows","publicId":"Libtmux.Snapshot.windows","qualifiedName":"Libtmux.Snapshot.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":482,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":482,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-snapshot-windows"},{"id":"Libtmux.Source","publicId":"Libtmux.Source","qualifiedName":"Libtmux.Source","name":"Source","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Endpoint and observed daemon identity for one connection generation.\n Constructing metadata alone does not establish a live binding. "],"declarations":[{"kind":"module","text":"module Source : sig\n type t\n\n val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result\n (** Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. *)\n\n val endpoint : t -> Endpoint.t\n val generation : t -> Generation.t\n val server_pid : t -> int\n\n val equal : t -> t -> bool\n (** Compare endpoint, observed daemon PID and connection generation.\n Independent connections compare unequal even when they observe the same\n PID. Equality establishes neither a live binding nor fresh observations.\n *)\nend","source":{"file":"lib/libtmux.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Endpoint and observed daemon identity for one connection generation. Constructing metadata alone does not establish a live binding."},"slug":"libtmux-source"},{"id":"Libtmux.Source.create","publicId":"Libtmux.Source.create","qualifiedName":"Libtmux.Source.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. "],"declarations":[{"kind":"function","text":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Source","doc":{"summary":"Pure metadata import for capture adapters. This neither establishes a connection nor verifies process identity. The backend must bind the generation to a live daemon before it admits operations."},"signatures":[{"raw":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t -> server_pid:int -> (t, Error.t) result","params":[{"name":"endpoint","type":"Endpoint.t","keywordOnly":true},{"name":"generation","type":"Generation.t","keywordOnly":true},{"name":"server_pid","type":"int","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-source-create"},{"id":"Libtmux.Source.endpoint","publicId":"Libtmux.Source.endpoint","qualifiedName":"Libtmux.Source.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Endpoint.t","source":{"file":"lib/libtmux.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val endpoint : t -> Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Endpoint.t"}],"slug":"libtmux-source-endpoint"},{"id":"Libtmux.Source.equal","publicId":"Libtmux.Source.equal","qualifiedName":"Libtmux.Source.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare endpoint, observed daemon PID and connection generation.\n Independent connections compare unequal even when they observe the same\n PID. Equality establishes neither a live binding nor fresh observations.\n "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Source","doc":{"summary":"Compare endpoint, observed daemon PID and connection generation. Independent connections compare unequal even when they observe the same PID. Equality establishes neither a live binding nor fresh observations."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-source-equal"},{"id":"Libtmux.Source.generation","publicId":"Libtmux.Source.generation","qualifiedName":"Libtmux.Source.generation","name":"generation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":109,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val generation : t -> Generation.t","source":{"file":"lib/libtmux.mli","line":109,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val generation : t -> Generation.t","params":[{"name":"arg1","type":"t"}],"returns":"Generation.t"}],"slug":"libtmux-source-generation"},{"id":"Libtmux.Source.server_pid","publicId":"Libtmux.Source.server_pid","qualifiedName":"Libtmux.Source.server_pid","name":"server_pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val server_pid : t -> int","source":{"file":"lib/libtmux.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val server_pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-source-server_pid"},{"id":"Libtmux.Source.t","publicId":"Libtmux.Source.t","qualifiedName":"Libtmux.Source.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Source","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-source-t"},{"id":"Libtmux.Spawn","publicId":"Libtmux.Spawn","qualifiedName":"Libtmux.Spawn","name":"Spawn","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":739,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A process description with explicit argv or shell semantics, working\n directory and environment. Describing a process performs no I/O. "],"declarations":[{"kind":"module","text":"module Spawn : sig\n type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string\n\n type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }\n\n val make : ?cwd:string -> ?environment:(string * string) list -> command -> t\n (** Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. *)\n\n val default : t\nend","source":{"file":"lib/libtmux.mli","line":739,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"A process description with explicit argv or shell semantics, working directory and environment. Describing a process performs no I/O."},"slug":"libtmux-spawn"},{"id":"Libtmux.Spawn.command","publicId":"Libtmux.Spawn.command","qualifiedName":"Libtmux.Spawn.command","name":"command","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":740,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string","source":{"file":"lib/libtmux.mli","line":740,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type command =\n | Default \n | Exec of {\n program: string ;\n args: string list } \n | Shell of string ","params":[]}],"slug":"libtmux-spawn-command"},{"id":"Libtmux.Spawn.command.Default","publicId":"Libtmux.Spawn.command.Default","name":"Default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Default","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.command","variant":"unit","qualifiedName":"Libtmux.Spawn.Default","slug":"libtmux-spawn-command-default"},{"id":"Libtmux.Spawn.command.Exec","publicId":"Libtmux.Spawn.command.Exec","name":"Exec","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Exec of { program : string; args : string list }","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.command","variant":"struct","qualifiedName":"Libtmux.Spawn.Exec","slug":"libtmux-spawn-command-exec"},{"id":"Libtmux.Spawn.command.Exec.args","publicId":"Libtmux.Spawn.command.Exec.args","name":"args","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"args : string list","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string list","qualifiedName":"Libtmux.Spawn.args","slug":"libtmux-spawn-command-exec-args"},{"id":"Libtmux.Spawn.command.Exec.program","publicId":"Libtmux.Spawn.command.Exec.program","name":"program","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"program : string;","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string","qualifiedName":"Libtmux.Spawn.program","slug":"libtmux-spawn-command-exec-program"},{"id":"Libtmux.Spawn.command.Shell","publicId":"Libtmux.Spawn.command.Shell","name":"Shell","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":743,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Shell of string","source":{"file":"lib/libtmux.mli","line":743,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.command","variant":"tuple","qualifiedName":"Libtmux.Spawn.Shell","slug":"libtmux-spawn-command-shell"},{"id":"Libtmux.Spawn.default","publicId":"Libtmux.Spawn.default","qualifiedName":"Libtmux.Spawn.default","name":"default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":759,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val default : t","source":{"file":"lib/libtmux.mli","line":759,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"val default : t","params":[],"returns":"t"}],"slug":"libtmux-spawn-default"},{"id":"Libtmux.Spawn.make","publicId":"Libtmux.Spawn.make","qualifiedName":"Libtmux.Spawn.make","name":"make","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":751,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. "],"declarations":[{"kind":"function","text":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","source":{"file":"lib/libtmux.mli","line":751,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn","doc":{"summary":"Describe a program without I/O. `Exec` preserves argv; `Shell` explicitly requests the daemon's configured shell. `cwd` must be absolute. Validation occurs at admission. With no arguments, `Exec` uses a fixed `/bin/sh` trampoline because tmux treats a single argument as shell code. `Default` follows tmux defaults on creation and reuses the previous command on respawn."},"signatures":[{"raw":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"arg1","type":"command"}],"returns":"t"}],"slug":"libtmux-spawn-make"},{"id":"Libtmux.Spawn.t","publicId":"Libtmux.Spawn.t","qualifiedName":"Libtmux.Spawn.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":745,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }","source":{"file":"lib/libtmux.mli","line":745,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type t =\n {\n command: command ;\n cwd: string option ;\n environment: (string * string) list }","params":[]}],"slug":"libtmux-spawn-t"},{"id":"Libtmux.Spawn.t.command","publicId":"Libtmux.Spawn.t.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":746,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : command;","source":{"file":"lib/libtmux.mli","line":746,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.t","type":"command","qualifiedName":"Libtmux.Spawn.command","slug":"libtmux-spawn-t-command"},{"id":"Libtmux.Spawn.t.cwd","publicId":"Libtmux.Spawn.t.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":747,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"lib/libtmux.mli","line":747,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.t","type":"string option","qualifiedName":"Libtmux.Spawn.cwd","slug":"libtmux-spawn-t-cwd"},{"id":"Libtmux.Spawn.t.environment","publicId":"Libtmux.Spawn.t.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":748,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"lib/libtmux.mli","line":748,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.t","type":"(string * string) list","qualifiedName":"Libtmux.Spawn.environment","slug":"libtmux-spawn-t-environment"},{"id":"Libtmux.Window","publicId":"Libtmux.Window","qualifiedName":"Libtmux.Window","name":"Window","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A global window shared by its session links. Window index and current state\n belong to a link, while panes and geometry belong to the window. "],"declarations":[{"kind":"module","text":"and Window : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end\n\n module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val width : t -> int\n val height : t -> int\n val layout : t -> string\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\n\n val panes : t -> Pane.t Iarray.t\n val links : t -> Window_link.t Iarray.t\nend","source":{"file":"lib/libtmux.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"A global window shared by its session links. Window index and current state belong to a link, while panes and geometry belong to the window."},"slug":"libtmux-window"},{"id":"Libtmux.Window.Fields","publicId":"Libtmux.Window.Fields","qualifiedName":"Libtmux.Window.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end","source":{"file":"lib/libtmux.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","slug":"libtmux-window-fields"},{"id":"Libtmux.Window.Fields.height","publicId":"Libtmux.Window.Fields.height","qualifiedName":"Libtmux.Window.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":237,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":237,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-height"},{"id":"Libtmux.Window.Fields.id","publicId":"Libtmux.Window.Fields.id","qualifiedName":"Libtmux.Window.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-id"},{"id":"Libtmux.Window.Fields.layout","publicId":"Libtmux.Window.Fields.layout","qualifiedName":"Libtmux.Window.Fields.layout","name":"layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val layout : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val layout : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-layout"},{"id":"Libtmux.Window.Fields.name","publicId":"Libtmux.Window.Fields.name","qualifiedName":"Libtmux.Window.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-name"},{"id":"Libtmux.Window.Fields.width","publicId":"Libtmux.Window.Fields.width","qualifiedName":"Libtmux.Window.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-width"},{"id":"Libtmux.Window.Id","publicId":"Libtmux.Window.Id","qualifiedName":"Libtmux.Window.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","slug":"libtmux-window-id-1sgu"},{"id":"Libtmux.Window.Id.compare","publicId":"Libtmux.Window.Id.compare","qualifiedName":"Libtmux.Window.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-window-id-compare"},{"id":"Libtmux.Window.Id.equal","publicId":"Libtmux.Window.Id.equal","qualifiedName":"Libtmux.Window.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-id-equal"},{"id":"Libtmux.Window.Id.of_string","publicId":"Libtmux.Window.Id.of_string","qualifiedName":"Libtmux.Window.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-window-id-of_string"},{"id":"Libtmux.Window.Id.pp","publicId":"Libtmux.Window.Id.pp","qualifiedName":"Libtmux.Window.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-window-id-pp"},{"id":"Libtmux.Window.Id.t","publicId":"Libtmux.Window.Id.t","qualifiedName":"Libtmux.Window.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-id-t"},{"id":"Libtmux.Window.Id.to_string","publicId":"Libtmux.Window.Id.to_string","qualifiedName":"Libtmux.Window.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-id-to_string"},{"id":"Libtmux.Window.Relations","publicId":"Libtmux.Window.Relations","qualifiedName":"Libtmux.Window.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":241,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":241,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","slug":"libtmux-window-relations"},{"id":"Libtmux.Window.Relations.links","publicId":"Libtmux.Window.Relations.links","qualifiedName":"Libtmux.Window.Relations.links","name":"links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":243,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":243,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-window-relations-links"},{"id":"Libtmux.Window.Relations.panes","publicId":"Libtmux.Window.Relations.panes","qualifiedName":"Libtmux.Window.Relations.panes","name":"panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":242,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val panes : (t, Pane.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":242,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val panes : (t, Pane.t) Relation.Many.t","params":[],"returns":"(t, Pane.t) Relation.Many.t"}],"slug":"libtmux-window-relations-panes"},{"id":"Libtmux.Window.Target","publicId":"Libtmux.Window.Target","qualifiedName":"Libtmux.Window.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","slug":"libtmux-window-target-6ecc"},{"id":"Libtmux.Window.Target.id","publicId":"Libtmux.Window.Target.id","qualifiedName":"Libtmux.Window.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-target-id"},{"id":"Libtmux.Window.Target.of_id","publicId":"Libtmux.Window.Target.of_id","qualifiedName":"Libtmux.Window.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-window-target-of_id"},{"id":"Libtmux.Window.Target.source","publicId":"Libtmux.Window.Target.source","qualifiedName":"Libtmux.Window.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-target-source"},{"id":"Libtmux.Window.Target.t","publicId":"Libtmux.Window.Target.t","qualifiedName":"Libtmux.Window.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-target-t"},{"id":"Libtmux.Window.height","publicId":"Libtmux.Window.height","qualifiedName":"Libtmux.Window.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-height"},{"id":"Libtmux.Window.id","publicId":"Libtmux.Window.id","qualifiedName":"Libtmux.Window.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":258,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":258,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-id-1sjw"},{"id":"Libtmux.Window.layout","publicId":"Libtmux.Window.layout","qualifiedName":"Libtmux.Window.layout","name":"layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":262,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val layout : t -> string","source":{"file":"lib/libtmux.mli","line":262,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val layout : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-layout"},{"id":"Libtmux.Window.links","publicId":"Libtmux.Window.links","qualifiedName":"Libtmux.Window.links","name":"links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-window-links"},{"id":"Libtmux.Window.name","publicId":"Libtmux.Window.name","qualifiedName":"Libtmux.Window.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":259,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":259,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-name"},{"id":"Libtmux.Window.panes","publicId":"Libtmux.Window.panes","qualifiedName":"Libtmux.Window.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":272,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":272,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-window-panes"},{"id":"Libtmux.Window.same_entity","publicId":"Libtmux.Window.same_entity","qualifiedName":"Libtmux.Window.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":266,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_entity"},{"id":"Libtmux.Window.same_observation","publicId":"Libtmux.Window.same_observation","qualifiedName":"Libtmux.Window.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_observation"},{"id":"Libtmux.Window.source","publicId":"Libtmux.Window.source","qualifiedName":"Libtmux.Window.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-source"},{"id":"Libtmux.Window.t","publicId":"Libtmux.Window.t","qualifiedName":"Libtmux.Window.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-t"},{"id":"Libtmux.Window.target","publicId":"Libtmux.Window.target","qualifiedName":"Libtmux.Window.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-window-target-1sbf"},{"id":"Libtmux.Window.target:type","publicId":"Libtmux.Window.target:type","qualifiedName":"Libtmux.Window.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":256,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":256,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-window-target-type"},{"id":"Libtmux.Window.width","publicId":"Libtmux.Window.width","qualifiedName":"Libtmux.Window.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-width"},{"id":"Libtmux.Window_link","publicId":"Libtmux.Window_link","qualifiedName":"Libtmux.Window_link","name":"Window_link","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":278,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" One captured session/index/window context. It is not a stable link\n incarnation across unlinking, movement or reindexing. "],"declarations":[{"kind":"module","text":"and Window_link : sig\n type t\n\n module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end\n\n val index : t -> int\n val is_current : t -> bool\n val session : t -> Session.t\n val window : t -> Window.t\n\n val same_context : t -> t -> bool\n (** Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. *)\n\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":278,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"One captured session/index/window context. It is not a stable link incarnation across unlinking, movement or reindexing."},"slug":"libtmux-window_link"},{"id":"Libtmux.Window_link.Fields","publicId":"Libtmux.Window_link.Fields","qualifiedName":"Libtmux.Window_link.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":281,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":281,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-fields"},{"id":"Libtmux.Window_link.Fields.index","publicId":"Libtmux.Window_link.Fields.index","qualifiedName":"Libtmux.Window_link.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window_link-fields-index"},{"id":"Libtmux.Window_link.Fields.is_current","publicId":"Libtmux.Window_link.Fields.is_current","qualifiedName":"Libtmux.Window_link.Fields.is_current","name":"is_current","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":283,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val is_current : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val is_current : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-window_link-fields-is_current"},{"id":"Libtmux.Window_link.Relations","publicId":"Libtmux.Window_link.Relations","qualifiedName":"Libtmux.Window_link.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":286,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":286,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-relations"},{"id":"Libtmux.Window_link.Relations.session","publicId":"Libtmux.Window_link.Relations.session","qualifiedName":"Libtmux.Window_link.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":287,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":287,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.One.t","params":[],"returns":"(t, Session.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-session"},{"id":"Libtmux.Window_link.Relations.window","publicId":"Libtmux.Window_link.Relations.window","qualifiedName":"Libtmux.Window_link.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":288,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-window"},{"id":"Libtmux.Window_link.index","publicId":"Libtmux.Window_link.index","qualifiedName":"Libtmux.Window_link.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":291,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":291,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window_link-index"},{"id":"Libtmux.Window_link.is_current","publicId":"Libtmux.Window_link.is_current","qualifiedName":"Libtmux.Window_link.is_current","name":"is_current","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":292,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_current : t -> bool","source":{"file":"lib/libtmux.mli","line":292,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val is_current : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-is_current"},{"id":"Libtmux.Window_link.same_context","publicId":"Libtmux.Window_link.same_context","qualifiedName":"Libtmux.Window_link.same_context","name":"same_context","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":296,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. "],"declarations":[{"kind":"function","text":"val same_context : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":296,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","doc":{"summary":"Compare source, session, index and window. An equal context does not certify a stable link incarnation across reindexing or unlink/relink."},"signatures":[{"raw":"val same_context : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_context"},{"id":"Libtmux.Window_link.same_observation","publicId":"Libtmux.Window_link.same_observation","qualifiedName":"Libtmux.Window_link.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_observation"},{"id":"Libtmux.Window_link.session","publicId":"Libtmux.Window_link.session","qualifiedName":"Libtmux.Window_link.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":293,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> Session.t","source":{"file":"lib/libtmux.mli","line":293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val session : t -> Session.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t"}],"slug":"libtmux-window_link-session"},{"id":"Libtmux.Window_link.t","publicId":"Libtmux.Window_link.t","qualifiedName":"Libtmux.Window_link.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window_link-t"},{"id":"Libtmux.Window_link.window","publicId":"Libtmux.Window_link.window","qualifiedName":"Libtmux.Window_link.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-window_link-window"},{"id":"Libtmux_eio","publicId":"Libtmux_eio","qualifiedName":"Libtmux_eio","name":"Libtmux_eio","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Concurrent Linux tmux clients using the application's Eio scheduler.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md}streaming\n guide} demonstrates application-owned switches, cancellation and continuity\n gaps. "],"declarations":[{"kind":"module","text":"","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"doc":{"summary":"Concurrent Linux tmux clients using the application's Eio scheduler.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [streaming guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md) demonstrates application-owned switches, cancellation and continuity gaps."},"slug":"libtmux_eio"},{"id":"Libtmux_eio.Cleanup","publicId":"Libtmux_eio.Cleanup","qualifiedName":"Libtmux_eio.Cleanup","name":"Cleanup","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Domain-owned cleanup diagnostics shared with the blocking backend. Supply a\n report before setup to inspect secondary failures after native cancellation.\n No scheduler is needed to inspect a report. "],"declarations":[{"kind":"module","text":"module Cleanup = Libtmux_unix.Cleanup","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","doc":{"summary":"Domain-owned cleanup diagnostics shared with the blocking backend. Supply a report before setup to inspect secondary failures after native cancellation. No scheduler is needed to inspect a report."},"exportedFrom":"Libtmux_unix.Cleanup","slug":"libtmux_eio-cleanup"},{"id":"Libtmux_eio.Client","publicId":"Libtmux_eio.Client","qualifiedName":"Libtmux_eio.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n *)\n\n val cleanup : t -> Cleanup.t\n (** Read the supplied report or the client's fresh default without I/O.\n {!Cleanup.inspect} remains available after close. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. New admission returns\n [Error Libtmux.Error.Closed] once {!close} starts. *)\n\n val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. A cleanup failure cannot replace\n an earlier error or cancellation; inspect {!cleanup} for secondary\n failures. Otherwise cleanup failure prevents success or renewed coverage.\n No history/barrier guarantee. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve bounded capacity without I/O. Return\n [Error Libtmux.Error.Closed] once {!close} starts. *)\n\n val await : 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. *)\n\n val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result\n (** Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. *)\n\n val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. *)\n\n val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Retire the generation and close owned control clients and descriptors.\n Reject new {!submit} and {!subscribe} calls as soon as closing starts.\n Concurrent calls await the same teardown result. Later calls retain a\n teardown failure instead of treating the closed flag as success. Each\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n Other fibers can run during that wait. The grace is per helper; it does\n not bound scheduling, filesystem or uninterruptible kernel work. No signal\n targets the daemon. tmux's [exit-unattached] and [exit-empty] policies can\n end the daemon after its clients or sessions disappear. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_eio-client"},{"id":"Libtmux_eio.Client.await","publicId":"Libtmux_eio.Client.await","qualifiedName":"Libtmux_eio.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. "],"declarations":[{"kind":"function","text":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Cancellation propagates as Eio cancellation. Store the handle outside the cancelled fiber: the client drains written work independently, and the eventual result remains inspectable."},"signatures":[{"raw":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-await"},{"id":"Libtmux_eio.Client.break_pane","publicId":"Libtmux_eio.Client.break_pane","qualifiedName":"Libtmux_eio.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":434,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":434,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-break_pane"},{"id":"Libtmux_eio.Client.capture","publicId":"Libtmux_eio.Client.capture","qualifiedName":"Libtmux_eio.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. "],"declarations":[{"kind":"function","text":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a complete immutable graph over an interval. Conflicting or disappearing entities fail capture; they do not become empty relations. The returned values remain readable after client closure."},"signatures":[{"raw":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture"},{"id":"Libtmux_eio.Client.capture_environment","publicId":"Libtmux_eio.Client.capture_environment","qualifiedName":"Libtmux_eio.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":276,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":276,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_environment"},{"id":"Libtmux_eio.Client.capture_hooks","publicId":"Libtmux_eio.Client.capture_hooks","qualifiedName":"Libtmux_eio.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":355,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":355,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_hooks"},{"id":"Libtmux_eio.Client.capture_options","publicId":"Libtmux_eio.Client.capture_options","qualifiedName":"Libtmux_eio.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_options"},{"id":"Libtmux_eio.Client.capture_text","publicId":"Libtmux_eio.Client.capture_text","qualifiedName":"Libtmux_eio.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Inclusive ordinary screen rows, using a bounded private file transfer. Qualified local scratch storage must be shared with the daemon."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_text"},{"id":"Libtmux_eio.Client.cleanup","publicId":"Libtmux_eio.Client.cleanup","qualifiedName":"Libtmux_eio.Client.cleanup","name":"cleanup","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":142,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read the supplied report or the client's fresh default without I/O.\n {!Cleanup.inspect} remains available after close. "],"declarations":[{"kind":"function","text":"val cleanup : t -> Cleanup.t","source":{"file":"eio/libtmux_eio.mli","line":142,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the supplied report or the client's fresh default without I/O. {!Cleanup.inspect} remains available after close."},"signatures":[{"raw":"val cleanup : t -> Cleanup.t","params":[{"name":"arg1","type":"t"}],"returns":"Cleanup.t"}],"slug":"libtmux_eio-client-cleanup"},{"id":"Libtmux_eio.Client.clear_history","publicId":"Libtmux_eio.Client.clear_history","qualifiedName":"Libtmux_eio.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_history"},{"id":"Libtmux_eio.Client.clear_option_array","publicId":"Libtmux_eio.Client.clear_option_array","qualifiedName":"Libtmux_eio.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":351,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":351,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_option_array"},{"id":"Libtmux_eio.Client.close","publicId":"Libtmux_eio.Client.close","qualifiedName":"Libtmux_eio.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Retire the generation and close owned control clients and descriptors.\n Reject new {!submit} and {!subscribe} calls as soon as closing starts.\n Concurrent calls await the same teardown result. Later calls retain a\n teardown failure instead of treating the closed flag as success. Each\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n Other fibers can run during that wait. The grace is per helper; it does\n not bound scheduling, filesystem or uninterruptible kernel work. No signal\n targets the daemon. tmux's [exit-unattached] and [exit-empty] policies can\n end the daemon after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Retire the generation and close owned control clients and descriptors. Reject new {!submit} and {!subscribe} calls as soon as closing starts. Concurrent calls await the same teardown result. Later calls retain a teardown failure instead of treating the closed flag as success. Each helper gets 200 ms of TERM grace, followed by KILL if needed and reaping. Other fibers can run during that wait. The grace is per helper; it does not bound scheduling, filesystem or uninterruptible kernel work. No signal targets the daemon. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-close"},{"id":"Libtmux_eio.Client.connect","publicId":"Libtmux_eio.Client.connect","qualifiedName":"Libtmux_eio.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n "],"declarations":[{"kind":"function","text":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Attach to an existing local Linux daemon in the same PID namespace and shared filesystem. Requires pidfd support. Default exchange timeout: one second. All client calls belong to the connecting OCaml domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-connect"},{"id":"Libtmux_eio.Client.create_session","publicId":"Libtmux_eio.Client.create_session","qualifiedName":"Libtmux_eio.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_session"},{"id":"Libtmux_eio.Client.create_window","publicId":"Libtmux_eio.Client.create_window","qualifiedName":"Libtmux_eio.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_window"},{"id":"Libtmux_eio.Client.cycle_layout","publicId":"Libtmux_eio.Client.cycle_layout","qualifiedName":"Libtmux_eio.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":528,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":528,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-cycle_layout"},{"id":"Libtmux_eio.Client.kill_pane","publicId":"Libtmux_eio.Client.kill_pane","qualifiedName":"Libtmux_eio.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":454,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":454,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_pane"},{"id":"Libtmux_eio.Client.kill_session","publicId":"Libtmux_eio.Client.kill_session","qualifiedName":"Libtmux_eio.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":445,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":445,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_session"},{"id":"Libtmux_eio.Client.kill_window","publicId":"Libtmux_eio.Client.kill_window","qualifiedName":"Libtmux_eio.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_window"},{"id":"Libtmux_eio.Client.link_window","publicId":"Libtmux_eio.Client.link_window","qualifiedName":"Libtmux_eio.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-link_window"},{"id":"Libtmux_eio.Client.move_pane","publicId":"Libtmux_eio.Client.move_pane","qualifiedName":"Libtmux_eio.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":535,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":535,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_pane"},{"id":"Libtmux_eio.Client.move_window_at","publicId":"Libtmux_eio.Client.move_window_at","qualifiedName":"Libtmux_eio.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_window_at"},{"id":"Libtmux_eio.Client.read_hook","publicId":"Libtmux_eio.Client.read_hook","qualifiedName":"Libtmux_eio.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":360,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":360,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_hook"},{"id":"Libtmux_eio.Client.read_option","publicId":"Libtmux_eio.Client.read_option","qualifiedName":"Libtmux_eio.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":317,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":317,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_option"},{"id":"Libtmux_eio.Client.refresh_client_at","publicId":"Libtmux_eio.Client.refresh_client_at","qualifiedName":"Libtmux_eio.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":242,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":242,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-refresh_client_at"},{"id":"Libtmux_eio.Client.remove_environment","publicId":"Libtmux_eio.Client.remove_environment","qualifiedName":"Libtmux_eio.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":302,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_environment"},{"id":"Libtmux_eio.Client.remove_hook","publicId":"Libtmux_eio.Client.remove_hook","qualifiedName":"Libtmux_eio.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":385,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":385,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_hook"},{"id":"Libtmux_eio.Client.rename_session","publicId":"Libtmux_eio.Client.rename_session","qualifiedName":"Libtmux_eio.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_session"},{"id":"Libtmux_eio.Client.rename_window","publicId":"Libtmux_eio.Client.rename_window","qualifiedName":"Libtmux_eio.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":216,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":216,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_window"},{"id":"Libtmux_eio.Client.request_detach_client_at","publicId":"Libtmux_eio.Client.request_detach_client_at","qualifiedName":"Libtmux_eio.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-request_detach_client_at"},{"id":"Libtmux_eio.Client.resize_control_client_at","publicId":"Libtmux_eio.Client.resize_control_client_at","qualifiedName":"Libtmux_eio.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_control_client_at"},{"id":"Libtmux_eio.Client.resize_pane","publicId":"Libtmux_eio.Client.resize_pane","qualifiedName":"Libtmux_eio.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":500,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":500,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_pane"},{"id":"Libtmux_eio.Client.resize_window","publicId":"Libtmux_eio.Client.resize_window","qualifiedName":"Libtmux_eio.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_window"},{"id":"Libtmux_eio.Client.respawn_pane","publicId":"Libtmux_eio.Client.respawn_pane","qualifiedName":"Libtmux_eio.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-respawn_pane"},{"id":"Libtmux_eio.Client.rotate_panes","publicId":"Libtmux_eio.Client.rotate_panes","qualifiedName":"Libtmux_eio.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":554,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":554,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rotate_panes"},{"id":"Libtmux_eio.Client.run","publicId":"Libtmux_eio.Client.run","qualifiedName":"Libtmux_eio.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":196,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. "],"declarations":[{"kind":"function","text":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":196,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Submit and await an explicit command. Retain a separate submitted handle when the outcome must remain inspectable after caller cancellation."},"signatures":[{"raw":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run"},{"id":"Libtmux_eio.Client.run_hook","publicId":"Libtmux_eio.Client.run_hook","qualifiedName":"Libtmux_eio.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":394,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":394,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run_hook"},{"id":"Libtmux_eio.Client.select_layout","publicId":"Libtmux_eio.Client.select_layout","qualifiedName":"Libtmux_eio.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":520,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":520,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout :\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_layout"},{"id":"Libtmux_eio.Client.select_pane","publicId":"Libtmux_eio.Client.select_pane","qualifiedName":"Libtmux_eio.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":491,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":491,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_pane"},{"id":"Libtmux_eio.Client.select_window_at","publicId":"Libtmux_eio.Client.select_window_at","qualifiedName":"Libtmux_eio.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_window_at"},{"id":"Libtmux_eio.Client.send_keys","publicId":"Libtmux_eio.Client.send_keys","qualifiedName":"Libtmux_eio.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys :\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_keys"},{"id":"Libtmux_eio.Client.send_text","publicId":"Libtmux_eio.Client.send_text","qualifiedName":"Libtmux_eio.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":257,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_text"},{"id":"Libtmux_eio.Client.set_environment","publicId":"Libtmux_eio.Client.set_environment","qualifiedName":"Libtmux_eio.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":286,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":286,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_environment"},{"id":"Libtmux_eio.Client.set_hook","publicId":"Libtmux_eio.Client.set_hook","qualifiedName":"Libtmux_eio.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":369,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":369,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_hook"},{"id":"Libtmux_eio.Client.set_option","publicId":"Libtmux_eio.Client.set_option","qualifiedName":"Libtmux_eio.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_option"},{"id":"Libtmux_eio.Client.set_pane_title","publicId":"Libtmux_eio.Client.set_pane_title","qualifiedName":"Libtmux_eio.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_pane_title"},{"id":"Libtmux_eio.Client.signal","publicId":"Libtmux_eio.Client.signal","qualifiedName":"Libtmux_eio.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":272,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":272,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-signal"},{"id":"Libtmux_eio.Client.source","publicId":"Libtmux_eio.Client.source","qualifiedName":"Libtmux_eio.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"eio/libtmux_eio.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_eio-client-source"},{"id":"Libtmux_eio.Client.split_pane","publicId":"Libtmux_eio.Client.split_pane","qualifiedName":"Libtmux_eio.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-split_pane"},{"id":"Libtmux_eio.Client.submit","publicId":"Libtmux_eio.Client.submit","qualifiedName":"Libtmux_eio.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate and reserve bounded capacity without I/O. Return\n [Error Libtmux.Error.Closed] once {!close} starts. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate and reserve bounded capacity without I/O. Return `Error Libtmux.Error.Closed` once {!close} starts."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-submit"},{"id":"Libtmux_eio.Client.subscribe","publicId":"Libtmux_eio.Client.subscribe","qualifiedName":"Libtmux_eio.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":153,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. New admission returns\n [Error Libtmux.Error.Closed] once {!close} starts. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":153,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire verified coverage through one shared lane per session; choose the least observed session ID unless supplied. A client-owned reader delivers future bytes without application callbacks. Default queue bounds are 1 MiB/1024 events; max 16 subscribers and eight total client lanes, sharing the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap then End. Data starts after admission's marker, with no snapshot/history barrier, automatic reconnect or silent cursor reuse. New admission returns `Error Libtmux.Error.Closed` once {!close} starts.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-subscribe"},{"id":"Libtmux_eio.Client.swap_panes","publicId":"Libtmux_eio.Client.swap_panes","qualifiedName":"Libtmux_eio.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-swap_panes"},{"id":"Libtmux_eio.Client.switch_client_at","publicId":"Libtmux_eio.Client.switch_client_at","qualifiedName":"Libtmux_eio.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-switch_client_at"},{"id":"Libtmux_eio.Client.t","publicId":"Libtmux_eio.Client.t","qualifiedName":"Libtmux_eio.Client.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-client-t"},{"id":"Libtmux_eio.Client.unlink_window_at","publicId":"Libtmux_eio.Client.unlink_window_at","qualifiedName":"Libtmux_eio.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":463,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":463,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unlink_window_at"},{"id":"Libtmux_eio.Client.unset_environment","publicId":"Libtmux_eio.Client.unset_environment","qualifiedName":"Libtmux_eio.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":297,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":297,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_environment"},{"id":"Libtmux_eio.Client.unset_option","publicId":"Libtmux_eio.Client.unset_option","qualifiedName":"Libtmux_eio.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":342,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":342,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_option"},{"id":"Libtmux_eio.Client.version","publicId":"Libtmux_eio.Client.version","qualifiedName":"Libtmux_eio.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_eio-client-version"},{"id":"Libtmux_eio.Client.wait_for","publicId":"Libtmux_eio.Client.wait_for","qualifiedName":"Libtmux_eio.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for"},{"id":"Libtmux_eio.Client.wait_for_text","publicId":"Libtmux_eio.Client.wait_for_text","qualifiedName":"Libtmux_eio.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. A cleanup failure cannot replace\n an earlier error or cancellation; inspect {!cleanup} for secondary\n failures. Otherwise cleanup failure prevents success or renewed coverage.\n No history/barrier guarantee. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Subscribe and capture the screen immediately, then recapture on output. Membership/overflow gaps establish fresh coverage in the same binding. Maximum pattern: 64 KiB. Return captured rendered text containing it; transient text may be missed. Deadlines are checked between bounded acquisitions, whose I/O retains the client exchange timeout. Cancellation propagates and releases the subscription. A cleanup failure cannot replace an earlier error or cancellation; inspect {!cleanup} for secondary failures. Otherwise cleanup failure prevents success or renewed coverage. No history/barrier guarantee."},"signatures":[{"raw":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for_text"},{"id":"Libtmux_eio.Client.zoom_pane","publicId":"Libtmux_eio.Client.zoom_pane","qualifiedName":"Libtmux_eio.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-zoom_pane"},{"id":"Libtmux_eio.Operation","publicId":"Libtmux_eio.Operation","qualifiedName":"Libtmux_eio.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** Read without I/O, including after client closure. Owning domain only. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove unsent work. A written request remains owned and drained by the\n client. *)\n\n val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result\n (** Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_eio-operation"},{"id":"Libtmux_eio.Operation.await_stage","publicId":"Libtmux_eio.Operation.await_stage","qualifiedName":"Libtmux_eio.Operation.await_stage","name":"await_stage","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n "],"declarations":[{"kind":"function","text":"val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Wait for the named stage or a terminal state. Acknowledgement does not establish completion. Cancelling this observer leaves the operation alone."},"signatures":[{"raw":"val await_stage :\n 'a t -> [ `Acknowledged | `Written ] -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"[ `Acknowledged | `Written ]"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-await_stage"},{"id":"Libtmux_eio.Operation.cancel","publicId":"Libtmux_eio.Operation.cancel","qualifiedName":"Libtmux_eio.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove unsent work. A written request remains owned and drained by the\n client. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Remove unsent work. A written request remains owned and drained by the client."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-cancel"},{"id":"Libtmux_eio.Operation.cleanup_receipt","publicId":"Libtmux_eio.Operation.cleanup_receipt","qualifiedName":"Libtmux_eio.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt =\n {\n cause: Libtmux.Error.t ;\n owned_buffers: string list ;\n created: Libtmux.Created.t list }","params":[]}],"slug":"libtmux_eio-operation-cleanup_receipt"},{"id":"Libtmux_eio.Operation.cleanup_receipt.cause","publicId":"Libtmux_eio.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_eio.Operation.cause","slug":"libtmux_eio-operation-cleanup_receipt-cause"},{"id":"Libtmux_eio.Operation.cleanup_receipt.created","publicId":"Libtmux_eio.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_eio.Operation.created","slug":"libtmux_eio-operation-cleanup_receipt-created"},{"id":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_eio.Operation.owned_buffers","slug":"libtmux_eio-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_eio.Operation.id","publicId":"Libtmux_eio.Operation.id","qualifiedName":"Libtmux_eio.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"eio/libtmux_eio.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_eio-operation-id"},{"id":"Libtmux_eio.Operation.inspect","publicId":"Libtmux_eio.Operation.inspect","qualifiedName":"Libtmux_eio.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read without I/O, including after client closure. Owning domain only. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Read without I/O, including after client closure. Owning domain only."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-inspect"},{"id":"Libtmux_eio.Operation.state","publicId":"Libtmux_eio.Operation.state","qualifiedName":"Libtmux_eio.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a state =\n | Queued \n | Not_started \n | Written \n | Acknowledged \n | Finished of ('a, Libtmux.Error.t) result \n | Outcome_unknown of cleanup_receipt ","params":[]}],"slug":"libtmux_eio-operation-state"},{"id":"Libtmux_eio.Operation.state.Acknowledged","publicId":"Libtmux_eio.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"eio/libtmux_eio.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Acknowledged","slug":"libtmux_eio-operation-state-acknowledged"},{"id":"Libtmux_eio.Operation.state.Finished","publicId":"Libtmux_eio.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Finished","slug":"libtmux_eio-operation-state-finished"},{"id":"Libtmux_eio.Operation.state.Not_started","publicId":"Libtmux_eio.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"eio/libtmux_eio.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Not_started","slug":"libtmux_eio-operation-state-not_started"},{"id":"Libtmux_eio.Operation.state.Outcome_unknown","publicId":"Libtmux_eio.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Outcome_unknown","slug":"libtmux_eio-operation-state-outcome_unknown"},{"id":"Libtmux_eio.Operation.state.Queued","publicId":"Libtmux_eio.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"eio/libtmux_eio.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Queued","slug":"libtmux_eio-operation-state-queued"},{"id":"Libtmux_eio.Operation.state.Written","publicId":"Libtmux_eio.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Written","slug":"libtmux_eio-operation-state-written"},{"id":"Libtmux_eio.Operation.t","publicId":"Libtmux_eio.Operation.t","qualifiedName":"Libtmux_eio.Operation.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-operation-t"},{"id":"Libtmux_eio.Rendered","publicId":"Libtmux_eio.Rendered","qualifiedName":"Libtmux_eio.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","exportedFrom":"Libtmux.Captured_text","slug":"libtmux_eio-rendered"},{"id":"Libtmux_eio.Subscription","publicId":"Libtmux_eio.Subscription","qualifiedName":"Libtmux_eio.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":92,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O, on the owning domain. *)\n\n val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Concurrent calls\n join the same cleanup, including reaping a lane when it becomes unused;\n later calls retain cleanup failures. Borrowed clients and the daemon\n remain alive. {!poll} can still read the terminal event. *)\n\n val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":92,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_eio-subscription"},{"id":"Libtmux_eio.Subscription.close","publicId":"Libtmux_eio.Subscription.close","qualifiedName":"Libtmux_eio.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Concurrent calls\n join the same cleanup, including reaping a lane when it becomes unused;\n later calls retain cleanup failures. Borrowed clients and the daemon\n remain alive. {!poll} can still read the terminal event. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"End an active subscription with Cancelled and discard pending data. Preserve an already ended subscription's terminal reason. Concurrent calls join the same cleanup, including reaping a lane when it becomes unused; later calls retain cleanup failures. Borrowed clients and the daemon remain alive. {!poll} can still read the terminal event."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-close"},{"id":"Libtmux_eio.Subscription.next","publicId":"Libtmux_eio.Subscription.next","qualifiedName":"Libtmux_eio.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. "],"declarations":[{"kind":"function","text":"val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Await one event, defaulting to a one-second deadline. `None` follows a consumed End. A deadline keeps the subscription active. Eio cancellation closes it, releases its lane when unused, and propagates."},"signatures":[{"raw":"val next :\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-next"},{"id":"Libtmux_eio.Subscription.poll","publicId":"Libtmux_eio.Subscription.poll","qualifiedName":"Libtmux_eio.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove a queued event without I/O, on the owning domain. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Remove a queued event without I/O, on the owning domain."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-poll"},{"id":"Libtmux_eio.Subscription.t","publicId":"Libtmux_eio.Subscription.t","qualifiedName":"Libtmux_eio.Subscription.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-subscription-t"},{"id":"Libtmux_eio.Subscription.wait_for_bytes","publicId":"Libtmux_eio.Subscription.wait_for_bytes","qualifiedName":"Libtmux_eio.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Consume future observed bytes through a match, with a maximum 64 KiB nonempty pattern. Match across Data boundaries and return its end cursor. Gaps end matching. This searches neither rendered text nor history. A deadline leaves the subscription active; cancellation closes it.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_eio-subscription-wait_for_bytes"},{"id":"Libtmux_eio.Terminal","publicId":"Libtmux_eio.Terminal","qualifiedName":"Libtmux_eio.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Cooperative TERM gets\n 200 ms of grace before forced termination, while other fibers can run.\n Scheduling and kernel completion can add time. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. Supply\n [cleanup] before the call to retain secondary failures after cancellation.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_eio-terminal"},{"id":"Libtmux_eio.Terminal.attach_current","publicId":"Libtmux_eio.Terminal.attach_current","qualifiedName":"Libtmux_eio.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Cooperative TERM gets\n 200 ms of grace before forced termination, while other fibers can run.\n Scheduling and kernel completion can add time. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. Supply\n [cleanup] before the call to retain secondary failures after cancellation.\n "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Terminal","doc":{"summary":"Run an interactive terminal client until exit, using the application's process manager and standard streams unless explicit flows are supplied. `stdin` must be backed by a terminal descriptor; a pipe-backed flow is rejected by tmux. Select the exact ID on the daemon currently listening at `endpoint`, without a captured target, binding, retry or daemon startup.","body":"Environment updates and read-only mode default to false. Clear inherited `TMUX` and `TMUX_PANE`. Cancellation propagates after terminating and reaping this client; it does not stop the daemon. Cooperative TERM gets 200 ms of grace before forced termination, while other fibers can run. Scheduling and kernel completion can add time. Success proves terminal client exit. Diagnostics go to `stderr`; borrowed flows stay open. Supply `cleanup` before the call to retain secondary failures after cancellation."},"signatures":[{"raw":"val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:[> Eio.Flow.source_ty ] Eio.Flow.source ->\n ?stdout:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n ?stderr:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"[> Eio.Flow.source_ty ] Eio.Flow.source","optional":true,"keywordOnly":true},{"name":"stdout","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"stderr","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-terminal-attach_current"},{"id":"Libtmux_eio.Workspace","publicId":"Libtmux_eio.Workspace","qualifiedName":"Libtmux_eio.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Apply workspace plans through Eio while retaining journals across caller\n cancellation. Handles belong to the creating domain; the application owns\n the scheduler and switch. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. *)\n\n val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. *)\n\n val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Read a journal copy without I/O, including any late retained outcome. *)\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","doc":{"summary":"Apply workspace plans through Eio while retaining journals across caller cancellation. Handles belong to the creating domain; the application owns the scheduler and switch."},"slug":"libtmux_eio-workspace"},{"id":"Libtmux_eio.Workspace.await","publicId":"Libtmux_eio.Workspace.await","qualifiedName":"Libtmux_eio.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":617,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. "],"declarations":[{"kind":"function","text":"val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":617,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Apply once. Expected failures return a retained journal. Eio cancellation propagates after progress is recorded and at most 500 ms of protected compensation. Admitted commands can still complete under client ownership; inspect the receipt before attempting manual recovery."},"signatures":[{"raw":"val await :\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-await"},{"id":"Libtmux_eio.Workspace.client","publicId":"Libtmux_eio.Workspace.client","qualifiedName":"Libtmux_eio.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":630,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"eio/libtmux_eio.mli","line":630,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_eio-workspace-client"},{"id":"Libtmux_eio.Workspace.close","publicId":"Libtmux_eio.Workspace.close","qualifiedName":"Libtmux_eio.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Closing is idempotent; completed journals remain readable."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-close"},{"id":"Libtmux_eio.Workspace.inspect","publicId":"Libtmux_eio.Workspace.inspect","qualifiedName":"Libtmux_eio.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":626,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read a journal copy without I/O, including any late retained outcome. "],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":626,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Read a journal copy without I/O, including any late retained outcome."},"signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-inspect"},{"id":"Libtmux_eio.Workspace.submit","publicId":"Libtmux_eio.Workspace.submit","qualifiedName":"Libtmux_eio.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":599,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":599,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a generation-bound handle without I/O. The supplied client is borrowed; closing the handle leaves it open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit"},{"id":"Libtmux_eio.Workspace.submit_bootstrap","publicId":"Libtmux_eio.Workspace.submit_bootstrap","qualifiedName":"Libtmux_eio.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":604,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":604,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a missing-endpoint execution without I/O. Await starts control new-session and binds that same connection. The handle owns its new client within `sw`; it never owns the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit_bootstrap"},{"id":"Libtmux_eio.Workspace.t","publicId":"Libtmux_eio.Workspace.t","qualifiedName":"Libtmux_eio.Workspace.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-workspace-t"},{"id":"Libtmux_json","publicId":"Libtmux_json","qualifiedName":"Libtmux_json","name":"Libtmux_json","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Pure, bounded query and workspace JSON interchange.\n\n {!Expr} validates portable queries and {!Workspace} decodes configurations\n and encodes plans and receipts. Both return {!Decode_error.t} on invalid\n data. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} and\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for complete programs. "],"declarations":[{"kind":"module","text":"","source":{"file":"json/libtmux_json.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"doc":{"summary":"Pure, bounded query and workspace JSON interchange.","body":"{!Expr} validates portable queries and {!Workspace} decodes configurations and encodes plans and receipts. Both return {!Decode_error.t} on invalid data. See the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) and [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for complete programs."},"slug":"libtmux_json"},{"id":"Libtmux_json.Decode_error","publicId":"Libtmux_json.Decode_error","qualifiedName":"Libtmux_json.Decode_error","name":"Decode_error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Decode_error : sig\n type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported\n\n type t = { pointer : string; category : category; message : string }\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"json/libtmux_json.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json","slug":"libtmux_json-decode_error"},{"id":"Libtmux_json.Decode_error.category","publicId":"Libtmux_json.Decode_error.category","qualifiedName":"Libtmux_json.Decode_error.category","name":"category","kind":"enum","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":12,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","source":{"file":"json/libtmux_json.mli","line":12,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type category =\n | Syntax \n | Limit \n | Unknown \n | Wrong_type \n | Out_of_range \n | Unsupported ","params":[]}],"slug":"libtmux_json-decode_error-category"},{"id":"Libtmux_json.Decode_error.category.Limit","publicId":"Libtmux_json.Decode_error.category.Limit","name":"Limit","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Limit","source":{"file":"json/libtmux_json.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Limit","slug":"libtmux_json-decode_error-category-limit"},{"id":"Libtmux_json.Decode_error.category.Out_of_range","publicId":"Libtmux_json.Decode_error.category.Out_of_range","name":"Out_of_range","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Out_of_range","source":{"file":"json/libtmux_json.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Out_of_range","slug":"libtmux_json-decode_error-category-out_of_range"},{"id":"Libtmux_json.Decode_error.category.Syntax","publicId":"Libtmux_json.Decode_error.category.Syntax","name":"Syntax","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Syntax","source":{"file":"json/libtmux_json.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Syntax","slug":"libtmux_json-decode_error-category-syntax"},{"id":"Libtmux_json.Decode_error.category.Unknown","publicId":"Libtmux_json.Decode_error.category.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"json/libtmux_json.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unknown","slug":"libtmux_json-decode_error-category-unknown"},{"id":"Libtmux_json.Decode_error.category.Unsupported","publicId":"Libtmux_json.Decode_error.category.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"json/libtmux_json.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unsupported","slug":"libtmux_json-decode_error-category-unsupported"},{"id":"Libtmux_json.Decode_error.category.Wrong_type","publicId":"Libtmux_json.Decode_error.category.Wrong_type","name":"Wrong_type","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_type","source":{"file":"json/libtmux_json.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Wrong_type","slug":"libtmux_json-decode_error-category-wrong_type"},{"id":"Libtmux_json.Decode_error.pp","publicId":"Libtmux_json.Decode_error.pp","qualifiedName":"Libtmux_json.Decode_error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"json/libtmux_json.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux_json-decode_error-pp"},{"id":"Libtmux_json.Decode_error.t","publicId":"Libtmux_json.Decode_error.t","qualifiedName":"Libtmux_json.Decode_error.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = { pointer : string; category : category; message : string }","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type t = {\n pointer: string ;\n category: category ;\n message: string }","params":[]}],"slug":"libtmux_json-decode_error-t"},{"id":"Libtmux_json.Decode_error.t.category","publicId":"Libtmux_json.Decode_error.t.category","name":"category","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"category : category;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.t","type":"category","qualifiedName":"Libtmux_json.Decode_error.category","slug":"libtmux_json-decode_error-t-category"},{"id":"Libtmux_json.Decode_error.t.message","publicId":"Libtmux_json.Decode_error.t.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.message","slug":"libtmux_json-decode_error-t-message"},{"id":"Libtmux_json.Decode_error.t.pointer","publicId":"Libtmux_json.Decode_error.t.pointer","name":"pointer","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pointer : string;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.pointer","slug":"libtmux_json-decode_error-t-pointer"},{"id":"Libtmux_json.Error","publicId":"Libtmux_json.Error","qualifiedName":"Libtmux_json.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Structured native failures for JSON consumers. "],"declarations":[{"kind":"module","text":"module Error : sig\n val encode : Libtmux.Error.t -> Yojson.Safe.t\n (** Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json","doc":{"summary":"Structured native failures for JSON consumers."},"slug":"libtmux_json-error"},{"id":"Libtmux_json.Error.encode","publicId":"Libtmux_json.Error.encode","qualifiedName":"Libtmux_json.Error.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. "],"declarations":[{"kind":"function","text":"val encode : Libtmux.Error.t -> Yojson.Safe.t","source":{"file":"json/libtmux_json.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Error","doc":{"summary":"Return a stable `code`, bounded `message`, `message_truncated` flag and relevant operation, resource or target metadata. Messages and text attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex representation described by {!Workspace.encode_receipt}. No I/O."},"signatures":[{"raw":"val encode : Libtmux.Error.t -> Yojson.Safe.t","params":[{"name":"arg1","type":"Libtmux.Error.t"}],"returns":"Yojson.Safe.t"}],"slug":"libtmux_json-error-encode"},{"id":"Libtmux_json.Expr","publicId":"Libtmux_json.Expr","qualifiedName":"Libtmux_json.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Portable scalar pane expressions. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/query-interchange.md}wire\n subset} for canonical fields, operators and bounds. "],"declarations":[{"kind":"module","text":"module Expr : sig\n val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result\n (** Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. *)\n\n val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result\n (** Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. *)\n\n val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result\n\n val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result\n (** Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json","doc":{"summary":"Portable scalar pane expressions. See the [wire subset](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/query-interchange.md) for canonical fields, operators and bounds."},"slug":"libtmux_json-expr"},{"id":"Libtmux_json.Expr.decode","publicId":"Libtmux_json.Expr.decode","qualifiedName":"Libtmux_json.Expr.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. "],"declarations":[{"kind":"function","text":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Validate the supplied tree, including duplicate properties, before typed construction. Only the shared scalar pane registry and Boolean composition are accepted. Java regex, relationships and native extension fields return `Unsupported`. Numbers must fit signed 32-bit integers."},"signatures":[{"raw":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"Yojson.Safe.t"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-decode"},{"id":"Libtmux_json.Expr.encode","publicId":"Libtmux_json.Expr.encode","qualifiedName":"Libtmux_json.Expr.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Expr","signatures":[{"raw":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-encode"},{"id":"Libtmux_json.Expr.of_string","publicId":"Libtmux_json.Expr.of_string","qualifiedName":"Libtmux_json.Expr.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. "],"declarations":[{"kind":"function","text":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at most 256 values. Errors include a JSON pointer, never the whole input."},"signatures":[{"raw":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"string"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-of_string"},{"id":"Libtmux_json.Expr.to_string","publicId":"Libtmux_json.Expr.to_string","qualifiedName":"Libtmux_json.Expr.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. "],"declarations":[{"kind":"function","text":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Apply the same bounds and subset when encoding. Text with invalid UTF-8 has no representation in this schema. These functions perform no I/O."},"signatures":[{"raw":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(string, Decode_error.t) result"}],"slug":"libtmux_json-expr-to_string"},{"id":"Libtmux_json.Workspace","publicId":"Libtmux_json.Workspace","qualifiedName":"Libtmux_json.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Validate workspace documents and describe plans and retained execution.\n Preview output never supplies executable targets. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n\n val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n (** Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. *)\n\n val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. *)\n\n val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. *)\nend","source":{"file":"json/libtmux_json.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json","doc":{"summary":"Validate workspace documents and describe plans and retained execution. Preview output never supplies executable targets."},"slug":"libtmux_json-workspace"},{"id":"Libtmux_json.Workspace.decode","publicId":"Libtmux_json.Workspace.decode","qualifiedName":"Libtmux_json.Workspace.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Workspace","signatures":[{"raw":"val decode :\n directory:string ->\n Yojson.Safe.t -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"Yojson.Safe.t"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-decode"},{"id":"Libtmux_json.Workspace.encode_plan","publicId":"Libtmux_json.Workspace.encode_plan","qualifiedName":"Libtmux_json.Workspace.encode_plan","name":"encode_plan","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. "],"declarations":[{"kind":"function","text":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-plan/1` without I/O. The advisory preview contains command argv, cwd and environment names, excluding environment values, option values and startup text. It is not an execution script."},"signatures":[{"raw":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_plan"},{"id":"Libtmux_json.Workspace.encode_receipt","publicId":"Libtmux_json.Workspace.encode_receipt","qualifiedName":"Libtmux_json.Workspace.encode_receipt","name":"encode_receipt","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. "],"declarations":[{"kind":"function","text":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-receipt/1` with ordered steps, outcome index lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic messages are limited to 4096 bytes with an explicit truncation flag; command payloads are omitted.","body":"Both output schemas have a 4 MiB bound. Invalid UTF-8 values use `{\"encoding\":\"hex\",\"bytes\":\"...\"}` instead of losing bytes. Imported IDs and hints never establish a connection binding."},"signatures":[{"raw":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Execution.receipt"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_receipt"},{"id":"Libtmux_json.Workspace.of_string","publicId":"Libtmux_json.Workspace.of_string","qualifiedName":"Libtmux_json.Workspace.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":42,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. "],"declarations":[{"kind":"function","text":"val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":42,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Decode `libtmux.workspace/1` with the query codec's 64 KiB, UTF-8 and 32-level JSON bounds. Reject duplicate and unknown properties, invalid argv/shell combinations and configuration errors. `directory` is the absolute document directory; these functions perform no filesystem I/O."},"signatures":[{"raw":"val of_string :\n directory:string ->\n string -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-of_string"},{"id":"Libtmux_unix","publicId":"Libtmux_unix","qualifiedName":"Libtmux_unix","name":"Libtmux_unix","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Blocking Linux tmux clients with explicit scoped cancellation.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md}control\n guide} explains binding, completion and recovery. "],"declarations":[{"kind":"module","text":"","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"doc":{"summary":"Blocking Linux tmux clients with explicit scoped cancellation.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [control guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md) explains binding, completion and recovery."},"slug":"libtmux_unix"},{"id":"Libtmux_unix.Cancellation","publicId":"Libtmux_unix.Cancellation","qualifiedName":"Libtmux_unix.Cancellation","name":"Cancellation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cancellation : sig\n type t\n\n exception Cancelled\n\n val with_ : (t -> 'a) -> 'a\n (** Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. *)\n\n val cancel : t -> unit\n (** Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","slug":"libtmux_unix-cancellation"},{"id":"Libtmux_unix.Cancellation.Cancelled","publicId":"Libtmux_unix.Cancellation.Cancelled","qualifiedName":"Libtmux_unix.Cancellation.Cancelled","name":"Cancelled","kind":"exception","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"exception","text":"exception Cancelled","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type exn += Cancelled","params":[]}],"slug":"libtmux_unix-cancellation-cancelled"},{"id":"Libtmux_unix.Cancellation.cancel","publicId":"Libtmux_unix.Cancellation.cancel","qualifiedName":"Libtmux_unix.Cancellation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. "],"declarations":[{"kind":"function","text":"val cancel : t -> unit","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Wake waiters. Safe from another domain or systhread, but not from a signal handler. Repeated calls and calls after scope exit have no effect."},"signatures":[{"raw":"val cancel : t -> unit","params":[{"name":"arg1","type":"t"}],"returns":"unit"}],"slug":"libtmux_unix-cancellation-cancel"},{"id":"Libtmux_unix.Cancellation.t","publicId":"Libtmux_unix.Cancellation.t","qualifiedName":"Libtmux_unix.Cancellation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-cancellation-t"},{"id":"Libtmux_unix.Cancellation.with_","publicId":"Libtmux_unix.Cancellation.with_","qualifiedName":"Libtmux_unix.Cancellation.with_","name":"with_","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. "],"declarations":[{"kind":"function","text":"val with_ : (t -> 'a) -> 'a","source":{"file":"unix/libtmux_unix.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Own a cancellation token for the callback's lifetime. Leaving the scope cancels outstanding waiters and releases its descriptors after they finish. An escaped token is cancelled and cannot be reused."},"signatures":[{"raw":"val with_ : (t -> 'a) -> 'a","params":[{"name":"arg1","type":"t -> 'a"}],"returns":"'a"}],"slug":"libtmux_unix-cancellation-with_"},{"id":"Libtmux_unix.Cleanup","publicId":"Libtmux_unix.Cleanup","qualifiedName":"Libtmux_unix.Cleanup","name":"Cleanup","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Retained failures from releasing processes and descriptors. Reports belong\n to their creating domain and remain readable after client closure. They\n preserve secondary failures without replacing a primary exception or\n cancellation. "],"declarations":[{"kind":"module","text":"module Cleanup : sig\n type t = Cleanup.t\n\n type phase = Cleanup.phase =\n | Close_pipe\n | Open_pidfd\n | Close_pidfd\n | Terminate\n | Grace\n | Kill\n | Reap\n | Unreaped_child\n | Cancel_workers\n | Release_hook\n | Notify_waiters\n\n type issue = Cleanup.issue = {\n phase : phase;\n error : Libtmux.Error.t option;\n exception_ : exn;\n backtrace : Printexc.raw_backtrace;\n }\n (** One failed cleanup action. [error] retains a typed library cause when\n available; [exception_] and [backtrace] retain the original exception.\n [Unreaped_child] means exit was not established after a failed signal. It\n does not release ownership or authorize signalling a reused PID. *)\n\n type snapshot = Cleanup.snapshot = { issues : issue Iarray.t; omitted : int }\n (** Issues in occurrence order, with a count of additional omitted issues. A\n report retains at most 64 entries. This bounds entry count, not heap\n retention: exception payloads and backtraces may retain other values.\n These diagnostics are not immutable graph observations. *)\n\n val create : unit -> t\n (** Create an empty report without I/O. Supply it before {!Client.connect},\n {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain\n cleanup evidence even when setup fails or cancellation raises. *)\n\n val inspect : t -> (snapshot, Libtmux.Error.t) result\n (** Copy the current diagnostics without I/O. Returns\n {!Libtmux.Error.Wrong_domain} outside the creating domain. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"Retained failures from releasing processes and descriptors. Reports belong to their creating domain and remain readable after client closure. They preserve secondary failures without replacing a primary exception or cancellation."},"slug":"libtmux_unix-cleanup"},{"id":"Libtmux_unix.Cleanup.create","publicId":"Libtmux_unix.Cleanup.create","qualifiedName":"Libtmux_unix.Cleanup.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create an empty report without I/O. Supply it before {!Client.connect},\n {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain\n cleanup evidence even when setup fails or cancellation raises. "],"declarations":[{"kind":"function","text":"val create : unit -> t","source":{"file":"unix/libtmux_unix.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Create an empty report without I/O. Supply it before {!Client.connect}, {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain cleanup evidence even when setup fails or cancellation raises."},"signatures":[{"raw":"val create : unit -> t","params":[{"name":"arg1","type":"unit"}],"returns":"t"}],"slug":"libtmux_unix-cleanup-create"},{"id":"Libtmux_unix.Cleanup.inspect","publicId":"Libtmux_unix.Cleanup.inspect","qualifiedName":"Libtmux_unix.Cleanup.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Copy the current diagnostics without I/O. Returns\n {!Libtmux.Error.Wrong_domain} outside the creating domain. "],"declarations":[{"kind":"function","text":"val inspect : t -> (snapshot, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Copy the current diagnostics without I/O. Returns {!Libtmux.Error.Wrong_domain} outside the creating domain."},"signatures":[{"raw":"val inspect : t -> (snapshot, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(snapshot, Libtmux.Error.t) result"}],"slug":"libtmux_unix-cleanup-inspect"},{"id":"Libtmux_unix.Cleanup.issue","publicId":"Libtmux_unix.Cleanup.issue","qualifiedName":"Libtmux_unix.Cleanup.issue","name":"issue","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" One failed cleanup action. [error] retains a typed library cause when\n available; [exception_] and [backtrace] retain the original exception.\n [Unreaped_child] means exit was not established after a failed signal. It\n does not release ownership or authorize signalling a reused PID. "],"declarations":[{"kind":"struct","text":"type issue = Cleanup.issue = {\n phase : phase;\n error : Libtmux.Error.t option;\n exception_ : exn;\n backtrace : Printexc.raw_backtrace;\n }","source":{"file":"unix/libtmux_unix.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"One failed cleanup action. `error` retains a typed library cause when available; `exception_` and `backtrace` retain the original exception. `Unreaped_child` means exit was not established after a failed signal. It does not release ownership or authorize signalling a reused PID."},"type":"Cleanup.issue","signatures":[{"raw":"type issue = Cleanup.issue =\n {\n phase: phase ;\n error: Libtmux.Error.t option ;\n exception_: exn ;\n backtrace: Printexc.raw_backtrace }","params":[]}],"slug":"libtmux_unix-cleanup-issue"},{"id":"Libtmux_unix.Cleanup.issue.backtrace","publicId":"Libtmux_unix.Cleanup.issue.backtrace","name":"backtrace","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"backtrace : Printexc.raw_backtrace;","source":{"file":"unix/libtmux_unix.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"Printexc.raw_backtrace","qualifiedName":"Libtmux_unix.Cleanup.backtrace","slug":"libtmux_unix-cleanup-issue-backtrace"},{"id":"Libtmux_unix.Cleanup.issue.error","publicId":"Libtmux_unix.Cleanup.issue.error","name":"error","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"error : Libtmux.Error.t option;","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_unix.Cleanup.error","slug":"libtmux_unix-cleanup-issue-error"},{"id":"Libtmux_unix.Cleanup.issue.exception_","publicId":"Libtmux_unix.Cleanup.issue.exception_","name":"exception_","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"exception_ : exn;","source":{"file":"unix/libtmux_unix.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"exn","qualifiedName":"Libtmux_unix.Cleanup.exception_","slug":"libtmux_unix-cleanup-issue-exception_"},{"id":"Libtmux_unix.Cleanup.issue.phase","publicId":"Libtmux_unix.Cleanup.issue.phase","name":"phase","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"phase : phase;","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"phase","qualifiedName":"Libtmux_unix.Cleanup.phase","slug":"libtmux_unix-cleanup-issue-phase"},{"id":"Libtmux_unix.Cleanup.phase","publicId":"Libtmux_unix.Cleanup.phase","qualifiedName":"Libtmux_unix.Cleanup.phase","name":"phase","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type phase = Cleanup.phase =\n | Close_pipe\n | Open_pidfd\n | Close_pidfd\n | Terminate\n | Grace\n | Kill\n | Reap\n | Unreaped_child\n | Cancel_workers\n | Release_hook\n | Notify_waiters","source":{"file":"unix/libtmux_unix.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup","type":"Cleanup.phase","signatures":[{"raw":"type phase = Cleanup.phase =\n | Close_pipe \n | Open_pidfd \n | Close_pidfd \n | Terminate \n | Grace \n | Kill \n | Reap \n | Unreaped_child \n | Cancel_workers \n | Release_hook \n | Notify_waiters ","params":[]}],"slug":"libtmux_unix-cleanup-phase"},{"id":"Libtmux_unix.Cleanup.phase.Cancel_workers","publicId":"Libtmux_unix.Cleanup.phase.Cancel_workers","name":"Cancel_workers","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancel_workers","source":{"file":"unix/libtmux_unix.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Cancel_workers","slug":"libtmux_unix-cleanup-phase-cancel_workers"},{"id":"Libtmux_unix.Cleanup.phase.Close_pidfd","publicId":"Libtmux_unix.Cleanup.phase.Close_pidfd","name":"Close_pidfd","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Close_pidfd","source":{"file":"unix/libtmux_unix.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Close_pidfd","slug":"libtmux_unix-cleanup-phase-close_pidfd"},{"id":"Libtmux_unix.Cleanup.phase.Close_pipe","publicId":"Libtmux_unix.Cleanup.phase.Close_pipe","name":"Close_pipe","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Close_pipe","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Close_pipe","slug":"libtmux_unix-cleanup-phase-close_pipe"},{"id":"Libtmux_unix.Cleanup.phase.Grace","publicId":"Libtmux_unix.Cleanup.phase.Grace","name":"Grace","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Grace","source":{"file":"unix/libtmux_unix.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Grace","slug":"libtmux_unix-cleanup-phase-grace"},{"id":"Libtmux_unix.Cleanup.phase.Kill","publicId":"Libtmux_unix.Cleanup.phase.Kill","name":"Kill","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Kill","slug":"libtmux_unix-cleanup-phase-kill"},{"id":"Libtmux_unix.Cleanup.phase.Notify_waiters","publicId":"Libtmux_unix.Cleanup.phase.Notify_waiters","name":"Notify_waiters","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Notify_waiters","source":{"file":"unix/libtmux_unix.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Notify_waiters","slug":"libtmux_unix-cleanup-phase-notify_waiters"},{"id":"Libtmux_unix.Cleanup.phase.Open_pidfd","publicId":"Libtmux_unix.Cleanup.phase.Open_pidfd","name":"Open_pidfd","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Open_pidfd","source":{"file":"unix/libtmux_unix.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Open_pidfd","slug":"libtmux_unix-cleanup-phase-open_pidfd"},{"id":"Libtmux_unix.Cleanup.phase.Reap","publicId":"Libtmux_unix.Cleanup.phase.Reap","name":"Reap","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Reap","source":{"file":"unix/libtmux_unix.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Reap","slug":"libtmux_unix-cleanup-phase-reap"},{"id":"Libtmux_unix.Cleanup.phase.Release_hook","publicId":"Libtmux_unix.Cleanup.phase.Release_hook","name":"Release_hook","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Release_hook","source":{"file":"unix/libtmux_unix.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Release_hook","slug":"libtmux_unix-cleanup-phase-release_hook"},{"id":"Libtmux_unix.Cleanup.phase.Terminate","publicId":"Libtmux_unix.Cleanup.phase.Terminate","name":"Terminate","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Terminate","source":{"file":"unix/libtmux_unix.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Terminate","slug":"libtmux_unix-cleanup-phase-terminate"},{"id":"Libtmux_unix.Cleanup.phase.Unreaped_child","publicId":"Libtmux_unix.Cleanup.phase.Unreaped_child","name":"Unreaped_child","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":28,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unreaped_child","source":{"file":"unix/libtmux_unix.mli","line":28,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Unreaped_child","slug":"libtmux_unix-cleanup-phase-unreaped_child"},{"id":"Libtmux_unix.Cleanup.snapshot","publicId":"Libtmux_unix.Cleanup.snapshot","qualifiedName":"Libtmux_unix.Cleanup.snapshot","name":"snapshot","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Issues in occurrence order, with a count of additional omitted issues. A\n report retains at most 64 entries. This bounds entry count, not heap\n retention: exception payloads and backtraces may retain other values.\n These diagnostics are not immutable graph observations. "],"declarations":[{"kind":"struct","text":"type snapshot = Cleanup.snapshot = { issues : issue Iarray.t; omitted : int }","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Issues in occurrence order, with a count of additional omitted issues. A report retains at most 64 entries. This bounds entry count, not heap retention: exception payloads and backtraces may retain other values. These diagnostics are not immutable graph observations."},"type":"Cleanup.snapshot","signatures":[{"raw":"type snapshot = Cleanup.snapshot = {\n issues: issue Iarray.t ;\n omitted: int }","params":[]}],"slug":"libtmux_unix-cleanup-snapshot"},{"id":"Libtmux_unix.Cleanup.snapshot.issues","publicId":"Libtmux_unix.Cleanup.snapshot.issues","name":"issues","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"issues : issue Iarray.t;","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.snapshot","type":"issue Iarray.t","qualifiedName":"Libtmux_unix.Cleanup.issues","slug":"libtmux_unix-cleanup-snapshot-issues"},{"id":"Libtmux_unix.Cleanup.snapshot.omitted","publicId":"Libtmux_unix.Cleanup.snapshot.omitted","name":"omitted","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"omitted : int","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.snapshot","type":"int","qualifiedName":"Libtmux_unix.Cleanup.omitted","slug":"libtmux_unix-cleanup-snapshot-omitted"},{"id":"Libtmux_unix.Cleanup.t","publicId":"Libtmux_unix.Cleanup.t","qualifiedName":"Libtmux_unix.Cleanup.t","name":"t","kind":"typealias","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t = Cleanup.t","source":{"file":"unix/libtmux_unix.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup","type":"Cleanup.t","signatures":[{"raw":"type t = Cleanup.t","params":[]}],"slug":"libtmux_unix-cleanup-t"},{"id":"Libtmux_unix.Client","publicId":"Libtmux_unix.Client","qualifiedName":"Libtmux_unix.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. *)\n\n val cleanup : t -> Cleanup.t\n (** Read the report supplied at connection time, or its fresh default.\n {!Cleanup.inspect} remains available after close. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. *)\n\n val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. Release the temporary subscription\n without replacing an earlier error or cancellation; inspect {!cleanup} for\n secondary failures. Otherwise cleanup failure prevents success or renewed\n coverage. No capture/stream barrier exists. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve queue capacity without I/O. *)\n\n val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O and owned-child cleanup must also\n finish. Each owned child gets 200 ms of TERM grace before forced\n termination and reaping; scheduling and kernel completion can add time. No\n background scheduler or worker is started. *)\n\n val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result\n (** Submit and await. Use the two calls separately to retain an operation\n handle. *)\n\n val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. *)\n\n val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Close owned control clients and descriptors on the owning domain. Later\n calls retain the original cleanup result, including failure. Each owned\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n This is not a whole-client deadline or a bound on uninterruptible kernel\n work. No signal targets the daemon. tmux's [exit-unattached] and\n [exit-empty] policies can end the daemon after its clients or sessions\n disappear. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_unix-client"},{"id":"Libtmux_unix.Client.await","publicId":"Libtmux_unix.Client.await","qualifiedName":"Libtmux_unix.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O and owned-child cleanup must also\n finish. Each owned child gets 200 ms of TERM grace before forced\n termination and reaping; scheduling and kernel completion can add time. No\n background scheduler or worker is started. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Pump admitted work until this operation is finished. Only one blocking caller may own the client at a time. Cancellation removes queued work or drains admitted work before raising `Cancellation.Cancelled`. The handle retains its outcome. Draining has at most one exchange timeout from detection; local scratch filesystem I/O and owned-child cleanup must also finish. Each owned child gets 200 ms of TERM grace before forced termination and reaping; scheduling and kernel completion can add time. No background scheduler or worker is started."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-await"},{"id":"Libtmux_unix.Client.break_pane","publicId":"Libtmux_unix.Client.break_pane","qualifiedName":"Libtmux_unix.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":559,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":559,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-break_pane"},{"id":"Libtmux_unix.Client.capture","publicId":"Libtmux_unix.Client.capture","qualifiedName":"Libtmux_unix.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":268,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. "],"declarations":[{"kind":"function","text":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":268,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a complete graph over a recorded interval, with a fixed number of listing commands. Races fail validation. Access to returned values performs no I/O, including after closing the client.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture"},{"id":"Libtmux_unix.Client.capture_environment","publicId":"Libtmux_unix.Client.capture_environment","qualifiedName":"Libtmux_unix.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_environment"},{"id":"Libtmux_unix.Client.capture_hooks","publicId":"Libtmux_unix.Client.capture_hooks","qualifiedName":"Libtmux_unix.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":467,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":467,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_hooks"},{"id":"Libtmux_unix.Client.capture_options","publicId":"Libtmux_unix.Client.capture_options","qualifiedName":"Libtmux_unix.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_options"},{"id":"Libtmux_unix.Client.capture_text","publicId":"Libtmux_unix.Client.capture_text","qualifiedName":"Libtmux_unix.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture ordinary rendered screen rows, inclusively, via an owned paste buffer and private file. Reject applicable capture/save hooks. The scratch directory defaults to `/tmp` and must be local storage shared with the daemon. Pending and alternate-screen byte modes are unsupported. This observes an interval and establishes no stream continuity barrier."},"signatures":[{"raw":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_text"},{"id":"Libtmux_unix.Client.cleanup","publicId":"Libtmux_unix.Client.cleanup","qualifiedName":"Libtmux_unix.Client.cleanup","name":"cleanup","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read the report supplied at connection time, or its fresh default.\n {!Cleanup.inspect} remains available after close. "],"declarations":[{"kind":"function","text":"val cleanup : t -> Cleanup.t","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the report supplied at connection time, or its fresh default. {!Cleanup.inspect} remains available after close."},"signatures":[{"raw":"val cleanup : t -> Cleanup.t","params":[{"name":"arg1","type":"t"}],"returns":"Cleanup.t"}],"slug":"libtmux_unix-client-cleanup"},{"id":"Libtmux_unix.Client.clear_history","publicId":"Libtmux_unix.Client.clear_history","qualifiedName":"Libtmux_unix.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":739,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":739,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_history"},{"id":"Libtmux_unix.Client.clear_option_array","publicId":"Libtmux_unix.Client.clear_option_array","qualifiedName":"Libtmux_unix.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":459,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":459,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_option_array"},{"id":"Libtmux_unix.Client.close","publicId":"Libtmux_unix.Client.close","qualifiedName":"Libtmux_unix.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":749,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Close owned control clients and descriptors on the owning domain. Later\n calls retain the original cleanup result, including failure. Each owned\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n This is not a whole-client deadline or a bound on uninterruptible kernel\n work. No signal targets the daemon. tmux's [exit-unattached] and\n [exit-empty] policies can end the daemon after its clients or sessions\n disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":749,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Close owned control clients and descriptors on the owning domain. Later calls retain the original cleanup result, including failure. Each owned helper gets 200 ms of TERM grace, followed by KILL if needed and reaping. This is not a whole-client deadline or a bound on uninterruptible kernel work. No signal targets the daemon. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-close"},{"id":"Libtmux_unix.Client.connect","publicId":"Libtmux_unix.Client.connect","qualifiedName":"Libtmux_unix.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. "],"declarations":[{"kind":"function","text":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Attach to an existing local daemon with at least one session. The caller and daemon must share the PID namespace and filesystem. A local socket pathname alone does not establish these preconditions. `timeout` is the maximum seconds per control exchange, defaulting to one second. Requires Linux pidfd support. The client belongs to the current domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float -> Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-connect"},{"id":"Libtmux_unix.Client.create_session","publicId":"Libtmux_unix.Client.create_session","qualifiedName":"Libtmux_unix.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_session"},{"id":"Libtmux_unix.Client.create_window","publicId":"Libtmux_unix.Client.create_window","qualifiedName":"Libtmux_unix.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_create_window.ml","intro":"Create a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"created: logs\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_window"},{"id":"Libtmux_unix.Client.cycle_layout","publicId":"Libtmux_unix.Client.cycle_layout","qualifiedName":"Libtmux_unix.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":683,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":683,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-cycle_layout"},{"id":"Libtmux_unix.Client.kill_pane","publicId":"Libtmux_unix.Client.kill_pane","qualifiedName":"Libtmux_unix.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_pane"},{"id":"Libtmux_unix.Client.kill_session","publicId":"Libtmux_unix.Client.kill_session","qualifiedName":"Libtmux_unix.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":571,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":571,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_session"},{"id":"Libtmux_unix.Client.kill_window","publicId":"Libtmux_unix.Client.kill_window","qualifiedName":"Libtmux_unix.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":579,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":579,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_window"},{"id":"Libtmux_unix.Client.link_window","publicId":"Libtmux_unix.Client.link_window","qualifiedName":"Libtmux_unix.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":614,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":614,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-link_window"},{"id":"Libtmux_unix.Client.move_pane","publicId":"Libtmux_unix.Client.move_pane","qualifiedName":"Libtmux_unix.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":691,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":691,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_pane"},{"id":"Libtmux_unix.Client.move_window_at","publicId":"Libtmux_unix.Client.move_window_at","qualifiedName":"Libtmux_unix.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_move_window.ml","intro":"Move a window between sessions. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"moved: build at 7\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_window_at"},{"id":"Libtmux_unix.Client.read_hook","publicId":"Libtmux_unix.Client.read_hook","qualifiedName":"Libtmux_unix.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_hook"},{"id":"Libtmux_unix.Client.read_option","publicId":"Libtmux_unix.Client.read_option","qualifiedName":"Libtmux_unix.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_option"},{"id":"Libtmux_unix.Client.refresh_client_at","publicId":"Libtmux_unix.Client.refresh_client_at","qualifiedName":"Libtmux_unix.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-refresh_client_at"},{"id":"Libtmux_unix.Client.remove_environment","publicId":"Libtmux_unix.Client.remove_environment","qualifiedName":"Libtmux_unix.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":402,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":402,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_environment"},{"id":"Libtmux_unix.Client.remove_hook","publicId":"Libtmux_unix.Client.remove_hook","qualifiedName":"Libtmux_unix.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_hook"},{"id":"Libtmux_unix.Client.rename_session","publicId":"Libtmux_unix.Client.rename_session","qualifiedName":"Libtmux_unix.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":298,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":298,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_session"},{"id":"Libtmux_unix.Client.rename_window","publicId":"Libtmux_unix.Client.rename_window","qualifiedName":"Libtmux_unix.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":289,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":289,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_rename_window.ml","intro":"Rename a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"renamed: editor-main\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val rename_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_window"},{"id":"Libtmux_unix.Client.request_detach_client_at","publicId":"Libtmux_unix.Client.request_detach_client_at","qualifiedName":"Libtmux_unix.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":318,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":318,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-request_detach_client_at"},{"id":"Libtmux_unix.Client.resize_control_client_at","publicId":"Libtmux_unix.Client.resize_control_client_at","qualifiedName":"Libtmux_unix.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":335,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":335,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_control_client_at"},{"id":"Libtmux_unix.Client.resize_pane","publicId":"Libtmux_unix.Client.resize_pane","qualifiedName":"Libtmux_unix.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":652,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":652,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_pane"},{"id":"Libtmux_unix.Client.resize_window","publicId":"Libtmux_unix.Client.resize_window","qualifiedName":"Libtmux_unix.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":663,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":663,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_window"},{"id":"Libtmux_unix.Client.respawn_pane","publicId":"Libtmux_unix.Client.respawn_pane","qualifiedName":"Libtmux_unix.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":728,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":728,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-respawn_pane"},{"id":"Libtmux_unix.Client.rotate_panes","publicId":"Libtmux_unix.Client.rotate_panes","qualifiedName":"Libtmux_unix.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rotate_panes"},{"id":"Libtmux_unix.Client.run","publicId":"Libtmux_unix.Client.run","qualifiedName":"Libtmux_unix.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Submit and await. Use the two calls separately to retain an operation\n handle. "],"declarations":[{"kind":"function","text":"val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Submit and await. Use the two calls separately to retain an operation handle."},"signatures":[{"raw":"val run :\n ?cancel:Cancellation.t ->\n t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run"},{"id":"Libtmux_unix.Client.run_hook","publicId":"Libtmux_unix.Client.run_hook","qualifiedName":"Libtmux_unix.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run_hook"},{"id":"Libtmux_unix.Client.select_layout","publicId":"Libtmux_unix.Client.select_layout","qualifiedName":"Libtmux_unix.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":674,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":674,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_layout.ml","intro":"Apply a layout. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"layout: 3 horizontal panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_layout"},{"id":"Libtmux_unix.Client.select_pane","publicId":"Libtmux_unix.Client.select_pane","qualifiedName":"Libtmux_unix.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_pane"},{"id":"Libtmux_unix.Client.select_window_at","publicId":"Libtmux_unix.Client.select_window_at","qualifiedName":"Libtmux_unix.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":595,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":595,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_window_at"},{"id":"Libtmux_unix.Client.send_keys","publicId":"Libtmux_unix.Client.send_keys","qualifiedName":"Libtmux_unix.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":352,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":352,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_keys"},{"id":"Libtmux_unix.Client.send_text","publicId":"Libtmux_unix.Client.send_text","qualifiedName":"Libtmux_unix.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_text :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_text"},{"id":"Libtmux_unix.Client.set_environment","publicId":"Libtmux_unix.Client.set_environment","qualifiedName":"Libtmux_unix.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_environment"},{"id":"Libtmux_unix.Client.set_hook","publicId":"Libtmux_unix.Client.set_hook","qualifiedName":"Libtmux_unix.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_hook"},{"id":"Libtmux_unix.Client.set_option","publicId":"Libtmux_unix.Client.set_option","qualifiedName":"Libtmux_unix.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":434,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":434,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_option"},{"id":"Libtmux_unix.Client.set_pane_title","publicId":"Libtmux_unix.Client.set_pane_title","qualifiedName":"Libtmux_unix.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":643,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":643,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_pane_title"},{"id":"Libtmux_unix.Client.signal","publicId":"Libtmux_unix.Client.signal","qualifiedName":"Libtmux_unix.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-signal"},{"id":"Libtmux_unix.Client.source","publicId":"Libtmux_unix.Client.source","qualifiedName":"Libtmux_unix.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"unix/libtmux_unix.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_unix-client-source"},{"id":"Libtmux_unix.Client.split_pane","publicId":"Libtmux_unix.Client.split_pane","qualifiedName":"Libtmux_unix.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":547,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":547,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-split_pane"},{"id":"Libtmux_unix.Client.submit","publicId":"Libtmux_unix.Client.submit","qualifiedName":"Libtmux_unix.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate and reserve queue capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate and reserve queue capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-submit"},{"id":"Libtmux_unix.Client.subscribe","publicId":"Libtmux_unix.Client.subscribe","qualifiedName":"Libtmux_unix.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire verified coverage of the pane's observed session/window. Choose the least session ID unless explicitly supplied. Reuse one lane per session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16 subscribers and eight client lanes including commands. Reserve payload against the shared 32 MiB budget before admission.","body":"Data starts after admission's marker. Layout/membership changes end continuity conservatively. Overflow emits Gap then End, without blocking another subscriber. Blocking delivery advances during Subscription.next. There is no snapshot/history barrier or automatic recovery."},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-subscribe"},{"id":"Libtmux_unix.Client.swap_panes","publicId":"Libtmux_unix.Client.swap_panes","qualifiedName":"Libtmux_unix.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":703,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":703,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-swap_panes"},{"id":"Libtmux_unix.Client.switch_client_at","publicId":"Libtmux_unix.Client.switch_client_at","qualifiedName":"Libtmux_unix.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":307,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":307,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-switch_client_at"},{"id":"Libtmux_unix.Client.t","publicId":"Libtmux_unix.Client.t","qualifiedName":"Libtmux_unix.Client.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-client-t"},{"id":"Libtmux_unix.Client.unlink_window_at","publicId":"Libtmux_unix.Client.unlink_window_at","qualifiedName":"Libtmux_unix.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":604,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":604,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unlink_window_at"},{"id":"Libtmux_unix.Client.unset_environment","publicId":"Libtmux_unix.Client.unset_environment","qualifiedName":"Libtmux_unix.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_environment"},{"id":"Libtmux_unix.Client.unset_option","publicId":"Libtmux_unix.Client.unset_option","qualifiedName":"Libtmux_unix.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_option"},{"id":"Libtmux_unix.Client.version","publicId":"Libtmux_unix.Client.version","qualifiedName":"Libtmux_unix.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_unix-client-version"},{"id":"Libtmux_unix.Client.wait_for","publicId":"Libtmux_unix.Client.wait_for","qualifiedName":"Libtmux_unix.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for"},{"id":"Libtmux_unix.Client.wait_for_text","publicId":"Libtmux_unix.Client.wait_for_text","qualifiedName":"Libtmux_unix.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. Release the temporary subscription\n without replacing an earlier error or cancellation; inspect {!cleanup} for\n secondary failures. Otherwise cleanup failure prevents success or renewed\n coverage. No capture/stream barrier exists. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Subscribe, capture the ordinary screen immediately, and recapture after output. Membership/overflow gaps trigger explicit fresh capture and new coverage in the same binding. Maximum pattern: 64 KiB. Success returns a capture that contains the text. Transient text between captures may be missed. Check the deadline between bounded acquisitions; in-flight I/O retains the client's exchange timeout. Release the temporary subscription without replacing an earlier error or cancellation; inspect {!cleanup} for secondary failures. Otherwise cleanup failure prevents success or renewed coverage. No capture/stream barrier exists."},"signatures":[{"raw":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for_text"},{"id":"Libtmux_unix.Client.zoom_pane","publicId":"Libtmux_unix.Client.zoom_pane","qualifiedName":"Libtmux_unix.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-zoom_pane"},{"id":"Libtmux_unix.Operation","publicId":"Libtmux_unix.Operation","qualifiedName":"Libtmux_unix.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** No I/O. Results remain inspectable after client closure, on the owning\n domain. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_unix-operation"},{"id":"Libtmux_unix.Operation.cancel","publicId":"Libtmux_unix.Operation.cancel","qualifiedName":"Libtmux_unix.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"Remove queued work before it is written. Admitted commands retain their owner and are drained by {!Client.await}; cancellation does not undo effects. Returns `Busy` while another blocking caller owns the client; use a {!Cancellation.t} token to interrupt that caller."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-cancel"},{"id":"Libtmux_unix.Operation.cleanup_receipt","publicId":"Libtmux_unix.Operation.cleanup_receipt","qualifiedName":"Libtmux_unix.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt =\n {\n cause: Libtmux.Error.t ;\n owned_buffers: string list ;\n created: Libtmux.Created.t list }","params":[]}],"slug":"libtmux_unix-operation-cleanup_receipt"},{"id":"Libtmux_unix.Operation.cleanup_receipt.cause","publicId":"Libtmux_unix.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"unix/libtmux_unix.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_unix.Operation.cause","slug":"libtmux_unix-operation-cleanup_receipt-cause"},{"id":"Libtmux_unix.Operation.cleanup_receipt.created","publicId":"Libtmux_unix.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":118,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"unix/libtmux_unix.mli","line":118,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_unix.Operation.created","slug":"libtmux_unix-operation-cleanup_receipt-created"},{"id":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"unix/libtmux_unix.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_unix.Operation.owned_buffers","slug":"libtmux_unix-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_unix.Operation.id","publicId":"Libtmux_unix.Operation.id","qualifiedName":"Libtmux_unix.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"unix/libtmux_unix.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_unix-operation-id"},{"id":"Libtmux_unix.Operation.inspect","publicId":"Libtmux_unix.Operation.inspect","qualifiedName":"Libtmux_unix.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" No I/O. Results remain inspectable after client closure, on the owning\n domain. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"No I/O. Results remain inspectable after client closure, on the owning domain."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-inspect"},{"id":"Libtmux_unix.Operation.state","publicId":"Libtmux_unix.Operation.state","qualifiedName":"Libtmux_unix.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a state =\n | Queued \n | Not_started \n | Written \n | Acknowledged \n | Finished of ('a, Libtmux.Error.t) result \n | Outcome_unknown of cleanup_receipt ","params":[]}],"slug":"libtmux_unix-operation-state"},{"id":"Libtmux_unix.Operation.state.Acknowledged","publicId":"Libtmux_unix.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"unix/libtmux_unix.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Acknowledged","slug":"libtmux_unix-operation-state-acknowledged"},{"id":"Libtmux_unix.Operation.state.Finished","publicId":"Libtmux_unix.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Finished","slug":"libtmux_unix-operation-state-finished"},{"id":"Libtmux_unix.Operation.state.Not_started","publicId":"Libtmux_unix.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"unix/libtmux_unix.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Not_started","slug":"libtmux_unix-operation-state-not_started"},{"id":"Libtmux_unix.Operation.state.Outcome_unknown","publicId":"Libtmux_unix.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Outcome_unknown","slug":"libtmux_unix-operation-state-outcome_unknown"},{"id":"Libtmux_unix.Operation.state.Queued","publicId":"Libtmux_unix.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"unix/libtmux_unix.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Queued","slug":"libtmux_unix-operation-state-queued"},{"id":"Libtmux_unix.Operation.state.Written","publicId":"Libtmux_unix.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"unix/libtmux_unix.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Written","slug":"libtmux_unix-operation-state-written"},{"id":"Libtmux_unix.Operation.t","publicId":"Libtmux_unix.Operation.t","qualifiedName":"Libtmux_unix.Operation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"unix/libtmux_unix.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-operation-t"},{"id":"Libtmux_unix.Rendered","publicId":"Libtmux_unix.Rendered","qualifiedName":"Libtmux_unix.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Blocking native Linux transport. No Eio scheduler is started. "],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"unix/libtmux_unix.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"Blocking native Linux transport. No Eio scheduler is started."},"exportedFrom":"Libtmux.Captured_text","slug":"libtmux_unix-rendered"},{"id":"Libtmux_unix.Subscription","publicId":"Libtmux_unix.Subscription","qualifiedName":"Libtmux_unix.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. *)\n\n val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Release and reap\n an unused lane; later calls retain cleanup failures. Does not stop the\n daemon. {!poll} can still read the terminal event. *)\n\n val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_unix-subscription"},{"id":"Libtmux_unix.Subscription.close","publicId":"Libtmux_unix.Subscription.close","qualifiedName":"Libtmux_unix.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":162,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Release and reap\n an unused lane; later calls retain cleanup failures. Does not stop the\n daemon. {!poll} can still read the terminal event. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":162,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"End an active subscription with Cancelled and discard pending data. Preserve an already ended subscription's terminal reason. Release and reap an unused lane; later calls retain cleanup failures. Does not stop the daemon. {!poll} can still read the terminal event."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-close"},{"id":"Libtmux_unix.Subscription.next","publicId":"Libtmux_unix.Subscription.next","qualifiedName":"Libtmux_unix.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":153,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. "],"declarations":[{"kind":"function","text":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":153,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Pump all subscription lanes until one event is available. Default deadline is one second. `None` follows a consumed End. A deadline keeps the subscription active; cancellation closes it and raises Cancelled."},"signatures":[{"raw":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-next"},{"id":"Libtmux_unix.Subscription.poll","publicId":"Libtmux_unix.Subscription.poll","qualifiedName":"Libtmux_unix.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Remove a queued event without I/O. Owning domain only, including after client closure. `None` means no queued event, not proof of continuity."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-poll"},{"id":"Libtmux_unix.Subscription.t","publicId":"Libtmux_unix.Subscription.t","qualifiedName":"Libtmux_unix.Subscription.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":147,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":147,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-subscription-t"},{"id":"Libtmux_unix.Subscription.wait_for_bytes","publicId":"Libtmux_unix.Subscription.wait_for_bytes","qualifiedName":"Libtmux_unix.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"unix/libtmux_unix.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Consume future bytes until the nonempty pattern matches, including across Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's end within its consumed event. Gaps stop matching; no rendered or earlier output is searched. Timeout leaves the subscription active."},"signatures":[{"raw":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_unix-subscription-wait_for_bytes"},{"id":"Libtmux_unix.Terminal","publicId":"Libtmux_unix.Terminal","qualifiedName":"Libtmux_unix.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM\n gets 200 ms of cooperative grace before KILL and reaping. Scheduling and\n uninterruptible kernel work can add time. Supply [cleanup] before the call\n to retain secondary failures after cancellation. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_unix-terminal"},{"id":"Libtmux_unix.Terminal.attach_current","publicId":"Libtmux_unix.Terminal.attach_current","qualifiedName":"Libtmux_unix.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM\n gets 200 ms of cooperative grace before KILL and reaping. Scheduling and\n uninterruptible kernel work can add time. Supply [cleanup] before the call\n to retain secondary failures after cancellation. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Terminal","doc":{"summary":"Run an interactive terminal client until it exits. Select the exact session ID on the daemon currently listening at `endpoint`; this is explicitly unbound and accepts no captured target. No retry or daemon startup occurs. A successful result proves client exit, not continued attachment. Diagnostics go to `stderr`.","body":"Descriptors default to the application's standard streams and remain caller-owned. `stdin` must be a terminal. Environment updates and read-only mode are disabled by default; inherited `TMUX` and `TMUX_PANE` are removed. Cancellation terminates and reaps this terminal client, leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM gets 200 ms of cooperative grace before KILL and reaping. Scheduling and uninterruptible kernel work can add time. Supply `cleanup` before the call to retain secondary failures after cancellation."},"signatures":[{"raw":"val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stdout","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stderr","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-terminal-attach_current"},{"id":"Libtmux_unix.Workspace","publicId":"Libtmux_unix.Workspace","qualifiedName":"Libtmux_unix.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Apply validated plans with blocking I/O and scoped cancellation tokens.\n Execution handles retain journals and borrow existing clients; bootstrap\n handles own their newly bound clients without owning the daemon. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. *)\n\n val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. *)\n\n val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"Apply validated plans with blocking I/O and scoped cancellation tokens. Execution handles retain journals and borrow existing clients; bootstrap handles own their newly bound clients without owning the daemon."},"slug":"libtmux_unix-workspace"},{"id":"Libtmux_unix.Workspace.await","publicId":"Libtmux_unix.Workspace.await","qualifiedName":"Libtmux_unix.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Expected apply failures are retained receipts. Cancellation propagates after recording progress and at most 500 ms of protected compensation."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-await"},{"id":"Libtmux_unix.Workspace.client","publicId":"Libtmux_unix.Workspace.client","qualifiedName":"Libtmux_unix.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":791,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"unix/libtmux_unix.mli","line":791,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_unix-workspace-client"},{"id":"Libtmux_unix.Workspace.close","publicId":"Libtmux_unix.Workspace.close","qualifiedName":"Libtmux_unix.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Completed journals remain readable after close."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-close"},{"id":"Libtmux_unix.Workspace.inspect","publicId":"Libtmux_unix.Workspace.inspect","qualifiedName":"Libtmux_unix.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":788,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":788,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-inspect"},{"id":"Libtmux_unix.Workspace.submit","publicId":"Libtmux_unix.Workspace.submit","qualifiedName":"Libtmux_unix.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":765,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":765,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a generation-bound execution handle without I/O. The caller owns the supplied client; closing this handle leaves that client open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit"},{"id":"Libtmux_unix.Workspace.submit_bootstrap","publicId":"Libtmux_unix.Workspace.submit_bootstrap","qualifiedName":"Libtmux_unix.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":770,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":770,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a handle for a missing-endpoint plan. Awaiting it starts control new-session and binds the same connection. The handle owns its new client; it never acquires ownership of the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit_bootstrap"},{"id":"Libtmux_unix.Workspace.t","publicId":"Libtmux_unix.Workspace.t","qualifiedName":"Libtmux_unix.Workspace.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-workspace-t"},{"id":"Libtmux_workspace","publicId":"Libtmux_workspace","qualifiedName":"Libtmux_workspace","name":"Libtmux_workspace","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" {!Config} validates workspace descriptions and {!Plan} previews their\n actions without I/O. {!Execution} delegates effects to an explicit executor\n and retains a recovery journal. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for JSON loading, preview, apply and receipt inspection. "],"declarations":[{"kind":"module","text":"","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"doc":{"summary":"{!Config} validates workspace descriptions and {!Plan} previews their actions without I/O. {!Execution} delegates effects to an explicit executor and retains a recovery journal. See the [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for JSON loading, preview, apply and receipt inspection."},"slug":"libtmux_workspace"},{"id":"Libtmux_workspace.Config","publicId":"Libtmux_workspace.Config","qualifiedName":"Libtmux_workspace.Config","name":"Config","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Validate native workspace values without contacting tmux or reading the\n filesystem. Relative directories resolve against the document directory;\n only declared variables participate in expansion. "],"declarations":[{"kind":"module","text":"module Config : sig\n type error = { path : string; message : string }\n\n val pp_error : Format.formatter -> error -> unit\n\n type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }\n\n type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n\n type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }\n\n type t\n\n val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane\n\n val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window\n (** Builders are unchecked descriptions; {!make} validates the whole document.\n *)\n\n val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result\n (** Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. *)\n\n val session : t -> string\n val windows : t -> window Iarray.t\n val environment : t -> (string * string) list\n val options : t -> setting list\n val dimensions : t -> int * int\nend","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace","doc":{"summary":"Validate native workspace values without contacting tmux or reading the filesystem. Relative directories resolve against the document directory; only declared variables participate in expansion."},"slug":"libtmux_workspace-config"},{"id":"Libtmux_workspace.Config.dimensions","publicId":"Libtmux_workspace.Config.dimensions","qualifiedName":"Libtmux_workspace.Config.dimensions","name":"dimensions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dimensions : t -> int * int","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val dimensions : t -> int * int","params":[{"name":"arg1","type":"t"}],"returns":"int * int"}],"slug":"libtmux_workspace-config-dimensions"},{"id":"Libtmux_workspace.Config.environment","publicId":"Libtmux_workspace.Config.environment","qualifiedName":"Libtmux_workspace.Config.environment","name":"environment","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val environment : t -> (string * string) list","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val environment : t -> (string * string) list","params":[{"name":"arg1","type":"t"}],"returns":"(string * string) list"}],"slug":"libtmux_workspace-config-environment"},{"id":"Libtmux_workspace.Config.error","publicId":"Libtmux_workspace.Config.error","qualifiedName":"Libtmux_workspace.Config.error","name":"error","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type error = { path : string; message : string }","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type error = {\n path: string ;\n message: string }","params":[]}],"slug":"libtmux_workspace-config-error"},{"id":"Libtmux_workspace.Config.error.message","publicId":"Libtmux_workspace.Config.error.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.message","slug":"libtmux_workspace-config-error-message"},{"id":"Libtmux_workspace.Config.error.path","publicId":"Libtmux_workspace.Config.error.path","name":"path","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"path : string;","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.path","slug":"libtmux_workspace-config-error-path"},{"id":"Libtmux_workspace.Config.make","publicId":"Libtmux_workspace.Config.make","qualifiedName":"Libtmux_workspace.Config.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. "],"declarations":[{"kind":"function","text":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Resolve relative working directories against the absolute document directory. Explicit variables expand `${NAME}` in directories only; they never read the process environment. Cycles and unknown names fail. Command arguments, shell code, startup text and environment values remain literal.","body":"At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names and settings must be unique in their scope. No filesystem is consulted."},"signatures":[{"raw":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string -> session:string -> window list -> (t, error) result","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"variables","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"directory","type":"string","keywordOnly":true},{"name":"session","type":"string","keywordOnly":true},{"name":"arg1","type":"window list"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-config-make"},{"id":"Libtmux_workspace.Config.options","publicId":"Libtmux_workspace.Config.options","qualifiedName":"Libtmux_workspace.Config.options","name":"options","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val options : t -> setting list","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val options : t -> setting list","params":[{"name":"arg1","type":"t"}],"returns":"setting list"}],"slug":"libtmux_workspace-config-options"},{"id":"Libtmux_workspace.Config.pane","publicId":"Libtmux_workspace.Config.pane","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size -> unit -> pane","params":[{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"startup","type":"string list","optional":true,"keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"pane"}],"slug":"libtmux_workspace-config-pane"},{"id":"Libtmux_workspace.Config.pane:type","publicId":"Libtmux_workspace.Config.pane:type","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type pane =\n {\n spawn: Libtmux.Spawn.t ;\n options: setting list ;\n startup: string list ;\n direction: Libtmux.Geometry.direction ;\n size: Libtmux.Geometry.size option }","params":[]}],"slug":"libtmux_workspace-config-pane-type"},{"id":"Libtmux_workspace.Config.pane:type.direction","publicId":"Libtmux_workspace.Config.pane:type.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Config.direction","slug":"libtmux_workspace-config-pane-type-direction"},{"id":"Libtmux_workspace.Config.pane:type.options","publicId":"Libtmux_workspace.Config.pane:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-pane-type-options"},{"id":"Libtmux_workspace.Config.pane:type.size","publicId":"Libtmux_workspace.Config.pane:type.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Config.size","slug":"libtmux_workspace-config-pane-type-size"},{"id":"Libtmux_workspace.Config.pane:type.spawn","publicId":"Libtmux_workspace.Config.pane:type.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Config.spawn","slug":"libtmux_workspace-config-pane-type-spawn"},{"id":"Libtmux_workspace.Config.pane:type.startup","publicId":"Libtmux_workspace.Config.pane:type.startup","name":"startup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"startup : string list;","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"string list","qualifiedName":"Libtmux_workspace.Config.startup","slug":"libtmux_workspace-config-pane-type-startup"},{"id":"Libtmux_workspace.Config.pp_error","publicId":"Libtmux_workspace.Config.pp_error","qualifiedName":"Libtmux_workspace.Config.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-config-pp_error"},{"id":"Libtmux_workspace.Config.session","publicId":"Libtmux_workspace.Config.session","qualifiedName":"Libtmux_workspace.Config.session","name":"session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> string","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val session : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_workspace-config-session"},{"id":"Libtmux_workspace.Config.setting","publicId":"Libtmux_workspace.Config.setting","qualifiedName":"Libtmux_workspace.Config.setting","name":"setting","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type setting =\n {\n name: string ;\n index: int option ;\n value: Libtmux.Options.scalar }","params":[]}],"slug":"libtmux_workspace-config-setting"},{"id":"Libtmux_workspace.Config.setting.index","publicId":"Libtmux_workspace.Config.setting.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.setting","type":"int option","qualifiedName":"Libtmux_workspace.Config.index","slug":"libtmux_workspace-config-setting-index"},{"id":"Libtmux_workspace.Config.setting.name","publicId":"Libtmux_workspace.Config.setting.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.setting","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-setting-name"},{"id":"Libtmux_workspace.Config.setting.value","publicId":"Libtmux_workspace.Config.setting.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Libtmux.Options.scalar;","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.setting","type":"Libtmux.Options.scalar","qualifiedName":"Libtmux_workspace.Config.value","slug":"libtmux_workspace-config-setting-value"},{"id":"Libtmux_workspace.Config.t","publicId":"Libtmux_workspace.Config.t","qualifiedName":"Libtmux_workspace.Config.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-config-t"},{"id":"Libtmux_workspace.Config.window","publicId":"Libtmux_workspace.Config.window","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Builders are unchecked descriptions; {!make} validates the whole document.\n "],"declarations":[{"kind":"function","text":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Builders are unchecked descriptions; {!make} validates the whole document."},"signatures":[{"raw":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t -> name:string -> pane list -> window","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"layout","type":"Libtmux.Layout.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"pane list"}],"returns":"window"}],"slug":"libtmux_workspace-config-window"},{"id":"Libtmux_workspace.Config.window:type","publicId":"Libtmux_workspace.Config.window:type","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type window =\n {\n name: string ;\n cwd: string option ;\n environment: (string * string) list ;\n options: setting list ;\n panes: pane list ;\n layout: Libtmux.Layout.t option }","params":[]}],"slug":"libtmux_workspace-config-window-type"},{"id":"Libtmux_workspace.Config.window:type.cwd","publicId":"Libtmux_workspace.Config.window:type.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string option","qualifiedName":"Libtmux_workspace.Config.cwd","slug":"libtmux_workspace-config-window-type-cwd"},{"id":"Libtmux_workspace.Config.window:type.environment","publicId":"Libtmux_workspace.Config.window:type.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.window:type","type":"(string * string) list","qualifiedName":"Libtmux_workspace.Config.environment","slug":"libtmux_workspace-config-window-type-environment"},{"id":"Libtmux_workspace.Config.window:type.layout","publicId":"Libtmux_workspace.Config.window:type.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : Libtmux.Layout.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.window:type","type":"Libtmux.Layout.t option","qualifiedName":"Libtmux_workspace.Config.layout","slug":"libtmux_workspace-config-window-type-layout"},{"id":"Libtmux_workspace.Config.window:type.name","publicId":"Libtmux_workspace.Config.window:type.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-window-type-name"},{"id":"Libtmux_workspace.Config.window:type.options","publicId":"Libtmux_workspace.Config.window:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.window:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-window-type-options"},{"id":"Libtmux_workspace.Config.window:type.panes","publicId":"Libtmux_workspace.Config.window:type.panes","name":"panes","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"panes : pane list;","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.window:type","type":"pane list","qualifiedName":"Libtmux_workspace.Config.panes","slug":"libtmux_workspace-config-window-type-panes"},{"id":"Libtmux_workspace.Config.windows","publicId":"Libtmux_workspace.Config.windows","qualifiedName":"Libtmux_workspace.Config.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> window Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val windows : t -> window Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"window Iarray.t"}],"slug":"libtmux_workspace-config-windows"},{"id":"Libtmux_workspace.Execution","publicId":"Libtmux_workspace.Execution","qualifiedName":"Libtmux_workspace.Execution","name":"Execution","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Apply a plan once per handle and retain effects, uncertainty and cleanup.\n The journal lives in process memory while its execution handle is retained;\n {!Execution.val-inspect} returns immutable copies. It survives waiter\n cancellation and client closure, but supplies no crash-durable recovery or\n cross-invocation deduplication. Ordinary applications use their backend's\n Workspace module; executors below integrate another transport. "],"declarations":[{"kind":"module","text":"module Execution : sig\n type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }\n (** A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. *)\n\n type certainty = Not_started | Applied | Unknown\n\n type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }\n (** Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. *)\n\n type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t\n\n type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }\n\n type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t\n\n type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }\n\n type t\n\n val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. [operation_id] correlates receipts; it\n does not deduplicate handles. A new handle starts a new execution even if\n its ID matches an earlier one. *)\n\n val inspect : t -> receipt\n (** Return an immutable copy of the retained journal without I/O. *)\n\n val await : ?compensate_on_failure:bool -> t -> receipt\n (** Execute once per handle, rechecking generation and captured preconditions\n first. Expected failures return a partial journal. Exceptions, including\n native cancellation, propagate after recording progress and bounded\n compensation. Subsequent calls only return the retained receipt; mutations\n never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. Compensation cannot undo external effects of programs\n started inside the panes. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace","doc":{"summary":"Apply a plan once per handle and retain effects, uncertainty and cleanup. The journal lives in process memory while its execution handle is retained; {!Execution.val-inspect} returns immutable copies. It survives waiter cancellation and client closure, but supplies no crash-durable recovery or cross-invocation deduplication. Ordinary applications use their backend's Workspace module; executors below integrate another transport."},"slug":"libtmux_workspace-execution"},{"id":"Libtmux_workspace.Execution.await","publicId":"Libtmux_workspace.Execution.await","qualifiedName":"Libtmux_workspace.Execution.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Execute once per handle, rechecking generation and captured preconditions\n first. Expected failures return a partial journal. Exceptions, including\n native cancellation, propagate after recording progress and bounded\n compensation. Subsequent calls only return the retained receipt; mutations\n never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. Compensation cannot undo external effects of programs\n started inside the panes. "],"declarations":[{"kind":"function","text":"val await : ?compensate_on_failure:bool -> t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Execute once per handle, rechecking generation and captured preconditions first. Expected failures return a partial journal. Exceptions, including native cancellation, propagate after recording progress and bounded compensation. Subsequent calls only return the retained receipt; mutations never retry.","body":"Compensation kills only panes reported by completed creation commands, in reverse creation order. tmux removes windows and sessions that become empty. Containers with foreign panes or window links remain; adding a borrowed pane never makes it eligible for cleanup. Cleanup failures have separate outcomes. Compensation cannot undo external effects of programs started inside the panes."},"signatures":[{"raw":"val await : ?compensate_on_failure:bool -> t -> receipt","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-await"},{"id":"Libtmux_workspace.Execution.certainty","publicId":"Libtmux_workspace.Execution.certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","name":"certainty","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type certainty = Not_started | Applied | Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type certainty =\n | Not_started \n | Applied \n | Unknown ","params":[]}],"slug":"libtmux_workspace-execution-certainty"},{"id":"Libtmux_workspace.Execution.certainty.Applied","publicId":"Libtmux_workspace.Execution.certainty.Applied","name":"Applied","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applied","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applied","slug":"libtmux_workspace-execution-certainty-applied"},{"id":"Libtmux_workspace.Execution.certainty.Not_started","publicId":"Libtmux_workspace.Execution.certainty.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Not_started","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Not_started","slug":"libtmux_workspace-execution-certainty-not_started"},{"id":"Libtmux_workspace.Execution.certainty.Unknown","publicId":"Libtmux_workspace.Execution.certainty.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Unknown","slug":"libtmux_workspace-execution-certainty-unknown"},{"id":"Libtmux_workspace.Execution.cleanup","publicId":"Libtmux_workspace.Execution.cleanup","qualifiedName":"Libtmux_workspace.Execution.cleanup","name":"cleanup","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":215,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":215,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type cleanup =\n {\n pane: Libtmux.Pane.target ;\n outcome: (unit, Libtmux.Error.t) result }","params":[]}],"slug":"libtmux_workspace-execution-cleanup"},{"id":"Libtmux_workspace.Execution.cleanup.outcome","publicId":"Libtmux_workspace.Execution.cleanup.outcome","name":"outcome","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"outcome : (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"(unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.outcome","slug":"libtmux_workspace-execution-cleanup-outcome"},{"id":"Libtmux_workspace.Execution.cleanup.pane","publicId":"Libtmux_workspace.Execution.cleanup.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":216,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.target;","source":{"file":"workspace/libtmux_workspace.mli","line":216,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"Libtmux.Pane.target","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-cleanup-pane"},{"id":"Libtmux_workspace.Execution.create","publicId":"Libtmux_workspace.Execution.create","qualifiedName":"Libtmux_workspace.Execution.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":240,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. [operation_id] correlates receipts; it\n does not deduplicate handles. A new handle starts a new execution even if\n its ID matches an earlier one. "],"declarations":[{"kind":"function","text":"val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"workspace/libtmux_workspace.mli","line":240,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Allocate a retained handle without I/O. IDs have 1..64 ASCII letters, digits, underscores or hyphens. `operation_id` correlates receipts; it does not deduplicate handles. A new handle starts a new execution even if its ID matches an earlier one."},"signatures":[{"raw":"val create :\n operation_id:string ->\n executor:executor -> Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"operation_id","type":"string","keywordOnly":true},{"name":"executor","type":"executor","keywordOnly":true},{"name":"arg1","type":"Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_workspace-execution-create"},{"id":"Libtmux_workspace.Execution.executor","publicId":"Libtmux_workspace.Execution.executor","qualifiedName":"Libtmux_workspace.Execution.executor","name":"executor","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. "],"declarations":[{"kind":"struct","text":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Backend integration: `inspect` returns a callback tied to the latest operation, reading only its retained state even after later submissions. `protect` bounds compensation and shields it from caller cancellation, reporting expected failures as `Error`. Ordinary callers use their backend's Workspace API."},"signatures":[{"raw":"type executor =\n {\n source: unit -> Libtmux.Source.t option ;\n capture: unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result ;\n run: 'a . 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result ;\n bootstrap: Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result ;\n inspect: unit -> unit -> observation ;\n protect: (unit -> unit) -> (unit, Libtmux.Error.t) result }","params":[]}],"slug":"libtmux_workspace-execution-executor"},{"id":"Libtmux_workspace.Execution.executor.bootstrap","publicId":"Libtmux_workspace.Execution.executor.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.executor","type":"Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.bootstrap","slug":"libtmux_workspace-execution-executor-bootstrap"},{"id":"Libtmux_workspace.Execution.executor.capture","publicId":"Libtmux_workspace.Execution.executor.capture","name":"capture","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.capture","slug":"libtmux_workspace-execution-executor-capture"},{"id":"Libtmux_workspace.Execution.executor.inspect","publicId":"Libtmux_workspace.Execution.executor.inspect","name":"inspect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":190,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inspect : unit -> unit -> observation;","source":{"file":"workspace/libtmux_workspace.mli","line":190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> unit -> observation","qualifiedName":"Libtmux_workspace.Execution.inspect","slug":"libtmux_workspace-execution-executor-inspect"},{"id":"Libtmux_workspace.Execution.executor.protect","publicId":"Libtmux_workspace.Execution.executor.protect","name":"protect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.executor","type":"(unit -> unit) -> (unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.protect","slug":"libtmux_workspace-execution-executor-protect"},{"id":"Libtmux_workspace.Execution.executor.run","publicId":"Libtmux_workspace.Execution.executor.run","name":"run","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.executor","type":"'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.run","slug":"libtmux_workspace-execution-executor-run"},{"id":"Libtmux_workspace.Execution.executor.source","publicId":"Libtmux_workspace.Execution.executor.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : unit -> Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-executor-source"},{"id":"Libtmux_workspace.Execution.hint","publicId":"Libtmux_workspace.Execution.hint","qualifiedName":"Libtmux_workspace.Execution.hint","name":"hint","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. "],"declarations":[{"kind":"struct","text":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"A creation row received before daemon binding finished. Hints are not operational targets and are never eligible for automatic compensation."},"signatures":[{"raw":"type hint =\n {\n session: Libtmux.Session.Id.t ;\n window: Libtmux.Window.Id.t ;\n pane: Libtmux.Pane.Id.t ;\n window_index: int ;\n pane_index: int ;\n server_pid: int }","params":[]}],"slug":"libtmux_workspace-execution-hint"},{"id":"Libtmux_workspace.Execution.hint.pane","publicId":"Libtmux_workspace.Execution.hint.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-hint-pane"},{"id":"Libtmux_workspace.Execution.hint.pane_index","publicId":"Libtmux_workspace.Execution.hint.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":171,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":171,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.pane_index","slug":"libtmux_workspace-execution-hint-pane_index"},{"id":"Libtmux_workspace.Execution.hint.server_pid","publicId":"Libtmux_workspace.Execution.hint.server_pid","name":"server_pid","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"server_pid : int;","source":{"file":"workspace/libtmux_workspace.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.server_pid","slug":"libtmux_workspace-execution-hint-server_pid"},{"id":"Libtmux_workspace.Execution.hint.session","publicId":"Libtmux_workspace.Execution.hint.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Libtmux.Session.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Session.Id.t","qualifiedName":"Libtmux_workspace.Execution.session","slug":"libtmux_workspace-execution-hint-session"},{"id":"Libtmux_workspace.Execution.hint.window","publicId":"Libtmux_workspace.Execution.hint.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Libtmux.Window.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Window.Id.t","qualifiedName":"Libtmux_workspace.Execution.window","slug":"libtmux_workspace-execution-hint-window"},{"id":"Libtmux_workspace.Execution.hint.window_index","publicId":"Libtmux_workspace.Execution.hint.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":170,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":170,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.window_index","slug":"libtmux_workspace-execution-hint-window_index"},{"id":"Libtmux_workspace.Execution.inspect","publicId":"Libtmux_workspace.Execution.inspect","qualifiedName":"Libtmux_workspace.Execution.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":250,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Return an immutable copy of the retained journal without I/O. "],"declarations":[{"kind":"function","text":"val inspect : t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":250,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Return an immutable copy of the retained journal without I/O."},"signatures":[{"raw":"val inspect : t -> receipt","params":[{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-inspect"},{"id":"Libtmux_workspace.Execution.observation","publicId":"Libtmux_workspace.Execution.observation","qualifiedName":"Libtmux_workspace.Execution.observation","name":"observation","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type observation =\n {\n certainty: certainty ;\n created: Libtmux.Created.t list ;\n unbound: hint option }","params":[]}],"slug":"libtmux_workspace-execution-observation"},{"id":"Libtmux_workspace.Execution.observation.certainty","publicId":"Libtmux_workspace.Execution.observation.certainty","name":"certainty","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":180,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"certainty : certainty;","source":{"file":"workspace/libtmux_workspace.mli","line":180,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.observation","type":"certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","slug":"libtmux_workspace-execution-observation-certainty"},{"id":"Libtmux_workspace.Execution.observation.created","publicId":"Libtmux_workspace.Execution.observation.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.observation","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-observation-created"},{"id":"Libtmux_workspace.Execution.observation.unbound","publicId":"Libtmux_workspace.Execution.observation.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.observation","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-observation-unbound"},{"id":"Libtmux_workspace.Execution.receipt","publicId":"Libtmux_workspace.Execution.receipt","qualifiedName":"Libtmux_workspace.Execution.receipt","name":"receipt","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type receipt =\n {\n operation_id: string ;\n source: Libtmux.Source.t option ;\n status: status ;\n steps: step Iarray.t ;\n cleanup: cleanup Iarray.t ;\n cleanup_error: Libtmux.Error.t option }","params":[]}],"slug":"libtmux_workspace-execution-receipt"},{"id":"Libtmux_workspace.Execution.receipt.cleanup","publicId":"Libtmux_workspace.Execution.receipt.cleanup","name":"cleanup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup : cleanup Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"cleanup Iarray.t","qualifiedName":"Libtmux_workspace.Execution.cleanup","slug":"libtmux_workspace-execution-receipt-cleanup"},{"id":"Libtmux_workspace.Execution.receipt.cleanup_error","publicId":"Libtmux_workspace.Execution.receipt.cleanup_error","name":"cleanup_error","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup_error : Libtmux.Error.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_workspace.Execution.cleanup_error","slug":"libtmux_workspace-execution-receipt-cleanup_error"},{"id":"Libtmux_workspace.Execution.receipt.operation_id","publicId":"Libtmux_workspace.Execution.receipt.operation_id","name":"operation_id","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation_id : string;","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"string","qualifiedName":"Libtmux_workspace.Execution.operation_id","slug":"libtmux_workspace-execution-receipt-operation_id"},{"id":"Libtmux_workspace.Execution.receipt.source","publicId":"Libtmux_workspace.Execution.receipt.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-receipt-source"},{"id":"Libtmux_workspace.Execution.receipt.status","publicId":"Libtmux_workspace.Execution.receipt.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : status;","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-receipt-status"},{"id":"Libtmux_workspace.Execution.receipt.steps","publicId":"Libtmux_workspace.Execution.receipt.steps","name":"steps","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"steps : step Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"step Iarray.t","qualifiedName":"Libtmux_workspace.Execution.steps","slug":"libtmux_workspace-execution-receipt-steps"},{"id":"Libtmux_workspace.Execution.status","publicId":"Libtmux_workspace.Execution.status","qualifiedName":"Libtmux_workspace.Execution.status","name":"status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type status =\n | Queued \n | Applying \n | Succeeded \n | Partial \n | Interrupted \n | Rejected of Plan.error \n | Unavailable of Libtmux.Error.t ","params":[]}],"slug":"libtmux_workspace-execution-status"},{"id":"Libtmux_workspace.Execution.status.Applying","publicId":"Libtmux_workspace.Execution.status.Applying","name":"Applying","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applying","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applying","slug":"libtmux_workspace-execution-status-applying"},{"id":"Libtmux_workspace.Execution.status.Interrupted","publicId":"Libtmux_workspace.Execution.status.Interrupted","name":"Interrupted","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":225,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Interrupted","source":{"file":"workspace/libtmux_workspace.mli","line":225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Interrupted","slug":"libtmux_workspace-execution-status-interrupted"},{"id":"Libtmux_workspace.Execution.status.Partial","publicId":"Libtmux_workspace.Execution.status.Partial","name":"Partial","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Partial","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Partial","slug":"libtmux_workspace-execution-status-partial"},{"id":"Libtmux_workspace.Execution.status.Queued","publicId":"Libtmux_workspace.Execution.status.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Queued","slug":"libtmux_workspace-execution-status-queued"},{"id":"Libtmux_workspace.Execution.status.Rejected","publicId":"Libtmux_workspace.Execution.status.Rejected","name":"Rejected","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rejected of Plan.error","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Rejected","slug":"libtmux_workspace-execution-status-rejected"},{"id":"Libtmux_workspace.Execution.status.Succeeded","publicId":"Libtmux_workspace.Execution.status.Succeeded","name":"Succeeded","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Succeeded","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Succeeded","slug":"libtmux_workspace-execution-status-succeeded"},{"id":"Libtmux_workspace.Execution.status.Unavailable","publicId":"Libtmux_workspace.Execution.status.Unavailable","name":"Unavailable","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Unavailable","slug":"libtmux_workspace-execution-status-unavailable"},{"id":"Libtmux_workspace.Execution.step","publicId":"Libtmux_workspace.Execution.step","qualifiedName":"Libtmux_workspace.Execution.step","name":"step","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step =\n {\n index: int ;\n action: Plan.action ;\n status: step_status ;\n created: Libtmux.Created.t list ;\n unbound: hint option }","params":[]}],"slug":"libtmux_workspace-execution-step"},{"id":"Libtmux_workspace.Execution.step.action","publicId":"Libtmux_workspace.Execution.step.action","name":"action","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"action : Plan.action;","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step","type":"Plan.action","qualifiedName":"Libtmux_workspace.Execution.action","slug":"libtmux_workspace-execution-step-action"},{"id":"Libtmux_workspace.Execution.step.created","publicId":"Libtmux_workspace.Execution.step.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-step-created"},{"id":"Libtmux_workspace.Execution.step.index","publicId":"Libtmux_workspace.Execution.step.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step","type":"int","qualifiedName":"Libtmux_workspace.Execution.index","slug":"libtmux_workspace-execution-step-index"},{"id":"Libtmux_workspace.Execution.step.status","publicId":"Libtmux_workspace.Execution.step.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":210,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : step_status;","source":{"file":"workspace/libtmux_workspace.mli","line":210,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step","type":"step_status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-step-status"},{"id":"Libtmux_workspace.Execution.step.unbound","publicId":"Libtmux_workspace.Execution.step.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-step-unbound"},{"id":"Libtmux_workspace.Execution.step_status","publicId":"Libtmux_workspace.Execution.step_status","qualifiedName":"Libtmux_workspace.Execution.step_status","name":"step_status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step_status =\n | Pending \n | Running \n | Completed \n | Failed of Libtmux.Error.t \n | Skipped \n | Uncertain of Libtmux.Error.t ","params":[]}],"slug":"libtmux_workspace-execution-step_status"},{"id":"Libtmux_workspace.Execution.step_status.Completed","publicId":"Libtmux_workspace.Execution.step_status.Completed","name":"Completed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Completed","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Completed","slug":"libtmux_workspace-execution-step_status-completed"},{"id":"Libtmux_workspace.Execution.step_status.Failed","publicId":"Libtmux_workspace.Execution.step_status.Failed","name":"Failed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Failed of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Failed","slug":"libtmux_workspace-execution-step_status-failed"},{"id":"Libtmux_workspace.Execution.step_status.Pending","publicId":"Libtmux_workspace.Execution.step_status.Pending","name":"Pending","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pending","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Pending","slug":"libtmux_workspace-execution-step_status-pending"},{"id":"Libtmux_workspace.Execution.step_status.Running","publicId":"Libtmux_workspace.Execution.step_status.Running","name":"Running","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Running","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Running","slug":"libtmux_workspace-execution-step_status-running"},{"id":"Libtmux_workspace.Execution.step_status.Skipped","publicId":"Libtmux_workspace.Execution.step_status.Skipped","name":"Skipped","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Skipped","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Skipped","slug":"libtmux_workspace-execution-step_status-skipped"},{"id":"Libtmux_workspace.Execution.step_status.Uncertain","publicId":"Libtmux_workspace.Execution.step_status.Uncertain","name":"Uncertain","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Uncertain","slug":"libtmux_workspace-execution-step_status-uncertain"},{"id":"Libtmux_workspace.Execution.t","publicId":"Libtmux_workspace.Execution.t","qualifiedName":"Libtmux_workspace.Execution.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-execution-t"},{"id":"Libtmux_workspace.Plan","publicId":"Libtmux_workspace.Plan","qualifiedName":"Libtmux_workspace.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Preview ordered workspace actions against one observed daemon generation. A\n plan retains collision policy and bound targets; it is not a portable\n command script. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type server_policy = Create_if_missing | Require_existing_server\n type window_collision = Reject\n\n type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }\n\n type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale\n\n val pp_error : Format.formatter -> error -> unit\n\n type scope = Session | Window of int | Pane of { window : int; pane : int }\n\n type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t\n\n type t\n\n val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result\n (** [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. *)\n\n val endpoint : t -> Libtmux.Endpoint.t\n val source : t -> Libtmux.Source.t option\n val existing_session : t -> Libtmux.Session.target option\n val actions : t -> action Iarray.t\n val config : t -> Config.t\n\n val check_source : t -> Libtmux.Source.t option -> (unit, error) result\n (** Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace","doc":{"summary":"Preview ordered workspace actions against one observed daemon generation. A plan retains collision policy and bound targets; it is not a portable command script."},"slug":"libtmux_workspace-plan"},{"id":"Libtmux_workspace.Plan.action","publicId":"Libtmux_workspace.Plan.action","qualifiedName":"Libtmux_workspace.Plan.action","name":"action","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type action =\n | Create_session of\n {\n bootstrap: bool ;\n name: string ;\n window_name: string ;\n spawn: Libtmux.Spawn.t ;\n width: int ;\n height: int } \n | Create_window of {\n window: int ;\n name: string ;\n spawn: Libtmux.Spawn.t } \n | Split_pane of\n {\n window: int ;\n pane: int ;\n spawn: Libtmux.Spawn.t ;\n direction: Libtmux.Geometry.direction ;\n size: Libtmux.Geometry.size option } \n | Set_environment of string * string \n | Set_option of scope * Config.setting \n | Send_text of {\n window: int ;\n pane: int ;\n text: string } \n | Send_enter of {\n window: int ;\n pane: int } \n | Select_layout of int * Libtmux.Layout.t ","params":[]}],"slug":"libtmux_workspace-plan-action"},{"id":"Libtmux_workspace.Plan.action.Create_session","publicId":"Libtmux_workspace.Plan.action.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_session","slug":"libtmux_workspace-plan-action-create_session"},{"id":"Libtmux_workspace.Plan.action.Create_session.bootstrap","publicId":"Libtmux_workspace.Plan.action.Create_session.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : bool;","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"bool","qualifiedName":"Libtmux_workspace.Plan.bootstrap","slug":"libtmux_workspace-plan-action-create_session-bootstrap"},{"id":"Libtmux_workspace.Plan.action.Create_session.height","publicId":"Libtmux_workspace.Plan.action.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.height","slug":"libtmux_workspace-plan-action-create_session-height"},{"id":"Libtmux_workspace.Plan.action.Create_session.name","publicId":"Libtmux_workspace.Plan.action.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_session-name"},{"id":"Libtmux_workspace.Plan.action.Create_session.spawn","publicId":"Libtmux_workspace.Plan.action.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_session-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_session.width","publicId":"Libtmux_workspace.Plan.action.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.width","slug":"libtmux_workspace-plan-action-create_session-width"},{"id":"Libtmux_workspace.Plan.action.Create_session.window_name","publicId":"Libtmux_workspace.Plan.action.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.window_name","slug":"libtmux_workspace-plan-action-create_session-window_name"},{"id":"Libtmux_workspace.Plan.action.Create_window","publicId":"Libtmux_workspace.Plan.action.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_window","slug":"libtmux_workspace-plan-action-create_window"},{"id":"Libtmux_workspace.Plan.action.Create_window.name","publicId":"Libtmux_workspace.Plan.action.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_window-name"},{"id":"Libtmux_workspace.Plan.action.Create_window.spawn","publicId":"Libtmux_workspace.Plan.action.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_window-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_window.window","publicId":"Libtmux_workspace.Plan.action.Create_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-create_window-window"},{"id":"Libtmux_workspace.Plan.action.Select_layout","publicId":"Libtmux_workspace.Plan.action.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Select_layout","slug":"libtmux_workspace-plan-action-select_layout"},{"id":"Libtmux_workspace.Plan.action.Send_enter","publicId":"Libtmux_workspace.Plan.action.Send_enter","name":"Send_enter","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_enter of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_enter","slug":"libtmux_workspace-plan-action-send_enter"},{"id":"Libtmux_workspace.Plan.action.Send_enter.pane","publicId":"Libtmux_workspace.Plan.action.Send_enter.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_enter-pane"},{"id":"Libtmux_workspace.Plan.action.Send_enter.window","publicId":"Libtmux_workspace.Plan.action.Send_enter.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_enter-window"},{"id":"Libtmux_workspace.Plan.action.Send_text","publicId":"Libtmux_workspace.Plan.action.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text of { window : int; pane : int; text : string }","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_text","slug":"libtmux_workspace-plan-action-send_text"},{"id":"Libtmux_workspace.Plan.action.Send_text.pane","publicId":"Libtmux_workspace.Plan.action.Send_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_text-pane"},{"id":"Libtmux_workspace.Plan.action.Send_text.text","publicId":"Libtmux_workspace.Plan.action.Send_text.text","name":"text","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"text : string","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"string","qualifiedName":"Libtmux_workspace.Plan.text","slug":"libtmux_workspace-plan-action-send_text-text"},{"id":"Libtmux_workspace.Plan.action.Send_text.window","publicId":"Libtmux_workspace.Plan.action.Send_text.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_text-window"},{"id":"Libtmux_workspace.Plan.action.Set_environment","publicId":"Libtmux_workspace.Plan.action.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of string * string","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_environment","slug":"libtmux_workspace-plan-action-set_environment"},{"id":"Libtmux_workspace.Plan.action.Set_option","publicId":"Libtmux_workspace.Plan.action.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of scope * Config.setting","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_option","slug":"libtmux_workspace-plan-action-set_option"},{"id":"Libtmux_workspace.Plan.action.Split_pane","publicId":"Libtmux_workspace.Plan.action.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Split_pane","slug":"libtmux_workspace-plan-action-split_pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.direction","publicId":"Libtmux_workspace.Plan.action.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Plan.direction","slug":"libtmux_workspace-plan-action-split_pane-direction"},{"id":"Libtmux_workspace.Plan.action.Split_pane.pane","publicId":"Libtmux_workspace.Plan.action.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-split_pane-pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.size","publicId":"Libtmux_workspace.Plan.action.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Plan.size","slug":"libtmux_workspace-plan-action-split_pane-size"},{"id":"Libtmux_workspace.Plan.action.Split_pane.spawn","publicId":"Libtmux_workspace.Plan.action.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-split_pane-spawn"},{"id":"Libtmux_workspace.Plan.action.Split_pane.window","publicId":"Libtmux_workspace.Plan.action.Split_pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-split_pane-window"},{"id":"Libtmux_workspace.Plan.actions","publicId":"Libtmux_workspace.Plan.actions","qualifiedName":"Libtmux_workspace.Plan.actions","name":"actions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val actions : t -> action Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val actions : t -> action Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"action Iarray.t"}],"slug":"libtmux_workspace-plan-actions"},{"id":"Libtmux_workspace.Plan.check_source","publicId":"Libtmux_workspace.Plan.check_source","qualifiedName":"Libtmux_workspace.Plan.check_source","name":"check_source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. "],"declarations":[{"kind":"function","text":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"Operational plans are ephemeral and bound to one connection generation. A printed or serialized preview cannot supply operational targets."},"signatures":[{"raw":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Source.t option"}],"returns":"(unit, error) result"}],"slug":"libtmux_workspace-plan-check_source"},{"id":"Libtmux_workspace.Plan.collision_policy","publicId":"Libtmux_workspace.Plan.collision_policy","qualifiedName":"Libtmux_workspace.Plan.collision_policy","name":"collision_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type collision_policy =\n | Fail_if_session_exists \n | Append_new_windows of {\n window_collision: window_collision } ","params":[]}],"slug":"libtmux_workspace-plan-collision_policy"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","name":"Append_new_windows","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Append_new_windows","slug":"libtmux_workspace-plan-collision_policy-append_new_windows"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","name":"window_collision","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_collision : window_collision","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","type":"window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","slug":"libtmux_workspace-plan-collision_policy-append_new_windows-window_collision"},{"id":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","publicId":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","name":"Fail_if_session_exists","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Fail_if_session_exists","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Fail_if_session_exists","slug":"libtmux_workspace-plan-collision_policy-fail_if_session_exists"},{"id":"Libtmux_workspace.Plan.config","publicId":"Libtmux_workspace.Plan.config","qualifiedName":"Libtmux_workspace.Plan.config","name":"config","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val config : t -> Config.t","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val config : t -> Config.t","params":[{"name":"arg1","type":"t"}],"returns":"Config.t"}],"slug":"libtmux_workspace-plan-config"},{"id":"Libtmux_workspace.Plan.endpoint","publicId":"Libtmux_workspace.Plan.endpoint","qualifiedName":"Libtmux_workspace.Plan.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Libtmux.Endpoint.t","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val endpoint : t -> Libtmux.Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Endpoint.t"}],"slug":"libtmux_workspace-plan-endpoint"},{"id":"Libtmux_workspace.Plan.error","publicId":"Libtmux_workspace.Plan.error","qualifiedName":"Libtmux_workspace.Plan.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type error =\n | Missing_endpoint \n | Session_conflict of string \n | Window_conflict of string \n | Append_session_options \n | Too_many_steps \n | Unsupported_setting of Config.error \n | Stale ","params":[]}],"slug":"libtmux_workspace-plan-error"},{"id":"Libtmux_workspace.Plan.error.Append_session_options","publicId":"Libtmux_workspace.Plan.error.Append_session_options","name":"Append_session_options","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_session_options","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Append_session_options","slug":"libtmux_workspace-plan-error-append_session_options"},{"id":"Libtmux_workspace.Plan.error.Missing_endpoint","publicId":"Libtmux_workspace.Plan.error.Missing_endpoint","name":"Missing_endpoint","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing_endpoint","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Missing_endpoint","slug":"libtmux_workspace-plan-error-missing_endpoint"},{"id":"Libtmux_workspace.Plan.error.Session_conflict","publicId":"Libtmux_workspace.Plan.error.Session_conflict","name":"Session_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Session_conflict","slug":"libtmux_workspace-plan-error-session_conflict"},{"id":"Libtmux_workspace.Plan.error.Stale","publicId":"Libtmux_workspace.Plan.error.Stale","name":"Stale","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Stale","slug":"libtmux_workspace-plan-error-stale"},{"id":"Libtmux_workspace.Plan.error.Too_many_steps","publicId":"Libtmux_workspace.Plan.error.Too_many_steps","name":"Too_many_steps","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Too_many_steps","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Too_many_steps","slug":"libtmux_workspace-plan-error-too_many_steps"},{"id":"Libtmux_workspace.Plan.error.Unsupported_setting","publicId":"Libtmux_workspace.Plan.error.Unsupported_setting","name":"Unsupported_setting","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_setting of Config.error","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Unsupported_setting","slug":"libtmux_workspace-plan-error-unsupported_setting"},{"id":"Libtmux_workspace.Plan.error.Window_conflict","publicId":"Libtmux_workspace.Plan.error.Window_conflict","name":"Window_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window_conflict","slug":"libtmux_workspace-plan-error-window_conflict"},{"id":"Libtmux_workspace.Plan.existing_session","publicId":"Libtmux_workspace.Plan.existing_session","qualifiedName":"Libtmux_workspace.Plan.existing_session","name":"existing_session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val existing_session : t -> Libtmux.Session.target option","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val existing_session : t -> Libtmux.Session.target option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Session.target option"}],"slug":"libtmux_workspace-plan-existing_session"},{"id":"Libtmux_workspace.Plan.make","publicId":"Libtmux_workspace.Plan.make","qualifiedName":"Libtmux_workspace.Plan.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. "],"declarations":[{"kind":"function","text":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"`None` means an explicitly observed missing endpoint. It is not an empty successful snapshot. A plan does not start a server. Append rejects any existing requested window name and never changes session options. `version` selects the generated option catalog."},"signatures":[{"raw":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option -> Config.t -> (t, error) result","params":[{"name":"server_policy","type":"server_policy","optional":true,"keywordOnly":true},{"name":"collision_policy","type":"collision_policy","optional":true,"keywordOnly":true},{"name":"endpoint","type":"Libtmux.Endpoint.t","keywordOnly":true},{"name":"version","type":"string","keywordOnly":true},{"name":"observed","type":"Libtmux.Snapshot.t option","keywordOnly":true},{"name":"arg1","type":"Config.t"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-plan-make"},{"id":"Libtmux_workspace.Plan.pp_error","publicId":"Libtmux_workspace.Plan.pp_error","qualifiedName":"Libtmux_workspace.Plan.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-plan-pp_error"},{"id":"Libtmux_workspace.Plan.scope","publicId":"Libtmux_workspace.Plan.scope","qualifiedName":"Libtmux_workspace.Plan.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Session | Window of int | Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type scope =\n | Session \n | Window of int \n | Pane of {\n window: int ;\n pane: int } ","params":[]}],"slug":"libtmux_workspace-plan-scope"},{"id":"Libtmux_workspace.Plan.scope.Pane","publicId":"Libtmux_workspace.Plan.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Pane","slug":"libtmux_workspace-plan-scope-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.pane","publicId":"Libtmux_workspace.Plan.scope.Pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-scope-pane-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.window","publicId":"Libtmux_workspace.Plan.scope.Pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-scope-pane-window"},{"id":"Libtmux_workspace.Plan.scope.Session","publicId":"Libtmux_workspace.Plan.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Session","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Session","slug":"libtmux_workspace-plan-scope-session"},{"id":"Libtmux_workspace.Plan.scope.Window","publicId":"Libtmux_workspace.Plan.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window","slug":"libtmux_workspace-plan-scope-window"},{"id":"Libtmux_workspace.Plan.server_policy","publicId":"Libtmux_workspace.Plan.server_policy","qualifiedName":"Libtmux_workspace.Plan.server_policy","name":"server_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type server_policy = Create_if_missing | Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type server_policy =\n | Create_if_missing \n | Require_existing_server ","params":[]}],"slug":"libtmux_workspace-plan-server_policy"},{"id":"Libtmux_workspace.Plan.server_policy.Create_if_missing","publicId":"Libtmux_workspace.Plan.server_policy.Create_if_missing","name":"Create_if_missing","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Create_if_missing","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Create_if_missing","slug":"libtmux_workspace-plan-server_policy-create_if_missing"},{"id":"Libtmux_workspace.Plan.server_policy.Require_existing_server","publicId":"Libtmux_workspace.Plan.server_policy.Require_existing_server","name":"Require_existing_server","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Require_existing_server","slug":"libtmux_workspace-plan-server_policy-require_existing_server"},{"id":"Libtmux_workspace.Plan.source","publicId":"Libtmux_workspace.Plan.source","qualifiedName":"Libtmux_workspace.Plan.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t option","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val source : t -> Libtmux.Source.t option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t option"}],"slug":"libtmux_workspace-plan-source"},{"id":"Libtmux_workspace.Plan.t","publicId":"Libtmux_workspace.Plan.t","qualifiedName":"Libtmux_workspace.Plan.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-plan-t"},{"id":"Libtmux_workspace.Plan.window_collision","publicId":"Libtmux_workspace.Plan.window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","name":"window_collision","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type window_collision = Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type window_collision =\n | Reject ","params":[]}],"slug":"libtmux_workspace-plan-window_collision"},{"id":"Libtmux_workspace.Plan.window_collision.Reject","publicId":"Libtmux_workspace.Plan.window_collision.Reject","name":"Reject","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.window_collision","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Reject","slug":"libtmux_workspace-plan-window_collision-reject"}]} diff --git a/site/src/data/api/ocaml.nav.json b/site/src/data/api/ocaml.nav.json index 8fb2dc4a4..2b82332bd 100644 --- a/site/src/data/api/ocaml.nav.json +++ b/site/src/data/api/ocaml.nav.json @@ -1 +1 @@ -{"port":"ocaml","buckets":[{"id":"server","label":"Server","collapsed":false,"target":{"id":"Libtmux_unix.Client","name":"Client","slug":"libtmux_unix-client","kind":"module"}},{"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":"Libtmux_unix.Client","name":"Client","slug":"libtmux_unix-client","kind":"module"},{"id":"Libtmux_eio.Client","name":"Client","slug":"libtmux_eio-client","kind":"module"},{"id":"Libtmux.Endpoint","name":"Endpoint","slug":"libtmux-endpoint","kind":"module"},{"id":"Libtmux.Source","name":"Source","slug":"libtmux-source","kind":"module"},{"id":"Libtmux.Generation","name":"Generation","slug":"libtmux-generation","kind":"module"}],"session":[{"id":"Libtmux.Session","name":"Session","slug":"libtmux-session","kind":"module"}],"window":[{"id":"Libtmux.Window","name":"Window","slug":"libtmux-window","kind":"module"},{"id":"Libtmux.Window_link","name":"Window_link","slug":"libtmux-window_link","kind":"module"}],"pane":[{"id":"Libtmux.Pane","name":"Pane","slug":"libtmux-pane","kind":"module"}],"client":[{"id":"Libtmux.Client_name","name":"Client_name","slug":"libtmux-client_name","kind":"module"},{"id":"Libtmux.Client_observation","name":"Client_observation","slug":"libtmux-client_observation","kind":"module"}],"hooks":[{"id":"Libtmux.Hook","name":"Hook","slug":"libtmux-hook","kind":"module"}],"options":[{"id":"Libtmux.Options","name":"Options","slug":"libtmux-options","kind":"module"}],"options-functions":[],"options-constants":[],"keys":[{"id":"Libtmux.Key","name":"Key","slug":"libtmux-key","kind":"module"}],"buffers":[],"layout":[{"id":"Libtmux.Geometry","name":"Geometry","slug":"libtmux-geometry","kind":"module"},{"id":"Libtmux.Layout","name":"Layout","slug":"libtmux-layout","kind":"module"}],"environment":[{"id":"Libtmux.Environment","name":"Environment","slug":"libtmux-environment","kind":"module"}],"capabilities":[{"id":"Libtmux_eio.Terminal","name":"Terminal","slug":"libtmux_eio-terminal","kind":"module"},{"id":"Libtmux_unix.Terminal","name":"Terminal","slug":"libtmux_unix-terminal","kind":"module"}],"version":[],"commands":[{"id":"Libtmux","name":"Libtmux","slug":"libtmux","kind":"module"},{"id":"Libtmux.Command","name":"Command","slug":"libtmux-command","kind":"module"},{"id":"Libtmux.Created","name":"Created","slug":"libtmux-created","kind":"module"},{"id":"Libtmux.ID","name":"ID","slug":"libtmux-id","kind":"interface"},{"id":"Libtmux.Operations","name":"Operations","slug":"libtmux-operations","kind":"module"},{"id":"Libtmux.Spawn","name":"Spawn","slug":"libtmux-spawn","kind":"module"}],"control":[{"id":"Libtmux.Output","name":"Output","slug":"libtmux-output","kind":"module"},{"id":"Libtmux_eio.Operation","name":"Operation","slug":"libtmux_eio-operation","kind":"module"},{"id":"Libtmux_eio.Subscription","name":"Subscription","slug":"libtmux_eio-subscription","kind":"module"},{"id":"Libtmux_unix.Cancellation","name":"Cancellation","slug":"libtmux_unix-cancellation","kind":"module"},{"id":"Libtmux_unix.Operation","name":"Operation","slug":"libtmux_unix-operation","kind":"module"},{"id":"Libtmux_unix.Subscription","name":"Subscription","slug":"libtmux_unix-subscription","kind":"module"}],"formats":[{"id":"Libtmux.Formats","name":"Formats","slug":"libtmux-formats","kind":"module"}],"queries":[{"id":"Libtmux.Cardinality","name":"Cardinality","slug":"libtmux-cardinality","kind":"module"},{"id":"Libtmux.Model","name":"Model","slug":"libtmux-model","kind":"module"},{"id":"Libtmux.Plan","name":"Plan","slug":"libtmux-plan","kind":"module"},{"id":"Libtmux.Query","name":"Query","slug":"libtmux-query","kind":"module"},{"id":"Libtmux.Relation","name":"Relation","slug":"libtmux-relation","kind":"module"}],"queries-fields":[{"id":"Libtmux.Field","name":"Field","slug":"libtmux-field","kind":"module"}],"queries-operators":[],"queries-expressions":[{"id":"Libtmux.Expr","name":"Expr","slug":"libtmux-expr","kind":"module"},{"id":"Libtmux_json.Expr","name":"Expr","slug":"libtmux_json-expr","kind":"module"}],"snapshots":[{"id":"Libtmux.Captured_text","name":"Captured_text","slug":"libtmux-captured_text","kind":"module"},{"id":"Libtmux.Snapshot","name":"Snapshot","slug":"libtmux-snapshot","kind":"module"},{"id":"Libtmux_eio.Rendered","name":"Rendered","slug":"libtmux_eio-rendered","kind":"module"},{"id":"Libtmux_unix.Rendered","name":"Rendered","slug":"libtmux_unix-rendered","kind":"module"}],"workspace":[{"id":"Libtmux_workspace","name":"Libtmux_workspace","slug":"libtmux_workspace","kind":"module"},{"id":"Libtmux_workspace.Config","name":"Config","slug":"libtmux_workspace-config","kind":"module"},{"id":"Libtmux_workspace.Execution","name":"Execution","slug":"libtmux_workspace-execution","kind":"module"}],"workspace-plan":[{"id":"Libtmux_eio.Workspace","name":"Workspace","slug":"libtmux_eio-workspace","kind":"module"},{"id":"Libtmux_json.Workspace","name":"Workspace","slug":"libtmux_json-workspace","kind":"module"},{"id":"Libtmux_unix.Workspace","name":"Workspace","slug":"libtmux_unix-workspace","kind":"module"},{"id":"Libtmux_workspace.Plan","name":"Plan","slug":"libtmux_workspace-plan","kind":"module"}],"workspace-steps":[],"workspace-targets":[],"workspace-session":[],"workspace-window":[],"workspace-pane":[],"workspace-functions":[],"workspace-constants":[],"requests":[],"requests-server":[],"requests-session":[],"requests-window":[],"requests-pane":[],"requests-client":[],"errors":[{"id":"Libtmux.Error","name":"Error","slug":"libtmux-error","kind":"module"},{"id":"Libtmux_json.Decode_error","name":"Decode_error","slug":"libtmux_json-decode_error","kind":"module"},{"id":"Libtmux_json.Error","name":"Error","slug":"libtmux_json-error","kind":"module"}],"errors-server":[],"errors-session":[],"errors-window":[],"errors-pane":[],"constants":[],"constants-server":[],"constants-session":[],"constants-window":[],"constants-pane":[],"constants-client":[],"runtime":[{"id":"Libtmux_eio","name":"Libtmux_eio","slug":"libtmux_eio","kind":"module"},{"id":"Libtmux_json","name":"Libtmux_json","slug":"libtmux_json","kind":"module"},{"id":"Libtmux_unix","name":"Libtmux_unix","slug":"libtmux_unix","kind":"module"}],"async":[],"mcp":[],"mcp-functions":[],"mcp-constants":[],"testing":[],"internal":[],"internal-commands":[],"internal-options":[]},"placement":{"Libtmux.Endpoint":"server","Libtmux.Generation":"server","Libtmux.Source":"server","Libtmux_eio.Client":"server","Libtmux_unix.Client":"server","Libtmux.Session":"session","Libtmux.Window":"window","Libtmux.Window_link":"window","Libtmux.Pane":"pane","Libtmux.Client_name":"client","Libtmux.Client_observation":"client","Libtmux.Hook":"hooks","Libtmux.Options":"options","Libtmux.Key":"keys","Libtmux.Geometry":"layout","Libtmux.Layout":"layout","Libtmux.Environment":"environment","Libtmux_eio.Terminal":"capabilities","Libtmux_unix.Terminal":"capabilities","Libtmux":"commands","Libtmux.Command":"commands","Libtmux.Created":"commands","Libtmux.ID":"commands","Libtmux.Operations":"commands","Libtmux.Spawn":"commands","Libtmux.Output":"control","Libtmux_eio.Operation":"control","Libtmux_eio.Subscription":"control","Libtmux_unix.Cancellation":"control","Libtmux_unix.Operation":"control","Libtmux_unix.Subscription":"control","Libtmux.Formats":"formats","Libtmux.Cardinality":"queries","Libtmux.Model":"queries","Libtmux.Plan":"queries","Libtmux.Query":"queries","Libtmux.Relation":"queries","Libtmux.Field":"queries-fields","Libtmux.Expr":"queries-expressions","Libtmux_json.Expr":"queries-expressions","Libtmux.Captured_text":"snapshots","Libtmux.Snapshot":"snapshots","Libtmux_eio.Rendered":"snapshots","Libtmux_unix.Rendered":"snapshots","Libtmux_workspace":"workspace","Libtmux_workspace.Config":"workspace","Libtmux_workspace.Execution":"workspace","Libtmux_eio.Workspace":"workspace-plan","Libtmux_json.Workspace":"workspace-plan","Libtmux_unix.Workspace":"workspace-plan","Libtmux_workspace.Plan":"workspace-plan","Libtmux.Error":"errors","Libtmux_json.Decode_error":"errors","Libtmux_json.Error":"errors","Libtmux_eio":"runtime","Libtmux_json":"runtime","Libtmux_unix":"runtime"},"unplaced":[],"diagnostics":{"unmatched":[],"deadBuckets":["options-functions","options-constants","buffers","version","queries-operators","workspace-steps","workspace-targets","workspace-session","workspace-window","workspace-pane","workspace-functions","workspace-constants","requests","requests-server","requests-session","requests-window","requests-pane","requests-client","errors-server","errors-session","errors-window","errors-pane","constants","constants-server","constants-session","constants-window","constants-pane","constants-client","async","mcp","mcp-functions","mcp-constants","testing","internal","internal-commands","internal-options"],"ambiguous":[],"staleUnsettled":[]}} +{"port":"ocaml","buckets":[{"id":"server","label":"Server","collapsed":false,"target":{"id":"Libtmux_unix.Client","name":"Client","slug":"libtmux_unix-client","kind":"module"}},{"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":"Libtmux_unix.Client","name":"Client","slug":"libtmux_unix-client","kind":"module"},{"id":"Libtmux_eio.Client","name":"Client","slug":"libtmux_eio-client","kind":"module"},{"id":"Libtmux.Endpoint","name":"Endpoint","slug":"libtmux-endpoint","kind":"module"},{"id":"Libtmux.Source","name":"Source","slug":"libtmux-source","kind":"module"},{"id":"Libtmux.Generation","name":"Generation","slug":"libtmux-generation","kind":"module"}],"session":[{"id":"Libtmux.Session","name":"Session","slug":"libtmux-session","kind":"module"}],"window":[{"id":"Libtmux.Window","name":"Window","slug":"libtmux-window","kind":"module"},{"id":"Libtmux.Window_link","name":"Window_link","slug":"libtmux-window_link","kind":"module"}],"pane":[{"id":"Libtmux.Pane","name":"Pane","slug":"libtmux-pane","kind":"module"}],"client":[{"id":"Libtmux.Client_name","name":"Client_name","slug":"libtmux-client_name","kind":"module"},{"id":"Libtmux.Client_observation","name":"Client_observation","slug":"libtmux-client_observation","kind":"module"}],"hooks":[{"id":"Libtmux.Hook","name":"Hook","slug":"libtmux-hook","kind":"module"}],"options":[{"id":"Libtmux.Options","name":"Options","slug":"libtmux-options","kind":"module"}],"options-functions":[],"options-constants":[],"keys":[{"id":"Libtmux.Key","name":"Key","slug":"libtmux-key","kind":"module"}],"buffers":[],"layout":[{"id":"Libtmux.Geometry","name":"Geometry","slug":"libtmux-geometry","kind":"module"},{"id":"Libtmux.Layout","name":"Layout","slug":"libtmux-layout","kind":"module"}],"environment":[{"id":"Libtmux.Environment","name":"Environment","slug":"libtmux-environment","kind":"module"}],"capabilities":[{"id":"Libtmux_eio.Terminal","name":"Terminal","slug":"libtmux_eio-terminal","kind":"module"},{"id":"Libtmux_unix.Terminal","name":"Terminal","slug":"libtmux_unix-terminal","kind":"module"}],"version":[],"commands":[{"id":"Libtmux","name":"Libtmux","slug":"libtmux","kind":"module"},{"id":"Libtmux.Command","name":"Command","slug":"libtmux-command","kind":"module"},{"id":"Libtmux.Created","name":"Created","slug":"libtmux-created","kind":"module"},{"id":"Libtmux.ID","name":"ID","slug":"libtmux-id","kind":"interface"},{"id":"Libtmux.Operations","name":"Operations","slug":"libtmux-operations","kind":"module"},{"id":"Libtmux.Spawn","name":"Spawn","slug":"libtmux-spawn","kind":"module"}],"control":[{"id":"Libtmux.Output","name":"Output","slug":"libtmux-output","kind":"module"},{"id":"Libtmux_eio.Operation","name":"Operation","slug":"libtmux_eio-operation","kind":"module"},{"id":"Libtmux_eio.Subscription","name":"Subscription","slug":"libtmux_eio-subscription","kind":"module"},{"id":"Libtmux_unix.Cancellation","name":"Cancellation","slug":"libtmux_unix-cancellation","kind":"module"},{"id":"Libtmux_unix.Operation","name":"Operation","slug":"libtmux_unix-operation","kind":"module"},{"id":"Libtmux_unix.Subscription","name":"Subscription","slug":"libtmux_unix-subscription","kind":"module"}],"formats":[{"id":"Libtmux.Formats","name":"Formats","slug":"libtmux-formats","kind":"module"}],"queries":[{"id":"Libtmux.Cardinality","name":"Cardinality","slug":"libtmux-cardinality","kind":"module"},{"id":"Libtmux.Model","name":"Model","slug":"libtmux-model","kind":"module"},{"id":"Libtmux.Plan","name":"Plan","slug":"libtmux-plan","kind":"module"},{"id":"Libtmux.Query","name":"Query","slug":"libtmux-query","kind":"module"},{"id":"Libtmux.Relation","name":"Relation","slug":"libtmux-relation","kind":"module"}],"queries-fields":[{"id":"Libtmux.Field","name":"Field","slug":"libtmux-field","kind":"module"}],"queries-operators":[],"queries-expressions":[{"id":"Libtmux.Expr","name":"Expr","slug":"libtmux-expr","kind":"module"},{"id":"Libtmux_json.Expr","name":"Expr","slug":"libtmux_json-expr","kind":"module"}],"snapshots":[{"id":"Libtmux.Captured_text","name":"Captured_text","slug":"libtmux-captured_text","kind":"module"},{"id":"Libtmux.Snapshot","name":"Snapshot","slug":"libtmux-snapshot","kind":"module"},{"id":"Libtmux_eio.Rendered","name":"Rendered","slug":"libtmux_eio-rendered","kind":"module"},{"id":"Libtmux_unix.Rendered","name":"Rendered","slug":"libtmux_unix-rendered","kind":"module"}],"workspace":[{"id":"Libtmux_workspace","name":"Libtmux_workspace","slug":"libtmux_workspace","kind":"module"},{"id":"Libtmux_workspace.Config","name":"Config","slug":"libtmux_workspace-config","kind":"module"},{"id":"Libtmux_workspace.Execution","name":"Execution","slug":"libtmux_workspace-execution","kind":"module"}],"workspace-plan":[{"id":"Libtmux_eio.Workspace","name":"Workspace","slug":"libtmux_eio-workspace","kind":"module"},{"id":"Libtmux_json.Workspace","name":"Workspace","slug":"libtmux_json-workspace","kind":"module"},{"id":"Libtmux_unix.Workspace","name":"Workspace","slug":"libtmux_unix-workspace","kind":"module"},{"id":"Libtmux_workspace.Plan","name":"Plan","slug":"libtmux_workspace-plan","kind":"module"}],"workspace-steps":[],"workspace-targets":[],"workspace-session":[],"workspace-window":[],"workspace-pane":[],"workspace-functions":[],"workspace-constants":[],"requests":[],"requests-server":[],"requests-session":[],"requests-window":[],"requests-pane":[],"requests-client":[],"errors":[{"id":"Libtmux.Error","name":"Error","slug":"libtmux-error","kind":"module"},{"id":"Libtmux_eio.Cleanup","name":"Cleanup","slug":"libtmux_eio-cleanup","kind":"module"},{"id":"Libtmux_json.Decode_error","name":"Decode_error","slug":"libtmux_json-decode_error","kind":"module"},{"id":"Libtmux_json.Error","name":"Error","slug":"libtmux_json-error","kind":"module"},{"id":"Libtmux_unix.Cleanup","name":"Cleanup","slug":"libtmux_unix-cleanup","kind":"module"}],"errors-server":[],"errors-session":[],"errors-window":[],"errors-pane":[],"constants":[],"constants-server":[],"constants-session":[],"constants-window":[],"constants-pane":[],"constants-client":[],"runtime":[{"id":"Libtmux_eio","name":"Libtmux_eio","slug":"libtmux_eio","kind":"module"},{"id":"Libtmux_json","name":"Libtmux_json","slug":"libtmux_json","kind":"module"},{"id":"Libtmux_unix","name":"Libtmux_unix","slug":"libtmux_unix","kind":"module"}],"async":[],"mcp":[],"mcp-functions":[],"mcp-constants":[],"testing":[],"internal":[],"internal-commands":[],"internal-options":[]},"placement":{"Libtmux.Endpoint":"server","Libtmux.Generation":"server","Libtmux.Source":"server","Libtmux_eio.Client":"server","Libtmux_unix.Client":"server","Libtmux.Session":"session","Libtmux.Window":"window","Libtmux.Window_link":"window","Libtmux.Pane":"pane","Libtmux.Client_name":"client","Libtmux.Client_observation":"client","Libtmux.Hook":"hooks","Libtmux.Options":"options","Libtmux.Key":"keys","Libtmux.Geometry":"layout","Libtmux.Layout":"layout","Libtmux.Environment":"environment","Libtmux_eio.Terminal":"capabilities","Libtmux_unix.Terminal":"capabilities","Libtmux":"commands","Libtmux.Command":"commands","Libtmux.Created":"commands","Libtmux.ID":"commands","Libtmux.Operations":"commands","Libtmux.Spawn":"commands","Libtmux.Output":"control","Libtmux_eio.Operation":"control","Libtmux_eio.Subscription":"control","Libtmux_unix.Cancellation":"control","Libtmux_unix.Operation":"control","Libtmux_unix.Subscription":"control","Libtmux.Formats":"formats","Libtmux.Cardinality":"queries","Libtmux.Model":"queries","Libtmux.Plan":"queries","Libtmux.Query":"queries","Libtmux.Relation":"queries","Libtmux.Field":"queries-fields","Libtmux.Expr":"queries-expressions","Libtmux_json.Expr":"queries-expressions","Libtmux.Captured_text":"snapshots","Libtmux.Snapshot":"snapshots","Libtmux_eio.Rendered":"snapshots","Libtmux_unix.Rendered":"snapshots","Libtmux_workspace":"workspace","Libtmux_workspace.Config":"workspace","Libtmux_workspace.Execution":"workspace","Libtmux_eio.Workspace":"workspace-plan","Libtmux_json.Workspace":"workspace-plan","Libtmux_unix.Workspace":"workspace-plan","Libtmux_workspace.Plan":"workspace-plan","Libtmux.Error":"errors","Libtmux_eio.Cleanup":"errors","Libtmux_json.Decode_error":"errors","Libtmux_json.Error":"errors","Libtmux_unix.Cleanup":"errors","Libtmux_eio":"runtime","Libtmux_json":"runtime","Libtmux_unix":"runtime"},"unplaced":[],"diagnostics":{"unmatched":[],"deadBuckets":["options-functions","options-constants","buffers","version","queries-operators","workspace-steps","workspace-targets","workspace-session","workspace-window","workspace-pane","workspace-functions","workspace-constants","requests","requests-server","requests-session","requests-window","requests-pane","requests-client","errors-server","errors-session","errors-window","errors-pane","constants","constants-server","constants-session","constants-window","constants-pane","constants-client","async","mcp","mcp-functions","mcp-constants","testing","internal","internal-commands","internal-options"],"ambiguous":[],"staleUnsettled":[]}} diff --git a/site/src/data/api/ocaml.paths.json b/site/src/data/api/ocaml.paths.json index 0ea6a09a5..381cf07cc 100644 --- a/site/src/data/api/ocaml.paths.json +++ b/site/src/data/api/ocaml.paths.json @@ -1 +1 @@ -{"port":"ocaml","repo":"libtmux/libtmux-ocaml","revision":"427271bfc31ed1c1acd1112d1b2ca7fef59b1af2","paths":[".github/CONTRIBUTING.md",".github/WRITING.md",".github/actions/build-tmux/action.yml",".github/scripts/tmux_build.py",".github/social-preview.png",".github/tmux-releases.toml",".github/workflows/docs.yml",".github/workflows/ocaml.yml",".gitignore",".ocamlformat",".tool-versions","AGENTS.md","CHANGELOG.md","CLAUDE.md","LICENSE","README.md","bench/capture.ml","bench/capture.py","bench/concurrency.ml","bench/concurrency.py","bench/dune","bench/mixed.ml","bench/mixed.py","bench/results/capture-3.3-4x4.json","bench/results/capture-3.3.json","bench/results/capture-3.3a-4x4.json","bench/results/capture-3.3a.json","bench/results/capture-3.4-4x4.json","bench/results/capture-3.4.json","bench/results/capture-3.8-16x16.json","bench/results/capture-3.8-1x1.json","bench/results/capture-3.8-4x4.json","bench/results/capture-3.8-8x8.json","bench/results/capture-3.8.json","bench/results/concurrency-3.3-c8.json","bench/results/concurrency-3.3a-c8.json","bench/results/concurrency-3.4-c8.json","bench/results/concurrency-3.8-c1.json","bench/results/concurrency-3.8-c16.json","bench/results/concurrency-3.8-c64.json","bench/results/concurrency-3.8-c8.json","bench/results/mixed-20261108.json","bench/results/mixed-3.3-current-20261108.json.gz","bench/results/mixed-3.3-qualified-20261108.json.gz","bench/results/mixed-3.3a-current-20261108.json.gz","bench/results/mixed-3.4-crash-analysis-20261108.json","bench/results/mixed-3.4-qualified-20261108.json.gz","bench/results/mixed-3.8-current-20261108.json.gz","bench/results/mixed-3.8-current-interrupted-20261108.json.gz","catalog/fields.json","catalog/formats.json","catalog/operations.json","catalog/options.json","cli/CHANGELOG.md","cli/dune","cli/main.ml","cli/runtime.ml","docs/README.md","docs/api.md","docs/assets/app-icon-1024-dark.png","docs/assets/app-icon-1024-light.png","docs/assets/apple-touch-icon-dark.png","docs/assets/apple-touch-icon-light.png","docs/assets/browserconfig-dark.xml","docs/assets/browserconfig.xml","docs/assets/favicon.ico","docs/assets/logo-1024.png","docs/assets/logo-128.png","docs/assets/logo-144.png","docs/assets/logo-152.png","docs/assets/logo-16.png","docs/assets/logo-167.png","docs/assets/logo-180.png","docs/assets/logo-192.png","docs/assets/logo-24.png","docs/assets/logo-256.png","docs/assets/logo-32.png","docs/assets/logo-384.png","docs/assets/logo-48.png","docs/assets/logo-512.png","docs/assets/logo-64.png","docs/assets/logo-96.png","docs/assets/logo.svg","docs/assets/maskable-192-dark.png","docs/assets/maskable-192-light.png","docs/assets/maskable-512-dark.png","docs/assets/maskable-512-light.png","docs/assets/mstile-150-dark.png","docs/assets/mstile-150-light.png","docs/assets/mstile-310-dark.png","docs/assets/mstile-310-light.png","docs/assets/opengraph-dark.jpg","docs/assets/opengraph-dark.png","docs/assets/opengraph-light.jpg","docs/assets/opengraph-light.png","docs/assets/safari-pinned-tab.svg","docs/assets/site-dark.webmanifest","docs/assets/site.webmanifest","docs/assets/social-square-dark.png","docs/assets/social-square-light.png","docs/assets/source.json","docs/assets/twitter-dark.png","docs/assets/twitter-light.png","docs/benchmarking.md","docs/branding.md","docs/compatibility.md","docs/control.md","docs/fields.md","docs/formats.md","docs/getting-started.md","docs/graph.md","docs/operations.md","docs/options.md","docs/packages.md","docs/queries.md","docs/recovery.md","docs/showcases.md","docs/status.md","docs/streaming.md","docs/testing.md","docs/workspaces.md","dune","dune-project","eio/CHANGELOG.md","eio/dune","eio/generated_operations.ml","eio/index.mld","eio/libtmux_eio.ml","eio/libtmux_eio.mli","examples/dune","examples/native_build.ml","examples/native_capture.ml","examples/native_graph.ml","examples/native_query.ml","examples/native_recovery.ml","examples/native_wait.ml","examples/native_watch.ml","examples/showcase.json","examples/showcase_create_window.ml","examples/showcase_graph.ml","examples/showcase_layout.ml","examples/showcase_move_window.ml","examples/showcase_rename_window.ml","examples/showcase_send_keys.ml","examples/showcase_watch.ml","examples/workspace/project.json","json/CHANGELOG.md","json/document.ml","json/dune","json/index.mld","json/libtmux_json.ml","json/libtmux_json.mli","json/workspace_json.ml","json/workspace_output.ml","lib/CHANGELOG.md","lib/commands.ml","lib/dune","lib/endpoint.ml","lib/error.ml","lib/filter.ml","lib/format_catalog.ml","lib/formats.ml","lib/generated_fields.ml","lib/graph.ml","lib/index.mld","lib/libtmux.ml","lib/libtmux.mli","lib/option_catalog.ml","lib/options.ml","lib/output.ml","lib/planner.ml","lib/protocol.ml","libtmux-eio.opam","libtmux-json.opam","libtmux-unix.opam","libtmux-workspace-cli.opam","libtmux-workspace.opam","libtmux.opam","test/api_export_test.py","test/binding_peer.ml","test/binding_test.py","test/blocking_cancel_peer.ml","test/blocking_peer.ml","test/blocking_test.py","test/bootstrap_peer.ml","test/bootstrap_test.py","test/capture_cancel_peer.ml","test/capture_cancel_test.py","test/capture_peer.ml","test/capture_proxy.py","test/capture_test.py","test/client_operations_peer.ml","test/client_operations_test.py","test/codec_peer.ml","test/conformance/FilterPeer.java","test/conformance/cases.json","test/conformance/dune","test/conformance/filter_peer.ml","test/conformance/run.py","test/core_test.ml","test/diagnostics_expect.ml","test/dune","test/eio_peer.ml","test/eio_test.py","test/environment_peer.ml","test/environment_test.py","test/fixture_test.py","test/installed_consumer.py","test/json_test.ml","test/model_fixture.ml","test/model_test.ml","test/native_suite.py","test/operations_peer.ml","test/operations_test.py","test/options_peer.ml","test/options_test.py","test/pid_race_peer.ml","test/pid_race_test.py","test/pid_race_tmux.py","test/plan_peer.ml","test/plan_test.py","test/protocol_test.ml","test/protocol_test.py","test/query_test.ml","test/read_process_peer.ml","test/read_process_proxy.py","test/read_process_test.py","test/runtime_test.ml","test/showcase_test.py","test/stream_fault_peer.ml","test/stream_fault_test.py","test/streaming_peer.ml","test/streaming_test.py","test/support/readme_walkthrough.py","test/support/tmux_fixture.py","test/terminal_peer.ml","test/terminal_test.py","test/tmux_cache_test.py","test/type_test.py","test/workspace_cli_test.py","test/workspace_docs_test.py","test/workspace_document_test.py","test/workspace_eio_peer.ml","test/workspace_json_test.ml","test/workspace_pane_ready.ml","test/workspace_peer.ml","test/workspace_scenarios.ml","test/workspace_test.ml","test/workspace_test.py","tools/api_doc.ml","tools/api_export.ml","tools/api_modules.json","tools/check.py","tools/docs_snippets.py","tools/dune","tools/export_api.py","tools/generate_fields.py","tools/generate_formats.py","tools/generate_operations.py","tools/generate_options.py","tools/setup_tmux.py","unix/CHANGELOG.md","unix/acquisition.ml","unix/bootstrap.ml","unix/byte_pattern.ml","unix/cancellation.ml","unix/capture_file.ml","unix/command_encoding.ml","unix/connection.ml","unix/dune","unix/engine.ml","unix/environment_io.ml","unix/generated_operations.ml","unix/index.mld","unix/libtmux_unix.ml","unix/libtmux_unix.mli","unix/linux.ml","unix/linux_stubs.c","unix/observation_wait.ml","unix/options_io.ml","unix/read_process.ml","unix/rendered.ml","unix/runtime_io.ml","unix/streaming.ml","unix/terminal.ml","unix/workspace_runner.ml","workspace/CHANGELOG.md","workspace/README.md","workspace/assets/app-icon-1024-dark.png","workspace/assets/app-icon-1024-light.png","workspace/assets/apple-touch-icon-dark.png","workspace/assets/apple-touch-icon-light.png","workspace/assets/browserconfig-dark.xml","workspace/assets/browserconfig.xml","workspace/assets/favicon.ico","workspace/assets/logo-1024.png","workspace/assets/logo-128.png","workspace/assets/logo-144.png","workspace/assets/logo-152.png","workspace/assets/logo-16.png","workspace/assets/logo-167.png","workspace/assets/logo-180.png","workspace/assets/logo-192.png","workspace/assets/logo-24.png","workspace/assets/logo-256.png","workspace/assets/logo-32.png","workspace/assets/logo-384.png","workspace/assets/logo-48.png","workspace/assets/logo-512.png","workspace/assets/logo-64.png","workspace/assets/logo-96.png","workspace/assets/logo.svg","workspace/assets/maskable-192-dark.png","workspace/assets/maskable-192-light.png","workspace/assets/maskable-512-dark.png","workspace/assets/maskable-512-light.png","workspace/assets/mstile-150-dark.png","workspace/assets/mstile-150-light.png","workspace/assets/mstile-310-dark.png","workspace/assets/mstile-310-light.png","workspace/assets/opengraph-dark.jpg","workspace/assets/opengraph-dark.png","workspace/assets/opengraph-light.jpg","workspace/assets/opengraph-light.png","workspace/assets/safari-pinned-tab.svg","workspace/assets/site-dark.webmanifest","workspace/assets/site.webmanifest","workspace/assets/social-square-dark.png","workspace/assets/social-square-light.png","workspace/assets/source.json","workspace/assets/twitter-dark.png","workspace/assets/twitter-light.png","workspace/config.ml","workspace/dune","workspace/execution.ml","workspace/index.mld","workspace/libtmux_workspace.ml","workspace/libtmux_workspace.mli","workspace/plan.ml"]} +{"port":"ocaml","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","paths":[".github/CONTRIBUTING.md",".github/WRITING.md",".github/actions/build-tmux/action.yml",".github/scripts/tmux_build.py",".github/social-preview.png",".github/tmux-releases.toml",".github/workflows/docs.yml",".github/workflows/ocaml.yml",".gitignore",".ocamlformat",".tool-versions","AGENTS.md","CHANGELOG.md","CLAUDE.md","LICENSE","README.md","bench/capture.ml","bench/capture.py","bench/concurrency.ml","bench/concurrency.py","bench/dune","bench/mixed.ml","bench/mixed.py","bench/results/capture-3.3-4x4.json","bench/results/capture-3.3.json","bench/results/capture-3.3a-4x4.json","bench/results/capture-3.3a.json","bench/results/capture-3.4-4x4.json","bench/results/capture-3.4.json","bench/results/capture-3.8-16x16.json","bench/results/capture-3.8-1x1.json","bench/results/capture-3.8-4x4.json","bench/results/capture-3.8-8x8.json","bench/results/capture-3.8.json","bench/results/concurrency-3.3-c8.json","bench/results/concurrency-3.3a-c8.json","bench/results/concurrency-3.4-c8.json","bench/results/concurrency-3.8-c1.json","bench/results/concurrency-3.8-c16.json","bench/results/concurrency-3.8-c64.json","bench/results/concurrency-3.8-c8.json","bench/results/mixed-20261108.json","bench/results/mixed-3.3-current-20261108.json.gz","bench/results/mixed-3.3-qualified-20261108.json.gz","bench/results/mixed-3.3a-current-20261108.json.gz","bench/results/mixed-3.4-crash-analysis-20261108.json","bench/results/mixed-3.4-qualified-20261108.json.gz","bench/results/mixed-3.8-current-20261108.json.gz","bench/results/mixed-3.8-current-interrupted-20261108.json.gz","catalog/fields.json","catalog/formats.json","catalog/operations.json","catalog/options.json","cli/CHANGELOG.md","cli/dune","cli/main.ml","cli/runtime.ml","docs/README.md","docs/api.md","docs/assets/app-icon-1024-dark.png","docs/assets/app-icon-1024-light.png","docs/assets/apple-touch-icon-dark.png","docs/assets/apple-touch-icon-light.png","docs/assets/browserconfig-dark.xml","docs/assets/browserconfig.xml","docs/assets/favicon.ico","docs/assets/logo-1024.png","docs/assets/logo-128.png","docs/assets/logo-144.png","docs/assets/logo-152.png","docs/assets/logo-16.png","docs/assets/logo-167.png","docs/assets/logo-180.png","docs/assets/logo-192.png","docs/assets/logo-24.png","docs/assets/logo-256.png","docs/assets/logo-32.png","docs/assets/logo-384.png","docs/assets/logo-48.png","docs/assets/logo-512.png","docs/assets/logo-64.png","docs/assets/logo-96.png","docs/assets/logo.svg","docs/assets/maskable-192-dark.png","docs/assets/maskable-192-light.png","docs/assets/maskable-512-dark.png","docs/assets/maskable-512-light.png","docs/assets/mstile-150-dark.png","docs/assets/mstile-150-light.png","docs/assets/mstile-310-dark.png","docs/assets/mstile-310-light.png","docs/assets/opengraph-dark.jpg","docs/assets/opengraph-dark.png","docs/assets/opengraph-light.jpg","docs/assets/opengraph-light.png","docs/assets/safari-pinned-tab.svg","docs/assets/site-dark.webmanifest","docs/assets/site.webmanifest","docs/assets/social-square-dark.png","docs/assets/social-square-light.png","docs/assets/source.json","docs/assets/twitter-dark.png","docs/assets/twitter-light.png","docs/benchmarking.md","docs/branding.md","docs/compatibility.md","docs/control.md","docs/dev/adr/0001-native-ocaml-suite.md","docs/dev/adr/README.md","docs/fields.md","docs/formats.md","docs/getting-started.md","docs/graph.md","docs/operations.md","docs/options.md","docs/packages.md","docs/queries.md","docs/query-interchange.md","docs/recovery.md","docs/showcases.md","docs/status.md","docs/streaming.md","docs/testing.md","docs/workspaces.md","dune","dune-project","eio/CHANGELOG.md","eio/README.md","eio/dune","eio/generated_operations.ml","eio/index.mld","eio/libtmux_eio.ml","eio/libtmux_eio.mli","eio/owned_process.ml","eio/runtime.ml","examples/dune","examples/native_build.ml","examples/native_capture.ml","examples/native_graph.ml","examples/native_query.ml","examples/native_recovery.ml","examples/native_wait.ml","examples/native_watch.ml","examples/query_description.ml","examples/query_json.ml","examples/showcase.json","examples/showcase_create_window.ml","examples/showcase_graph.ml","examples/showcase_layout.ml","examples/showcase_move_window.ml","examples/showcase_rename_window.ml","examples/showcase_send_keys.ml","examples/showcase_watch.ml","examples/workspace/project.json","json/CHANGELOG.md","json/README.md","json/document.ml","json/dune","json/index.mld","json/libtmux_json.ml","json/libtmux_json.mli","json/workspace_json.ml","json/workspace_output.ml","lib/CHANGELOG.md","lib/README.md","lib/commands.ml","lib/dune","lib/endpoint.ml","lib/error.ml","lib/filter.ml","lib/format_catalog.ml","lib/formats.ml","lib/generated_fields.ml","lib/graph.ml","lib/index.mld","lib/libtmux.ml","lib/libtmux.mli","lib/option_catalog.ml","lib/options.ml","lib/output.ml","lib/planner.ml","lib/protocol.ml","libtmux-eio.opam","libtmux-json.opam","libtmux-unix.opam","libtmux-workspace-cli.opam","libtmux-workspace.opam","libtmux.opam","test/api_export_test.py","test/binding_peer.ml","test/binding_test.py","test/blocking_cancel_peer.ml","test/blocking_peer.ml","test/blocking_test.py","test/bootstrap_peer.ml","test/bootstrap_test.py","test/capture_cancel_peer.ml","test/capture_cancel_test.py","test/capture_peer.ml","test/capture_proxy.py","test/capture_test.py","test/cleanup_test.ml","test/client_operations_peer.ml","test/client_operations_test.py","test/codec_peer.ml","test/conformance/FilterPeer.java","test/conformance/README.md","test/conformance/artifacts.gradle","test/conformance/cases.json","test/conformance/dune","test/conformance/filter_peer.ml","test/conformance/prepare.py","test/conformance/run.py","test/conformance/runner_test.py","test/core_test.ml","test/diagnostics_expect.ml","test/dune","test/eio_peer.ml","test/eio_test.py","test/environment_peer.ml","test/environment_test.py","test/fixture_test.py","test/installed_consumer.py","test/json_test.ml","test/model_fixture.ml","test/model_test.ml","test/native_suite.py","test/operations_peer.ml","test/operations_test.py","test/options_peer.ml","test/options_test.py","test/ownership_peer.ml","test/pid_race_peer.ml","test/pid_race_test.py","test/pid_race_tmux.py","test/plan_peer.ml","test/plan_test.py","test/protocol_test.ml","test/protocol_test.py","test/query_test.ml","test/read_process_peer.ml","test/read_process_proxy.py","test/read_process_test.py","test/runtime_test.ml","test/showcase_test.py","test/shutdown_peer.ml","test/shutdown_test.py","test/stream_fault_peer.ml","test/stream_fault_test.py","test/streaming_peer.ml","test/streaming_test.py","test/support/readme_walkthrough.py","test/support/tmux_fixture.py","test/terminal_peer.ml","test/terminal_test.py","test/tmux_cache_test.py","test/type_test.py","test/workspace_cli_test.py","test/workspace_docs_test.py","test/workspace_document_test.py","test/workspace_eio_peer.ml","test/workspace_json_test.ml","test/workspace_pane_ready.ml","test/workspace_peer.ml","test/workspace_scenarios.ml","test/workspace_test.ml","test/workspace_test.py","tools/api_doc.ml","tools/api_export.ml","tools/api_modules.json","tools/check.py","tools/docs_snippets.py","tools/dune","tools/export_api.py","tools/generate_fields.py","tools/generate_formats.py","tools/generate_operations.py","tools/generate_options.py","tools/setup_tmux.py","unix/CHANGELOG.md","unix/README.md","unix/acquisition.ml","unix/bootstrap.ml","unix/byte_pattern.ml","unix/cancellation.ml","unix/capture_file.ml","unix/cleanup.ml","unix/cleanup.mli","unix/command_encoding.ml","unix/connection.ml","unix/dune","unix/engine.ml","unix/environment_io.ml","unix/generated_operations.ml","unix/index.mld","unix/libtmux_unix.ml","unix/libtmux_unix.mli","unix/linux.ml","unix/linux_stubs.c","unix/observation_wait.ml","unix/options_io.ml","unix/read_process.ml","unix/rendered.ml","unix/runtime_io.ml","unix/streaming.ml","unix/terminal.ml","unix/workspace_runner.ml","workspace/CHANGELOG.md","workspace/README.md","workspace/assets/app-icon-1024-dark.png","workspace/assets/app-icon-1024-light.png","workspace/assets/apple-touch-icon-dark.png","workspace/assets/apple-touch-icon-light.png","workspace/assets/browserconfig-dark.xml","workspace/assets/browserconfig.xml","workspace/assets/favicon.ico","workspace/assets/logo-1024.png","workspace/assets/logo-128.png","workspace/assets/logo-144.png","workspace/assets/logo-152.png","workspace/assets/logo-16.png","workspace/assets/logo-167.png","workspace/assets/logo-180.png","workspace/assets/logo-192.png","workspace/assets/logo-24.png","workspace/assets/logo-256.png","workspace/assets/logo-32.png","workspace/assets/logo-384.png","workspace/assets/logo-48.png","workspace/assets/logo-512.png","workspace/assets/logo-64.png","workspace/assets/logo-96.png","workspace/assets/logo.svg","workspace/assets/maskable-192-dark.png","workspace/assets/maskable-192-light.png","workspace/assets/maskable-512-dark.png","workspace/assets/maskable-512-light.png","workspace/assets/mstile-150-dark.png","workspace/assets/mstile-150-light.png","workspace/assets/mstile-310-dark.png","workspace/assets/mstile-310-light.png","workspace/assets/opengraph-dark.jpg","workspace/assets/opengraph-dark.png","workspace/assets/opengraph-light.jpg","workspace/assets/opengraph-light.png","workspace/assets/safari-pinned-tab.svg","workspace/assets/site-dark.webmanifest","workspace/assets/site.webmanifest","workspace/assets/social-square-dark.png","workspace/assets/social-square-light.png","workspace/assets/source.json","workspace/assets/twitter-dark.png","workspace/assets/twitter-light.png","workspace/config.ml","workspace/dune","workspace/execution.ml","workspace/index.mld","workspace/libtmux_workspace.ml","workspace/libtmux_workspace.mli","workspace/plan.ml"]} diff --git a/site/src/data/example-sources.json b/site/src/data/example-sources.json index 7b30c5641..25a81eaa0 100644 --- a/site/src/data/example-sources.json +++ b/site/src/data/example-sources.json @@ -151,61 +151,61 @@ }, "ocaml:examples/showcase_create_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", "sha256": "ea2d5ff182bb80b2f8115d4d2c43cf8e32f7989626fa9d6dfda666b76dc8217b", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n" }, "ocaml:examples/showcase_graph.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" }, "ocaml:examples/showcase_layout.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", "sha256": "dca905f7b9b91858ec642fa21c2bd7c544f3a7684223f7fafd5a46f2b997cfd0", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n" }, "ocaml:examples/showcase_move_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", "sha256": "da767e573f7188350a328c78b9417610a2bc62992e1892b501435a6328e21cc5", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n" }, "ocaml:examples/showcase_rename_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", "sha256": "8722c7cd933fa53a18b41b5fb2de7d6a99fcfa1f70e8c14164c85bebf9efc6d5", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n" }, "ocaml:examples/showcase_send_keys.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", "sha256": "680f6772040e12a16b93bd0c6d582d0a5e8f4e70de303372ba924be6e0237f09", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n" }, "ocaml:examples/showcase_watch.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", "sha256": "98fa6d843a98a4d98bbdd398108704805e852a262df0e54b43c08d3f2e299f8f", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n" }, "ocaml:examples/showcase.json": { "repository": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", "sha256": "178ca9f8e940cd9d4d893940089c2e0212e58dfea54b22e2eb7fb44131d5c9ef", "content": "{\n \"schema\": \"libtmux.showcase/1\",\n \"tmux_floor\": \"3.3\",\n \"ci\": {\n \"workflow\": \".github/workflows/ocaml.yml\",\n \"job\": \"native\",\n \"runner\": \"test/showcase_test.py\"\n },\n \"examples\": [\n {\n \"capability\": \"graph\",\n \"title\": \"Navigate the typed object graph\",\n \"file\": \"examples/showcase_graph.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_graph.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"graph: 2 sessions, 2 windows, 3 links, 2 panes\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"watch\",\n \"title\": \"Observe future output with Eio\",\n \"file\": \"examples/showcase_watch.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_watch.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"observed: changed\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"send-keys\",\n \"title\": \"Send literal input and keys\",\n \"file\": \"examples/showcase_send_keys.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_send_keys.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"sent: literal: $HOME; #{pane_id}\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"rename-window\",\n \"title\": \"Rename a window\",\n \"file\": \"examples/showcase_rename_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_rename_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"renamed: editor-main\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"create-window\",\n \"title\": \"Create a window\",\n \"file\": \"examples/showcase_create_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_create_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"created: logs\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"move-window\",\n \"title\": \"Move a window between sessions\",\n \"file\": \"examples/showcase_move_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_move_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"moved: build at 7\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"layout\",\n \"title\": \"Apply a layout\",\n \"file\": \"examples/showcase_layout.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_layout.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"layout: 3 horizontal panes\",\n \"success_exit_code\": 0\n }\n ]\n}\n" }, "ocaml:test/showcase_test.py": { "repository": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", "sha256": "17ff54eaa950f1d9a2d64b7386b456bf2a01b20209c9c7e49bcd0b990c8b4f8a", "content": "\"\"\"Outer: compile whole showcase programs against installed packages and run their entry points.\"\"\"\nimport ctypes\nimport json\nimport os\nfrom pathlib import Path\nimport selectors\nimport shutil\nimport signal\nimport subprocess\nimport sys\nimport tempfile\n\nroot = Path(__file__).resolve().parents[1]\nmanifest = json.loads((root / \"examples/showcase.json\").read_text())\nprograms = {}\nfor entry in manifest[\"examples\"]:\n path = (root / entry[\"file\"]).resolve()\n assert path.parent == root / \"examples\" and path.suffix == \".ml\"\n assert entry[\"whole_file\"] and entry[\"success_exit_code\"] == 0\n executable = str(Path(entry[\"file\"]).with_suffix(\".exe\"))\n assert entry[\"command\"] == [\"opam\", \"exec\", \"--\", \"dune\", \"exec\", executable, \"--\", \"tmux\"], \\\n \"showcase command does not execute its recorded source\"\n assert path.stem not in programs, \"duplicate showcase program\"\n programs[path.stem] = entry\nlibc = ctypes.CDLL(None, use_errno=True)\nif libc.prctl(36, 1, 0, 0, 0):\n raise OSError(ctypes.get_errno(), \"PR_SET_CHILD_SUBREAPER\")\nchild_file = Path(f\"/proc/self/task/{os.getpid()}/children\")\n\n\ndef children():\n return set(map(int, child_file.read_text().split()))\n\n\nwith tempfile.TemporaryDirectory(prefix=\"libtmux-ocaml-showcase-consumer-\") as temporary:\n temporary = Path(temporary)\n prefix = temporary / \"installed\"\n packages = [\"libtmux\", \"libtmux-workspace\", \"libtmux-unix\", \"libtmux-eio\"]\n subprocess.run([\"dune\", \"install\", \"--sections=lib,stublibs\", \"--prefix\", str(prefix), *packages],\n cwd=root, check=True, capture_output=True)\n project = temporary / \"consumer\"\n project.mkdir()\n runtime_temp = temporary / \"runtime-temp\"\n runtime_temp.mkdir(mode=0o700)\n (project / \"dune-project\").write_text(\"(lang dune 3.24)\\n\")\n examples = project / \"examples\"\n examples.mkdir()\n blocking = \" \".join(name for name in programs if name != \"showcase_watch\")\n (examples / \"dune\").write_text(\"(executables (names \" + blocking + \") (modules \" + blocking +\n \") (libraries libtmux libtmux-workspace libtmux-unix unix))\\n\" +\n \"(executable (name showcase_watch) (modules showcase_watch) \" +\n \"(libraries libtmux libtmux-workspace libtmux-unix libtmux-eio eio_main unix))\\n\")\n for name in programs:\n source = root / \"examples\" / f\"{name}.ml\"\n assert source.is_file(), f\"missing standalone showcase: {name}\"\n (examples / source.name).write_bytes(source.read_bytes())\n environment = dict(os.environ, OCAMLPATH=str(prefix / \"lib\"), TMPDIR=str(runtime_temp),\n TMUX=\"/unrelated/server,99999,0\", TMUX_PANE=\"%99999\")\n for key in [\"DUNE_SOURCEROOT\", \"DUNE_WORKSPACE\"]:\n environment.pop(key, None)\n environment[\"OPAMSWITCH\"] = subprocess.check_output(\n [\"opam\", \"switch\", \"show\", \"--safe\"], cwd=root, env=environment, text=True).strip()\n resolved = subprocess.check_output([\"opam\", \"exec\", \"--\", \"ocamlfind\", \"query\", *packages],\n cwd=project, env=environment, text=True).splitlines()\n assert list(map(Path, resolved)) == [prefix / \"lib\" / package for package in packages]\n built = subprocess.run([\"dune\", \"build\", \"--root\", str(project)],\n cwd=project, env=environment, capture_output=True)\n assert built.returncode == 0, (built.stdout + built.stderr).decode(errors=\"replace\")\n for index, binary in enumerate(sys.argv[1:]):\n actual = str(Path(binary).resolve(strict=True))\n fault = temporary / f\"fault-tmux-{index}\"\n audit = temporary / f\"fault-directory-{index}\"\n fault.write_text(\"#!/usr/bin/env python3\\nimport os,sys\\nfrom pathlib import Path\\n\" +\n \"args=sys.argv[1:]\\nif '-C' in args and 'new-session' in args:\\n\" +\n \" p=Path(args[args.index('-f')+1])\\n\" +\n f\" Path({str(audit)!r}).write_text(str(p.parent))\\n\" +\n \" with p.open('a') as output:\\n\" +\n \" output.write('new-session -d -s showcase -- /bin/cat -u\\\\n')\\n\" +\n f\"os.execv({actual!r}, [{actual!r}, *args])\\n\")\n fault.chmod(0o700)\n cases = [(name, entry, actual, False) for name, entry in programs.items()]\n cases.append((\"showcase_create_window\", programs[\"showcase_create_window\"], str(fault), True))\n for name, entry, program, should_fail in cases:\n previous = children()\n command = [*entry[\"command\"][:-1], program]\n process = subprocess.Popen(command,\n cwd=project, env=environment, stdout=subprocess.PIPE,\n stderr=subprocess.PIPE)\n try:\n output, error = process.communicate(timeout=1)\n if should_fail:\n assert process.returncode == 2 and error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() not in output.splitlines()\n directory = Path(audit.read_text())\n else:\n assert process.returncode == 0 and not error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() in output.splitlines(), \\\n (name, \"missing expected outcome\", output)\n socket_line = next(line for line in output.splitlines() if line.startswith(b\"socket=\"))\n directory = Path(os.fsdecode(socket_line[len(b\"socket=\"):])).parent\n assert directory.name.startswith(\"libtmux-ocaml-showcase-\")\n assert not directory.exists(), \"showcase left its private directory\"\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), f\"{name} left owned child {pid} running\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n outcome = \"startup failure\" if should_fail else \"installed entry point\"\n print(f\"PASS {Path(binary).parent.name}: {name}, {outcome} and owned teardown\")\n finally:\n if process.poll() is None:\n process.kill()\n process.wait(timeout=1)\n while children() - previous:\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n try:\n signal.pidfd_send_signal(descriptor, signal.SIGTERM)\n except ProcessLookupError:\n pass\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), \"owned showcase child did not terminate\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n process.stdout.close()\n process.stderr.close()\n for path in runtime_temp.iterdir():\n if path.is_dir():\n shutil.rmtree(path)\n else:\n path.unlink()\n" }, "ocaml/workspace:examples/showcase_graph.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" }, diff --git a/site/src/data/manifest-packages.json b/site/src/data/manifest-packages.json index a43eb6b2d..73cce1b42 100644 --- a/site/src/data/manifest-packages.json +++ b/site/src/data/manifest-packages.json @@ -142,14 +142,14 @@ }, "elixir": { "repo": "libtmux/libtmux-elixir", - "revision": "149565c9f04e043836191c8a7ff32a8ac39572ab", + "revision": "6e6e88e886bdd9267fcd8be66f561dc5d5462476", "distributions": [ { "name": "libtmux", "version": "0.0.1-alpha.1", "manifest": "mix.exs", "repo": "libtmux/libtmux-elixir", - "revision": "149565c9f04e043836191c8a7ff32a8ac39572ab" + "revision": "6e6e88e886bdd9267fcd8be66f561dc5d5462476" } ], "units": [] @@ -738,43 +738,43 @@ }, "ocaml": { "repo": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", "distributions": [ { "name": "libtmux", "manifest": "libtmux.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" }, { "name": "libtmux-eio", "manifest": "libtmux-eio.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" }, { "name": "libtmux-json", "manifest": "libtmux-json.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" }, { "name": "libtmux-unix", "manifest": "libtmux-unix.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" }, { "name": "libtmux-workspace", "manifest": "libtmux-workspace.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" }, { "name": "libtmux-workspace-cli", "manifest": "libtmux-workspace-cli.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" } ], "units": [] diff --git a/site/src/data/mentions.json b/site/src/data/mentions.json index af32def30..b0dcab480 100644 --- a/site/src/data/mentions.json +++ b/site/src/data/mentions.json @@ -8393,6 +8393,41 @@ "title": "OCaml workspace API reference", "section": "ports" }, + { + "port": "ocaml", + "symbol": "Libtmux_json.Decode_error.category.Wrong_type", + "page": "/ocaml/latest/guides/query-interchange/", + "title": "Share a scalar pane query", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_json.Decode_error.t", + "page": "/ocaml/latest/guides/query-interchange/", + "title": "Share a scalar pane query", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_json.Expr", + "page": "/ocaml/latest/guides/query-interchange/", + "title": "Share a scalar pane query", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_json.Expr.decode", + "page": "/ocaml/latest/guides/query-interchange/", + "title": "Share a scalar pane query", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_json.Expr.of_string", + "page": "/ocaml/latest/guides/query-interchange/", + "title": "Share a scalar pane query", + "section": "guides" + }, { "port": "ocaml", "symbol": "Libtmux_json.Workspace.of_string", @@ -8421,6 +8456,41 @@ "title": "Submit actions and retain their outcomes", "section": "guides" }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Cleanup.create", + "page": "/ocaml/latest/guides/control/", + "title": "Submit actions and retain their outcomes", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Cleanup.inspect", + "page": "/ocaml/latest/guides/control/", + "title": "Submit actions and retain their outcomes", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Cleanup.phase.Open_pidfd", + "page": "/ocaml/latest/guides/control/", + "title": "Submit actions and retain their outcomes", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Cleanup.phase.Unreaped_child", + "page": "/ocaml/latest/guides/compatibility/", + "title": "Compatibility", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_unix.Cleanup.phase.Unreaped_child", + "page": "/ocaml/latest/guides/control/", + "title": "Submit actions and retain their outcomes", + "section": "guides" + }, { "port": "ocaml", "symbol": "Libtmux_unix.Client", @@ -8540,6 +8610,13 @@ "title": "Compatibility", "section": "guides" }, + { + "port": "ocaml", + "symbol": "Libtmux.Model.pane", + "page": "/ocaml/latest/guides/query-interchange/", + "title": "Share a scalar pane query", + "section": "guides" + }, { "port": "ocaml", "symbol": "Libtmux.Output.event.End", diff --git a/site/src/data/port-guides/ocaml.json b/site/src/data/port-guides/ocaml.json index f2d7afe3b..959bcd0ce 100644 --- a/site/src/data/port-guides/ocaml.json +++ b/site/src/data/port-guides/ocaml.json @@ -1,7 +1,7 @@ { "source": { "repository": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2" + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" }, "guides": [ { @@ -10,23 +10,27 @@ }, { "path": "docs/graph.md", - "content": "# Sessions, window links and panes\n\nA snapshot contains sessions, global windows, session-specific window links,\npanes and captured clients. Entity values are abstract immutable observations.\nThey remain readable after their client closes.\n\n```text\nSession ── Window_link ── Window ── Pane\n index │\n another link can share this window\n```\n\nA window can be linked to multiple sessions, or linked more than once within\none session. `Session.window_links` retains each context and index.\n`Session.windows` returns distinct global windows in first-link order.\n`Window.panes` contains that global window's captured panes. Local traversal\nperforms no I/O, lazy refresh or per-object subprocess calls. Captured client\nrows and attached-client counts include the library's control connection when\nit is present.\n\nThe [graph program](../examples/native_graph.ml) deliberately walks links. To\nsee the same window in two sessions, run the [README setup](../README.md#read-a-real-tmux-graph),\nthen create another session:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n new-session \\\n -d \\\n -s linked \\\n -- \"exec cat\"\n```\n\nLink the demo's window at index 7 in the other session:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n link-window \\\n -d \\\n -s @0 \\\n -t linked:7\n```\n\n```console\n$ opam exec -- dune exec examples/native_graph.exe -- \\\n tmux \"$LIBTMUX_DEMO_DIR/server\"\n```\n\nThe same window ID and pane ID appear under both sessions, at their respective\nlink indexes. The installed-example check asserts both appearances. Remove\nonly the additional session when finished:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n kill-session -t '=linked'\n```\n\nAn entity ID is scoped to a connection source. `same_entity` compares that\nidentity; `same_observation` also distinguishes captures. Use those operations\nor explicit `Id.equal`, rather than polymorphic equality over observations.\nA link context is an observed session/index/window tuple, not a stable link\nincarnation across unlinking or reindexing.\n\nCapture provenance records an acquisition interval. Several tmux commands do\nnot form an atomic server transaction. Disappearing or conflicting objects\nproduce a capture error rather than a fabricated empty relationship.\n\n[Queries](queries.md) · [Recovery](control.md) · [API](api.md)\n" + "content": "# Sessions, window links and panes\n\nA snapshot contains sessions, global windows, session-specific window links,\npanes and captured clients. Entity values are abstract immutable observations.\nThey remain readable after their client closes.\n\n```text\nSession ── Window_link ── Window ── Pane\n index │\n another link can share this window\n```\n\nA window can be linked to multiple sessions, or linked more than once within\none session. `Session.window_links` retains each context and index.\n`Session.windows` returns distinct global windows in first-link order.\n`Window.panes` contains that global window's captured panes. Local traversal\nperforms no I/O, lazy refresh or per-object subprocess calls. Captured client\nrows and attached-client counts include the library's control connection when\nit is present.\n\nThe [graph program](../examples/native_graph.ml) deliberately walks links. To\nsee the same window in two sessions, run the [README setup](../README.md#read-a-real-tmux-graph),\nthen create another session:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n new-session \\\n -d \\\n -s linked \\\n -- \"exec cat\"\n```\n\nLink the demo's window at index 7 in the other session:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n link-window \\\n -d \\\n -s @0 \\\n -t linked:7\n```\n\n```console\n$ opam exec -- dune exec examples/native_graph.exe -- \\\n tmux \"$LIBTMUX_DEMO_DIR/server\"\n```\n\nThe same window ID and pane ID appear under both sessions, at their respective\nlink indexes. The installed-example check asserts both appearances. Remove\nonly the additional session when finished:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n kill-session -t '=linked'\n```\n\nAn entity ID is scoped to a connection source. `same_entity` requires the same\nbound source generation as well as the same entity ID; separate connections\ncompare unequal even when they observe the same daemon. `same_observation`\nalso distinguishes captures. Use those operations or explicit `Id.equal`,\nrather than polymorphic equality over observations. A valid target does not\nmake captured names, geometry or membership current.\nA link context is an observed session/index/window tuple, not a stable link\nincarnation across unlinking or reindexing.\n\nCapture provenance records an acquisition interval. Several tmux commands do\nnot form an atomic server transaction. Disappearing or conflicting objects\nproduce a capture error rather than a fabricated empty relationship.\n\nEach entity retains the complete snapshot graph so its relationships remain\navailable. Retaining one pane from every refresh therefore retains every one\nof those captures. Keep scalar summaries when navigation is unnecessary.\n`Pane.target` omits the graph but remains bound to its original connection\ngeneration; it is not a durable target for a future connection. Relationship\ntraversal can allocate wrapper arrays even when a query stops testing early.\n\n[Queries](queries.md) · [Recovery](control.md) · [API](api.md)\n" }, { "path": "docs/queries.md", - "content": "# Query captured data\n\nCapture once, then use standard collections. The [complete program](../examples/native_query.ml)\ncloses its blocking client before evaluating any of the functions below.\nFollow the [README setup](../README.md#read-a-real-tmux-graph) first.\n\n## Use a native predicate\n\n\n\n```ocaml\nlet active_ids snapshot =\n Snapshot.panes snapshot |> Iarray.to_seq |> Seq.filter Pane.active\n |> Seq.map Pane.id |> List.of_seq\n```\n\n`Snapshot.panes` returns an immutable array of captured panes. Converting it to\na sequence does not acquire anything. Repeated traversal sees captured values;\nstateful callbacks supplied by an application can still behave differently.\n\n## Describe a typed query\n\n\n\n```ocaml\nlet roomy_terminals : Pane.t Expr.t =\n Expr.all\n [\n Expr.Bool.is_true Pane.Fields.active;\n Expr.Text.is_in Pane.Fields.current_command\n [ \"cat\"; \"bash\"; \"zsh\"; \"nvim\" ];\n Expr.Int.ge Pane.Fields.width 80;\n ]\n\nlet roomy_ids snapshot =\n Snapshot.panes snapshot |> Iarray.to_seq\n |> Query.matching roomy_terminals\n |> Seq.map Pane.id |> List.of_seq\n```\n\n`Expr.compile` returns an ordinary predicate. `Query.matching` compiles once\nwhen constructed and preserves order and multiplicity. Field descriptors carry\nboth entity and value types, so invalid entity/operator combinations fail in\nthe compiler. Boolean `Expr.all []` is true and `Expr.any []` is false.\n\n## Follow relationships without fetching\n\n\n\n```ocaml\nlet sessions_with_room snapshot =\n let expression =\n Expr.Rel.any Session.Relations.windows\n (Expr.Rel.any Window.Relations.panes roomy_terminals)\n in\n Snapshot.sessions snapshot |> Iarray.to_seq |> Query.matching expression\n |> Seq.map Session.name |> List.of_seq\n```\n\nRelationships traverse the complete captured graph. `Expr.Rel.any` over no\nchildren is false; `all` and `none` over no children are true. Put conditions\ninside one `any` when the same child must satisfy both. Two independent\nexistentials can match different children.\n\n## Establish cardinality before acting\n\n`Query.exactly_one` returns `No_match` or `Multiple_matches {at_least=2}` instead\nof choosing the first element. It stops once it finds a second match; proving\nuniqueness exhausts the remaining finite sequence. `one_or_none` returns an\noption while retaining an ambiguity error. Duplicate entries count separately.\n\nSelect first, inspect the result, then submit a mutation. Selection does not\nlock tmux; a target can disappear between observation and action. The\n[control guide](control.md) explains that failure boundary.\n\n## Decode portable query data explicitly\n\n`Libtmux_json.Expr.of_string Model.pane` validates the shared scalar pane\nsubset of [`libtmux.filter/1`](../json/index.mld). It rejects duplicate/unknown\nkeys, wrong operand types, invalid UTF-8, oversized/deep documents and Java\nregex. Native closures stay in `Seq.filter`; they have no portable wire identity.\n\n`Libtmux.Plan.panes` compiles a source filter and retains the residual expression\nwithout I/O. Inspect `source_filter` and use `Require_exact` to reject unsupported\nlowering. Current client capture operations acquire the complete graph; they do\nnot execute these plans. The planner is a separate seam for acquisition adapters.\nConjunctions, disjunctions, negation and relationships require different lowering\nrules; local sequence processing never issues a tmux query implicitly.\n\nThe [native reference](../lib/index.mld) executes a pure planning example with MDX.\n\n[Field reference](fields.md) · [API](api.md) · [Guide](README.md)\n" + "content": "# Query captured data\n\nCapture once, then use standard collections. The [complete program](../examples/native_query.ml)\ncloses its blocking client before evaluating any of the functions below.\nFollow the [README setup](../README.md#read-a-real-tmux-graph) first.\n\n## Use a native predicate\n\n\n\n```ocaml\nlet active_ids snapshot =\n Snapshot.panes snapshot |> Iarray.to_seq |> Seq.filter Pane.active\n |> Seq.map Pane.id |> List.of_seq\n```\n\n`Snapshot.panes` returns an immutable array of captured panes. Converting it to\na sequence does not acquire anything. Repeated traversal sees captured values;\nstateful callbacks supplied by an application can still behave differently.\n\n## Describe a typed query\n\n\n\n```ocaml\nlet roomy_terminals : Pane.t Expr.t =\n Expr.all\n [\n Expr.Bool.is_true Pane.Fields.active;\n Expr.Text.is_in Pane.Fields.current_command\n [ \"cat\"; \"bash\"; \"zsh\"; \"nvim\" ];\n Expr.Int.ge Pane.Fields.width 80;\n ]\n\nlet roomy_ids snapshot =\n Snapshot.panes snapshot |> Iarray.to_seq\n |> Query.matching roomy_terminals\n |> Seq.map Pane.id |> List.of_seq\n```\n\n`Expr.compile` returns an ordinary predicate. `Query.matching` compiles once\nwhen constructed and preserves order and multiplicity. Field descriptors carry\nboth entity and value types, so invalid entity/operator combinations fail in\nthe compiler. Boolean `Expr.all []` is true and `Expr.any []` is false.\n\n## Follow relationships without fetching\n\n\n\n```ocaml\nlet sessions_with_room snapshot =\n let expression =\n Expr.Rel.any Session.Relations.windows\n (Expr.Rel.any Window.Relations.panes roomy_terminals)\n in\n Snapshot.sessions snapshot |> Iarray.to_seq |> Query.matching expression\n |> Seq.map Session.name |> List.of_seq\n```\n\nRelationships traverse the complete captured graph. `Expr.Rel.any` over no\nchildren is false; `all` and `none` over no children are true. Put conditions\ninside one `any` when the same child must satisfy both. Two independent\nexistentials can match different children.\n\n## Establish cardinality before acting\n\n`Query.exactly_one` returns `No_match` or `Multiple_matches {at_least=2}` instead\nof choosing the first element. It stops once it finds a second match; proving\nuniqueness exhausts the remaining finite sequence. `one_or_none` returns an\noption while retaining an ambiguity error. Duplicate entries count separately.\n\nSelect first, inspect the result, then submit a mutation. Selection does not\nlock tmux; a target can disappear between observation and action. The\n[control guide](control.md) explains that failure boundary.\n\n## Decode portable query data explicitly\n\n`Libtmux_json.Expr.of_string Model.pane` validates the shared scalar pane\nsubset of [`libtmux.filter/1`](query-interchange.md). It rejects duplicate/unknown\nkeys, wrong operand types, invalid UTF-8, oversized/deep documents and Java\nregex. Native closures stay in `Seq.filter`; they have no portable wire identity.\n\n`Libtmux.Plan.panes` compiles a source filter and retains the residual expression\nwithout I/O. Inspect `source_filter` and use `Require_exact` to reject unsupported\nlowering. Current client capture operations acquire the complete graph; they do\nnot execute these plans. The planner is a separate seam for acquisition adapters.\nConjunctions, disjunctions, negation and relationships require different lowering\nrules; local sequence processing never issues a tmux query implicitly.\n\nThe [native reference](../lib/index.mld) executes a pure planning example with MDX.\nThe [architecture capability table](dev/adr/0001-native-ocaml-suite.md#compose-ordinary-predicates-with-typed-query-data)\ndistinguishes observation accessors, native expressions, JSON, planning and\nclient acquisition. An available accessor or format name need not be a\nportable expression field.\n\n[Field reference](fields.md) · [API](api.md) · [Guide](README.md)\n" + }, + { + "path": "docs/query-interchange.md", + "content": "# Share a scalar pane query\n\n`Libtmux_json.Expr` reads and writes the following subset of\n[`libtmux.filter/1`][java-wire]. Use `Model.pane` as the model witness. This\ndocument defines the OCaml interoperability boundary; the\n[query guide](queries.md) shows local evaluation and the\n[complete JSON program](../examples/query_json.ml) demonstrates decoding,\nencoding and structured errors.\n\n## Document and nodes\n\nA document has exactly `\"schema\"`, `\"model\"` and `\"expr\"` properties. The supported\nvalues are `\"libtmux.filter/1\"` and `\"pane\"`. An expression is one of these nodes:\n\n| `\"node\"` | Other required properties | Meaning |\n| --- | --- | --- |\n| `\"compare\"` | `\"field\"`, `\"op\"`, `\"value\"` | Compare one canonical scalar field |\n| `\"and\"` | `\"operands\"`: expression array | Every operand matches; empty is true |\n| `\"or\"` | `\"operands\"`: expression array | Any operand matches; empty is false |\n| `\"not\"` | `\"operand\"`: expression | Negate one expression |\n\nProperty order is irrelevant. Duplicate, missing and unknown properties are\nerrors. Encoders preserve query meaning, not the original spelling: a\n`\"not_equals\"` comparison can encode as `\"not\"` around `\"equals\"`.\n\n## Fields and operators\n\nField names are case-sensitive canonical identities, not arbitrary accessors.\n\n| Value type | Fields | Operators |\n| --- | --- | --- |\n| String | `\"pane_id\"`, `\"pane_current_command\"`, `\"pane_title\"`, `\"pane_current_path\"` | `\"equals\"`, `\"not_equals\"`, `\"starts_with\"`, `\"ends_with\"`, `\"contains\"`, `\"in\"` |\n| Integer | `\"pane_index\"`, `\"pane_width\"`, `\"pane_height\"`, `\"pane_left\"`, `\"pane_top\"` | `\"equals\"`, `\"not_equals\"`, `\"less_than\"`, `\"at_most\"`, `\"greater_than\"`, `\"at_least\"` |\n| Boolean | `\"pane_active\"` | `\"equals\"`, `\"not_equals\"` |\n\n`\"value\"` has the field's JSON type. String `\"in\"` takes an array of strings and\nmatches equality with any member; an empty array matches nothing. Integers must\nbe integral JSON numbers in the signed 32-bit range, from −2,147,483,648 through\n2,147,483,647. Floating-point values are rejected.\n\nText is valid UTF-8 with exact, case-sensitive matching. The codec performs no\nnormalization or case folding. Native OCaml predicates can process arbitrary\nbytes, but invalid UTF-8 has no representation in this query schema.\n\nRelationships, other models, native extension fields such as `\"pane_dead\"`,\noptional fields such as `\"pane_pid\"`, integer membership and Java's `\"matches\"`\nregex operator are outside this subset. Use native expressions or ordinary\n`Seq.filter` for local behavior outside it.\n\n## Bounds and errors\n\nBoth decoding and encoding enforce these limits:\n\n| Resource | Limit |\n| --- | --- |\n| JSON document | 65,536 bytes |\n| JSON nesting | 32 levels |\n| Expression nodes | 1,024 |\n| String membership values | 256 |\n\n`Libtmux_json.Expr.of_string` checks input bytes and nesting before parsing.\n`Libtmux_json.Expr.decode` validates\nthe supplied Yojson tree, including duplicate properties and the size of its\ncompact JSON representation. Encoding applies the same subset and bounds.\n\nFailures return `Decode_error.t`: a JSON pointer, category and message. For\nexample, a string supplied to `\"pane_width\"` reports `Wrong_type` at\n`/expr/value`. The decoder returns the first detected error, not an aggregate\nvalidation report. It does not include the whole input in the error.\n\n## Reproduce the compatibility check\n\nThe [conformance procedure](../test/conformance/README.md) pins the Java source,\nverifies prepared artifacts, rebuilds the OCaml peer and exchanges queries in\nboth directions over the same fixture. The current 66 cases establish the\ntested scalar behavior. They do not imply support for the rest of Java's query\nlanguage or a Java runtime dependency for OCaml users.\n\n[java-wire]: https://github.com/libtmux/libtmux-java/blob/e8a39689d8d60968ac978a1dd2a89c6112333896/docs/guide/filtering.md\n" }, { "path": "docs/control.md", - "content": "# Submit actions and retain their outcomes\n\nObservations are local values. Client calls perform explicit I/O, and mutations\nuse targets bound to the source that produced them. Closing a client releases\nits own transports. tmux then applies its configured lifetime: for example,\n[the standalone programs](showcases.md) enable `exit-unattached` on their\nprivate daemons so they exit after their final client detaches.\n\nThe [layout program](../examples/native_build.ml) creates a session, splits its\nfirst pane and adds a logs window. It passes argv through `Spawn.Exec`, a working\ndirectory and an environment value. `Spawn.Shell` explicitly requests shell\ncode. `send_text` is literal input; `send_keys [Key.Enter]` is a separate action.\n\nA creation response returns the reported session, window and pane IDs without\nan extra graph capture. Only the resource requested by that command is newly\ncreated. A split's returned session and window are pre-existing containers.\n\n## Choose a backend\n\nUse `Libtmux_unix.Client` in a blocking script. Use `Libtmux_eio.Client` inside\nan application-owned Eio switch, supplying the process manager and monotonic\nclock. Clients are affine to their connecting domain. Immutable captured values\ncan be read from other domains; live client handles cannot move between them.\n\nThe Eio backend has client-owned workers for command draining and stream\nreading. A cancelled waiter does not abandon a written request. Local scratch\nfilesystem work runs on a system thread. The blocking backend supports scoped\ncancellation tokens signalled from another domain or systhread.\n\n| Recovery concern | Eio | Blocking Unix |\n| --- | --- | --- |\n| Cancel one caller | Eio cancellation scope around `Client.await` | `Cancellation.with_` token passed to `Client.await` |\n| Return after cancellation | The waiter raises while a client-owned fiber drains admitted work | The call drains before raising; one exchange timeout after detection bounds transport work |\n| Inspect an outcome | `Operation.inspect`, on the connecting domain | `Operation.inspect`, on the connecting domain |\n| Release resources | Close the client inside its application-owned switch | Close the client after the call returns |\n\nThe blocking bound covers transport draining. Local scratch I/O must still\nfinish before the call returns.\n\nThe [complete recovery example](recovery.md) cancels an active waiter, awaits\nthe same retained operation and checks server state before its next mutation.\n\n## Distinguish acknowledgement from completion\n\n`submit` validates and reserves capacity without writing. Retain the operation\nhandle before awaiting it. `Operation.inspect` reads its state without I/O:\nqueued, not started, written, acknowledged, finished, or outcome unknown.\n\nA reply can acknowledge a command while hooks or its completion marker remain\noutstanding. Sending keys confirms tmux accepted input; it does not prove a\nterminal program consumed it or completed work. A detach request does not prove\nthe peer exited. Use the relevant postcondition, rendered wait or external exit\nsignal for the task.\n\nExpected failures use `result` and `Error.t`. Backend cancellation propagates\nas cancellation. An uncertain result retains reported creation IDs and unresolved\nowned buffers; it never becomes an instruction to retry the mutation.\n\n## Recover deliberately\n\nA replacement daemon retires the connection generation. Reconnect explicitly,\ncapture again and establish cardinality before choosing a fresh target.\nOld captured values remain readable, but their targets cannot silently move to\nthe new server.\n\nPartial effects can remain after a later hook or command failure. Inspect the\nretained receipt and current server state. Compensate only resources whose\ncreation is proven. A snapshot is an observation over an interval, and a\nselection followed by mutation is not an atomic transaction.\n\nUse the [recovery walkthrough](recovery.md) to follow this sequence through a\ncomplete installed program, including cleanup of its own pane.\n\nSee [streaming](streaming.md) for Data/Gap/End and bounded queues, and\n[compatibility](compatibility.md) for hook, PID-namespace and scratch-file\nconstraints. [Guide](README.md) · [API](api.md)\n" + "content": "# Submit actions and retain their outcomes\n\nObservations are local values. Client calls perform explicit I/O, and mutations\nuse targets bound to the source that produced them. Closing a client releases\nits own transports. tmux then applies its configured lifetime: for example,\n[the standalone programs](showcases.md) enable `exit-unattached` on their\nprivate daemons so they exit after their final client detaches.\n\nThe [layout program](../examples/native_build.ml) creates a session, splits its\nfirst pane and adds a logs window. It passes argv through `Spawn.Exec`, a working\ndirectory and an environment value. `Spawn.Shell` explicitly requests shell\ncode. `send_text` is literal input; `send_keys [Key.Enter]` is a separate action.\n\nA creation response returns the reported session, window and pane IDs without\nan extra graph capture. Only the resource requested by that command is newly\ncreated. A split's returned session and window are pre-existing containers.\n\n## Choose a backend\n\nUse `Libtmux_unix.Client` in a blocking script. Use `Libtmux_eio.Client` inside\nan application-owned Eio switch, supplying the process manager and monotonic\nclock. Clients are affine to their connecting domain. Immutable captured values\ncan be read from other domains; live client handles cannot move between them.\n\nThe Eio backend has client-owned workers for command draining and stream\nreading. A cancelled waiter does not abandon a written request. Local scratch\nfilesystem work runs on a system thread. The blocking backend supports scoped\ncancellation tokens signalled from another domain or systhread.\n\n| Recovery concern | Eio | Blocking Unix |\n| --- | --- | --- |\n| Cancel one caller | Eio cancellation scope around `Client.await` | `Cancellation.with_` token passed to `Client.await` |\n| Return after cancellation | The waiter raises while a client-owned fiber drains admitted work | The call drains before raising; one exchange timeout after detection bounds transport work |\n| Inspect an outcome | `Operation.inspect`, on the connecting domain | `Operation.inspect`, on the connecting domain |\n| Release resources | Close the client inside its application-owned switch | Close the client after the call returns |\n\nThe blocking bound covers transport draining. Local scratch I/O must still\nfinish before the call returns.\n\nEio `Client.close` rejects new command and subscription admission as soon as\nclosing starts. Concurrent closes wait for the same teardown result. A later\nclose retains an earlier teardown failure; the closed state alone does not\nprove resources were released. Inspect the client's `Cleanup` report for\nsecondary failures. Internal connection teardown also retains one completion,\nso a concurrent failure path cannot skip cleanup already in progress.\n\nThe [complete recovery example](recovery.md) cancels an active waiter, awaits\nthe same retained operation and checks server state before its next mutation.\n\n## Distinguish acknowledgement from completion\n\n`submit` validates and reserves capacity without writing. Retain the operation\nhandle before awaiting it. `Operation.inspect` reads its state without I/O:\nqueued, not started, written, acknowledged, finished, or outcome unknown.\n\nA reply can acknowledge a command while hooks or its completion marker remain\noutstanding. Sending keys confirms tmux accepted input; it does not prove a\nterminal program consumed it or completed work. A detach request does not prove\nthe peer exited. Use the relevant postcondition, rendered wait or external exit\nsignal for the task.\n\nExpected failures use `result` and `Error.t`. Backend cancellation propagates\nas cancellation. An uncertain result retains reported creation IDs and unresolved\nowned buffers; it never becomes an instruction to retry the mutation.\n\n`Client.cleanup` retains process and descriptor cleanup diagnostics after\nclosure. Supply a `Cleanup.create ()` report through `~cleanup` before connecting\nwhen diagnostics must survive failed setup or cancellation. The same option is\navailable on terminal attachment and workspace bootstrap. `Cleanup.inspect`\nreturns the cleanup phase, typed library error when available, original\nexception and backtrace without I/O. The report retains at most 64 entries and\ncounts further issues; exception payloads can still retain substantial memory.\nReports and their diagnostics belong to the creating domain.\n\nCleanup attempts independent releases even when one fails. A primary exception\nkeeps its identity and backtrace; secondary failures go to the report. If there\nis no primary failure, the first unrecovered cleanup failure is returned or\nraised normally. A recovered fallback can still leave a diagnostic after a\nsuccessful return: failure to open a child pidfd skips TERM grace, forces\ntermination and reaps, while retaining the `Open_pidfd` issue.\nFailed forced termination produces an `Unreaped_child` issue when exit cannot\nbe established without blocking. That issue does not prove resource release.\nThe [recovery example](recovery.md) keeps its report outside connection lifetime.\n\n## Recover deliberately\n\nA replacement daemon retires the connection generation. Reconnect explicitly,\ncapture again and establish cardinality before choosing a fresh target.\nOld captured values remain readable, but their targets cannot silently move to\nthe new server.\n\nPartial effects can remain after a later hook or command failure. Inspect the\nretained receipt and current server state. Compensate only resources whose\ncreation is proven. A snapshot is an observation over an interval, and a\nselection followed by mutation is not an atomic transaction.\n\nUse the [recovery walkthrough](recovery.md) to follow this sequence through a\ncomplete installed program, including cleanup of its own pane.\n\nSee [streaming](streaming.md) for Data/Gap/End and bounded queues, and\n[compatibility](compatibility.md) for hook, PID-namespace and scratch-file\nconstraints. [Guide](README.md) · [API](api.md)\n" }, { "path": "docs/recovery.md", - "content": "# Recover an operation after cancelling its waiter\n\nRetain the operation handle before awaiting it. Cancelling one Eio waiter leaves\nadmitted work under the client's ownership. Inspect that handle, await its\noutcome and check the relevant server state before choosing another mutation.\n\nThis program uses a tmux `wait-for` barrier to keep an operation pending while\nits waiter is cancelled. It then signals the barrier once and awaits the same\nhandle. A fresh capture checks the window's name before renaming it. The barrier\ncoordinates this example; it does not establish completion of a terminal\nprogram. [Control](control.md) compares Eio and blocking cancellation timing.\n\n## Run the complete program\n\nComplete the [source installation](getting-started.md) and run from the cloned\nrepository. Start an empty private server:\n\n```console\n$ export LIBTMUX_RECOVERY_DIR=\"$(mktemp -d -t libtmux-ocaml-recovery.XXXXXX)\"\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_RECOVERY_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s recovery-demo \\\n -- \"exec cat\"\n```\n\nThe fresh server's session ID is `$0`; quote it to preserve the literal ID:\n\n```console\n$ opam exec -- dune exec examples/native_recovery.exe -- \\\n tmux \"$LIBTMUX_RECOVERY_DIR/server\" '$0'\n```\n\nExpected output is `waiter=cancelled; operation=retained`, followed by\n`operation=finished; postcondition=recovery-complete`. The program creates a\nwindow and removes its own pane afterward. It preserves the seed session and\nother panes, and closes its client on success or failure.\n\nRemove the private seed session and directory:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_RECOVERY_DIR/server\" \\\n kill-session \\\n -t '=recovery-demo'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_RECOVERY_DIR/server\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_RECOVERY_DIR\"\n```\n\n## Inspect before acting\n\nThe [complete source](../examples/native_recovery.ml) uses installed public\nlibraries. Its Eio cancellation scope covers only the waiter. Client ownership\nand cleanup remain outside that scope.\n\n\n\n```ocaml\nopen Libtmux\nmodule Client = Libtmux_eio.Client\nmodule Operation = Libtmux_eio.Operation\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet protect ~finally use =\n match use () with\n | value ->\n finally ();\n value\n | exception error ->\n let backtrace = Printexc.get_raw_backtrace () in\n (try finally ()\n with cleanup ->\n Format.eprintf \"cleanup failed: %s@.\" (Printexc.to_string cleanup));\n Printexc.raise_with_backtrace error backtrace\n\nlet cancel_waiter operation =\n let entered, enter = Eio.Promise.create () in\n let context = ref None in\n Eio.Fiber.pair\n (fun () ->\n try\n Eio.Cancel.sub (fun current ->\n context := Some current;\n Eio.Promise.resolve enter ();\n ignore (get (Client.await operation));\n failwith \"wait completed before its release signal\")\n with Eio.Cancel.Cancelled Exit -> ())\n (fun () ->\n Eio.Promise.await entered;\n Eio.Cancel.cancel (Option.get !context) Exit)\n |> ignore\n\nlet recover client session =\n let created =\n get\n (Client.create_window client session ~name:\"recovery-pending\"\n ~spawn:(Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\" ] })))\n in\n let channel =\n \"libtmux-recovery-\"\n ^ Generation.to_string (Source.generation (Client.source client))\n in\n let pending = ref None and release_attempted = ref false in\n let release () =\n if not !release_attempted then (\n release_attempted := true;\n get (Client.signal client channel))\n in\n protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () ->\n protect\n ~finally:(fun () -> get (Client.kill_pane client created.pane))\n (fun () ->\n match !pending with\n | None -> ()\n | Some operation -> (\n match get (Operation.inspect operation) with\n | Operation.Queued -> get (Operation.cancel operation)\n | Operation.Written | Operation.Acknowledged ->\n release ();\n get (Client.await operation)\n | Operation.Not_started | Operation.Finished _\n | Operation.Outcome_unknown _ ->\n ()))))\n (fun () ->\n let operation =\n get (Client.submit client (Operations.wait_for channel))\n in\n pending := Some operation;\n ignore (get (Operation.await_stage operation `Acknowledged));\n cancel_waiter operation;\n (match get (Operation.inspect operation) with\n | Operation.Written | Operation.Acknowledged -> ()\n | Operation.Outcome_unknown receipt ->\n failwith\n (Format.asprintf \"outcome unknown: %a\" Error.pp receipt.cause)\n | _ -> failwith \"expected a retained in-flight operation\");\n print_endline \"waiter=cancelled; operation=retained\";\n release ();\n get (Client.await operation);\n (match get (Operation.inspect operation) with\n | Operation.Finished (Ok ()) -> ()\n | _ -> failwith \"retained operation did not finish\");\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n if Window.name window <> \"recovery-pending\" then\n failwith \"postcondition changed; leave the next action to the caller\";\n get\n (Client.rename_window client (Window.target window)\n ~name:\"recovery-complete\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id window)\n |> Option.get\n in\n assert (Window.name after = \"recovery-complete\");\n Printf.printf \"operation=finished; postcondition=%s\\n\" (Window.name after))\n\nlet () =\n if Array.length Sys.argv <> 4 then (\n prerr_endline \"usage: native_recovery TMUX_BINARY SOCKET_PATH SESSION_ID\";\n exit 2);\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let client =\n get\n (Client.connect ~sw ~binary:Sys.argv.(1)\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Endpoint.socket_path Sys.argv.(2)))\n in\n protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let id = get (Session.Id.of_string Sys.argv.(3)) in\n let session =\n Snapshot.find_session (get (Client.capture client)) id |> Option.get\n in\n recover client (Session.target session))\n```\n\nThe release attempt is recorded before its I/O so cleanup cannot retry an\nuncertain signal. The finally block cancels queued work, releases and drains a\nlive barrier, and removes only the pane whose creation was reported. Existing\npanes remain outside that cleanup. A primary failure keeps its original\nexception and backtrace; a later cleanup failure is reported separately. Both clients and operations stay on the\nconnecting domain.\n\n## Interpret a retained state\n\n[`Libtmux_eio.Operation.inspect`](../eio/libtmux_eio.mli) performs no I/O and\nremains readable after client closure. A state describes this operation; it\ndoes not prove a terminal program consumed input or exited.\n\n| State | Next decision |\n| --- | --- |\n| `Queued` | Cancel before writing, or continue awaiting the same handle. |\n| `Not_started` | The operation made no admitted effect; establish fresh preconditions before a new action. |\n| `Written` or `Acknowledged` | Keep the handle. The client still owns completion; cancelling another waiter does not undo the write. |\n| `Finished (Ok value)` | Use the result and check the task's relevant postcondition. |\n| `Finished (Error error)` | Examine the error and current state; a later command or hook failure can follow an earlier effect. |\n| `Outcome_unknown receipt` | Preserve the cause and reported creations. Reacquire observations explicitly and resolve uncertainty before another mutation. |\n\nThe example exercises active-waiter cancellation and retained completion. Its\nunknown-outcome branch reports the cause and stops the next action. Transport\nloss, a replacement daemon and uncertain mutation recovery require the retained\nreceipt and fresh observation; this program does not simulate those failures.\nClosing a client does not terminate a borrowed tmux daemon.\n\nFor workspace automation, inspect the [execution receipt](workspaces.md#collisions-and-recovery)\nand compensate only proven creations. For stream continuity loss, handle the\n[Gap or End event](streaming.md) before choosing a fresh subscription.\n\n[First use](getting-started.md) · [Control](control.md) · [Guide](README.md)\n" + "content": "# Recover an operation after cancelling its waiter\n\nRetain the operation handle before awaiting it. Cancelling one Eio waiter leaves\nadmitted work under the client's ownership. Inspect that handle, await its\noutcome and check the relevant server state before choosing another mutation.\n\nThis program uses a tmux `wait-for` barrier to keep an operation pending while\nits waiter is cancelled. It then signals the barrier once and awaits the same\nhandle. A fresh capture checks the window's name before renaming it. The barrier\ncoordinates this example; it does not establish completion of a terminal\nprogram. [Control](control.md) compares Eio and blocking cancellation timing.\n\n## Run the complete program\n\nComplete the [source installation](getting-started.md) and run from the cloned\nrepository. Start an empty private server:\n\n```console\n$ export LIBTMUX_RECOVERY_DIR=\"$(mktemp -d -t libtmux-ocaml-recovery.XXXXXX)\"\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_RECOVERY_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s recovery-demo \\\n -- \"exec cat\"\n```\n\nThe fresh server's session ID is `$0`; quote it to preserve the literal ID:\n\n```console\n$ opam exec -- dune exec examples/native_recovery.exe -- \\\n tmux \"$LIBTMUX_RECOVERY_DIR/server\" '$0'\n```\n\nExpected output is `waiter=cancelled; operation=retained`, followed by\n`operation=finished; postcondition=recovery-complete` and\n`cleanup-issues=0; omitted=0`. The program creates a window and removes its own pane afterward. It preserves the seed session and\nother panes, and closes its client on success or failure.\n\nRemove the private seed session and directory:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_RECOVERY_DIR/server\" \\\n kill-session \\\n -t '=recovery-demo'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_RECOVERY_DIR/server\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_RECOVERY_DIR\"\n```\n\n## Inspect before acting\n\nThe [complete source](../examples/native_recovery.ml) uses installed public\nlibraries. Its Eio cancellation scope covers only the waiter. Client ownership\nand cleanup remain outside that scope. A caller-owned `Cleanup` report is\ncreated before connecting and inspected after closing. It remains accessible\nif setup fails or cancellation prevents a client from being returned.\n\n\n\n```ocaml\nopen Libtmux\nmodule Client = Libtmux_eio.Client\nmodule Operation = Libtmux_eio.Operation\nmodule Cleanup = Libtmux_eio.Cleanup\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet protect ~finally use =\n match use () with\n | value ->\n finally ();\n value\n | exception error ->\n let backtrace = Printexc.get_raw_backtrace () in\n (try finally ()\n with cleanup ->\n Format.eprintf \"cleanup failed: %s@.\" (Printexc.to_string cleanup));\n Printexc.raise_with_backtrace error backtrace\n\nlet cancel_waiter operation =\n let entered, enter = Eio.Promise.create () in\n let context = ref None in\n Eio.Fiber.pair\n (fun () ->\n try\n Eio.Cancel.sub (fun current ->\n context := Some current;\n Eio.Promise.resolve enter ();\n ignore (get (Client.await operation));\n failwith \"wait completed before its release signal\")\n with Eio.Cancel.Cancelled Exit -> ())\n (fun () ->\n Eio.Promise.await entered;\n Eio.Cancel.cancel (Option.get !context) Exit)\n |> ignore\n\nlet recover client session =\n let created =\n get\n (Client.create_window client session ~name:\"recovery-pending\"\n ~spawn:(Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\" ] })))\n in\n let channel =\n \"libtmux-recovery-\"\n ^ Generation.to_string (Source.generation (Client.source client))\n in\n let pending = ref None and release_attempted = ref false in\n let release () =\n if not !release_attempted then (\n release_attempted := true;\n get (Client.signal client channel))\n in\n protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () ->\n protect\n ~finally:(fun () -> get (Client.kill_pane client created.pane))\n (fun () ->\n match !pending with\n | None -> ()\n | Some operation -> (\n match get (Operation.inspect operation) with\n | Operation.Queued -> get (Operation.cancel operation)\n | Operation.Written | Operation.Acknowledged ->\n release ();\n get (Client.await operation)\n | Operation.Not_started | Operation.Finished _\n | Operation.Outcome_unknown _ ->\n ()))))\n (fun () ->\n let operation =\n get (Client.submit client (Operations.wait_for channel))\n in\n pending := Some operation;\n ignore (get (Operation.await_stage operation `Acknowledged));\n cancel_waiter operation;\n (match get (Operation.inspect operation) with\n | Operation.Written | Operation.Acknowledged -> ()\n | Operation.Outcome_unknown receipt ->\n failwith\n (Format.asprintf \"outcome unknown: %a\" Error.pp receipt.cause)\n | _ -> failwith \"expected a retained in-flight operation\");\n print_endline \"waiter=cancelled; operation=retained\";\n release ();\n get (Client.await operation);\n (match get (Operation.inspect operation) with\n | Operation.Finished (Ok ()) -> ()\n | _ -> failwith \"retained operation did not finish\");\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n if Window.name window <> \"recovery-pending\" then\n failwith \"postcondition changed; leave the next action to the caller\";\n get\n (Client.rename_window client (Window.target window)\n ~name:\"recovery-complete\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id window)\n |> Option.get\n in\n assert (Window.name after = \"recovery-complete\");\n Printf.printf \"operation=finished; postcondition=%s\\n\" (Window.name after))\n\nlet () =\n if Array.length Sys.argv <> 4 then (\n prerr_endline \"usage: native_recovery TMUX_BINARY SOCKET_PATH SESSION_ID\";\n exit 2);\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let cleanup = Cleanup.create () in\n protect\n ~finally:(fun () ->\n let report = get (Cleanup.inspect cleanup) in\n Iarray.iter\n (fun issue ->\n match issue.Cleanup.error with\n | Some error -> Format.eprintf \"cleanup: %a@.\" Error.pp error\n | None ->\n Format.eprintf \"cleanup: %s@.\"\n (Printexc.to_string issue.exception_))\n report.issues;\n Printf.printf \"cleanup-issues=%d; omitted=%d\\n\"\n (Iarray.length report.issues)\n report.omitted)\n (fun () ->\n let client =\n get\n (Client.connect ~cleanup ~sw ~binary:Sys.argv.(1)\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Endpoint.socket_path Sys.argv.(2)))\n in\n protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let id = get (Session.Id.of_string Sys.argv.(3)) in\n let session =\n Snapshot.find_session (get (Client.capture client)) id |> Option.get\n in\n recover client (Session.target session)))\n```\n\nThe release attempt is recorded before its I/O so cleanup cannot retry an\nuncertain signal. The finally block cancels queued work, releases and drains a\nlive barrier, and removes only the pane whose creation was reported. Existing\npanes remain outside that cleanup. A primary failure keeps its original\nexception and backtrace; a later cleanup failure is reported separately. Both clients and operations stay on the\nconnecting domain.\n\n## Interpret a retained state\n\n[`Libtmux_eio.Operation.inspect`](../eio/libtmux_eio.mli) performs no I/O and\nremains readable after client closure. A state describes this operation; it\ndoes not prove a terminal program consumed input or exited.\n\n| State | Next decision |\n| --- | --- |\n| `Queued` | Cancel before writing, or continue awaiting the same handle. |\n| `Not_started` | The operation made no admitted effect; establish fresh preconditions before a new action. |\n| `Written` or `Acknowledged` | Keep the handle. The client still owns completion; cancelling another waiter does not undo the write. |\n| `Finished (Ok value)` | Use the result and check the task's relevant postcondition. |\n| `Finished (Error error)` | Examine the error and current state; a later command or hook failure can follow an earlier effect. |\n| `Outcome_unknown receipt` | Preserve the cause and reported creations. Reacquire observations explicitly and resolve uncertainty before another mutation. |\n\nThe example exercises active-waiter cancellation and retained completion. Its\nunknown-outcome branch reports the cause and stops the next action. Transport\nloss, a replacement daemon and uncertain mutation recovery require the retained\nreceipt and fresh observation; this program does not simulate those failures.\nClosing a client does not terminate a borrowed tmux daemon.\n\nFor workspace automation, inspect the [execution receipt](workspaces.md#collisions-and-recovery)\nand compensate only proven creations. For stream continuity loss, handle the\n[Gap or End event](streaming.md) before choosing a fresh subscription.\n\n[First use](getting-started.md) · [Control](control.md) · [Guide](README.md)\n" }, { "path": "docs/streaming.md", - "content": "# Observe output and wait for rendered text\n\nUse [native_watch.ml](../examples/native_watch.ml) for a complete concurrent\nliteral-send, future-byte match and rendered-screen check. Its application owns\nthe Eio scheduler and switch. Use [native_wait.ml](../examples/native_wait.ml) to capture exactly one pane and\nwait until its ordinary screen contains the supplied text. The example imports\nthe installed Eio client, owns its switch, uses an explicit socket, closes its\nclient and prints the matched pane ID. It requires an existing daemon and one\npane; absence and ambiguity remain errors.\n\n`Client.wait_for_text` first subscribes, then captures the screen immediately.\nOutput invalidates that observation. Queued Data events are coalesced before\nthe next bounded capture; a queued Gap stops that coalescing. Membership and\noverflow gaps cause fresh graph acquisition and subscription in the same\nconnection binding. A disconnected daemon or stream fails the wait.\n\nSuccess returns a captured screen containing the text. Text that appears and\ndisappears between captures may be missed. Deadlines are checked between\nacquisitions, whose in-flight I/O keeps the client's exchange timeout. A timed\nout wait does not prove that text was absent in the past.\n\nUse `Client.subscribe` and `Subscription.next` for future output bytes. Data\nretains every byte, including NUL and invalid UTF-8. Its cursor records a local\nsubscription generation and an observed byte offset. A cursor is neither a\nsnapshot timestamp nor a server-side history position. `poll` only removes a\nqueued event and performs no I/O.\n\n`Subscription.wait_for_bytes` consumes those future events and matches across\nevent boundaries. Its nonempty pattern is limited to 64 KiB. It returns the\nmatch's end cursor, possibly inside the last consumed Data event. A deadline\nleaves the subscription active. A Gap returns `Output.Ended reason`; later\nmatching requires an explicit fresh capture and new subscription.\n\nThe defaults are 1 MiB and 1024 queued events per subscriber, at most 16 active\nsubscribers, and eight total client lanes including command/wait lanes. Reuse\none verified lane per covered session. Admission reserves bytes against the\nshared 32 MiB budget. A full queue produces Gap then End rather than blocking\nanother subscriber or an independent command. Unknown loss has no byte count.\n\nCoverage uses an observed session/window context and revalidates it during\nadmission. Layout or membership changes end continuity conservatively. Detaching\na stream leaves the primary client usable; a daemon replacement retires the\nwhole binding. New coverage always has a new subscription generation.\n\nEio readers belong to the client, use no application callbacks and keep running\nwhen a subscriber stalls. The blocking backend advances all stream lanes during\n`Subscription.next`. Cancellation closes the affected subscription and\npropagates through the backend's cancellation mechanism. Client close releases\nall owned lanes and retains terminal events; it leaves the daemon alive.\n\nThe [recovery program](recovery.md) shows how to cancel one operation waiter\nwhile keeping its retained outcome available. Cancelling a subscription closes\nthat subscription; it does not cancel an already admitted command.\n\nNeither interface establishes an atomic capture/stream barrier or reconstructs\nterminal history. An immutable snapshot remains a separate captured value.\n\n[First use](getting-started.md) · [Control and recovery](control.md) ·\n[API](api.md) · [Guide](README.md)\n" + "content": "# Observe output and wait for rendered text\n\nUse [native_watch.ml](../examples/native_watch.ml) for a complete concurrent\nliteral-send, future-byte match and rendered-screen check. Its application owns\nthe Eio scheduler and switch. Use [native_wait.ml](../examples/native_wait.ml) to capture exactly one pane and\nwait until its ordinary screen contains the supplied text. The example imports\nthe installed Eio client, owns its switch, uses an explicit socket, closes its\nclient and prints the matched pane ID. It requires an existing daemon and one\npane; absence and ambiguity remain errors.\n\n`Client.wait_for_text` first subscribes, then captures the screen immediately.\nOutput invalidates that observation. Queued Data events are coalesced before\nthe next bounded capture; a queued Gap stops that coalescing. Membership and\noverflow gaps cause fresh graph acquisition and subscription in the same\nconnection binding. A disconnected daemon or stream fails the wait.\n\nSuccess returns a captured screen containing the text. Text that appears and\ndisappears between captures may be missed. Deadlines are checked between\nacquisitions, whose in-flight I/O keeps the client's exchange timeout. A timed\nout wait does not prove that text was absent in the past.\n\nThe wait releases its temporary subscription on every exit. An earlier error or\ncancellation remains the primary result; `Client.cleanup` retains secondary\ncleanup failures. If cleanup fails after a match or during gap recovery, the\nwait fails instead of reporting success or opening another subscription.\n\nUse `Client.subscribe` and `Subscription.next` for future output bytes. Data\nretains every byte, including NUL and invalid UTF-8. Its cursor records a local\nsubscription generation and an observed byte offset. A cursor is neither a\nsnapshot timestamp nor a server-side history position. `poll` only removes a\nqueued event and performs no I/O.\n\n`Subscription.wait_for_bytes` consumes those future events and matches across\nevent boundaries. Its nonempty pattern is limited to 64 KiB. It returns the\nmatch's end cursor, possibly inside the last consumed Data event. A deadline\nleaves the subscription active. A Gap returns `Output.Ended reason`; later\nmatching requires an explicit fresh capture and new subscription.\n\nThe defaults are 1 MiB and 1024 queued events per subscriber, at most 16 active\nsubscribers, and eight total client lanes including command/wait lanes. Reuse\none verified lane per covered session. Admission reserves bytes against the\nshared 32 MiB budget. A full queue produces Gap then End rather than blocking\nanother subscriber or an independent command. Unknown loss has no byte count.\n\nCoverage uses an observed session/window context and revalidates it during\nadmission. Layout or membership changes end continuity conservatively. Detaching\na stream leaves the primary client usable; a daemon replacement retires the\nwhole binding. New coverage always has a new subscription generation.\n\nEio readers belong to the client, use no application callbacks and keep running\nwhen a subscriber stalls. The blocking backend advances all stream lanes during\n`Subscription.next`. Cancellation closes the affected subscription and\npropagates through the backend's cancellation mechanism. Client close releases\nall owned lanes and retains terminal events; it leaves the daemon alive.\n\nWhen a subscription releases the last user of a lane, close waits for its\nowned helper to be reaped. Concurrent Eio subscription closes join that same\ncleanup. Repeated closes preserve the first terminal reason and any cleanup\nfailure; unconsumed terminal events remain readable through `Subscription.poll`.\n\nThe [recovery program](recovery.md) shows how to cancel one operation waiter\nwhile keeping its retained outcome available. Cancelling a subscription closes\nthat subscription; it does not cancel an already admitted command.\n\nNeither interface establishes an atomic capture/stream barrier or reconstructs\nterminal history. An immutable snapshot remains a separate captured value.\n\n[First use](getting-started.md) · [Control and recovery](control.md) ·\n[API](api.md) · [Guide](README.md)\n" }, { "path": "docs/showcases.md", @@ -38,11 +42,11 @@ }, { "path": "docs/compatibility.md", - "content": "# Compatibility\n\nThe compiler target is **OCaml 5.5.2**, exactly pinned. Older compilers are\noutside this implementation's scope. The development tools are Dune 3.24.2\nand opam 2.6.1.\n\nThe implementation targets Linux and tmux 3.3 or newer. Current evidence covers\nspecific components; final suite qualification has a separate acceptance gate.\n\n| Component | 3.3 | 3.3a | 3.4 | 3.8 |\n| --- | --- | --- | --- | --- |\n| Owned fixture teardown | PASS | PASS | PASS | PASS |\n| Exact Boolean pane filters | PASS | PASS | PASS | PASS |\n| Argument and metadata byte codecs | PASS | PASS | PASS | PASS |\n| Split control framing and command groups | PASS | PASS | PASS | PASS |\n| Bound graph capture and client teardown | PASS | PASS | PASS | PASS |\n| Replacement-daemon rejection | PASS | PASS | PASS | PASS |\n| Private-file capture and failed-save callbacks | PASS | PASS | PASS | PASS |\n| Eio waiter cancellation and retained outcomes | PASS | PASS | PASS | PASS |\n| Blocking cancellation and bounded drain | PASS | PASS | PASS | PASS |\n| Command and lane admission limits | PASS | PASS | PASS | PASS |\n| Environment bytes, scopes and read-process lifecycle | PASS | PASS | PASS | PASS |\n| Scoped options and built-in hook execution | PASS | PASS | PASS | PASS |\n| Current client names and detach-request semantics | PASS | PASS | PASS | PASS |\n| Interactive attachment, cancellation and child exit | PASS | PASS | PASS | PASS |\n| Versioned format availability and generated APIs | PASS | PASS | PASS | PASS |\n| Native operation inventory | PASS | PASS | PASS | PASS |\n| Data/Gap/End, stream limits and recovery | PASS | PASS | PASS | PASS |\n| Rendered waits and future-byte matching | PASS | PASS | PASS | PASS |\n| Blocking/Eio workspace preconditions and compensation | PASS | PASS | PASS | PASS |\n| Public workspace bootstrap on fresh/existing daemons | PASS | PASS | PASS | PASS |\n| Installed workspace CLI, receipts, interruption and output faults | PASS | PASS | PASS | PASS |\n| Literal workspace guide and owned teardown | PASS | PASS | PASS | PASS |\n| Final suite qualification | UNVERIFIED | UNVERIFIED | UNVERIFIED | UNVERIFIED |\n\nThe blocking client and workspace CLI reject 3.2a. Development tmux 3.8a does\nnot replace the published 3.8 cell. PID-acquisition races and malformed replies after writing\npass deterministic fault checks with real Linux child processes. Cancellation\nat each capture transfer step and unresolved-buffer receipts also pass on\nevery release. Ready I/O still checks its deadline; busy pipes cannot bypass\nthe timeout. These results qualify the implemented lifecycle contracts, not\nthe final suite qualification. MCP integration is outside this port's scope.\n\nThe near-limit [mixed workload](benchmarking.md#mixed-commands-stream-pressure-and-membership-changes)\nreproduces a tmux 3.4 daemon crash in the control-client detach notification\npath. The exact 3.8 source includes the upstream null-state guard. An earlier\n3.3 observer-command failure remains unattributed. Passing ordinary client\nchecks does not close either mixed-workload failure.\n\nThe I/O packages require Linux pidfds, the same PID namespace as the daemon,\nand shared local scratch storage. A socket pathname does not prove those\nconditions. Each connection has its own generation; a replacement daemon never\ninherits old targets. Closing a client releases its own processes and leaves\nthe daemon running.\n\nThe blocking client accepts a scoped `Cancellation` token that another domain\nor systhread can cancel. It drains admitted work before raising\n`Cancellation.Cancelled`, with at most one exchange timeout from detection.\nThe operation handle retains success, failure or uncertainty. Eio cancellation\nreleases the waiter immediately while a client-owned fiber drains the work.\nLocal scratch I/O must finish in either case; Eio performs it on a system\nthread. Filesystem failures have a distinct error from transport disconnects.\n\nPane PIDs and client terminal heights can be absent. The model exposes these as\noptions; a control client without a started terminal has no reported height.\ntmux itself sanitizes names on older releases and rejects some names on newer\nreleases. Captures preserve the observed value rather than reconstructing the\nargument originally submitted by another client.\n\nControl commands use ASCII escapes for non-ASCII bytes because tmux 3.3's\ncommand-string lexer can confuse a signed `0xff` byte with EOF. Metadata uses\ntmux's `q` format modifier and preserves physical newlines. A fixed read probe\ndetects the additional visual escaping used by tmux 3.4 before decoding it.\nControl clients must request UTF-8 mode so locale-dependent sanitization cannot\nalter captured bytes.\n\nAn end guard acknowledges a command. Completion requires the operation's\npostcondition or a following marker on its lane. A control client may exit\nwith status 1 after an earlier command failed, even when later commands and\nshutdown succeeded. Tests retain that distinction.\n\nThe optional JSON codec supports the scalar pane registry and Boolean nodes\nfrom Java's [`libtmux.filter/1`](../json/index.mld) at revision\n`e8a39689d8d60968ac978a1dd2a89c6112333896`. Both implementations agree on 66\ncaptured-value cases and read each other's encoded queries. Numeric operands\nuse signed 32-bit bounds. Regex, relationship documents, numeric membership\nand native extension fields remain unsupported in this wire schema.\n\nReproduce native checks with the commands in\n[CONTRIBUTING.md](../.github/CONTRIBUTING.md). The fixture builders use official\nrelease archives and retain archive and binary digests under `scratch/tmux/`.\n\nEnvironment reads use a bounded read-only process on the same daemon. The\nclient checks its reported PID and the original pidfd after collecting the\ncomplete response. Values may contain control-marker text without entering\nthe control parser. Replacement, malformed data, truncated output and capacity\nfailures never become a successful empty table. This route does not execute\nmutations or reconnect the primary lane.\n\nScoped options preserve scalar types, sparse array indexes and local versus\ninherited entries. Bulk inherited enumeration follows tmux and includes only\nbuilt-ins; `read_option` resolves a named inherited user option. Descriptors are\nqualified for the exact releases in the [option catalog](options.md). tmux fills\nthe lowest unused indexes when appending array elements.\n\nHook commands keep names and arguments separate. Built-in hook arrays report\nsynchronous failures; earlier effects remain after a later command fails. Named\n`@` hooks can be configured, read and removed, but `run_hook` rejects them because\ntmux may hide parse failures in the server log. Hooks that print arbitrary output\nremain outside the supported control transport contract.\n\nCaptured client names belong to a connection generation but may be reused within\nit. Operations address the client currently bearing that name. A detach request\nconfirms command processing, not peer exit; callers need separate exit evidence.\nSwitching an existing client does not create a new terminal.\n\n`Terminal.attach_current` opens an interactive terminal against an explicit\nendpoint and session ID. This separate utility is unbound: an ID can refer to a\ndifferent daemon if the endpoint changes. It accepts no captured target and\nnever retries or starts a daemon. Both backends wait for the terminal client to\nexit and reap it on cancellation. Supplied terminal streams remain caller-owned.\n\nThe generated [format catalog](formats.md) records exact-release availability\nand callback contexts. Local `Formats.lookup` distinguishes captured values,\nmissing values, unacquired fields and fields unsupported by that release.\nIt does not perform arbitrary format acquisition. Generated\n[operation conveniences](operations.md) share the same command constructors\nbetween Unix and Eio; the installed-consumer test exercises both adapters.\n" + "content": "# Compatibility\n\nThe compiler target is **OCaml 5.5.2**, exactly pinned. Older compilers are\noutside this implementation's scope. The development tools are Dune 3.24.2\nand opam 2.6.1.\n\nThe implementation targets Linux and tmux 3.3 or newer. Current evidence covers\nspecific components; final suite qualification has a separate acceptance gate.\nThe table records the exercised fixtures, not every possible cleanup path.\nThe additional lifecycle cases described below reopen that qualification.\n\n| Component | 3.3 | 3.3a | 3.4 | 3.8 |\n| --- | --- | --- | --- | --- |\n| Owned fixture teardown | PASS | PASS | PASS | PASS |\n| Exact Boolean pane filters | PASS | PASS | PASS | PASS |\n| Argument and metadata byte codecs | PASS | PASS | PASS | PASS |\n| Split control framing and command groups | PASS | PASS | PASS | PASS |\n| Bound graph capture and ordinary client teardown | PASS | PASS | PASS | PASS |\n| Replacement-daemon rejection | PASS | PASS | PASS | PASS |\n| Private-file capture and failed-save callbacks | PASS | PASS | PASS | PASS |\n| Eio waiter cancellation and retained outcomes | PASS | PASS | PASS | PASS |\n| Blocking cancellation and bounded drain | PASS | PASS | PASS | PASS |\n| Command and lane admission limits | PASS | PASS | PASS | PASS |\n| Environment bytes, scopes and read-process lifecycle | PASS | PASS | PASS | PASS |\n| Scoped options and built-in hook execution | PASS | PASS | PASS | PASS |\n| Current client names and detach-request semantics | PASS | PASS | PASS | PASS |\n| Interactive attachment, cancellation and child exit | PASS | PASS | PASS | PASS |\n| Versioned format availability and generated APIs | PASS | PASS | PASS | PASS |\n| Native operation inventory | PASS | PASS | PASS | PASS |\n| Data/Gap/End, stream limits and recovery | PASS | PASS | PASS | PASS |\n| Rendered waits and future-byte matching | PASS | PASS | PASS | PASS |\n| Blocking/Eio workspace preconditions and compensation | PASS | PASS | PASS | PASS |\n| Public workspace bootstrap on fresh/existing daemons | PASS | PASS | PASS | PASS |\n| Installed workspace CLI, receipts, interruption and output faults | PASS | PASS | PASS | PASS |\n| Literal workspace guide and owned teardown | PASS | PASS | PASS | PASS |\n| Final suite qualification | UNVERIFIED | UNVERIFIED | UNVERIFIED | UNVERIFIED |\n\nThe blocking client and workspace CLI reject 3.2a. Development tmux 3.8a does\nnot replace the published 3.8 cell. PID-acquisition races and malformed replies after writing\npass deterministic fault checks with real Linux child processes. Cancellation\nat each capture transfer step and unresolved-buffer receipts also pass on\nevery release. Ready I/O still checks its deadline; busy pipes cannot bypass\nthe timeout. These results remain evidence for those tested cases.\nMCP integration is outside this port's scope.\n\nOwned-child cleanup sends TERM, allows a 200 ms cooperative grace, then sends\nKILL if necessary and reaps the child. The policy covers control, read-process\nand terminal helpers; it never sends these signals to the daemon. Eio waits\nallow other fibers to progress. The grace applies per helper, not to the whole\nclient, and cannot bound uninterruptible kernel work or scratch-file completion.\nCaller-owned `Cleanup` reports retain secondary process and descriptor failures\nwithout replacing native cancellation or the primary exception. Independent\nreleases are still attempted. A failed KILL only permits a nonblocking exit\ncheck; an unconfirmed exit is reported as `Unreaped_child`. Concurrent Eio\nclient closes await one retained teardown result. The Eio runtime owns its pipe\nends explicitly and joins their readiness waiters before closing them. Process\nI/O rechecks closure after yielding, preventing access to reused descriptors.\nA private Eio process owner keeps its reaper alive through cancellation and\nswitch release; callers join its completed teardown. Shutdown regressions cover\nboth Eio's Linux and POSIX backends on Linux. This does not add platform support.\nNew commands and subscriptions are rejected as soon as client close starts.\nConnection and subscription teardown also retain one completion: overlapping\nEio callers join it, and later calls preserve its failure.\n\nThe shutdown regression checks stopped helpers and helpers that survive TERM\nand input closure, while keeping the parent and its Eio switch alive to verify\nreaping. These are injected helper failures, not naturally reproduced hangs in\na supported tmux daemon. Blocking readiness uses `poll`; ready reads, ready\nwrites and deadlines work above descriptor 1100. Terminal attachment and\ncancellation also exercise high-numbered descriptors on all four exact\nreleases. See the\n[architecture's cleanup boundary](dev/adr/0001-native-ocaml-suite.md#share-protocol-semantics-while-preserving-each-runtimes-cancellation).\n\nThe near-limit [mixed workload](benchmarking.md#mixed-commands-stream-pressure-and-membership-changes)\nreproduces a tmux 3.4 daemon crash in the control-client detach notification\npath. The exact 3.8 source includes the upstream null-state guard. An earlier\n3.3 observer-command failure remains unattributed. Passing ordinary client\nchecks does not close either mixed-workload failure.\n\nThe I/O packages require Linux pidfds, the same PID namespace as the daemon,\nand shared local scratch storage. A socket pathname does not prove those\nconditions. Each connection has its own generation; a replacement daemon never\ninherits old targets. Closing a client releases its own processes and leaves\nthe daemon running.\n\nThe blocking client accepts a scoped `Cancellation` token that another domain\nor systhread can cancel. It drains admitted work before raising\n`Cancellation.Cancelled`. The drain has at most one exchange timeout from\ndetection; subsequent owned-child cleanup has its separate cooperative grace.\nThe operation handle retains success, failure or uncertainty. Eio cancellation\nreleases the waiter immediately while a client-owned fiber drains the work.\nLocal scratch I/O must finish in either case; Eio performs it on a system\nthread. Filesystem failures have a distinct error from transport disconnects.\n\nPane PIDs and client terminal heights can be absent. The model exposes these as\noptions; a control client without a started terminal has no reported height.\ntmux itself sanitizes names on older releases and rejects some names on newer\nreleases. Captures preserve the observed value rather than reconstructing the\nargument originally submitted by another client.\n\nControl commands use ASCII escapes for non-ASCII bytes because tmux 3.3's\ncommand-string lexer can confuse a signed `0xff` byte with EOF. Metadata uses\ntmux's `q` format modifier and preserves physical newlines. A fixed read probe\ndetects the additional visual escaping used by tmux 3.4 before decoding it.\nControl clients must request UTF-8 mode so locale-dependent sanitization cannot\nalter captured bytes.\n\nAn end guard acknowledges a command. Completion requires the operation's\npostcondition or a following marker on its lane. A control client may exit\nwith status 1 after an earlier command failed, even when later commands and\nshutdown succeeded. Tests retain that distinction.\n\nThe optional JSON codec supports the scalar pane registry and Boolean nodes\nfrom Java's [`libtmux.filter/1`](query-interchange.md) at revision\n`e8a39689d8d60968ac978a1dd2a89c6112333896`. Both implementations agree on 66\ncaptured-value cases and read each other's encoded queries. Numeric operands\nuse signed 32-bit bounds. Regex, relationship documents, numeric membership\nand native extension fields remain unsupported in this wire schema.\nThe [conformance procedure](../test/conformance/README.md) rebuilds the peers\nfrom identified inputs and retains both codec directions and artifact digests.\nIt is a separate qualification command, not part of ordinary hosted OCaml CI.\n\nReproduce native checks with the commands in\n[CONTRIBUTING.md](../.github/CONTRIBUTING.md). The fixture builders use official\nrelease archives and retain archive and binary digests under `scratch/tmux/`.\n\nEnvironment reads use a bounded read-only process on the same daemon. The\nclient checks its reported PID and the original pidfd after collecting the\ncomplete response. Values may contain control-marker text without entering\nthe control parser. Replacement, malformed data, truncated output and capacity\nfailures never become a successful empty table. This route does not execute\nmutations or reconnect the primary lane.\n\nScoped options preserve scalar types, sparse array indexes and local versus\ninherited entries. Bulk inherited enumeration follows tmux and includes only\nbuilt-ins; `read_option` resolves a named inherited user option. Descriptors are\nqualified for the exact releases in the [option catalog](options.md). tmux fills\nthe lowest unused indexes when appending array elements.\n\nHook commands keep names and arguments separate. Built-in hook arrays report\nsynchronous failures; earlier effects remain after a later command fails. Named\n`@` hooks can be configured, read and removed, but `run_hook` rejects them because\ntmux may hide parse failures in the server log. Hooks that print arbitrary output\nremain outside the supported control transport contract.\n\nCaptured client names belong to a connection generation but may be reused within\nit. Operations address the client currently bearing that name. A detach request\nconfirms command processing, not peer exit; callers need separate exit evidence.\nSwitching an existing client does not create a new terminal.\n\n`Terminal.attach_current` opens an interactive terminal against an explicit\nendpoint and session ID. This separate utility is unbound: an ID can refer to a\ndifferent daemon if the endpoint changes. It accepts no captured target and\nnever retries or starts a daemon. Both backends wait for the terminal client to\nexit and reap it on cancellation. Supplied terminal streams remain caller-owned.\n\nThe generated [format catalog](formats.md) records exact-release availability\nand callback contexts. Local `Formats.lookup` distinguishes captured values,\nmissing values, unacquired fields and fields unsupported by that release.\nIt does not perform arbitrary format acquisition. Generated\n[operation conveniences](operations.md) share the same command constructors\nbetween Unix and Eio; the installed-consumer test exercises both adapters.\n" }, { "path": "docs/testing.md", - "content": "# Testing and CI\n\nUse Alcotest for typed values and lifecycle invariants, `ppx_expect` for readable\noutput contracts, and QCheck for generated semantic cases. All three run through\nDune. The pure runtime library uses the standard library; the PPX is a test-only\ndependency.\n\nThe [cardinality tests](../test/core_test.ml) compare typed results using an\n[`Alcotest.testable`](https://mirage.github.io/alcotest/alcotest/Alcotest/index.html#type-testable)\nwith `Cardinality.pp_error`. A failure displays the expected\nand actual values, including the error variant's meaning. Comparing a Boolean\nexpression would only report `true` versus `false`. Keep testable printers small\nand show the values needed to understand the failure.\n\nThe [expect tests](../test/diagnostics_expect.ml) place expected diagnostic text\nbeside the code that prints it. A mismatch produces a diff and a `.corrected`\nfile. Inspect the changed meaning before promoting an expectation. Stable query\nexplanations, error messages and CLI output fit this style. Avoid snapshotting\ntimestamps, random IDs or whole server captures to test a small invariant.\n\n[QCheck cases](../test/query_test.ml) compare typed-expression evaluation against\nnative predicates with generated inputs. A fixed seed makes the current suite\nreproducible; shrinking helps explain counterexamples. Properties supplement the\nsmall authored edge cases and live tmux checks.\n\nRun the unit, expect, property and compile-failure suite:\n\n```console\n$ opam exec -- dune runtest --force\n```\n\nCold PPX driver compilation belongs to setup or an outer build. Time the warm\ntest command separately and retain the existing inner/mid budgets. Native and\ninstalled-consumer checks belong to the outer loop because they launch processes\nand own real tmux servers.\n\nRun the implemented native contract suite against one explicit release binary:\n\n```console\n$ opam exec -- python3 test/native_suite.py /path/to/tmux\n```\n\nThe [CI workflow](../.github/workflows/ocaml.yml) uses exactly OCaml 5.5.2,\nAlcotest 1.9.1, `ppx_expect` v0.17.3 and QCheck 0.91. It checks authored manifests,\nbuilds/odoc, generated files, formatting, unit/expect/property cases, four native\nrelease cells and separate 3.2a rejection. Each native cell installs the packages\ninto a temporary prefix and runs a consumer outside the checkout. Consumer\nfeatures still in development need their own later acceptance gates.\n\nThe CLI document check exercises regular files and piped input on both Eio\nbackends, including the inclusive 64 KiB boundary. Pass `--directory` to\nexercise a mounted filesystem using an owned temporary directory:\n\n```console\n$ opam exec -- python3 test/workspace_document_test.py\n```\n\n`ocaml/setup-ocaml` caches opam and the switch. The tmux composite action caches\nonly an installed prefix, keyed by source, runner image/version, architecture,\ncompiler, package versions and build/probe recipes. Dependencies are installed\nbefore validating either hits or misses. A restored binary must match its hash,\nreport the exact release and pass an owned-daemon probe with verified teardown.\nRejected caches rebuild; no broad restore key reuses a binary from another\nenvironment. Save a validated installation before running library tests.\n\nThe cache design adapts the [Go port's pinned implementation](https://github.com/libtmux/libtmux-go/blob/d8ea6f77ede9f75e96af78719c8c1707fc47bdfb/.github/scripts/tmux_build.py).\nThe APIs and testing styles follow the primary documentation for\n[setup-ocaml](https://github.com/ocaml/setup-ocaml/tree/ff66428f72b64472e749b22e0ad4dded4b2ddca6),\n[Alcotest](https://github.com/mirage/alcotest/tree/1.9.1),\n[ppx_expect](https://github.com/janestreet/ppx_expect/tree/v0.17.3), and\n[Dune tests](https://dune.readthedocs.io/en/stable/tests.html).\n\n## Executed documentation\n\nREADME and guide snippets name regions in the compiled programs under\n`examples/`; JSON includes use the complete shipped configuration. The source\nis authoritative; this check rejects drift:\n\n```console\n$ python3 tools/docs_snippets.py\n```\n\nThe installed-consumer test installs libraries into a separate prefix, builds\nevery shipped example in an independent Dune project and runs it against owned\ntmux servers. It checks linked-window contexts, typed/native query results,\ncreated layout geometry, options, pane titles, working directories, literal\ninput, future-byte matches, rendered-screen waits and zero remaining clients.\nOwned fixture teardown verifies pane and daemon exit.\n\nThe [standalone capability programs](showcases.md) include their own private\nserver setup. CI copies their whole source files into an independent Dune\nproject and executes the recorded `opam exec -- dune exec` commands against\ninstalled packages. Exact outcome lines and owned process/directory teardown\nare checked. The [inventory](../examples/showcase.json) records each source and\ncommand with its native workflow/job and tmux floor.\n\nEach native CI cell also runs the [workspace guide](workspaces.md) through real\n`opam exec` and an installed `tmux-workspace`. It executes the displayed setup,\nvalidation, plan, apply and cleanup commands, then checks receipt fields, pane\ndirectories, layout output, client closure and owned process exit. CLI fault\ntests pin their output pipe capacity so a larger host pipe cannot turn a\nstalled-consumer test into successful buffered delivery.\n\nThese are correctness checks and whole-command timings, not throughput\nbenchmarks. Do not derive performance comparisons from their durations.\n\n[Guide](README.md) · [API](api.md) · [Compatibility](compatibility.md)\n" + "content": "# Testing and CI\n\nUse Alcotest for typed values and lifecycle invariants, `ppx_expect` for readable\noutput contracts, and QCheck for generated semantic cases. All three run through\nDune. The pure runtime library uses the standard library; the PPX is a test-only\ndependency.\n\nThe [cardinality tests](../test/core_test.ml) compare typed results using an\n[`Alcotest.testable`](https://mirage.github.io/alcotest/alcotest/Alcotest/index.html#type-testable)\nwith `Cardinality.pp_error`. A failure displays the expected\nand actual values, including the error variant's meaning. Comparing a Boolean\nexpression would only report `true` versus `false`. Keep testable printers small\nand show the values needed to understand the failure.\n\nThe [expect tests](../test/diagnostics_expect.ml) place expected diagnostic text\nbeside the code that prints it. A mismatch produces a diff and a `.corrected`\nfile. Inspect the changed meaning before promoting an expectation. Stable query\nexplanations, error messages and CLI output fit this style. Avoid snapshotting\ntimestamps, random IDs or whole server captures to test a small invariant.\n\n[QCheck cases](../test/query_test.ml) compare typed-expression evaluation against\nnative predicates with generated inputs. A fixed seed makes the current suite\nreproducible; shrinking helps explain counterexamples. Properties supplement the\nsmall authored edge cases and live tmux checks.\n\nRun the unit, expect, property and compile-failure suite:\n\n```console\n$ opam exec -- dune runtest --force\n```\n\nCold PPX driver compilation belongs to setup or an outer build. Time the warm\ntest command separately and retain the existing inner/mid budgets. Native and\ninstalled-consumer checks belong to the outer loop because they launch processes\nand own real tmux servers.\n\nRun the implemented native contract suite against one explicit release binary:\n\n```console\n$ opam exec -- python3 test/native_suite.py /path/to/tmux\n```\n\nThe [CI workflow](../.github/workflows/ocaml.yml) uses exactly OCaml 5.5.2,\nAlcotest 1.9.1, `ppx_expect` v0.17.3 and QCheck 0.91. It checks authored manifests,\nbuilds/odoc, generated files, formatting, unit/expect/property cases, four native\nrelease cells and separate 3.2a rejection. Each native cell installs the packages\ninto a temporary prefix and runs a consumer outside the checkout. Consumer\nfeatures still in development need their own later acceptance gates.\n\nThe [Java/OCaml conformance procedure](../test/conformance/README.md) prepares a\npinned Java peer separately, verifies artifact hashes and runs both evaluators\nand codec directions. Its fixtures and failure diagnostics are retained per\nrun. This qualification is outside ordinary OCaml CI and the fast test loops.\n\nThe CLI document check exercises regular files and piped input on both Eio\nbackends, including the inclusive 64 KiB boundary. Pass `--directory` to\nexercise a mounted filesystem using an owned temporary directory:\n\n```console\n$ opam exec -- python3 test/workspace_document_test.py\n```\n\n`ocaml/setup-ocaml` caches opam and the switch. The tmux composite action caches\nonly an installed prefix, keyed by source, runner image/version, architecture,\ncompiler, package versions and build/probe recipes. Dependencies are installed\nbefore validating either hits or misses. A restored binary must match its hash,\nreport the exact release and pass an owned-daemon probe with verified teardown.\nRejected caches rebuild; no broad restore key reuses a binary from another\nenvironment. Save a validated installation before running library tests.\n\nThe cache design adapts the [Go port's pinned implementation](https://github.com/libtmux/libtmux-go/blob/d8ea6f77ede9f75e96af78719c8c1707fc47bdfb/.github/scripts/tmux_build.py).\nThe APIs and testing styles follow the primary documentation for\n[setup-ocaml](https://github.com/ocaml/setup-ocaml/tree/ff66428f72b64472e749b22e0ad4dded4b2ddca6),\n[Alcotest](https://github.com/mirage/alcotest/tree/1.9.1),\n[ppx_expect](https://github.com/janestreet/ppx_expect/tree/v0.17.3), and\n[Dune tests](https://dune.readthedocs.io/en/stable/tests.html).\n\n## Executed documentation\n\nREADME and guide snippets name regions in the compiled programs under\n`examples/`; JSON includes use the complete shipped configuration. The source\nis authoritative; this check rejects drift:\n\n```console\n$ python3 tools/docs_snippets.py\n```\n\nThe installed-consumer test installs libraries into a separate prefix, builds\nevery shipped example in an independent Dune project and runs it against owned\ntmux servers. It checks linked-window contexts, typed/native query results,\ncreated layout geometry, options, pane titles, working directories, literal\ninput, future-byte matches, rendered-screen waits and zero remaining clients.\nOwned fixture teardown verifies pane and daemon exit.\n\nThe [standalone capability programs](showcases.md) include their own private\nserver setup. CI copies their whole source files into an independent Dune\nproject and executes the recorded `opam exec -- dune exec` commands against\ninstalled packages. Exact outcome lines and owned process/directory teardown\nare checked. The [inventory](../examples/showcase.json) records each source and\ncommand with its native workflow/job and tmux floor.\n\nEach native CI cell also runs the [workspace guide](workspaces.md) through real\n`opam exec` and an installed `tmux-workspace`. It executes the displayed setup,\nvalidation, plan, apply and cleanup commands, then checks receipt fields, pane\ndirectories, layout output, client closure and owned process exit. CLI fault\ntests pin their output pipe capacity so a larger host pipe cannot turn a\nstalled-consumer test into successful buffered delivery.\n\nThese are correctness checks and whole-command timings, not throughput\nbenchmarks. Do not derive performance comparisons from their durations.\n\n[Guide](README.md) · [API](api.md) · [Compatibility](compatibility.md)\n" }, { "path": "docs/benchmarking.md", @@ -54,7 +58,7 @@ }, { "path": "docs/workspaces.md", - "content": "# Create a workspace from JSON\n\n`tmux-workspace` validates a JSON configuration, previews an advisory plan, and\napplies a fresh plan to an explicit socket. Install it through the\n[source installation](../README.md#install-from-source); `opam install .`\nincludes the CLI. Run this guide from the repository root.\n\n`check` performs no tmux I/O. `plan` observes the endpoint and never starts a\ndaemon. `apply` rereads the document, checks current state, then executes ordered\nactions. A preview is not a transaction or an executable target.\n\n## Define the layout\n\nThe shipped [project.json](../examples/workspace/project.json) creates an\n`editor` window with two panes and a `logs` window with one. Each pane runs\n`/bin/cat -u` directly, keeping the demonstration alive without a shell command.\n\n\n\n```json\n{\n \"schema\": \"libtmux.workspace/1\",\n \"session\": \"ocaml-project\",\n \"cwd\": \".\",\n \"width\": 120,\n \"height\": 40,\n \"environment\": {\"PROJECT\": \"ocaml\"},\n \"options\": [{\"name\": \"@project\", \"kind\": \"text\", \"value\": \"ocaml\"}],\n \"windows\": [\n {\n \"name\": \"editor\",\n \"layout\": \"even-horizontal\",\n \"panes\": [\n {\"exec\": [\"/bin/cat\", \"-u\"]},\n {\"exec\": [\"/bin/cat\", \"-u\"], \"direction\": \"right\"}\n ]\n },\n {\"name\": \"logs\", \"panes\": [{\"exec\": [\"/bin/cat\", \"-u\"]}]}\n ]\n}\n```\n\nRelative directories resolve against the JSON file's directory. Environment\nvalues merge from session to window to pane. `exec` supplies literal argv;\n`shell` explicitly requests shell interpretation. They are mutually exclusive.\nOmitting both uses tmux's default command. `startup` entries send literal text\nfollowed by Enter; they do not wait for a command to finish.\n\n## Validate, preview and apply\n\nThis walkthrough uses a private server and an empty tmux configuration. The\n`seed` session keeps the server alive while the CLI creates the project.\nInherited `TMUX` and `TMUX_PANE` do not select the endpoint.\n\n\n\n```console\n$ export LIBTMUX_WORKSPACE_DIR=\"$(mktemp -d -t libtmux-ocaml-workspace.XXXXXX)\"\n```\n\nCopying the file also makes its working directory the private directory:\n\n```console\n$ cp examples/workspace/project.json \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\n```console\n$ opam exec -- tmux-workspace check \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nExpected output: `Valid workspace \"ocaml-project\": 2 windows, 3 panes`.\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s seed \\\n -- \"exec cat\"\n```\n\n```console\n$ opam exec -- tmux-workspace plan \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nThe plan lists session creation, settings, the split and layout, and the logs\nwindow. Applying it requires the original configuration:\n\n```console\n$ opam exec -- tmux-workspace apply \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n --json \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n > \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\nThe receipt uses [`libtmux.workspace-receipt/1`](../json/libtmux_json.mli).\nOn success, `status` is\n`succeeded`; `failed`, `uncertain` and `skipped` are empty. Each creation records\nthe IDs returned by tmux. Check the resulting windows independently:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n list-windows \\\n -t '=ocaml-project' \\\n -F '#{window_name}:#{window_panes}'\n```\n\nExpected output is `editor:2` followed by `logs:1`.\n\nRemove only the sessions this walkthrough created:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=ocaml-project'\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=seed'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_WORKSPACE_DIR\"\n```\n\n\n\nWithout `--require-existing`, `apply` can start a missing endpoint by creating\nthe requested session. That server uses the normal tmux configuration. Closing\nthe CLI's client leaves the server running; its appearance does not grant\ndaemon ownership. `plan` on a missing endpoint checks the local tmux version\nand returns a bootstrap plan without creating the socket.\n\n## Collisions and recovery\n\nAn existing session name fails with exit 4 by default. `--append` adds new\nwindows to that session and rejects window-name collisions. Append never\nchanges the existing session's options or environment; omit those session\nsettings from an append document. It preserves existing panes.\n\nUse `--json` on `check` or `plan` to obtain `document_digest`, then pass that\nvalue through `--expect-document` on apply. A changed document fails before\nendpoint I/O. The digest does not lock tmux state. Each apply builds and\nrechecks its own plan on the current connection generation.\n\nOn failure or SIGINT, inspect the receipt before deciding what to do next.\nDefault compensation kills only panes whose creation the journal proved, in\nreverse order. A foreign pane moved into a new window remains. `--keep-partial`\nretains proven creations instead. Cleanup failures and creations whose IDs\ncould not be bound remain explicit. Never rerun an uncertain mutation solely\nbecause its caller was interrupted.\n\nThe [native recovery example](recovery.md) demonstrates the cancellation,\ninspection and fresh-postcondition sequence for a retained operation. Workspace\ncallers use the same discipline with `Workspace.inspect`: read the available\njournal, identify proven effects, then choose compensation or another explicit\naction. A saved JSON receipt describes observations; it is not an executable\ntarget or a transaction to replay.\n\n| Exit | Meaning |\n| --- | --- |\n| 0 | Validation, planning or apply succeeded |\n| 2 | Invalid arguments or document |\n| 3 | Required endpoint missing |\n| 4 | Collision, changed document or stale plan |\n| 5 | Failed, partial or uncertain apply; inspect the receipt |\n| 6 | Transport, capability or result-delivery failure |\n| 130 | SIGINT; the available journal is emitted within the cleanup bound |\n\nSIGINT does not undo admitted commands. Receipt output is bounded; a blocked or\nbroken stdout cannot produce a successful exit. Forced process termination\ncannot promise a delivered receipt. Expected failures are distinct from Eio\ncancellation in the native API, which propagates cancellation to the caller.\n\n## Bounds and native callers\n\nDocuments use UTF-8 JSON with a 64 KiB input bound and depth limit 32. Unknown\nand duplicate properties fail. Configurations allow at most 64 windows and 256\npanes; a plan allows at most 4096 actions. Plans and receipts have a 4 MiB output\nbound. Plans omit environment values, option values and startup text. They can\nstill contain command arguments and paths; treat them as application data.\n\nFor native code, use `Libtmux_json.Workspace.of_string`,\n`Libtmux_workspace.Plan.make`, and the backend's `Workspace.submit` or\n`Workspace.submit_bootstrap`. `inspect` reads the retained journal locally;\n`await` performs I/O. The application owns the Eio switch and scheduler.\nSee the [API reference](api.md), [control outcomes](control.md) and\n[compatibility evidence](compatibility.md).\n" + "content": "# Create a workspace from JSON\n\n`tmux-workspace` validates a JSON configuration, previews an advisory plan, and\napplies a fresh plan to an explicit socket. Install it through the\n[source installation](../README.md#install-from-source); `opam install .`\nincludes the CLI. Run this guide from the repository root.\n\n`check` performs no tmux I/O. `plan` observes the endpoint and never starts a\ndaemon. `apply` rereads the document, checks current state, then executes ordered\nactions. A preview is not a transaction or an executable target.\n\n## Define the layout\n\nThe shipped [project.json](../examples/workspace/project.json) creates an\n`editor` window with two panes and a `logs` window with one. Each pane runs\n`/bin/cat -u` directly, keeping the demonstration alive without a shell command.\n\n\n\n```json\n{\n \"schema\": \"libtmux.workspace/1\",\n \"session\": \"ocaml-project\",\n \"cwd\": \".\",\n \"width\": 120,\n \"height\": 40,\n \"environment\": {\"PROJECT\": \"ocaml\"},\n \"options\": [{\"name\": \"@project\", \"kind\": \"text\", \"value\": \"ocaml\"}],\n \"windows\": [\n {\n \"name\": \"editor\",\n \"layout\": \"even-horizontal\",\n \"panes\": [\n {\"exec\": [\"/bin/cat\", \"-u\"]},\n {\"exec\": [\"/bin/cat\", \"-u\"], \"direction\": \"right\"}\n ]\n },\n {\"name\": \"logs\", \"panes\": [{\"exec\": [\"/bin/cat\", \"-u\"]}]}\n ]\n}\n```\n\nRelative directories resolve against the JSON file's directory. Environment\nvalues merge from session to window to pane. `exec` supplies literal argv;\n`shell` explicitly requests shell interpretation. They are mutually exclusive.\nOmitting both uses tmux's default command. `startup` entries send literal text\nfollowed by Enter; they do not wait for a command to finish.\n\n## Validate, preview and apply\n\nThis walkthrough uses a private server and an empty tmux configuration. The\n`seed` session keeps the server alive while the CLI creates the project.\nInherited `TMUX` and `TMUX_PANE` do not select the endpoint.\n\n\n\n```console\n$ export LIBTMUX_WORKSPACE_DIR=\"$(mktemp -d -t libtmux-ocaml-workspace.XXXXXX)\"\n```\n\nCopying the file also makes its working directory the private directory:\n\n```console\n$ cp examples/workspace/project.json \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\n```console\n$ opam exec -- tmux-workspace check \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nExpected output: `Valid workspace \"ocaml-project\": 2 windows, 3 panes`.\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s seed \\\n -- \"exec cat\"\n```\n\n```console\n$ opam exec -- tmux-workspace plan \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nThe plan lists session creation, settings, the split and layout, and the logs\nwindow. Applying it requires the original configuration:\n\n```console\n$ opam exec -- tmux-workspace apply \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n --json \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n > \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\nThe receipt uses [`libtmux.workspace-receipt/1`](../json/libtmux_json.mli).\nOn success, `status` is\n`succeeded`; `failed`, `uncertain` and `skipped` are empty. Each creation records\nthe IDs returned by tmux. Check the resulting windows independently:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n list-windows \\\n -t '=ocaml-project' \\\n -F '#{window_name}:#{window_panes}'\n```\n\nExpected output is `editor:2` followed by `logs:1`.\n\nRemove only the sessions this walkthrough created:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=ocaml-project'\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=seed'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_WORKSPACE_DIR\"\n```\n\n\n\nWithout `--require-existing`, `apply` can start a missing endpoint by creating\nthe requested session. That server uses the normal tmux configuration. Closing\nthe CLI's client leaves the server running; its appearance does not grant\ndaemon ownership. `plan` on a missing endpoint checks the local tmux version\nand returns a bootstrap plan without creating the socket.\n\n## Collisions and recovery\n\nAn existing session name fails with exit 4 by default. `--append` adds new\nwindows to that session and rejects window-name collisions. Append never\nchanges the existing session's options or environment; omit those session\nsettings from an append document. It preserves existing panes.\n\nUse `--json` on `check` or `plan` to obtain `document_digest`, then pass that\nvalue through `--expect-document` on apply. A changed document fails before\nendpoint I/O. The digest does not lock tmux state. Each apply builds and\nrechecks its own plan on the current connection generation.\n\nOn failure or SIGINT, inspect the receipt before deciding what to do next.\nDefault compensation kills only panes whose creation the journal proved, in\nreverse order. A foreign pane moved into a new window remains. `--keep-partial`\nretains proven creations instead. Cleanup failures and creations whose IDs\ncould not be bound remain explicit. Never rerun an uncertain mutation solely\nbecause its caller was interrupted.\n\nThe [native recovery example](recovery.md) demonstrates the cancellation,\ninspection and fresh-postcondition sequence for a retained operation. Workspace\ncallers use the same discipline with `Workspace.inspect`: read the available\njournal, identify proven effects, then choose compensation or another explicit\naction. A saved JSON receipt describes observations; it is not an executable\ntarget or a transaction to replay.\n\nThe execution journal is retained in process memory. `await` initiates steps\nonly once for a particular execution handle; a new handle or CLI invocation\nstarts a new execution. Operation IDs correlate receipts and do not suppress\nduplicates. Neither a retained handle nor an exported receipt is a durable\nwrite-ahead log. Compensation cannot undo files, network requests or other\neffects of the programs launched in panes.\n\n| Exit | Meaning |\n| --- | --- |\n| 0 | Validation, planning or apply succeeded |\n| 2 | Invalid arguments or document |\n| 3 | Required endpoint missing |\n| 4 | Collision, changed document or stale plan |\n| 5 | Failed, partial or uncertain apply; inspect the receipt |\n| 6 | Transport, capability or result-delivery failure |\n| 130 | SIGINT; the available journal is emitted within the cleanup bound |\n\nSIGINT does not undo admitted commands. Receipt output is bounded; a blocked or\nbroken stdout cannot produce a successful exit. Forced process termination\ncannot promise a delivered receipt. Expected failures are distinct from Eio\ncancellation in the native API, which propagates cancellation to the caller.\n\n## Bounds and native callers\n\nDocuments use UTF-8 JSON with a 64 KiB input bound and depth limit 32. Unknown\nand duplicate properties fail. Configurations allow at most 64 windows and 256\npanes; a plan allows at most 4096 actions. Plans and receipts have a 4 MiB output\nbound. Plans omit environment values, option values and startup text. They can\nstill contain command arguments and paths; treat them as application data.\n\nFor native code, use `Libtmux_json.Workspace.of_string`,\n`Libtmux_workspace.Plan.make`, and the backend's `Workspace.submit` or\n`Workspace.submit_bootstrap`. `inspect` reads the retained journal locally;\n`await` performs I/O. The application owns the Eio switch and scheduler.\nSee the [API reference](api.md), [control outcomes](control.md) and\n[compatibility evidence](compatibility.md).\n" } ] } diff --git a/site/src/data/tmux-usage/ocaml.json b/site/src/data/tmux-usage/ocaml.json index 2d574fe36..31ed57495 100644 --- a/site/src/data/tmux-usage/ocaml.json +++ b/site/src/data/tmux-usage/ocaml.json @@ -94,7 +94,7 @@ ], "port": "ocaml", "repo": "libtmux/libtmux-ocaml", - "revision": "427271bfc31ed1c1acd1112d1b2ca7fef59b1af2", + "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", "schemaVersion": 1, "symbols": { "Libtmux_eio.Client.break_pane": [ @@ -103,8 +103,8 @@ "evidence": [ "unix/engine.ml:288", "eio/generated_operations.ml:103", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:317", "lib/commands.ml:318", "unix/command_encoding.ml:389", @@ -119,8 +119,8 @@ "command": "list-clients", "evidence": [ "unix/acquisition.ml:118", - "eio/libtmux_eio.ml:400", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:363", + "eio/libtmux_eio.ml:352", "unix/engine.ml:294" ], "reviewed": true, @@ -130,8 +130,8 @@ "command": "list-panes", "evidence": [ "unix/acquisition.ml:65", - "eio/libtmux_eio.ml:400", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:363", + "eio/libtmux_eio.ml:352", "unix/engine.ml:294" ], "reviewed": true, @@ -141,8 +141,8 @@ "command": "list-sessions", "evidence": [ "unix/acquisition.ml:16", - "eio/libtmux_eio.ml:400", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:363", + "eio/libtmux_eio.ml:352", "unix/engine.ml:294" ], "reviewed": true, @@ -152,8 +152,8 @@ "command": "list-windows", "evidence": [ "unix/acquisition.ml:30", - "eio/libtmux_eio.ml:400", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:363", + "eio/libtmux_eio.ml:352", "unix/engine.ml:294" ], "reviewed": true, @@ -166,8 +166,8 @@ "evidence": [ "unix/environment_io.ml:103", "eio/generated_operations.ml:42", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:267", "lib/commands.ml:268", "unix/engine.ml:101", @@ -183,8 +183,8 @@ "evidence": [ "unix/options_io.ml:199", "eio/generated_operations.ml:73", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:294", "lib/commands.ml:294", "unix/engine.ml:120", @@ -200,8 +200,8 @@ "evidence": [ "unix/options_io.ml:199", "eio/generated_operations.ml:55", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:279", "lib/commands.ml:280", "unix/engine.ml:107", @@ -216,8 +216,8 @@ "command": "capture-pane", "evidence": [ "unix/rendered.ml:88", - "eio/libtmux_eio.ml:409", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:372", + "eio/libtmux_eio.ml:352", "unix/engine.ml:311" ], "reviewed": true, @@ -227,8 +227,8 @@ "command": "delete-buffer", "evidence": [ "unix/rendered.ml:81", - "eio/libtmux_eio.ml:409", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:372", + "eio/libtmux_eio.ml:352", "unix/engine.ml:311" ], "incidental": true, @@ -240,8 +240,8 @@ "command": "list-buffers", "evidence": [ "unix/rendered.ml:100", - "eio/libtmux_eio.ml:409", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:372", + "eio/libtmux_eio.ml:352", "unix/engine.ml:311" ], "incidental": true, @@ -252,8 +252,8 @@ "command": "save-buffer", "evidence": [ "unix/rendered.ml:125", - "eio/libtmux_eio.ml:409", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:372", + "eio/libtmux_eio.ml:352", "unix/engine.ml:311" ], "incidental": true, @@ -264,8 +264,8 @@ "command": "show-hooks", "evidence": [ "unix/rendered.ml:27", - "eio/libtmux_eio.ml:409", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:372", + "eio/libtmux_eio.ml:352", "unix/engine.ml:311" ], "incidental": true, @@ -279,8 +279,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:168", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:364", "lib/commands.ml:364", "unix/command_encoding.ml:285", @@ -296,8 +296,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:70", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:291", "lib/commands.ml:292", "unix/command_encoding.ml:315", @@ -313,8 +313,8 @@ "evidence": [ "unix/engine.ml:288", "eio/generated_operations.ml:90", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:307", "lib/commands.ml:309", "unix/command_encoding.ml:356", @@ -330,8 +330,8 @@ "evidence": [ "unix/engine.ml:288", "eio/generated_operations.ml:95", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:311", "lib/commands.ml:312", "unix/command_encoding.ml:372", @@ -347,8 +347,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:148", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:348", "lib/commands.ml:349", "unix/command_encoding.ml:263", @@ -363,8 +363,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:148", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:348", "lib/commands.ml:349", "unix/command_encoding.ml:263", @@ -381,8 +381,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:113", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:322", "lib/commands.ml:322", "unix/command_encoding.ml:242", @@ -398,8 +398,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:107", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:320", "lib/commands.ml:320", "unix/command_encoding.ml:240", @@ -415,8 +415,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:110", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:321", "lib/commands.ml:321", "unix/command_encoding.ml:241", @@ -432,8 +432,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:123", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:330", "lib/commands.ml:331", "unix/command_encoding.ml:248", @@ -449,8 +449,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:151", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:351", "lib/commands.ml:352", "unix/command_encoding.ml:268", @@ -466,8 +466,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:127", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:333", "lib/commands.ml:334", "unix/command_encoding.ml:250", @@ -483,8 +483,8 @@ "evidence": [ "unix/options_io.ml:223", "eio/generated_operations.ml:76", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:296", "lib/commands.ml:297", "unix/engine.ml:127", @@ -500,8 +500,8 @@ "evidence": [ "unix/options_io.ml:223", "eio/generated_operations.ml:59", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:282", "lib/commands.ml:283", "unix/engine.ml:113", @@ -517,8 +517,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:22", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:256", "lib/commands.ml:257", "unix/command_encoding.ml:229", @@ -534,8 +534,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:52", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:276", "lib/commands.ml:277", "unix/command_encoding.ml:295", @@ -551,8 +551,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:84", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:302", "lib/commands.ml:303", "unix/command_encoding.ml:329", @@ -568,8 +568,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:12", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:248", "lib/commands.ml:248", "unix/engine.ml:154", @@ -585,8 +585,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:9", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:247", "lib/commands.ml:247", "unix/engine.ml:145", @@ -602,8 +602,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:19", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:253", "lib/commands.ml:254", "unix/command_encoding.ml:227", @@ -619,8 +619,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:26", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:259", "lib/commands.ml:260", "unix/command_encoding.ml:232", @@ -636,8 +636,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:138", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:339", "lib/commands.ml:340", "unix/command_encoding.ml:257", @@ -653,8 +653,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:141", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:342", "lib/commands.ml:343", "unix/command_encoding.ml:259", @@ -670,8 +670,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:164", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:361", "lib/commands.ml:362", "unix/command_encoding.ml:279", @@ -687,8 +687,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:158", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:356", "lib/commands.ml:357", "unix/command_encoding.ml:274", @@ -704,8 +704,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:87", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:305", "lib/commands.ml:305", "unix/command_encoding.ml:333", @@ -721,8 +721,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:145", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:345", "lib/commands.ml:346", "unix/command_encoding.ml:261", @@ -738,8 +738,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:132", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:336", "lib/commands.ml:336", "unix/command_encoding.ml:254", @@ -755,8 +755,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:116", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:324", "lib/commands.ml:325", "unix/command_encoding.ml:243", @@ -772,8 +772,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:33", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:263", "lib/commands.ml:263", "unix/engine.ml:165", @@ -789,8 +789,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:30", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:262", "lib/commands.ml:262", "unix/engine.ml:163", @@ -806,8 +806,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:45", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:270", "lib/commands.ml:271", "unix/command_encoding.ml:286", @@ -823,8 +823,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:80", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:299", "lib/commands.ml:300", "unix/command_encoding.ml:320", @@ -840,8 +840,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:63", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:285", "lib/commands.ml:286", "unix/command_encoding.ml:298", @@ -857,8 +857,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:135", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:337", "lib/commands.ml:337", "unix/command_encoding.ml:255", @@ -874,8 +874,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:39", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:265", "lib/commands.ml:265", "unix/engine.ml:175", @@ -891,8 +891,8 @@ "evidence": [ "unix/engine.ml:288", "eio/generated_operations.ml:99", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:314", "lib/commands.ml:315", "unix/command_encoding.ml:381", @@ -906,16 +906,16 @@ { "command": "display-message", "evidence": [ - "unix/streaming.ml:360", - "eio/libtmux_eio.ml:395" + "unix/streaming.ml:374", + "eio/libtmux_eio.ml:358" ], "scope": null }, { "command": "refresh-client", "evidence": [ - "unix/streaming.ml:376", - "eio/libtmux_eio.ml:395" + "unix/streaming.ml:390", + "eio/libtmux_eio.ml:358" ], "scope": null, "when": "when opening a new stream lane" @@ -927,8 +927,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:155", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:354", "lib/commands.ml:354", "unix/command_encoding.ml:272", @@ -944,8 +944,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:15", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:250", "lib/commands.ml:251", "unix/command_encoding.ml:223", @@ -961,8 +961,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:119", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:327", "lib/commands.ml:328", "unix/command_encoding.ml:245", @@ -978,8 +978,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:49", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:273", "lib/commands.ml:274", "unix/command_encoding.ml:292", @@ -995,8 +995,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:67", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:288", "lib/commands.ml:289", "unix/command_encoding.ml:311", @@ -1012,8 +1012,8 @@ "evidence": [ "unix/engine.ml:315", "eio/generated_operations.ml:36", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:264", "lib/commands.ml:264", "unix/engine.ml:175", @@ -1029,8 +1029,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:161", - "eio/libtmux_eio.ml:402", - "eio/libtmux_eio.ml:390", + "eio/libtmux_eio.ml:365", + "eio/libtmux_eio.ml:352", "lib/commands.ml:359", "lib/commands.ml:359", "unix/command_encoding.ml:278", @@ -1046,8 +1046,8 @@ "evidence": [ "unix/engine.ml:288", "unix/generated_operations.ml:117", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:317", "lib/commands.ml:318", "unix/command_encoding.ml:389", @@ -1062,8 +1062,8 @@ "command": "list-clients", "evidence": [ "unix/acquisition.ml:118", - "unix/libtmux_unix.ml:100", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:109", + "unix/libtmux_unix.ml:101", "unix/engine.ml:294" ], "reviewed": true, @@ -1073,8 +1073,8 @@ "command": "list-panes", "evidence": [ "unix/acquisition.ml:65", - "unix/libtmux_unix.ml:100", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:109", + "unix/libtmux_unix.ml:101", "unix/engine.ml:294" ], "reviewed": true, @@ -1084,8 +1084,8 @@ "command": "list-sessions", "evidence": [ "unix/acquisition.ml:16", - "unix/libtmux_unix.ml:100", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:109", + "unix/libtmux_unix.ml:101", "unix/engine.ml:294" ], "reviewed": true, @@ -1095,8 +1095,8 @@ "command": "list-windows", "evidence": [ "unix/acquisition.ml:30", - "unix/libtmux_unix.ml:100", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:109", + "unix/libtmux_unix.ml:101", "unix/engine.ml:294" ], "reviewed": true, @@ -1109,8 +1109,8 @@ "evidence": [ "unix/environment_io.ml:103", "unix/generated_operations.ml:49", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:267", "lib/commands.ml:268", "unix/engine.ml:101", @@ -1126,8 +1126,8 @@ "evidence": [ "unix/options_io.ml:199", "unix/generated_operations.ml:85", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:294", "lib/commands.ml:294", "unix/engine.ml:120", @@ -1143,8 +1143,8 @@ "evidence": [ "unix/options_io.ml:199", "unix/generated_operations.ml:65", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:279", "lib/commands.ml:280", "unix/engine.ml:107", @@ -1159,8 +1159,8 @@ "command": "capture-pane", "evidence": [ "unix/rendered.ml:88", - "unix/libtmux_unix.ml:109", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:118", + "unix/libtmux_unix.ml:101", "unix/engine.ml:311" ], "reviewed": true, @@ -1170,8 +1170,8 @@ "command": "delete-buffer", "evidence": [ "unix/rendered.ml:81", - "unix/libtmux_unix.ml:109", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:118", + "unix/libtmux_unix.ml:101", "unix/engine.ml:311" ], "incidental": true, @@ -1183,8 +1183,8 @@ "command": "list-buffers", "evidence": [ "unix/rendered.ml:100", - "unix/libtmux_unix.ml:109", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:118", + "unix/libtmux_unix.ml:101", "unix/engine.ml:311" ], "incidental": true, @@ -1195,8 +1195,8 @@ "command": "save-buffer", "evidence": [ "unix/rendered.ml:125", - "unix/libtmux_unix.ml:109", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:118", + "unix/libtmux_unix.ml:101", "unix/engine.ml:311" ], "incidental": true, @@ -1207,8 +1207,8 @@ "command": "show-hooks", "evidence": [ "unix/rendered.ml:27", - "unix/libtmux_unix.ml:109", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:118", + "unix/libtmux_unix.ml:101", "unix/engine.ml:311" ], "incidental": true, @@ -1222,8 +1222,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:189", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:364", "lib/commands.ml:364", "unix/command_encoding.ml:285", @@ -1239,8 +1239,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:81", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:291", "lib/commands.ml:292", "unix/command_encoding.ml:315", @@ -1256,8 +1256,8 @@ "evidence": [ "unix/engine.ml:288", "unix/generated_operations.ml:104", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:307", "lib/commands.ml:309", "unix/command_encoding.ml:356", @@ -1273,8 +1273,8 @@ "evidence": [ "unix/engine.ml:288", "unix/generated_operations.ml:109", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:311", "lib/commands.ml:312", "unix/command_encoding.ml:372", @@ -1290,8 +1290,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:167", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:348", "lib/commands.ml:349", "unix/command_encoding.ml:263", @@ -1306,8 +1306,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:167", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:348", "lib/commands.ml:349", "unix/command_encoding.ml:263", @@ -1324,8 +1324,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:127", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:322", "lib/commands.ml:322", "unix/command_encoding.ml:242", @@ -1341,8 +1341,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:121", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:320", "lib/commands.ml:320", "unix/command_encoding.ml:240", @@ -1358,8 +1358,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:124", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:321", "lib/commands.ml:321", "unix/command_encoding.ml:241", @@ -1375,8 +1375,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:138", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:330", "lib/commands.ml:331", "unix/command_encoding.ml:248", @@ -1392,8 +1392,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:171", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:351", "lib/commands.ml:352", "unix/command_encoding.ml:268", @@ -1409,8 +1409,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:143", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:333", "lib/commands.ml:334", "unix/command_encoding.ml:250", @@ -1426,8 +1426,8 @@ "evidence": [ "unix/options_io.ml:223", "unix/generated_operations.ml:88", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:296", "lib/commands.ml:297", "unix/engine.ml:127", @@ -1443,8 +1443,8 @@ "evidence": [ "unix/options_io.ml:223", "unix/generated_operations.ml:69", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:282", "lib/commands.ml:283", "unix/engine.ml:113", @@ -1460,8 +1460,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:29", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:256", "lib/commands.ml:257", "unix/command_encoding.ml:229", @@ -1477,8 +1477,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:61", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:276", "lib/commands.ml:277", "unix/command_encoding.ml:295", @@ -1494,8 +1494,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:96", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:302", "lib/commands.ml:303", "unix/command_encoding.ml:329", @@ -1511,8 +1511,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:17", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:248", "lib/commands.ml:248", "unix/engine.ml:154", @@ -1528,8 +1528,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:13", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:247", "lib/commands.ml:247", "unix/engine.ml:145", @@ -1545,8 +1545,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:25", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:253", "lib/commands.ml:254", "unix/command_encoding.ml:227", @@ -1562,8 +1562,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:33", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:259", "lib/commands.ml:260", "unix/command_encoding.ml:232", @@ -1579,8 +1579,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:155", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:339", "lib/commands.ml:340", "unix/command_encoding.ml:257", @@ -1596,8 +1596,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:159", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:342", "lib/commands.ml:343", "unix/command_encoding.ml:259", @@ -1613,8 +1613,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:185", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:361", "lib/commands.ml:362", "unix/command_encoding.ml:279", @@ -1630,8 +1630,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:178", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:356", "lib/commands.ml:357", "unix/command_encoding.ml:274", @@ -1647,8 +1647,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:100", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:305", "lib/commands.ml:305", "unix/command_encoding.ml:333", @@ -1664,8 +1664,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:163", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:345", "lib/commands.ml:346", "unix/command_encoding.ml:261", @@ -1681,8 +1681,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:148", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:336", "lib/commands.ml:336", "unix/command_encoding.ml:254", @@ -1698,8 +1698,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:130", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:324", "lib/commands.ml:325", "unix/command_encoding.ml:243", @@ -1715,8 +1715,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:40", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:263", "lib/commands.ml:263", "unix/engine.ml:165", @@ -1732,8 +1732,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:37", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:262", "lib/commands.ml:262", "unix/engine.ml:163", @@ -1749,8 +1749,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:53", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:270", "lib/commands.ml:271", "unix/command_encoding.ml:286", @@ -1766,8 +1766,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:92", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:299", "lib/commands.ml:300", "unix/command_encoding.ml:320", @@ -1783,8 +1783,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:73", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:285", "lib/commands.ml:286", "unix/command_encoding.ml:298", @@ -1800,8 +1800,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:151", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:337", "lib/commands.ml:337", "unix/command_encoding.ml:255", @@ -1817,8 +1817,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:46", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:265", "lib/commands.ml:265", "unix/engine.ml:175", @@ -1834,8 +1834,8 @@ "evidence": [ "unix/engine.ml:288", "unix/generated_operations.ml:113", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:314", "lib/commands.ml:315", "unix/command_encoding.ml:381", @@ -1849,16 +1849,16 @@ { "command": "display-message", "evidence": [ - "unix/streaming.ml:360", - "unix/libtmux_unix.ml:97" + "unix/streaming.ml:374", + "unix/libtmux_unix.ml:106" ], "scope": null }, { "command": "refresh-client", "evidence": [ - "unix/streaming.ml:376", - "unix/libtmux_unix.ml:97" + "unix/streaming.ml:390", + "unix/libtmux_unix.ml:106" ], "scope": null, "when": "when opening a new stream lane" @@ -1870,8 +1870,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:175", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:354", "lib/commands.ml:354", "unix/command_encoding.ml:272", @@ -1887,8 +1887,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:21", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:250", "lib/commands.ml:251", "unix/command_encoding.ml:223", @@ -1904,8 +1904,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:134", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:327", "lib/commands.ml:328", "unix/command_encoding.ml:245", @@ -1921,8 +1921,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:57", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:273", "lib/commands.ml:274", "unix/command_encoding.ml:292", @@ -1938,8 +1938,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:77", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:288", "lib/commands.ml:289", "unix/command_encoding.ml:311", @@ -1955,8 +1955,8 @@ "evidence": [ "unix/engine.ml:315", "unix/generated_operations.ml:43", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:264", "lib/commands.ml:264", "unix/engine.ml:175", @@ -1972,8 +1972,8 @@ "evidence": [ "unix/engine.ml:283", "unix/generated_operations.ml:182", - "unix/libtmux_unix.ml:102", - "unix/libtmux_unix.ml:92", + "unix/libtmux_unix.ml:111", + "unix/libtmux_unix.ml:101", "lib/commands.ml:359", "lib/commands.ml:359", "unix/command_encoding.ml:278", diff --git a/site/src/lib/port-documentation.ts b/site/src/lib/port-documentation.ts index 484828a9a..e0f93cf9f 100644 --- a/site/src/lib/port-documentation.ts +++ b/site/src/lib/port-documentation.ts @@ -74,7 +74,7 @@ const PORT_DOCUMENTATION: Readonly> = { description: 'Validate, preview and apply JSON workspaces with retained execution receipts.' }, ], sourceGuides: [ - ...['getting-started', 'graph', 'queries', 'control', 'recovery', 'streaming', 'showcases', 'packages', 'compatibility', 'testing', 'benchmarking', 'status'].map((name, index) => + ...['getting-started', 'graph', 'queries', 'query-interchange', 'control', 'recovery', 'streaming', 'showcases', 'packages', 'compatibility', 'testing', 'benchmarking', 'status'].map((name, index) => guide(`docs/${name}.md`, `guides/${name}`, 'core', { aliases: [], sidebar: { group: 'Guides', order: index + 1 } })), guide('docs/workspaces.md', 'workspace/source-guide', 'workspace', { title: 'Workspace guide', product: 'workspace', package: 'workspace', aliases: [] }), ], From e5bc45bba18c991cd63679ac807433b0d2e13858 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 8 Nov 2026 15:51:00 -0600 Subject: [PATCH 22/26] docs(ocaml) Refresh support policy and retained-outcome examples why: OCaml supports every tmux release from 3.3a through 3.8 while CI exercises only those endpoints. The reference and examples must describe the same source. what: - Pin typed interfaces and source-owned guides to native revision 3c0c07a. - Align prerequisites and showcase validation with the 3.3a support floor. - Remove obsolete OCaml minimum-version exemptions without changing siblings. - Rebind command citations to their exact implementation and refresh indexes. --- .../api-model/src/languages/ocaml-examples.ts | 4 +- scripts/tmux-usage/claims.json | 228 ++++++++--------- scripts/tmux-usage/not-senders.json | 2 +- site/src/data/api/ocaml.json | 2 +- site/src/data/api/ocaml.paths.json | 2 +- site/src/data/example-sources.json | 24 +- site/src/data/home-examples.json | 2 +- site/src/data/manifest-packages.json | 14 +- site/src/data/mentions.json | 35 +++ site/src/data/port-guides/ocaml.json | 18 +- site/src/data/tmux-usage/ocaml.json | 234 +++++++++--------- site/src/lib/ports.ts | 2 +- site/test/tmux-minimum.test.ts | 18 -- 13 files changed, 301 insertions(+), 284 deletions(-) diff --git a/packages/api-model/src/languages/ocaml-examples.ts b/packages/api-model/src/languages/ocaml-examples.ts index 1f93a3fb6..67fa6a75c 100644 --- a/packages/api-model/src/languages/ocaml-examples.ts +++ b/packages/api-model/src/languages/ocaml-examples.ts @@ -25,7 +25,7 @@ export function attachCompleteOcamlExamples(symbols: ApiSymbol[], read: (path: s const manifest = JSON.parse(read('examples/showcase.json')) as { schema: string; tmux_floor: string; ci: { workflow: string; job: string; runner: string }; examples: Showcase[] } - if (manifest.schema !== 'libtmux.showcase/1' || manifest.tmux_floor !== '3.3' || + if (manifest.schema !== 'libtmux.showcase/1' || manifest.tmux_floor !== '3.3a' || manifest.ci.workflow !== '.github/workflows/ocaml.yml' || manifest.ci.job !== 'native' || manifest.ci.runner !== 'test/showcase_test.py' || !Array.isArray(manifest.examples)) { throw new Error('Invalid OCaml CI showcase manifest') @@ -46,7 +46,7 @@ export function attachCompleteOcamlExamples(symbols: ApiSymbol[], read: (path: s const symbol = matches[0]! symbol.doc = { summary: '', ...symbol.doc, examples: [...(symbol.doc?.examples ?? []), { lang: 'ocaml', code, sourceUrl, - intro: `${example.title}. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide.` }, + intro: `${example.title}. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide.` }, { lang: 'console', code: `$ ${example.command.join(' ')}\n`, intro: 'Run the recorded entry point:' }, { lang: 'text', code: example.expected_stdout_line + '\n', intro: 'Expected outcome line, after the temporary socket path:' }, ] } diff --git a/scripts/tmux-usage/claims.json b/scripts/tmux-usage/claims.json index e0a328e8a..4c10ea298 100644 --- a/scripts/tmux-usage/claims.json +++ b/scripts/tmux-usage/claims.json @@ -18312,13 +18312,13 @@ "in": "Libtmux_eio.Client.rename_window" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18370,13 +18370,13 @@ "in": "Libtmux_eio.Client.rename_session" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18428,13 +18428,13 @@ "in": "Libtmux_eio.Client.switch_client_at" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18486,13 +18486,13 @@ "in": "Libtmux_eio.Client.request_detach_client_at" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18544,13 +18544,13 @@ "in": "Libtmux_eio.Client.refresh_client_at" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18602,13 +18602,13 @@ "in": "Libtmux_eio.Client.resize_control_client_at" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18660,13 +18660,13 @@ "in": "Libtmux_eio.Client.send_text" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18718,13 +18718,13 @@ "in": "Libtmux_eio.Client.send_keys" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18776,13 +18776,13 @@ "in": "Libtmux_eio.Client.wait_for" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18834,13 +18834,13 @@ "in": "Libtmux_eio.Client.signal" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18892,13 +18892,13 @@ "in": "Libtmux_eio.Client.capture_environment" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -18950,13 +18950,13 @@ "in": "Libtmux_eio.Client.set_environment" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19008,13 +19008,13 @@ "in": "Libtmux_eio.Client.unset_environment" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19066,13 +19066,13 @@ "in": "Libtmux_eio.Client.remove_environment" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19124,13 +19124,13 @@ "in": "Libtmux_eio.Client.capture_options" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19182,13 +19182,13 @@ "in": "Libtmux_eio.Client.read_option" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19240,13 +19240,13 @@ "in": "Libtmux_eio.Client.set_option" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19298,13 +19298,13 @@ "in": "Libtmux_eio.Client.unset_option" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19356,13 +19356,13 @@ "in": "Libtmux_eio.Client.clear_option_array" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19414,13 +19414,13 @@ "in": "Libtmux_eio.Client.capture_hooks" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19472,13 +19472,13 @@ "in": "Libtmux_eio.Client.read_hook" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19530,13 +19530,13 @@ "in": "Libtmux_eio.Client.set_hook" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19588,13 +19588,13 @@ "in": "Libtmux_eio.Client.remove_hook" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19646,13 +19646,13 @@ "in": "Libtmux_eio.Client.run_hook" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19704,13 +19704,13 @@ "in": "Libtmux_eio.Client.create_session" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19762,13 +19762,13 @@ "in": "Libtmux_eio.Client.create_window" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19820,13 +19820,13 @@ "in": "Libtmux_eio.Client.split_pane" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19878,13 +19878,13 @@ "in": "Libtmux_eio.Client.break_pane" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19936,13 +19936,13 @@ "in": "Libtmux_eio.Client.kill_session" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -19994,13 +19994,13 @@ "in": "Libtmux_eio.Client.kill_window" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20052,13 +20052,13 @@ "in": "Libtmux_eio.Client.kill_pane" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20110,13 +20110,13 @@ "in": "Libtmux_eio.Client.select_window_at" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20168,13 +20168,13 @@ "in": "Libtmux_eio.Client.unlink_window_at" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20226,13 +20226,13 @@ "in": "Libtmux_eio.Client.link_window" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20284,13 +20284,13 @@ "in": "Libtmux_eio.Client.move_window_at" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20342,13 +20342,13 @@ "in": "Libtmux_eio.Client.select_pane" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20400,13 +20400,13 @@ "in": "Libtmux_eio.Client.set_pane_title" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20458,13 +20458,13 @@ "in": "Libtmux_eio.Client.resize_pane" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20516,13 +20516,13 @@ "in": "Libtmux_eio.Client.resize_window" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20574,13 +20574,13 @@ "in": "Libtmux_eio.Client.select_layout" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20632,13 +20632,13 @@ "in": "Libtmux_eio.Client.cycle_layout" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20691,13 +20691,13 @@ "in": "Libtmux_eio.Client.cycle_layout" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20750,13 +20750,13 @@ "in": "Libtmux_eio.Client.move_pane" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20808,13 +20808,13 @@ "in": "Libtmux_eio.Client.swap_panes" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20866,13 +20866,13 @@ "in": "Libtmux_eio.Client.rotate_panes" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20924,13 +20924,13 @@ "in": "Libtmux_eio.Client.zoom_pane" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -20982,13 +20982,13 @@ "in": "Libtmux_eio.Client.respawn_pane" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21040,13 +21040,13 @@ "in": "Libtmux_eio.Client.clear_history" }, { - "at": "eio/libtmux_eio.ml:365", + "at": "eio/libtmux_eio.ml:375", "has": [ "include Generated_operations.Make (struct" ] }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21091,14 +21091,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:363", + "at": "eio/libtmux_eio.ml:373", "has": [ "let capture t = run t (Operations.capture ())" ], "in": "Libtmux_eio.Client.capture" }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21125,14 +21125,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:363", + "at": "eio/libtmux_eio.ml:373", "has": [ "let capture t = run t (Operations.capture ())" ], "in": "Libtmux_eio.Client.capture" }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21159,14 +21159,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:363", + "at": "eio/libtmux_eio.ml:373", "has": [ "let capture t = run t (Operations.capture ())" ], "in": "Libtmux_eio.Client.capture" }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21193,14 +21193,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:363", + "at": "eio/libtmux_eio.ml:373", "has": [ "let capture t = run t (Operations.capture ())" ], "in": "Libtmux_eio.Client.capture" }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21227,14 +21227,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:372", + "at": "eio/libtmux_eio.ml:382", "has": [ "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" ], "in": "Libtmux_eio.Client.capture_text" }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21261,14 +21261,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:372", + "at": "eio/libtmux_eio.ml:382", "has": [ "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" ], "in": "Libtmux_eio.Client.capture_text" }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21296,14 +21296,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:372", + "at": "eio/libtmux_eio.ml:382", "has": [ "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" ], "in": "Libtmux_eio.Client.capture_text" }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21331,14 +21331,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:372", + "at": "eio/libtmux_eio.ml:382", "has": [ "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" ], "in": "Libtmux_eio.Client.capture_text" }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] @@ -21367,14 +21367,14 @@ ] }, { - "at": "eio/libtmux_eio.ml:372", + "at": "eio/libtmux_eio.ml:382", "has": [ "run t (Operations.capture_text ?scratch_dir pane ~start ~end_)" ], "in": "Libtmux_eio.Client.capture_text" }, { - "at": "eio/libtmux_eio.ml:352", + "at": "eio/libtmux_eio.ml:362", "has": [ "let run t command = Result.bind (submit t command) await" ] diff --git a/scripts/tmux-usage/not-senders.json b/scripts/tmux-usage/not-senders.json index 668a409f4..2cc62a8f8 100644 --- a/scripts/tmux-usage/not-senders.json +++ b/scripts/tmux-usage/not-senders.json @@ -4768,7 +4768,7 @@ ] }, { - "at": "eio/libtmux_eio.ml:376", + "at": "eio/libtmux_eio.ml:386", "has": [ "Observation_wait.rendered" ] diff --git a/site/src/data/api/ocaml.json b/site/src/data/api/ocaml.json index 5f9fa9a43..ed3d04bba 100644 --- a/site/src/data/api/ocaml.json +++ b/site/src/data/api/ocaml.json @@ -1 +1 @@ -{"port":"ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","repo":"libtmux/libtmux-ocaml","sources":[{"product":"core","package":"libtmux","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"core","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"workspace","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"core","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"workspace","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"core","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},{"product":"workspace","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}],"extractor":"OCaml 5.5.2 compiler-libs .cmti + odoc-parser 3.2.2","nativeProvenance":{"files":[{"path":"lib/libtmux.mli","sha256":"8262ba511b3d25d7c8a3ff97dc5a7a3811dabaab4cd6ee06416ceba4426d6ec9"},{"path":"_build/install/default/lib/libtmux/libtmux.cmti","sha256":"1e4e255170c306f1b2c8147d42ab0128bf37d0c3df5e4c6e89d92bf8f32791a9"},{"path":"workspace/libtmux_workspace.mli","sha256":"7f828d52abc58665510de7cf87bc03479d85feaaca5f00e678fda58f47713a4d"},{"path":"_build/install/default/lib/libtmux-workspace/libtmux_workspace.cmti","sha256":"d8f04955cadde1923e7b5444b37f91b07abba65b0b7f4c536c39eae020d4508e"},{"path":"json/libtmux_json.mli","sha256":"0df1e135b74307a8ef363bcd484e499c463172f6a0451a8ebbd511ec8adb57bc"},{"path":"_build/install/default/lib/libtmux-json/libtmux_json.cmti","sha256":"ba11efc5bcb909c7680eb332f45916cac3c8657ddcdca0cce97552eac3fbad23"},{"path":"unix/libtmux_unix.mli","sha256":"5be5fbbf96adab6ed3d3ac68ae3bd698128d044a41dac2a37d29c3754f51a0fa"},{"path":"_build/install/default/lib/libtmux-unix/libtmux_unix.cmti","sha256":"35cf4eeb0f0f2148aa4ee4e02f48742d44e0a127327afee95d37406998fb9c06"},{"path":"eio/libtmux_eio.mli","sha256":"a5f6f29e78fa079d4a7e2aecc1a5d5767fbd4ea5c371ccb70a393d40411e86fb"},{"path":"_build/install/default/lib/libtmux-eio/libtmux_eio.cmti","sha256":"57422a797bd595464cb61c8a53a8db78edebf3f282448b8face2035334933044"}],"exporter":{"revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","baseRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287","files":[{"path":"tools/api_export.ml","sha256":"34b59e728494aeed3595c5a88e1a1482d7dfa65ddcda725e43cd6c21ee131945"},{"path":"tools/api_doc.ml","sha256":"94d9b4dff3f86d570a31161019e06cea250926200b8cc4562f7d14f9f3cd0d59"},{"path":"tools/export_api.py","sha256":"5188348adc7e3ea577889e144de30da6204ec14ec6fc1577f86a732bc7625973"},{"path":"tools/api_modules.json","sha256":"233ef409440fa5015f522a11933e74f059a301aecbce5ab5126f14e8a35614cf"},{"path":"tools/dune","sha256":"777e122d729870f9f8dc6fc13485ce0eea29f0e741b9bb22cb0245d433ff9442"}],"compiler":"5.5.2","schema":"libtmux.ocaml-api/1","publicManifest":"tools/api_modules.json"}},"symbols":[{"id":"Libtmux","publicId":"Libtmux","qualifiedName":"Libtmux","name":"Libtmux","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Native captured values, typed queries and explicit command descriptions.\n\n A {!Snapshot.t} owns immutable observations. Entity accessors and query\n evaluation perform no I/O, preserve captured order and remain usable after\n client closure. Use [Libtmux_unix.Client] or [Libtmux_eio.Client] to acquire\n or mutate state.\n\n Retaining any entity retains its complete snapshot graph. Copy scalar\n summaries when captured relationships are no longer needed. Targets omit the\n graph but remain restricted to their original {!Source.t}.\n\n {1 Typical flow}\n\n Capture explicitly, traverse {!Session.window_links} and {!Window.panes},\n filter with [Seq.filter] or {!Query.matching}, establish cardinality with\n {!Query.exactly_one}, then submit a command with a bound target.\n\n The core depends only on the standard library. Its abstract observations are\n safe to share; live clients and subscriptions belong to their backend.\n\n See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md}graph\n guide} for window links and the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} for native predicates and typed expressions. "],"declarations":[{"kind":"module","text":"","source":{"file":"lib/libtmux.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"doc":{"summary":"Native captured values, typed queries and explicit command descriptions.","body":"A {!Snapshot.t} owns immutable observations. Entity accessors and query evaluation perform no I/O, preserve captured order and remain usable after client closure. Use `Libtmux_unix.Client` or `Libtmux_eio.Client` to acquire or mutate state.\n\nRetaining any entity retains its complete snapshot graph. Copy scalar summaries when captured relationships are no longer needed. Targets omit the graph but remain restricted to their original {!Source.t}.\n\n## Typical flow\n\nCapture explicitly, traverse {!Session.window_links} and {!Window.panes}, filter with `Seq.filter` or {!Query.matching}, establish cardinality with {!Query.exactly_one}, then submit a command with a bound target.\n\nThe core depends only on the standard library. Its abstract observations are safe to share; live clients and subscriptions belong to their backend.\n\nSee the [graph guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md) for window links and the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) for native predicates and typed expressions."},"slug":"libtmux"},{"id":"Libtmux.Captured_text","publicId":"Libtmux.Captured_text","qualifiedName":"Libtmux.Captured_text","name":"Captured_text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Captured_text : sig\n type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. *)\nend","source":{"file":"lib/libtmux.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-captured_text"},{"id":"Libtmux.Captured_text.t","publicId":"Libtmux.Captured_text.t","qualifiedName":"Libtmux.Captured_text.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":713,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. "],"declarations":[{"kind":"struct","text":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":713,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Captured_text","doc":{"summary":"Ordinary rendered rows captured over an interval. This value has no implied relationship to a subscription cursor."},"signatures":[{"raw":"type t =\n {\n bytes: string ;\n source: Source.t ;\n pane: Pane.Id.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-captured_text-t"},{"id":"Libtmux.Captured_text.t.bytes","publicId":"Libtmux.Captured_text.t.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":714,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string;","source":{"file":"lib/libtmux.mli","line":714,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Captured_text.t","type":"string","qualifiedName":"Libtmux.Captured_text.bytes","slug":"libtmux-captured_text-t-bytes"},{"id":"Libtmux.Captured_text.t.finished_at_ns","publicId":"Libtmux.Captured_text.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":718,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":718,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.finished_at_ns","slug":"libtmux-captured_text-t-finished_at_ns"},{"id":"Libtmux.Captured_text.t.pane","publicId":"Libtmux.Captured_text.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":716,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":716,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Captured_text.t","type":"Pane.Id.t","qualifiedName":"Libtmux.Captured_text.pane","slug":"libtmux-captured_text-t-pane"},{"id":"Libtmux.Captured_text.t.source","publicId":"Libtmux.Captured_text.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":715,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":715,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Captured_text.t","type":"Source.t","qualifiedName":"Libtmux.Captured_text.source","slug":"libtmux-captured_text-t-source"},{"id":"Libtmux.Captured_text.t.started_at_ns","publicId":"Libtmux.Captured_text.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":717,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":717,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.started_at_ns","slug":"libtmux-captured_text-t-started_at_ns"},{"id":"Libtmux.Cardinality","publicId":"Libtmux.Cardinality","qualifiedName":"Libtmux.Cardinality","name":"Cardinality","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":685,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cardinality : sig\n type error = No_match | Multiple_matches of { at_least : int }\n\n val pp_error : Format.formatter -> error -> unit\nend","source":{"file":"lib/libtmux.mli","line":685,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-cardinality"},{"id":"Libtmux.Cardinality.error","publicId":"Libtmux.Cardinality.error","qualifiedName":"Libtmux.Cardinality.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error = No_match | Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"type error =\n | No_match \n | Multiple_matches of {\n at_least: int } ","params":[]}],"slug":"libtmux-cardinality-error"},{"id":"Libtmux.Cardinality.error.Multiple_matches","publicId":"Libtmux.Cardinality.error.Multiple_matches","name":"Multiple_matches","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Cardinality.error","variant":"struct","qualifiedName":"Libtmux.Cardinality.Multiple_matches","slug":"libtmux-cardinality-error-multiple_matches"},{"id":"Libtmux.Cardinality.error.Multiple_matches.at_least","publicId":"Libtmux.Cardinality.error.Multiple_matches.at_least","name":"at_least","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"at_least : int","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Cardinality.error.Multiple_matches","type":"int","qualifiedName":"Libtmux.Cardinality.at_least","slug":"libtmux-cardinality-error-multiple_matches-at_least"},{"id":"Libtmux.Cardinality.error.No_match","publicId":"Libtmux.Cardinality.error.No_match","name":"No_match","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"No_match","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Cardinality.error","variant":"unit","qualifiedName":"Libtmux.Cardinality.No_match","slug":"libtmux-cardinality-error-no_match"},{"id":"Libtmux.Cardinality.pp_error","publicId":"Libtmux.Cardinality.pp_error","qualifiedName":"Libtmux.Cardinality.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":688,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"lib/libtmux.mli","line":688,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux-cardinality-pp_error"},{"id":"Libtmux.Client_name","publicId":"Libtmux.Client_name","qualifiedName":"Libtmux.Client_name","name":"Client_name","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Client_name : sig\n type t\n (** A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. *)\n\n val source : t -> Source.t\n val to_string : t -> string\nend","source":{"file":"lib/libtmux.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-client_name"},{"id":"Libtmux.Client_name.source","publicId":"Libtmux.Client_name.source","qualifiedName":"Libtmux.Client_name.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_name-source"},{"id":"Libtmux.Client_name.t","publicId":"Libtmux.Client_name.t","qualifiedName":"Libtmux.Client_name.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_name","doc":{"summary":"A name in one connection generation, with current-name semantics. It does not identify a stable client incarnation; tmux may reuse client names."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_name-t"},{"id":"Libtmux.Client_name.to_string","publicId":"Libtmux.Client_name.to_string","qualifiedName":"Libtmux.Client_name.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_name-to_string"},{"id":"Libtmux.Client_observation","publicId":"Libtmux.Client_observation","qualifiedName":"Libtmux.Client_observation","name":"Client_observation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"and Client_observation : sig\n type t\n\n module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end\n\n val name : t -> string\n val pid : t -> int\n val width : t -> int\n\n val height : t -> int option\n (** No height is reported until the client has a started terminal. *)\n\n val control_mode : t -> bool\n val source : t -> Source.t\n\n val current_name : t -> Client_name.t\n (** Address whichever client has this name when a command executes. *)\n\n val session : t -> Session.t option\n (** [None] means the captured client has no attached session. *)\n\n val same_observation : t -> t -> bool\n (** Client names may be reused. No cross-snapshot entity equality is offered.\n *)\nend","source":{"file":"lib/libtmux.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-client_observation"},{"id":"Libtmux.Client_observation.Fields","publicId":"Libtmux.Client_observation.Fields","qualifiedName":"Libtmux.Client_observation.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":368,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":368,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-fields"},{"id":"Libtmux.Client_observation.Fields.control_mode","publicId":"Libtmux.Client_observation.Fields.control_mode","qualifiedName":"Libtmux.Client_observation.Fields.control_mode","name":"control_mode","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val control_mode : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val control_mode : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-client_observation-fields-control_mode"},{"id":"Libtmux.Client_observation.Fields.name","publicId":"Libtmux.Client_observation.Fields.name","qualifiedName":"Libtmux.Client_observation.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":369,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":369,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-client_observation-fields-name"},{"id":"Libtmux.Client_observation.Fields.pid","publicId":"Libtmux.Client_observation.Fields.pid","qualifiedName":"Libtmux.Client_observation.Fields.pid","name":"pid","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pid : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val pid : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-pid"},{"id":"Libtmux.Client_observation.Fields.width","publicId":"Libtmux.Client_observation.Fields.width","qualifiedName":"Libtmux.Client_observation.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":371,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":371,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-width"},{"id":"Libtmux.Client_observation.Relations","publicId":"Libtmux.Client_observation.Relations","qualifiedName":"Libtmux.Client_observation.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":375,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end","source":{"file":"lib/libtmux.mli","line":375,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-relations"},{"id":"Libtmux.Client_observation.Relations.session","publicId":"Libtmux.Client_observation.Relations.session","qualifiedName":"Libtmux.Client_observation.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":376,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.Optional.t","source":{"file":"lib/libtmux.mli","line":376,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.Optional.t","params":[],"returns":"(t, Session.t) Relation.Optional.t"}],"slug":"libtmux-client_observation-relations-session"},{"id":"Libtmux.Client_observation.control_mode","publicId":"Libtmux.Client_observation.control_mode","qualifiedName":"Libtmux.Client_observation.control_mode","name":"control_mode","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":386,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val control_mode : t -> bool","source":{"file":"lib/libtmux.mli","line":386,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val control_mode : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-control_mode"},{"id":"Libtmux.Client_observation.current_name","publicId":"Libtmux.Client_observation.current_name","qualifiedName":"Libtmux.Client_observation.current_name","name":"current_name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":389,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Address whichever client has this name when a command executes. "],"declarations":[{"kind":"function","text":"val current_name : t -> Client_name.t","source":{"file":"lib/libtmux.mli","line":389,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Address whichever client has this name when a command executes."},"signatures":[{"raw":"val current_name : t -> Client_name.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_name.t"}],"slug":"libtmux-client_observation-current_name"},{"id":"Libtmux.Client_observation.height","publicId":"Libtmux.Client_observation.height","qualifiedName":"Libtmux.Client_observation.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":383,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" No height is reported until the client has a started terminal. "],"declarations":[{"kind":"function","text":"val height : t -> int option","source":{"file":"lib/libtmux.mli","line":383,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"No height is reported until the client has a started terminal."},"signatures":[{"raw":"val height : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-client_observation-height"},{"id":"Libtmux.Client_observation.name","publicId":"Libtmux.Client_observation.name","qualifiedName":"Libtmux.Client_observation.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":379,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":379,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_observation-name"},{"id":"Libtmux.Client_observation.pid","publicId":"Libtmux.Client_observation.pid","qualifiedName":"Libtmux.Client_observation.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":380,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pid : t -> int","source":{"file":"lib/libtmux.mli","line":380,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-pid"},{"id":"Libtmux.Client_observation.same_observation","publicId":"Libtmux.Client_observation.same_observation","qualifiedName":"Libtmux.Client_observation.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":395,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Client names may be reused. No cross-snapshot entity equality is offered.\n "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":395,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Client names may be reused. No cross-snapshot entity equality is offered."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-same_observation"},{"id":"Libtmux.Client_observation.session","publicId":"Libtmux.Client_observation.session","qualifiedName":"Libtmux.Client_observation.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":392,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [None] means the captured client has no attached session. "],"declarations":[{"kind":"function","text":"val session : t -> Session.t option","source":{"file":"lib/libtmux.mli","line":392,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"`None` means the captured client has no attached session."},"signatures":[{"raw":"val session : t -> Session.t option","params":[{"name":"arg1","type":"t"}],"returns":"Session.t option"}],"slug":"libtmux-client_observation-session"},{"id":"Libtmux.Client_observation.source","publicId":"Libtmux.Client_observation.source","qualifiedName":"Libtmux.Client_observation.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_observation-source"},{"id":"Libtmux.Client_observation.t","publicId":"Libtmux.Client_observation.t","qualifiedName":"Libtmux.Client_observation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":366,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":366,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_observation-t"},{"id":"Libtmux.Client_observation.width","publicId":"Libtmux.Client_observation.width","qualifiedName":"Libtmux.Client_observation.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-width"},{"id":"Libtmux.Command","publicId":"Libtmux.Command","qualifiedName":"Libtmux.Command","name":"Command","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":883,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Typed descriptions of explicit acquisition and mutation operations.\n Construction performs no I/O; a backend validates and admits the command. "],"declarations":[{"kind":"module","text":"module Command : sig\n type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }\n\n type 'a t\n (** An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. *)\n\n type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view\n\n val view : 'a t -> 'a view\n (** Read-only inspection for transport adapters. *)\nend","source":{"file":"lib/libtmux.mli","line":883,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Typed descriptions of explicit acquisition and mutation operations. Construction performs no I/O; a backend validates and admits the command."},"slug":"libtmux-command"},{"id":"Libtmux.Command.mutation","publicId":"Libtmux.Command.mutation","qualifiedName":"Libtmux.Command.mutation","name":"mutation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":884,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":884,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type mutation =\n | Kill_session of Session.target \n | Kill_window of Window.target \n | Kill_pane of Pane.target \n | Select_window_at of Session.target * int \n | Unlink_window_at of\n {\n session: Session.target ;\n index: int ;\n allow_kill: bool } \n | Link_window of\n {\n window: Window.target ;\n session: Session.target ;\n index: int } \n | Move_window_at of\n {\n from_session: Session.target ;\n from_index: int ;\n session: Session.target ;\n index: int } \n | Select_pane of Pane.target \n | Set_pane_title of Pane.target * string \n | Resize_pane of\n {\n pane: Pane.target ;\n width: int option ;\n height: int option } \n | Resize_window of\n {\n window: Window.target ;\n width: int option ;\n height: int option } \n | Select_layout of Window.target * Layout.t \n | Cycle_layout of Window.target * [ `Next | `Previous ] \n | Move_pane of\n {\n pane: Pane.target ;\n beside: Pane.target ;\n direction: Geometry.direction ;\n size: Geometry.size option } \n | Swap_panes of Pane.target * Pane.target \n | Rotate_panes of Window.target * [ `Forward | `Backward ] \n | Zoom_pane of Pane.target \n | Respawn_pane of {\n pane: Pane.target ;\n spawn: Spawn.t ;\n kill_running: bool } \n | Clear_history of Pane.target \n | Set_environment of\n {\n scope: Environment.scope ;\n name: string ;\n value: string ;\n hidden: bool } \n | Unset_environment of Environment.scope * string \n | Remove_environment of Environment.scope * string \n | Set_option of\n {\n scope: Options.scope ;\n name: string ;\n index: int option ;\n value: Options.scalar ;\n append: bool } \n | Unset_option of Options.scope * string * int option \n | Clear_option_array of Options.scope * string \n | Set_hook of\n {\n scope: Options.scope ;\n name: string ;\n index: int option ;\n commands: Hook.command list ;\n append: bool } \n | Remove_hook of Options.scope * string * int option \n | Run_hook of Options.scope * string \n | Switch_client_at of\n {\n client: Client_name.t ;\n session: Session.target ;\n update_environment: bool } \n | Request_detach_client_at of Client_name.t \n | Refresh_client_at of Client_name.t * bool \n | Resize_control_client_at of\n {\n client: Client_name.t ;\n width: int ;\n height: int } ","params":[]}],"slug":"libtmux-command-mutation"},{"id":"Libtmux.Command.mutation.Clear_history","publicId":"Libtmux.Command.mutation.Clear_history","name":"Clear_history","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":933,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_history of Pane.target","source":{"file":"lib/libtmux.mli","line":933,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_history","slug":"libtmux-command-mutation-clear_history"},{"id":"Libtmux.Command.mutation.Clear_option_array","publicId":"Libtmux.Command.mutation.Clear_option_array","name":"Clear_option_array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":950,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_option_array of Options.scope * string","source":{"file":"lib/libtmux.mli","line":950,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_option_array","slug":"libtmux-command-mutation-clear_option_array"},{"id":"Libtmux.Command.mutation.Cycle_layout","publicId":"Libtmux.Command.mutation.Cycle_layout","name":"Cycle_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":918,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cycle_layout of Window.target * [ `Next | `Previous ]","source":{"file":"lib/libtmux.mli","line":918,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Cycle_layout","slug":"libtmux-command-mutation-cycle_layout"},{"id":"Libtmux.Command.mutation.Kill_pane","publicId":"Libtmux.Command.mutation.Kill_pane","name":"Kill_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":887,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":887,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_pane","slug":"libtmux-command-mutation-kill_pane"},{"id":"Libtmux.Command.mutation.Kill_session","publicId":"Libtmux.Command.mutation.Kill_session","name":"Kill_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":885,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_session of Session.target","source":{"file":"lib/libtmux.mli","line":885,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_session","slug":"libtmux-command-mutation-kill_session"},{"id":"Libtmux.Command.mutation.Kill_window","publicId":"Libtmux.Command.mutation.Kill_window","name":"Kill_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":886,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_window of Window.target","source":{"file":"lib/libtmux.mli","line":886,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_window","slug":"libtmux-command-mutation-kill_window"},{"id":"Libtmux.Command.mutation.Link_window","publicId":"Libtmux.Command.mutation.Link_window","name":"Link_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":894,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":894,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Link_window","slug":"libtmux-command-mutation-link_window"},{"id":"Libtmux.Command.mutation.Link_window.index","publicId":"Libtmux.Command.mutation.Link_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":897,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":897,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-link_window-index"},{"id":"Libtmux.Command.mutation.Link_window.session","publicId":"Libtmux.Command.mutation.Link_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":896,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":896,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-link_window-session"},{"id":"Libtmux.Command.mutation.Link_window.window","publicId":"Libtmux.Command.mutation.Link_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":895,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":895,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-link_window-window"},{"id":"Libtmux.Command.mutation.Move_pane","publicId":"Libtmux.Command.mutation.Move_pane","name":"Move_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":919,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }","source":{"file":"lib/libtmux.mli","line":919,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_pane","slug":"libtmux-command-mutation-move_pane"},{"id":"Libtmux.Command.mutation.Move_pane.beside","publicId":"Libtmux.Command.mutation.Move_pane.beside","name":"beside","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":921,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"beside : Pane.target;","source":{"file":"lib/libtmux.mli","line":921,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.beside","slug":"libtmux-command-mutation-move_pane-beside"},{"id":"Libtmux.Command.mutation.Move_pane.direction","publicId":"Libtmux.Command.mutation.Move_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":922,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":922,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-mutation-move_pane-direction"},{"id":"Libtmux.Command.mutation.Move_pane.pane","publicId":"Libtmux.Command.mutation.Move_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":920,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":920,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-move_pane-pane"},{"id":"Libtmux.Command.mutation.Move_pane.size","publicId":"Libtmux.Command.mutation.Move_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":923,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":923,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-mutation-move_pane-size"},{"id":"Libtmux.Command.mutation.Move_window_at","publicId":"Libtmux.Command.mutation.Move_window_at","name":"Move_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":899,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":899,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_window_at","slug":"libtmux-command-mutation-move_window_at"},{"id":"Libtmux.Command.mutation.Move_window_at.from_index","publicId":"Libtmux.Command.mutation.Move_window_at.from_index","name":"from_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":901,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_index : int;","source":{"file":"lib/libtmux.mli","line":901,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.from_index","slug":"libtmux-command-mutation-move_window_at-from_index"},{"id":"Libtmux.Command.mutation.Move_window_at.from_session","publicId":"Libtmux.Command.mutation.Move_window_at.from_session","name":"from_session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":900,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_session : Session.target;","source":{"file":"lib/libtmux.mli","line":900,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.from_session","slug":"libtmux-command-mutation-move_window_at-from_session"},{"id":"Libtmux.Command.mutation.Move_window_at.index","publicId":"Libtmux.Command.mutation.Move_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":903,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":903,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-move_window_at-index"},{"id":"Libtmux.Command.mutation.Move_window_at.session","publicId":"Libtmux.Command.mutation.Move_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":902,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":902,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-move_window_at-session"},{"id":"Libtmux.Command.mutation.Refresh_client_at","publicId":"Libtmux.Command.mutation.Refresh_client_at","name":"Refresh_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":966,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Refresh_client_at of Client_name.t * bool","source":{"file":"lib/libtmux.mli","line":966,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Refresh_client_at","slug":"libtmux-command-mutation-refresh_client_at"},{"id":"Libtmux.Command.mutation.Remove_environment","publicId":"Libtmux.Command.mutation.Remove_environment","name":"Remove_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":941,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":941,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_environment","slug":"libtmux-command-mutation-remove_environment"},{"id":"Libtmux.Command.mutation.Remove_hook","publicId":"Libtmux.Command.mutation.Remove_hook","name":"Remove_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":958,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_hook of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":958,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_hook","slug":"libtmux-command-mutation-remove_hook"},{"id":"Libtmux.Command.mutation.Request_detach_client_at","publicId":"Libtmux.Command.mutation.Request_detach_client_at","name":"Request_detach_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":965,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Request_detach_client_at of Client_name.t","source":{"file":"lib/libtmux.mli","line":965,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Request_detach_client_at","slug":"libtmux-command-mutation-request_detach_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at","publicId":"Libtmux.Command.mutation.Resize_control_client_at","name":"Resize_control_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":967,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":967,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_control_client_at","slug":"libtmux-command-mutation-resize_control_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.client","publicId":"Libtmux.Command.mutation.Resize_control_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":968,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":968,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-resize_control_client_at-client"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.height","publicId":"Libtmux.Command.mutation.Resize_control_client_at.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":970,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":970,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_control_client_at-height"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.width","publicId":"Libtmux.Command.mutation.Resize_control_client_at.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":969,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":969,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_control_client_at-width"},{"id":"Libtmux.Command.mutation.Resize_pane","publicId":"Libtmux.Command.mutation.Resize_pane","name":"Resize_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":907,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":907,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_pane","slug":"libtmux-command-mutation-resize_pane"},{"id":"Libtmux.Command.mutation.Resize_pane.height","publicId":"Libtmux.Command.mutation.Resize_pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":910,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":910,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_pane-height"},{"id":"Libtmux.Command.mutation.Resize_pane.pane","publicId":"Libtmux.Command.mutation.Resize_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":908,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":908,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-resize_pane-pane"},{"id":"Libtmux.Command.mutation.Resize_pane.width","publicId":"Libtmux.Command.mutation.Resize_pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":909,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":909,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_pane-width"},{"id":"Libtmux.Command.mutation.Resize_window","publicId":"Libtmux.Command.mutation.Resize_window","name":"Resize_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":912,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":912,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_window","slug":"libtmux-command-mutation-resize_window"},{"id":"Libtmux.Command.mutation.Resize_window.height","publicId":"Libtmux.Command.mutation.Resize_window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":915,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":915,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_window-height"},{"id":"Libtmux.Command.mutation.Resize_window.width","publicId":"Libtmux.Command.mutation.Resize_window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":914,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":914,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_window-width"},{"id":"Libtmux.Command.mutation.Resize_window.window","publicId":"Libtmux.Command.mutation.Resize_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":913,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":913,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-resize_window-window"},{"id":"Libtmux.Command.mutation.Respawn_pane","publicId":"Libtmux.Command.mutation.Respawn_pane","name":"Respawn_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":928,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }","source":{"file":"lib/libtmux.mli","line":928,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Respawn_pane","slug":"libtmux-command-mutation-respawn_pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.kill_running","publicId":"Libtmux.Command.mutation.Respawn_pane.kill_running","name":"kill_running","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":931,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kill_running : bool;","source":{"file":"lib/libtmux.mli","line":931,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"bool","qualifiedName":"Libtmux.Command.kill_running","slug":"libtmux-command-mutation-respawn_pane-kill_running"},{"id":"Libtmux.Command.mutation.Respawn_pane.pane","publicId":"Libtmux.Command.mutation.Respawn_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":929,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":929,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-respawn_pane-pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.spawn","publicId":"Libtmux.Command.mutation.Respawn_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":930,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":930,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-mutation-respawn_pane-spawn"},{"id":"Libtmux.Command.mutation.Rotate_panes","publicId":"Libtmux.Command.mutation.Rotate_panes","name":"Rotate_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":926,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rotate_panes of Window.target * [ `Forward | `Backward ]","source":{"file":"lib/libtmux.mli","line":926,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Rotate_panes","slug":"libtmux-command-mutation-rotate_panes"},{"id":"Libtmux.Command.mutation.Run_hook","publicId":"Libtmux.Command.mutation.Run_hook","name":"Run_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":959,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Run_hook of Options.scope * string","source":{"file":"lib/libtmux.mli","line":959,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Run_hook","slug":"libtmux-command-mutation-run_hook"},{"id":"Libtmux.Command.mutation.Select_layout","publicId":"Libtmux.Command.mutation.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":917,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of Window.target * Layout.t","source":{"file":"lib/libtmux.mli","line":917,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_layout","slug":"libtmux-command-mutation-select_layout"},{"id":"Libtmux.Command.mutation.Select_pane","publicId":"Libtmux.Command.mutation.Select_pane","name":"Select_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":905,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":905,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_pane","slug":"libtmux-command-mutation-select_pane"},{"id":"Libtmux.Command.mutation.Select_window_at","publicId":"Libtmux.Command.mutation.Select_window_at","name":"Select_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":888,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_window_at of Session.target * int","source":{"file":"lib/libtmux.mli","line":888,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_window_at","slug":"libtmux-command-mutation-select_window_at"},{"id":"Libtmux.Command.mutation.Set_environment","publicId":"Libtmux.Command.mutation.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":934,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }","source":{"file":"lib/libtmux.mli","line":934,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_environment","slug":"libtmux-command-mutation-set_environment"},{"id":"Libtmux.Command.mutation.Set_environment.hidden","publicId":"Libtmux.Command.mutation.Set_environment.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":938,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":938,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"bool","qualifiedName":"Libtmux.Command.hidden","slug":"libtmux-command-mutation-set_environment-hidden"},{"id":"Libtmux.Command.mutation.Set_environment.name","publicId":"Libtmux.Command.mutation.Set_environment.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":936,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":936,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_environment-name"},{"id":"Libtmux.Command.mutation.Set_environment.scope","publicId":"Libtmux.Command.mutation.Set_environment.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":935,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Environment.scope;","source":{"file":"lib/libtmux.mli","line":935,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"Environment.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_environment-scope"},{"id":"Libtmux.Command.mutation.Set_environment.value","publicId":"Libtmux.Command.mutation.Set_environment.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":937,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : string;","source":{"file":"lib/libtmux.mli","line":937,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_environment-value"},{"id":"Libtmux.Command.mutation.Set_hook","publicId":"Libtmux.Command.mutation.Set_hook","name":"Set_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":951,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":951,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_hook","slug":"libtmux-command-mutation-set_hook"},{"id":"Libtmux.Command.mutation.Set_hook.append","publicId":"Libtmux.Command.mutation.Set_hook.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":956,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":956,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_hook-append"},{"id":"Libtmux.Command.mutation.Set_hook.commands","publicId":"Libtmux.Command.mutation.Set_hook.commands","name":"commands","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":955,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"commands : Hook.command list;","source":{"file":"lib/libtmux.mli","line":955,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Hook.command list","qualifiedName":"Libtmux.Command.commands","slug":"libtmux-command-mutation-set_hook-commands"},{"id":"Libtmux.Command.mutation.Set_hook.index","publicId":"Libtmux.Command.mutation.Set_hook.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":954,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":954,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_hook-index"},{"id":"Libtmux.Command.mutation.Set_hook.name","publicId":"Libtmux.Command.mutation.Set_hook.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":953,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":953,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_hook-name"},{"id":"Libtmux.Command.mutation.Set_hook.scope","publicId":"Libtmux.Command.mutation.Set_hook.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":952,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":952,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_hook-scope"},{"id":"Libtmux.Command.mutation.Set_option","publicId":"Libtmux.Command.mutation.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":942,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":942,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_option","slug":"libtmux-command-mutation-set_option"},{"id":"Libtmux.Command.mutation.Set_option.append","publicId":"Libtmux.Command.mutation.Set_option.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":947,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":947,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_option-append"},{"id":"Libtmux.Command.mutation.Set_option.index","publicId":"Libtmux.Command.mutation.Set_option.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":945,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":945,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_option-index"},{"id":"Libtmux.Command.mutation.Set_option.name","publicId":"Libtmux.Command.mutation.Set_option.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":944,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":944,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_option-name"},{"id":"Libtmux.Command.mutation.Set_option.scope","publicId":"Libtmux.Command.mutation.Set_option.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":943,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":943,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_option-scope"},{"id":"Libtmux.Command.mutation.Set_option.value","publicId":"Libtmux.Command.mutation.Set_option.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":946,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Options.scalar;","source":{"file":"lib/libtmux.mli","line":946,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scalar","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_option-value"},{"id":"Libtmux.Command.mutation.Set_pane_title","publicId":"Libtmux.Command.mutation.Set_pane_title","name":"Set_pane_title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":906,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_pane_title of Pane.target * string","source":{"file":"lib/libtmux.mli","line":906,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Set_pane_title","slug":"libtmux-command-mutation-set_pane_title"},{"id":"Libtmux.Command.mutation.Swap_panes","publicId":"Libtmux.Command.mutation.Swap_panes","name":"Swap_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":925,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Swap_panes of Pane.target * Pane.target","source":{"file":"lib/libtmux.mli","line":925,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Swap_panes","slug":"libtmux-command-mutation-swap_panes"},{"id":"Libtmux.Command.mutation.Switch_client_at","publicId":"Libtmux.Command.mutation.Switch_client_at","name":"Switch_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":960,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }","source":{"file":"lib/libtmux.mli","line":960,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Switch_client_at","slug":"libtmux-command-mutation-switch_client_at"},{"id":"Libtmux.Command.mutation.Switch_client_at.client","publicId":"Libtmux.Command.mutation.Switch_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":961,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":961,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-switch_client_at-client"},{"id":"Libtmux.Command.mutation.Switch_client_at.session","publicId":"Libtmux.Command.mutation.Switch_client_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":962,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":962,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-switch_client_at-session"},{"id":"Libtmux.Command.mutation.Switch_client_at.update_environment","publicId":"Libtmux.Command.mutation.Switch_client_at.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":963,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"update_environment : bool;","source":{"file":"lib/libtmux.mli","line":963,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"bool","qualifiedName":"Libtmux.Command.update_environment","slug":"libtmux-command-mutation-switch_client_at-update_environment"},{"id":"Libtmux.Command.mutation.Unlink_window_at","publicId":"Libtmux.Command.mutation.Unlink_window_at","name":"Unlink_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":889,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }","source":{"file":"lib/libtmux.mli","line":889,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Unlink_window_at","slug":"libtmux-command-mutation-unlink_window_at"},{"id":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","publicId":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","name":"allow_kill","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":892,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"allow_kill : bool;","source":{"file":"lib/libtmux.mli","line":892,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"bool","qualifiedName":"Libtmux.Command.allow_kill","slug":"libtmux-command-mutation-unlink_window_at-allow_kill"},{"id":"Libtmux.Command.mutation.Unlink_window_at.index","publicId":"Libtmux.Command.mutation.Unlink_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":891,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":891,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-unlink_window_at-index"},{"id":"Libtmux.Command.mutation.Unlink_window_at.session","publicId":"Libtmux.Command.mutation.Unlink_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":890,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":890,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-unlink_window_at-session"},{"id":"Libtmux.Command.mutation.Unset_environment","publicId":"Libtmux.Command.mutation.Unset_environment","name":"Unset_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":940,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":940,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_environment","slug":"libtmux-command-mutation-unset_environment"},{"id":"Libtmux.Command.mutation.Unset_option","publicId":"Libtmux.Command.mutation.Unset_option","name":"Unset_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":949,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_option of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":949,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_option","slug":"libtmux-command-mutation-unset_option"},{"id":"Libtmux.Command.mutation.Zoom_pane","publicId":"Libtmux.Command.mutation.Zoom_pane","name":"Zoom_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":927,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Zoom_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":927,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Zoom_pane","slug":"libtmux-command-mutation-zoom_pane"},{"id":"Libtmux.Command.t","publicId":"Libtmux.Command.t","qualifiedName":"Libtmux.Command.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":973,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. "],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":973,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command","doc":{"summary":"An immutable description, validated by a backend before admission. Constructing or inspecting it performs no I/O."},"signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-command-t"},{"id":"Libtmux.Command.view","publicId":"Libtmux.Command.view","qualifiedName":"Libtmux.Command.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read-only inspection for transport adapters. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command","doc":{"summary":"Read-only inspection for transport adapters."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-command-view"},{"id":"Libtmux.Command.view:type","publicId":"Libtmux.Command.view:type","qualifiedName":"Libtmux.Command.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":977,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":977,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type _ view =\n | Capture: Snapshot.t view \n | Capture_text: {\n pane: Pane.t ;\n start: int ;\n end_: int ;\n scratch_dir: string } -> Captured_text.t view \n | Rename_window: Window.target * string -> unit view \n | Rename_session: Session.target * string -> unit view \n | Send_text: Pane.target * string -> unit view \n | Send_keys: Pane.target * Key.t list -> unit view \n | Wait_for: string -> unit view \n | Signal: string -> unit view \n | Capture_environment: Environment.scope * bool -> Environment.t view \n | Capture_options: Options.scope * bool -> Options.t view \n | Read_option: Options.scope * string * bool -> Options.value option view \n | Capture_hooks: Options.scope -> Options.t view \n | Read_hook: Options.scope * string * bool -> Options.value option view \n | Mutate: mutation -> unit view \n | Create_session:\n {\n name: string ;\n window_name: string option ;\n width: int ;\n height: int ;\n spawn: Spawn.t } -> Created.t view \n | Create_window:\n {\n session: Session.target ;\n index: int option ;\n name: string option ;\n spawn: Spawn.t } -> Created.t view \n | Split_pane:\n {\n pane: Pane.target ;\n direction: Geometry.direction ;\n size: Geometry.size option ;\n spawn: Spawn.t } -> Created.t view \n | Break_pane:\n {\n pane: Pane.target ;\n session: Session.target ;\n index: int ;\n name: string option } -> Created.t view ","params":[]}],"slug":"libtmux-command-view-type"},{"id":"Libtmux.Command.view:type.Break_pane","publicId":"Libtmux.Command.view:type.Break_pane","name":"Break_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1020,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1020,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Break_pane","slug":"libtmux-command-view-type-break_pane"},{"id":"Libtmux.Command.view:type.Break_pane.index","publicId":"Libtmux.Command.view:type.Break_pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1023,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":1023,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-break_pane-index"},{"id":"Libtmux.Command.view:type.Break_pane.name","publicId":"Libtmux.Command.view:type.Break_pane.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1024,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1024,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-break_pane-name"},{"id":"Libtmux.Command.view:type.Break_pane.pane","publicId":"Libtmux.Command.view:type.Break_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1021,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":1021,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-break_pane-pane"},{"id":"Libtmux.Command.view:type.Break_pane.session","publicId":"Libtmux.Command.view:type.Break_pane.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1022,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1022,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-break_pane-session"},{"id":"Libtmux.Command.view:type.Capture","publicId":"Libtmux.Command.view:type.Capture","name":"Capture","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":978,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture : Snapshot.t view","source":{"file":"lib/libtmux.mli","line":978,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"unit","qualifiedName":"Libtmux.Command.Capture","slug":"libtmux-command-view-type-capture"},{"id":"Libtmux.Command.view:type.Capture_environment","publicId":"Libtmux.Command.view:type.Capture_environment","name":"Capture_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":992,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_environment : Environment.scope * bool -> Environment.t view","source":{"file":"lib/libtmux.mli","line":992,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_environment","slug":"libtmux-command-view-type-capture_environment"},{"id":"Libtmux.Command.view:type.Capture_hooks","publicId":"Libtmux.Command.view:type.Capture_hooks","name":"Capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":995,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_hooks : Options.scope -> Options.t view","source":{"file":"lib/libtmux.mli","line":995,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_hooks","slug":"libtmux-command-view-type-capture_hooks"},{"id":"Libtmux.Command.view:type.Capture_options","publicId":"Libtmux.Command.view:type.Capture_options","name":"Capture_options","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":993,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_options : Options.scope * bool -> Options.t view","source":{"file":"lib/libtmux.mli","line":993,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_options","slug":"libtmux-command-view-type-capture_options"},{"id":"Libtmux.Command.view:type.Capture_text","publicId":"Libtmux.Command.view:type.Capture_text","name":"Capture_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":979,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view","source":{"file":"lib/libtmux.mli","line":979,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Capture_text","slug":"libtmux-command-view-type-capture_text"},{"id":"Libtmux.Command.view:type.Capture_text.end_","publicId":"Libtmux.Command.view:type.Capture_text.end_","name":"end_","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":982,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"end_ : int;","source":{"file":"lib/libtmux.mli","line":982,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.end_","slug":"libtmux-command-view-type-capture_text-end_"},{"id":"Libtmux.Command.view:type.Capture_text.pane","publicId":"Libtmux.Command.view:type.Capture_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":980,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.t;","source":{"file":"lib/libtmux.mli","line":980,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"Pane.t","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-capture_text-pane"},{"id":"Libtmux.Command.view:type.Capture_text.scratch_dir","publicId":"Libtmux.Command.view:type.Capture_text.scratch_dir","name":"scratch_dir","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":983,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scratch_dir : string;","source":{"file":"lib/libtmux.mli","line":983,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"string","qualifiedName":"Libtmux.Command.scratch_dir","slug":"libtmux-command-view-type-capture_text-scratch_dir"},{"id":"Libtmux.Command.view:type.Capture_text.start","publicId":"Libtmux.Command.view:type.Capture_text.start","name":"start","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":981,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"start : int;","source":{"file":"lib/libtmux.mli","line":981,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.start","slug":"libtmux-command-view-type-capture_text-start"},{"id":"Libtmux.Command.view:type.Create_session","publicId":"Libtmux.Command.view:type.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":998,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":998,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_session","slug":"libtmux-command-view-type-create_session"},{"id":"Libtmux.Command.view:type.Create_session.height","publicId":"Libtmux.Command.view:type.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1002,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":1002,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-view-type-create_session-height"},{"id":"Libtmux.Command.view:type.Create_session.name","publicId":"Libtmux.Command.view:type.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":999,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":999,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_session-name"},{"id":"Libtmux.Command.view:type.Create_session.spawn","publicId":"Libtmux.Command.view:type.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1003,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1003,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_session-spawn"},{"id":"Libtmux.Command.view:type.Create_session.width","publicId":"Libtmux.Command.view:type.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1001,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":1001,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-view-type-create_session-width"},{"id":"Libtmux.Command.view:type.Create_session.window_name","publicId":"Libtmux.Command.view:type.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1000,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string option;","source":{"file":"lib/libtmux.mli","line":1000,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string option","qualifiedName":"Libtmux.Command.window_name","slug":"libtmux-command-view-type-create_session-window_name"},{"id":"Libtmux.Command.view:type.Create_window","publicId":"Libtmux.Command.view:type.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1006,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1006,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_window","slug":"libtmux-command-view-type-create_window"},{"id":"Libtmux.Command.view:type.Create_window.index","publicId":"Libtmux.Command.view:type.Create_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1008,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":1008,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-create_window-index"},{"id":"Libtmux.Command.view:type.Create_window.name","publicId":"Libtmux.Command.view:type.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1009,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1009,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_window-name"},{"id":"Libtmux.Command.view:type.Create_window.session","publicId":"Libtmux.Command.view:type.Create_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1007,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1007,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-create_window-session"},{"id":"Libtmux.Command.view:type.Create_window.spawn","publicId":"Libtmux.Command.view:type.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1010,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1010,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_window-spawn"},{"id":"Libtmux.Command.view:type.Mutate","publicId":"Libtmux.Command.view:type.Mutate","name":"Mutate","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":997,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mutate : mutation -> unit view","source":{"file":"lib/libtmux.mli","line":997,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Mutate","slug":"libtmux-command-view-type-mutate"},{"id":"Libtmux.Command.view:type.Read_hook","publicId":"Libtmux.Command.view:type.Read_hook","name":"Read_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":996,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_hook : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":996,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_hook","slug":"libtmux-command-view-type-read_hook"},{"id":"Libtmux.Command.view:type.Read_option","publicId":"Libtmux.Command.view:type.Read_option","name":"Read_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":994,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_option : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":994,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_option","slug":"libtmux-command-view-type-read_option"},{"id":"Libtmux.Command.view:type.Rename_session","publicId":"Libtmux.Command.view:type.Rename_session","name":"Rename_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":987,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_session : Session.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":987,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_session","slug":"libtmux-command-view-type-rename_session"},{"id":"Libtmux.Command.view:type.Rename_window","publicId":"Libtmux.Command.view:type.Rename_window","name":"Rename_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":986,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_window : Window.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":986,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_window","slug":"libtmux-command-view-type-rename_window"},{"id":"Libtmux.Command.view:type.Send_keys","publicId":"Libtmux.Command.view:type.Send_keys","name":"Send_keys","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":989,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_keys : Pane.target * Key.t list -> unit view","source":{"file":"lib/libtmux.mli","line":989,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_keys","slug":"libtmux-command-view-type-send_keys"},{"id":"Libtmux.Command.view:type.Send_text","publicId":"Libtmux.Command.view:type.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":988,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text : Pane.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":988,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_text","slug":"libtmux-command-view-type-send_text"},{"id":"Libtmux.Command.view:type.Signal","publicId":"Libtmux.Command.view:type.Signal","name":"Signal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":991,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Signal : string -> unit view","source":{"file":"lib/libtmux.mli","line":991,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Signal","slug":"libtmux-command-view-type-signal"},{"id":"Libtmux.Command.view:type.Split_pane","publicId":"Libtmux.Command.view:type.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Split_pane","slug":"libtmux-command-view-type-split_pane"},{"id":"Libtmux.Command.view:type.Split_pane.direction","publicId":"Libtmux.Command.view:type.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1015,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":1015,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-view-type-split_pane-direction"},{"id":"Libtmux.Command.view:type.Split_pane.pane","publicId":"Libtmux.Command.view:type.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1014,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":1014,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-split_pane-pane"},{"id":"Libtmux.Command.view:type.Split_pane.size","publicId":"Libtmux.Command.view:type.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1016,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":1016,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-view-type-split_pane-size"},{"id":"Libtmux.Command.view:type.Split_pane.spawn","publicId":"Libtmux.Command.view:type.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1017,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1017,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-split_pane-spawn"},{"id":"Libtmux.Command.view:type.Wait_for","publicId":"Libtmux.Command.view:type.Wait_for","name":"Wait_for","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":990,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wait_for : string -> unit view","source":{"file":"lib/libtmux.mli","line":990,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Wait_for","slug":"libtmux-command-view-type-wait_for"},{"id":"Libtmux.Created","publicId":"Libtmux.Created","qualifiedName":"Libtmux.Created","name":"Created","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":779,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" IDs reported by a successful creation reply. Only the requested kind is\n newly created; the other fields can describe existing containers. "],"declarations":[{"kind":"module","text":"module Created : sig\n type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }\n (** IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. *)\nend","source":{"file":"lib/libtmux.mli","line":779,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"IDs reported by a successful creation reply. Only the requested kind is newly created; the other fields can describe existing containers."},"slug":"libtmux-created"},{"id":"Libtmux.Created.t","publicId":"Libtmux.Created.t","qualifiedName":"Libtmux.Created.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. "],"declarations":[{"kind":"struct","text":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }","source":{"file":"lib/libtmux.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Created","doc":{"summary":"IDs returned by the creation command, without a second capture. Indexes describe the creation response and may change afterward. Only the resource requested by the command is newly created: splitting a pane does not create the reported session or window."},"signatures":[{"raw":"type t =\n {\n session: Session.target ;\n window: Window.target ;\n pane: Pane.target ;\n window_index: int ;\n pane_index: int }","params":[]}],"slug":"libtmux-created-t"},{"id":"Libtmux.Created.t.pane","publicId":"Libtmux.Created.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":783,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":783,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Created.t","type":"Pane.target","qualifiedName":"Libtmux.Created.pane","slug":"libtmux-created-t-pane"},{"id":"Libtmux.Created.t.pane_index","publicId":"Libtmux.Created.t.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":785,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"lib/libtmux.mli","line":785,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.pane_index","slug":"libtmux-created-t-pane_index"},{"id":"Libtmux.Created.t.session","publicId":"Libtmux.Created.t.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":781,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":781,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Created.t","type":"Session.target","qualifiedName":"Libtmux.Created.session","slug":"libtmux-created-t-session"},{"id":"Libtmux.Created.t.window","publicId":"Libtmux.Created.t.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":782,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":782,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Created.t","type":"Window.target","qualifiedName":"Libtmux.Created.window","slug":"libtmux-created-t-window"},{"id":"Libtmux.Created.t.window_index","publicId":"Libtmux.Created.t.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":784,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"lib/libtmux.mli","line":784,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.window_index","slug":"libtmux-created-t-window_index"},{"id":"Libtmux.Endpoint","publicId":"Libtmux.Endpoint","qualifiedName":"Libtmux.Endpoint","name":"Endpoint","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" An explicit socket description. Constructing an endpoint neither reads the\n environment nor starts a daemon. {!Source.t} adds the observed daemon and\n connection generation. "],"declarations":[{"kind":"module","text":"module Endpoint : sig\n type t\n (** An explicit socket description, independent of the environment. *)\n\n type kind = Named_socket of string | Socket_path of string\n\n val named_socket : string -> t\n (** [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. *)\n\n val socket_path : string -> t\n (** [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. *)\n\n val kind : t -> kind\n\n val equal : t -> t -> bool\n (** Equality compares descriptions, not server instances or resolved paths. *)\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"An explicit socket description. Constructing an endpoint neither reads the environment nor starts a daemon. {!Source.t} adds the observed daemon and connection generation."},"slug":"libtmux-endpoint"},{"id":"Libtmux.Endpoint.equal","publicId":"Libtmux.Endpoint.equal","qualifiedName":"Libtmux.Endpoint.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":47,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Equality compares descriptions, not server instances or resolved paths. "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":47,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"Equality compares descriptions, not server instances or resolved paths."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-endpoint-equal"},{"id":"Libtmux.Endpoint.kind","publicId":"Libtmux.Endpoint.kind","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":45,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : t -> kind","source":{"file":"lib/libtmux.mli","line":45,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val kind : t -> kind","params":[{"name":"arg1","type":"t"}],"returns":"kind"}],"slug":"libtmux-endpoint-kind"},{"id":"Libtmux.Endpoint.kind:type","publicId":"Libtmux.Endpoint.kind:type","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type kind = Named_socket of string | Socket_path of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"type kind =\n | Named_socket of string \n | Socket_path of string ","params":[]}],"slug":"libtmux-endpoint-kind-type"},{"id":"Libtmux.Endpoint.kind:type.Named_socket","publicId":"Libtmux.Endpoint.kind:type.Named_socket","name":"Named_socket","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Named_socket of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Named_socket","slug":"libtmux-endpoint-kind-type-named_socket"},{"id":"Libtmux.Endpoint.kind:type.Socket_path","publicId":"Libtmux.Endpoint.kind:type.Socket_path","name":"Socket_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Socket_path of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Socket_path","slug":"libtmux-endpoint-kind-type-socket_path"},{"id":"Libtmux.Endpoint.named_socket","publicId":"Libtmux.Endpoint.named_socket","qualifiedName":"Libtmux.Endpoint.named_socket","name":"named_socket","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. "],"declarations":[{"kind":"function","text":"val named_socket : string -> t","source":{"file":"lib/libtmux.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`named_socket name` describes tmux's `-L name` endpoint. Raises `Invalid_argument` if `name` is empty or contains NUL or `/`."},"signatures":[{"raw":"val named_socket : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-named_socket"},{"id":"Libtmux.Endpoint.pp","publicId":"Libtmux.Endpoint.pp","qualifiedName":"Libtmux.Endpoint.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-endpoint-pp"},{"id":"Libtmux.Endpoint.socket_path","publicId":"Libtmux.Endpoint.socket_path","qualifiedName":"Libtmux.Endpoint.socket_path","name":"socket_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. "],"declarations":[{"kind":"function","text":"val socket_path : string -> t","source":{"file":"lib/libtmux.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`socket_path path` describes an absolute `-S path` endpoint. It does not check existence or resolve symbolic links. Raises `Invalid_argument` if `path` is relative, empty or contains NUL."},"signatures":[{"raw":"val socket_path : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-socket_path"},{"id":"Libtmux.Endpoint.t","publicId":"Libtmux.Endpoint.t","qualifiedName":"Libtmux.Endpoint.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" An explicit socket description, independent of the environment. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"An explicit socket description, independent of the environment."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-endpoint-t"},{"id":"Libtmux.Environment","publicId":"Libtmux.Environment","qualifiedName":"Libtmux.Environment","name":"Environment","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":793,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Environment : sig\n type scope = Global | Session of Session.target\n type value = Value of string | Removed\n type entry = { name : string; value : value }\n\n type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. *)\n\n val lookup : t -> string -> value option\n (** No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. *)\nend","source":{"file":"lib/libtmux.mli","line":793,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-environment"},{"id":"Libtmux.Environment.entry","publicId":"Libtmux.Environment.entry","qualifiedName":"Libtmux.Environment.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { name : string; value : value }","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type entry = {\n name: string ;\n value: value }","params":[]}],"slug":"libtmux-environment-entry"},{"id":"Libtmux.Environment.entry.name","publicId":"Libtmux.Environment.entry.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.entry","type":"string","qualifiedName":"Libtmux.Environment.name","slug":"libtmux-environment-entry-name"},{"id":"Libtmux.Environment.entry.value","publicId":"Libtmux.Environment.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.entry","type":"value","qualifiedName":"Libtmux.Environment.value","slug":"libtmux-environment-entry-value"},{"id":"Libtmux.Environment.lookup","publicId":"Libtmux.Environment.lookup","qualifiedName":"Libtmux.Environment.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":810,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> value option","source":{"file":"lib/libtmux.mli","line":810,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment","doc":{"summary":"No I/O. `None` means absent from the selected table and visibility. `Removed` masks a global value; `Value \"\"` is an explicitly empty value. Names must be ASCII identifiers; values preserve non-NUL bytes."},"signatures":[{"raw":"val lookup : t -> string -> value option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"value option"}],"slug":"libtmux-environment-lookup"},{"id":"Libtmux.Environment.scope","publicId":"Libtmux.Environment.scope","qualifiedName":"Libtmux.Environment.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Global | Session of Session.target","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type scope =\n | Global \n | Session of Session.target ","params":[]}],"slug":"libtmux-environment-scope"},{"id":"Libtmux.Environment.scope.Global","publicId":"Libtmux.Environment.scope.Global","name":"Global","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Global","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.scope","variant":"unit","qualifiedName":"Libtmux.Environment.Global","slug":"libtmux-environment-scope-global"},{"id":"Libtmux.Environment.scope.Session","publicId":"Libtmux.Environment.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.scope","variant":"tuple","qualifiedName":"Libtmux.Environment.Session","slug":"libtmux-environment-scope-session"},{"id":"Libtmux.Environment.t","publicId":"Libtmux.Environment.t","qualifiedName":"Libtmux.Environment.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment","doc":{"summary":"One captured environment table, in tmux order. `hidden` selects hidden variables exclusively. Session tables contain local entries, including removal markers; they do not merge the global environment."},"signatures":[{"raw":"type t =\n {\n source: Source.t ;\n scope: scope ;\n hidden: bool ;\n entries: entry Iarray.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-environment-t"},{"id":"Libtmux.Environment.t.entries","publicId":"Libtmux.Environment.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":802,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":802,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Environment.entries","slug":"libtmux-environment-t-entries"},{"id":"Libtmux.Environment.t.finished_at_ns","publicId":"Libtmux.Environment.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":804,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":804,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.finished_at_ns","slug":"libtmux-environment-t-finished_at_ns"},{"id":"Libtmux.Environment.t.hidden","publicId":"Libtmux.Environment.t.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":801,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":801,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.t","type":"bool","qualifiedName":"Libtmux.Environment.hidden","slug":"libtmux-environment-t-hidden"},{"id":"Libtmux.Environment.t.scope","publicId":"Libtmux.Environment.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":800,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":800,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.t","type":"scope","qualifiedName":"Libtmux.Environment.scope","slug":"libtmux-environment-t-scope"},{"id":"Libtmux.Environment.t.source","publicId":"Libtmux.Environment.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":799,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":799,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.t","type":"Source.t","qualifiedName":"Libtmux.Environment.source","slug":"libtmux-environment-t-source"},{"id":"Libtmux.Environment.t.started_at_ns","publicId":"Libtmux.Environment.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":803,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":803,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.started_at_ns","slug":"libtmux-environment-t-started_at_ns"},{"id":"Libtmux.Environment.value","publicId":"Libtmux.Environment.value","qualifiedName":"Libtmux.Environment.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Value of string | Removed","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type value =\n | Value of string \n | Removed ","params":[]}],"slug":"libtmux-environment-value"},{"id":"Libtmux.Environment.value.Removed","publicId":"Libtmux.Environment.value.Removed","name":"Removed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Removed","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.value","variant":"unit","qualifiedName":"Libtmux.Environment.Removed","slug":"libtmux-environment-value-removed"},{"id":"Libtmux.Environment.value.Value","publicId":"Libtmux.Environment.value.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Value of string","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Environment.value","variant":"tuple","qualifiedName":"Libtmux.Environment.Value","slug":"libtmux-environment-value-value"},{"id":"Libtmux.Error","publicId":"Libtmux.Error","qualifiedName":"Libtmux.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Expected input, capture, capability and transport failures. Cancellation\n belongs to the chosen backend and is not converted into an ordinary error.\n"],"declarations":[{"kind":"module","text":"module Error : sig\n type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Expected input, capture, capability and transport failures. Cancellation belongs to the chosen backend and is not converted into an ordinary error."},"slug":"libtmux-error"},{"id":"Libtmux.Error.pp","publicId":"Libtmux.Error.pp","qualifiedName":"Libtmux.Error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":78,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":78,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-error-pp"},{"id":"Libtmux.Error.t","publicId":"Libtmux.Error.t","qualifiedName":"Libtmux.Error.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error","signatures":[{"raw":"type t =\n | Invalid_input of string \n | Malformed_data of string \n | Capture_raced of string \n | Unsupported_version of string \n | Unsupported_binding of string \n | Unsupported_capture_hooks \n | Unsupported of string \n | Closed \n | Disconnected of string \n | Filesystem of {\n operation: string ;\n message: string } \n | Wrong_domain \n | Busy \n | Capacity of {\n resource: string ;\n limit: int } \n | Stale_target \n | No_such_entity of {\n kind: string ;\n id: string } \n | Command_failed of {\n command: string ;\n message: string } \n | Deadline_exceeded \n | Not_started \n | Outcome_unknown of string ","params":[]}],"slug":"libtmux-error-t"},{"id":"Libtmux.Error.t.Busy","publicId":"Libtmux.Error.t.Busy","name":"Busy","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Busy","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Busy","slug":"libtmux-error-t-busy"},{"id":"Libtmux.Error.t.Capacity","publicId":"Libtmux.Error.t.Capacity","name":"Capacity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capacity of { resource : string; limit : int }","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Capacity","slug":"libtmux-error-t-capacity"},{"id":"Libtmux.Error.t.Capacity.limit","publicId":"Libtmux.Error.t.Capacity.limit","name":"limit","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"limit : int","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.Capacity","type":"int","qualifiedName":"Libtmux.Error.limit","slug":"libtmux-error-t-capacity-limit"},{"id":"Libtmux.Error.t.Capacity.resource","publicId":"Libtmux.Error.t.Capacity.resource","name":"resource","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"resource : string;","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.Capacity","type":"string","qualifiedName":"Libtmux.Error.resource","slug":"libtmux-error-t-capacity-resource"},{"id":"Libtmux.Error.t.Capture_raced","publicId":"Libtmux.Error.t.Capture_raced","name":"Capture_raced","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_raced of string","source":{"file":"lib/libtmux.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Capture_raced","slug":"libtmux-error-t-capture_raced"},{"id":"Libtmux.Error.t.Closed","publicId":"Libtmux.Error.t.Closed","name":"Closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Closed","source":{"file":"lib/libtmux.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Closed","slug":"libtmux-error-t-closed"},{"id":"Libtmux.Error.t.Command_failed","publicId":"Libtmux.Error.t.Command_failed","name":"Command_failed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command_failed of { command : string; message : string }","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Command_failed","slug":"libtmux-error-t-command_failed"},{"id":"Libtmux.Error.t.Command_failed.command","publicId":"Libtmux.Error.t.Command_failed.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : string;","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.command","slug":"libtmux-error-t-command_failed-command"},{"id":"Libtmux.Error.t.Command_failed.message","publicId":"Libtmux.Error.t.Command_failed.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-command_failed-message"},{"id":"Libtmux.Error.t.Deadline_exceeded","publicId":"Libtmux.Error.t.Deadline_exceeded","name":"Deadline_exceeded","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Deadline_exceeded","source":{"file":"lib/libtmux.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Deadline_exceeded","slug":"libtmux-error-t-deadline_exceeded"},{"id":"Libtmux.Error.t.Disconnected","publicId":"Libtmux.Error.t.Disconnected","name":"Disconnected","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Disconnected of string","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Disconnected","slug":"libtmux-error-t-disconnected"},{"id":"Libtmux.Error.t.Filesystem","publicId":"Libtmux.Error.t.Filesystem","name":"Filesystem","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Filesystem of { operation : string; message : string }","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Filesystem","slug":"libtmux-error-t-filesystem"},{"id":"Libtmux.Error.t.Filesystem.message","publicId":"Libtmux.Error.t.Filesystem.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-filesystem-message"},{"id":"Libtmux.Error.t.Filesystem.operation","publicId":"Libtmux.Error.t.Filesystem.operation","name":"operation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation : string;","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.operation","slug":"libtmux-error-t-filesystem-operation"},{"id":"Libtmux.Error.t.Invalid_input","publicId":"Libtmux.Error.t.Invalid_input","name":"Invalid_input","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Invalid_input of string","source":{"file":"lib/libtmux.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Invalid_input","slug":"libtmux-error-t-invalid_input"},{"id":"Libtmux.Error.t.Malformed_data","publicId":"Libtmux.Error.t.Malformed_data","name":"Malformed_data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Malformed_data of string","source":{"file":"lib/libtmux.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Malformed_data","slug":"libtmux-error-t-malformed_data"},{"id":"Libtmux.Error.t.No_such_entity","publicId":"Libtmux.Error.t.No_such_entity","name":"No_such_entity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| No_such_entity of { kind : string; id : string }","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.No_such_entity","slug":"libtmux-error-t-no_such_entity"},{"id":"Libtmux.Error.t.No_such_entity.id","publicId":"Libtmux.Error.t.No_such_entity.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : string","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.id","slug":"libtmux-error-t-no_such_entity-id"},{"id":"Libtmux.Error.t.No_such_entity.kind","publicId":"Libtmux.Error.t.No_such_entity.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : string;","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.kind","slug":"libtmux-error-t-no_such_entity-kind"},{"id":"Libtmux.Error.t.Not_started","publicId":"Libtmux.Error.t.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"lib/libtmux.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Not_started","slug":"libtmux-error-t-not_started"},{"id":"Libtmux.Error.t.Outcome_unknown","publicId":"Libtmux.Error.t.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Outcome_unknown","slug":"libtmux-error-t-outcome_unknown"},{"id":"Libtmux.Error.t.Stale_target","publicId":"Libtmux.Error.t.Stale_target","name":"Stale_target","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale_target","source":{"file":"lib/libtmux.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Stale_target","slug":"libtmux-error-t-stale_target"},{"id":"Libtmux.Error.t.Unsupported","publicId":"Libtmux.Error.t.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported of string","source":{"file":"lib/libtmux.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported","slug":"libtmux-error-t-unsupported"},{"id":"Libtmux.Error.t.Unsupported_binding","publicId":"Libtmux.Error.t.Unsupported_binding","name":"Unsupported_binding","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_binding of string","source":{"file":"lib/libtmux.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_binding","slug":"libtmux-error-t-unsupported_binding"},{"id":"Libtmux.Error.t.Unsupported_capture_hooks","publicId":"Libtmux.Error.t.Unsupported_capture_hooks","name":"Unsupported_capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_capture_hooks","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Unsupported_capture_hooks","slug":"libtmux-error-t-unsupported_capture_hooks"},{"id":"Libtmux.Error.t.Unsupported_version","publicId":"Libtmux.Error.t.Unsupported_version","name":"Unsupported_version","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_version of string","source":{"file":"lib/libtmux.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_version","slug":"libtmux-error-t-unsupported_version"},{"id":"Libtmux.Error.t.Wrong_domain","publicId":"Libtmux.Error.t.Wrong_domain","name":"Wrong_domain","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_domain","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Wrong_domain","slug":"libtmux-error-t-wrong_domain"},{"id":"Libtmux.Expr","publicId":"Libtmux.Expr","qualifiedName":"Libtmux.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":574,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Inspectable predicates whose entity and operand types are checked by the\n compiler. Combine native closures separately with [Seq.filter]. Evaluation\n follows captured relationships without acquisition or hidden caches. "],"declarations":[{"kind":"module","text":"module Expr : sig\n type 'entity t\n\n val all : 'a t list -> 'a t\n (** Boolean conjunction; the empty conjunction is true. *)\n\n val any : 'a t list -> 'a t\n (** Boolean disjunction; the empty disjunction is false. *)\n\n val not_ : 'a t -> 'a t\n\n module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end\n\n module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end\n\n module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end\n\n module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end\n\n val compile : 'a t -> 'a -> bool\n (** Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n *)\n\n val pp : Format.formatter -> 'a t -> unit\n val describe : 'a t -> string\n\n type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison\n\n type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view\n\n val view : 'a t -> 'a view\n (** Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. *)\nend","source":{"file":"lib/libtmux.mli","line":574,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Inspectable predicates whose entity and operand types are checked by the compiler. Combine native closures separately with `Seq.filter`. Evaluation follows captured relationships without acquisition or hidden caches."},"slug":"libtmux-expr"},{"id":"Libtmux.Expr.Bool","publicId":"Libtmux.Expr.Bool","qualifiedName":"Libtmux.Expr.Bool","name":"Bool","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":585,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":585,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-bool"},{"id":"Libtmux.Expr.Bool.equal","publicId":"Libtmux.Expr.Bool.equal","qualifiedName":"Libtmux.Expr.Bool.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":586,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, bool) Field.t -> bool -> 'a t","source":{"file":"lib/libtmux.mli","line":586,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val equal : ('a, bool) Field.t -> bool -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"},{"name":"arg2","type":"bool"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-equal"},{"id":"Libtmux.Expr.Bool.is_false","publicId":"Libtmux.Expr.Bool.is_false","qualifiedName":"Libtmux.Expr.Bool.is_false","name":"is_false","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":588,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_false : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":588,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_false : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_false"},{"id":"Libtmux.Expr.Bool.is_true","publicId":"Libtmux.Expr.Bool.is_true","qualifiedName":"Libtmux.Expr.Bool.is_true","name":"is_true","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_true : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_true : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_true"},{"id":"Libtmux.Expr.Int","publicId":"Libtmux.Expr.Int","qualifiedName":"Libtmux.Expr.Int","name":"Int","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":591,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":591,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-int"},{"id":"Libtmux.Expr.Int.equal","publicId":"Libtmux.Expr.Int.equal","qualifiedName":"Libtmux.Expr.Int.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":592,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":592,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val equal : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-equal"},{"id":"Libtmux.Expr.Int.ge","publicId":"Libtmux.Expr.Int.ge","qualifiedName":"Libtmux.Expr.Int.ge","name":"ge","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ge : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val ge : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-ge"},{"id":"Libtmux.Expr.Int.gt","publicId":"Libtmux.Expr.Int.gt","qualifiedName":"Libtmux.Expr.Int.gt","name":"gt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":595,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val gt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":595,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val gt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-gt"},{"id":"Libtmux.Expr.Int.is_in","publicId":"Libtmux.Expr.Int.is_in","qualifiedName":"Libtmux.Expr.Int.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_in : ('a, int) Field.t -> int list -> 'a t","source":{"file":"lib/libtmux.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val is_in : ('a, int) Field.t -> int list -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int list"}],"returns":"'a t"}],"slug":"libtmux-expr-int-is_in"},{"id":"Libtmux.Expr.Int.le","publicId":"Libtmux.Expr.Int.le","qualifiedName":"Libtmux.Expr.Int.le","name":"le","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":594,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val le : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":594,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val le : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-le"},{"id":"Libtmux.Expr.Int.lt","publicId":"Libtmux.Expr.Int.lt","qualifiedName":"Libtmux.Expr.Int.lt","name":"lt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":593,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val lt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":593,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val lt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-lt"},{"id":"Libtmux.Expr.Rel","publicId":"Libtmux.Expr.Rel","qualifiedName":"Libtmux.Expr.Rel","name":"Rel","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":611,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":611,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-rel"},{"id":"Libtmux.Expr.Rel.all","publicId":"Libtmux.Expr.Rel.all","qualifiedName":"Libtmux.Expr.Rel.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":613,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":613,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-all"},{"id":"Libtmux.Expr.Rel.any","publicId":"Libtmux.Expr.Rel.any","qualifiedName":"Libtmux.Expr.Rel.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-any"},{"id":"Libtmux.Expr.Rel.exists","publicId":"Libtmux.Expr.Rel.exists","qualifiedName":"Libtmux.Expr.Rel.exists","name":"exists","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-exists"},{"id":"Libtmux.Expr.Rel.is","publicId":"Libtmux.Expr.Rel.is","qualifiedName":"Libtmux.Expr.Rel.is","name":"is","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":619,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":619,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.One.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is"},{"id":"Libtmux.Expr.Rel.is_absent","publicId":"Libtmux.Expr.Rel.is_absent","qualifiedName":"Libtmux.Expr.Rel.is_absent","name":"is_absent","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","source":{"file":"lib/libtmux.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is_absent"},{"id":"Libtmux.Expr.Rel.none","publicId":"Libtmux.Expr.Rel.none","qualifiedName":"Libtmux.Expr.Rel.none","name":"none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":615,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. "],"declarations":[{"kind":"function","text":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":615,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Rel","doc":{"summary":"On empty relations, `any` is false; `all` and `none` are true. One child must satisfy the complete nested expression."},"signatures":[{"raw":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-none"},{"id":"Libtmux.Expr.Text","publicId":"Libtmux.Expr.Text","qualifiedName":"Libtmux.Expr.Text","name":"Text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end","source":{"file":"lib/libtmux.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-text"},{"id":"Libtmux.Expr.Text.contains","publicId":"Libtmux.Expr.Text.contains","qualifiedName":"Libtmux.Expr.Text.contains","name":"contains","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":604,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val contains : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":604,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val contains : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-contains"},{"id":"Libtmux.Expr.Text.ends_with","publicId":"Libtmux.Expr.Text.ends_with","qualifiedName":"Libtmux.Expr.Text.ends_with","name":"ends_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":603,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ends_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":603,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val ends_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-ends_with"},{"id":"Libtmux.Expr.Text.equal","publicId":"Libtmux.Expr.Text.equal","qualifiedName":"Libtmux.Expr.Text.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":601,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":601,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val equal : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-equal"},{"id":"Libtmux.Expr.Text.is_in","publicId":"Libtmux.Expr.Text.is_in","qualifiedName":"Libtmux.Expr.Text.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":606,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. "],"declarations":[{"kind":"function","text":"val is_in : ('a, string) Field.t -> string list -> 'a t","source":{"file":"lib/libtmux.mli","line":606,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Text","doc":{"summary":"Comparisons use exact bytes, without case folding or normalization. The empty substring matches every string."},"signatures":[{"raw":"val is_in : ('a, string) Field.t -> string list -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string list"}],"returns":"'a t"}],"slug":"libtmux-expr-text-is_in"},{"id":"Libtmux.Expr.Text.starts_with","publicId":"Libtmux.Expr.Text.starts_with","qualifiedName":"Libtmux.Expr.Text.starts_with","name":"starts_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val starts_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val starts_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-starts_with"},{"id":"Libtmux.Expr.all","publicId":"Libtmux.Expr.all","qualifiedName":"Libtmux.Expr.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":577,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Boolean conjunction; the empty conjunction is true. "],"declarations":[{"kind":"function","text":"val all : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":577,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean conjunction; the empty conjunction is true."},"signatures":[{"raw":"val all : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-all"},{"id":"Libtmux.Expr.any","publicId":"Libtmux.Expr.any","qualifiedName":"Libtmux.Expr.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":580,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Boolean disjunction; the empty disjunction is false. "],"declarations":[{"kind":"function","text":"val any : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":580,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean disjunction; the empty disjunction is false."},"signatures":[{"raw":"val any : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-any"},{"id":"Libtmux.Expr.comparison","publicId":"Libtmux.Expr.comparison","qualifiedName":"Libtmux.Expr.comparison","name":"comparison","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":631,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":631,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type _ comparison =\n | Bool_equal: bool -> bool comparison \n | Int_equal: int -> int comparison \n | Int_lt: int -> int comparison \n | Int_le: int -> int comparison \n | Int_gt: int -> int comparison \n | Int_ge: int -> int comparison \n | Int_in: int list -> int comparison \n | Text_equal: string -> string comparison \n | Text_starts_with: string -> string comparison \n | Text_ends_with: string -> string comparison \n | Text_contains: string -> string comparison \n | Text_in: string list -> string comparison ","params":[]}],"slug":"libtmux-expr-comparison"},{"id":"Libtmux.Expr.comparison.Bool_equal","publicId":"Libtmux.Expr.comparison.Bool_equal","name":"Bool_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":632,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool_equal : bool -> bool comparison","source":{"file":"lib/libtmux.mli","line":632,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Bool_equal","slug":"libtmux-expr-comparison-bool_equal"},{"id":"Libtmux.Expr.comparison.Int_equal","publicId":"Libtmux.Expr.comparison.Int_equal","name":"Int_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_equal : int -> int comparison","source":{"file":"lib/libtmux.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_equal","slug":"libtmux-expr-comparison-int_equal"},{"id":"Libtmux.Expr.comparison.Int_ge","publicId":"Libtmux.Expr.comparison.Int_ge","name":"Int_ge","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":637,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_ge : int -> int comparison","source":{"file":"lib/libtmux.mli","line":637,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_ge","slug":"libtmux-expr-comparison-int_ge"},{"id":"Libtmux.Expr.comparison.Int_gt","publicId":"Libtmux.Expr.comparison.Int_gt","name":"Int_gt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":636,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_gt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":636,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_gt","slug":"libtmux-expr-comparison-int_gt"},{"id":"Libtmux.Expr.comparison.Int_in","publicId":"Libtmux.Expr.comparison.Int_in","name":"Int_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":638,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_in : int list -> int comparison","source":{"file":"lib/libtmux.mli","line":638,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_in","slug":"libtmux-expr-comparison-int_in"},{"id":"Libtmux.Expr.comparison.Int_le","publicId":"Libtmux.Expr.comparison.Int_le","name":"Int_le","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_le : int -> int comparison","source":{"file":"lib/libtmux.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_le","slug":"libtmux-expr-comparison-int_le"},{"id":"Libtmux.Expr.comparison.Int_lt","publicId":"Libtmux.Expr.comparison.Int_lt","name":"Int_lt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":634,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_lt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":634,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_lt","slug":"libtmux-expr-comparison-int_lt"},{"id":"Libtmux.Expr.comparison.Text_contains","publicId":"Libtmux.Expr.comparison.Text_contains","name":"Text_contains","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":642,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_contains : string -> string comparison","source":{"file":"lib/libtmux.mli","line":642,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_contains","slug":"libtmux-expr-comparison-text_contains"},{"id":"Libtmux.Expr.comparison.Text_ends_with","publicId":"Libtmux.Expr.comparison.Text_ends_with","name":"Text_ends_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":641,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_ends_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":641,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_ends_with","slug":"libtmux-expr-comparison-text_ends_with"},{"id":"Libtmux.Expr.comparison.Text_equal","publicId":"Libtmux.Expr.comparison.Text_equal","name":"Text_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":639,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_equal : string -> string comparison","source":{"file":"lib/libtmux.mli","line":639,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_equal","slug":"libtmux-expr-comparison-text_equal"},{"id":"Libtmux.Expr.comparison.Text_in","publicId":"Libtmux.Expr.comparison.Text_in","name":"Text_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":643,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":643,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_in","slug":"libtmux-expr-comparison-text_in"},{"id":"Libtmux.Expr.comparison.Text_starts_with","publicId":"Libtmux.Expr.comparison.Text_starts_with","name":"Text_starts_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":640,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_starts_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":640,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_starts_with","slug":"libtmux-expr-comparison-text_starts_with"},{"id":"Libtmux.Expr.compile","publicId":"Libtmux.Expr.compile","qualifiedName":"Libtmux.Expr.compile","name":"compile","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n "],"declarations":[{"kind":"function","text":"val compile : 'a t -> 'a -> bool","source":{"file":"lib/libtmux.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","doc":{"summary":"Prepare a reusable predicate. Compilation and evaluation perform no I/O."},"signatures":[{"raw":"val compile : 'a t -> 'a -> bool","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"'a"}],"returns":"bool"}],"slug":"libtmux-expr-compile"},{"id":"Libtmux.Expr.describe","publicId":"Libtmux.Expr.describe","qualifiedName":"Libtmux.Expr.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : 'a t -> string","source":{"file":"lib/libtmux.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val describe : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-expr-describe"},{"id":"Libtmux.Expr.not_","publicId":"Libtmux.Expr.not_","qualifiedName":"Libtmux.Expr.not_","name":"not_","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":583,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val not_ : 'a t -> 'a t","source":{"file":"lib/libtmux.mli","line":583,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val not_ : 'a t -> 'a t","params":[{"name":"arg1","type":"'a t"}],"returns":"'a t"}],"slug":"libtmux-expr-not_"},{"id":"Libtmux.Expr.pp","publicId":"Libtmux.Expr.pp","qualifiedName":"Libtmux.Expr.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":628,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> 'a t -> unit","source":{"file":"lib/libtmux.mli","line":628,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val pp : Format.formatter -> 'a t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"'a t"}],"returns":"unit"}],"slug":"libtmux-expr-pp"},{"id":"Libtmux.Expr.t","publicId":"Libtmux.Expr.t","qualifiedName":"Libtmux.Expr.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'entity t","source":{"file":"lib/libtmux.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'entity t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-expr-t"},{"id":"Libtmux.Expr.view","publicId":"Libtmux.Expr.view","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":657,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":657,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","doc":{"summary":"Typed read-only inspection for codecs and planners. A view cannot add custom accessors or closures to an expression."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-expr-view"},{"id":"Libtmux.Expr.view:type","publicId":"Libtmux.Expr.view:type","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'a view =\n | Compare: ('a, 'v) Field.t * 'v comparison -> 'a view \n | All of 'a t list \n | Any of 'a t list \n | Not of 'a t \n | Related_any: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_all: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_none: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_one: ('a, 'b) Relation.One.t * 'b t -> 'a view \n | Related_optional: ('a, 'b) Relation.Optional.t * 'b t -> 'a view \n | Absent: ('a, 'b) Relation.Optional.t -> 'a view ","params":[]}],"slug":"libtmux-expr-view-type"},{"id":"Libtmux.Expr.view:type.Absent","publicId":"Libtmux.Expr.view:type.Absent","name":"Absent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":655,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":655,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Absent","slug":"libtmux-expr-view-type-absent"},{"id":"Libtmux.Expr.view:type.All","publicId":"Libtmux.Expr.view:type.All","name":"All","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":647,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| All of 'a t list","source":{"file":"lib/libtmux.mli","line":647,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.All","slug":"libtmux-expr-view-type-all"},{"id":"Libtmux.Expr.view:type.Any","publicId":"Libtmux.Expr.view:type.Any","name":"Any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":648,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Any of 'a t list","source":{"file":"lib/libtmux.mli","line":648,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Any","slug":"libtmux-expr-view-type-any"},{"id":"Libtmux.Expr.view:type.Compare","publicId":"Libtmux.Expr.view:type.Compare","name":"Compare","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":646,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Compare : ('a, 'v) Field.t * 'v comparison -> 'a view","source":{"file":"lib/libtmux.mli","line":646,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Compare","slug":"libtmux-expr-view-type-compare"},{"id":"Libtmux.Expr.view:type.Not","publicId":"Libtmux.Expr.view:type.Not","name":"Not","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":649,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not of 'a t","source":{"file":"lib/libtmux.mli","line":649,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Not","slug":"libtmux-expr-view-type-not"},{"id":"Libtmux.Expr.view:type.Related_all","publicId":"Libtmux.Expr.view:type.Related_all","name":"Related_all","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":651,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":651,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_all","slug":"libtmux-expr-view-type-related_all"},{"id":"Libtmux.Expr.view:type.Related_any","publicId":"Libtmux.Expr.view:type.Related_any","name":"Related_any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":650,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":650,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_any","slug":"libtmux-expr-view-type-related_any"},{"id":"Libtmux.Expr.view:type.Related_none","publicId":"Libtmux.Expr.view:type.Related_none","name":"Related_none","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":652,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":652,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_none","slug":"libtmux-expr-view-type-related_none"},{"id":"Libtmux.Expr.view:type.Related_one","publicId":"Libtmux.Expr.view:type.Related_one","name":"Related_one","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":653,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":653,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_one","slug":"libtmux-expr-view-type-related_one"},{"id":"Libtmux.Expr.view:type.Related_optional","publicId":"Libtmux.Expr.view:type.Related_optional","name":"Related_optional","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":654,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":654,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_optional","slug":"libtmux-expr-view-type-related_optional"},{"id":"Libtmux.Field","publicId":"Libtmux.Field","qualifiedName":"Libtmux.Field","name":"Field","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":143,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Sealed scalar descriptors carrying entity and value types. Descriptors read\n captured data and provide trusted identities for {!Expr} values. Use\n {!Relation} for graph edges. "],"declarations":[{"kind":"module","text":"module Field : sig\n type _ kind = Bool : bool kind | Int : int kind | Text : string kind\n type ('entity, 'value) t\n type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed\n\n val name : ('entity, 'value) t -> string\n val kind : ('entity, 'value) t -> 'value kind\n\n val get : ('entity, 'value) t -> 'entity -> 'value\n (** Canonical descriptors are sealed. Accessing a field reads captured data.\n *)\nend","source":{"file":"lib/libtmux.mli","line":143,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Sealed scalar descriptors carrying entity and value types. Descriptors read captured data and provide trusted identities for {!Expr} values. Use {!Relation} for graph edges."},"slug":"libtmux-field"},{"id":"Libtmux.Field.get","publicId":"Libtmux.Field.get","qualifiedName":"Libtmux.Field.get","name":"get","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Canonical descriptors are sealed. Accessing a field reads captured data.\n "],"declarations":[{"kind":"function","text":"val get : ('entity, 'value) t -> 'entity -> 'value","source":{"file":"lib/libtmux.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field","doc":{"summary":"Canonical descriptors are sealed. Accessing a field reads captured data."},"signatures":[{"raw":"val get : ('entity, 'value) t -> 'entity -> 'value","params":[{"name":"arg1","type":"('entity, 'value) t"},{"name":"arg2","type":"'entity"}],"returns":"'value"}],"slug":"libtmux-field-get"},{"id":"Libtmux.Field.kind","publicId":"Libtmux.Field.kind","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : ('entity, 'value) t -> 'value kind","source":{"file":"lib/libtmux.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val kind : ('entity, 'value) t -> 'value kind","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"'value kind"}],"slug":"libtmux-field-kind"},{"id":"Libtmux.Field.kind:type","publicId":"Libtmux.Field.kind:type","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type _ kind =\n | Bool: bool kind \n | Int: int kind \n | Text: string kind ","params":[]}],"slug":"libtmux-field-kind-type"},{"id":"Libtmux.Field.kind:type.Bool","publicId":"Libtmux.Field.kind:type.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool : bool kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Bool","slug":"libtmux-field-kind-type-bool"},{"id":"Libtmux.Field.kind:type.Int","publicId":"Libtmux.Field.kind:type.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int : int kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Int","slug":"libtmux-field-kind-type-int"},{"id":"Libtmux.Field.kind:type.Text","publicId":"Libtmux.Field.kind:type.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text : string kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Text","slug":"libtmux-field-kind-type-text"},{"id":"Libtmux.Field.name","publicId":"Libtmux.Field.name","qualifiedName":"Libtmux.Field.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('entity, 'value) t -> string","source":{"file":"lib/libtmux.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val name : ('entity, 'value) t -> string","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"string"}],"slug":"libtmux-field-name"},{"id":"Libtmux.Field.packed","publicId":"Libtmux.Field.packed","qualifiedName":"Libtmux.Field.packed","name":"packed","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type 'entity packed =\n | Pack: ('entity, 'value) t -> 'entity packed ","params":[]}],"slug":"libtmux-field-packed"},{"id":"Libtmux.Field.packed.Pack","publicId":"Libtmux.Field.packed.Pack","name":"Pack","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field.packed","variant":"tuple","qualifiedName":"Libtmux.Field.Pack","slug":"libtmux-field-packed-pack"},{"id":"Libtmux.Field.t","publicId":"Libtmux.Field.t","qualifiedName":"Libtmux.Field.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":145,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('entity, 'value) t","source":{"file":"lib/libtmux.mli","line":145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type ('entity, 'value) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-field-t"},{"id":"Libtmux.Formats","publicId":"Libtmux.Formats","qualifiedName":"Libtmux.Formats","name":"Formats","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Formats : sig\n module Kind : sig\n type t = Text | Timestamp\n end\n\n module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }\n (** Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. *)\n\n type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t\n\n type scalar = Bool of bool | Int of int | Text of string\n\n type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported\n (** [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor option, Error.t) result\n\n val lookup :\n version:string -> observation -> string -> (state, Error.t) result\n (** No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. *)\nend","source":{"file":"lib/libtmux.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-formats"},{"id":"Libtmux.Formats.Context","publicId":"Libtmux.Formats.Context","qualifiedName":"Libtmux.Formats.Context","name":"Context","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":500,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end","source":{"file":"lib/libtmux.mli","line":500,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-context"},{"id":"Libtmux.Formats.Context.t","publicId":"Libtmux.Formats.Context.t","qualifiedName":"Libtmux.Formats.Context.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":501,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","source":{"file":"lib/libtmux.mli","line":501,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context","signatures":[{"raw":"type t =\n | Server \n | Connection \n | Session \n | Window \n | Window_link \n | Pane \n | Client \n | Buffer \n | Mouse \n | Command ","params":[]}],"slug":"libtmux-formats-context-t"},{"id":"Libtmux.Formats.Context.t.Buffer","publicId":"Libtmux.Formats.Context.t.Buffer","name":"Buffer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":509,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Buffer","source":{"file":"lib/libtmux.mli","line":509,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Buffer","slug":"libtmux-formats-context-t-buffer"},{"id":"Libtmux.Formats.Context.t.Client","publicId":"Libtmux.Formats.Context.t.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":508,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client","source":{"file":"lib/libtmux.mli","line":508,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Client","slug":"libtmux-formats-context-t-client"},{"id":"Libtmux.Formats.Context.t.Command","publicId":"Libtmux.Formats.Context.t.Command","name":"Command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":511,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command","source":{"file":"lib/libtmux.mli","line":511,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Command","slug":"libtmux-formats-context-t-command"},{"id":"Libtmux.Formats.Context.t.Connection","publicId":"Libtmux.Formats.Context.t.Connection","name":"Connection","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Connection","source":{"file":"lib/libtmux.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Connection","slug":"libtmux-formats-context-t-connection"},{"id":"Libtmux.Formats.Context.t.Mouse","publicId":"Libtmux.Formats.Context.t.Mouse","name":"Mouse","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mouse","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Mouse","slug":"libtmux-formats-context-t-mouse"},{"id":"Libtmux.Formats.Context.t.Pane","publicId":"Libtmux.Formats.Context.t.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":507,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane","source":{"file":"lib/libtmux.mli","line":507,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Pane","slug":"libtmux-formats-context-t-pane"},{"id":"Libtmux.Formats.Context.t.Server","publicId":"Libtmux.Formats.Context.t.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Server","slug":"libtmux-formats-context-t-server"},{"id":"Libtmux.Formats.Context.t.Session","publicId":"Libtmux.Formats.Context.t.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":504,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session","source":{"file":"lib/libtmux.mli","line":504,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Session","slug":"libtmux-formats-context-t-session"},{"id":"Libtmux.Formats.Context.t.Window","publicId":"Libtmux.Formats.Context.t.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window","source":{"file":"lib/libtmux.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window","slug":"libtmux-formats-context-t-window"},{"id":"Libtmux.Formats.Context.t.Window_link","publicId":"Libtmux.Formats.Context.t.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":506,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link","source":{"file":"lib/libtmux.mli","line":506,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window_link","slug":"libtmux-formats-context-t-window_link"},{"id":"Libtmux.Formats.Kind","publicId":"Libtmux.Formats.Kind","qualifiedName":"Libtmux.Formats.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":496,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Timestamp\n end","source":{"file":"lib/libtmux.mli","line":496,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-kind"},{"id":"Libtmux.Formats.Kind.t","publicId":"Libtmux.Formats.Kind.t","qualifiedName":"Libtmux.Formats.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Timestamp","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Kind","signatures":[{"raw":"type t =\n | Text \n | Timestamp ","params":[]}],"slug":"libtmux-formats-kind-t"},{"id":"Libtmux.Formats.Kind.t.Text","publicId":"Libtmux.Formats.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Text","slug":"libtmux-formats-kind-t-text"},{"id":"Libtmux.Formats.Kind.t.Timestamp","publicId":"Libtmux.Formats.Kind.t.Timestamp","name":"Timestamp","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Timestamp","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Timestamp","slug":"libtmux-formats-kind-t-timestamp"},{"id":"Libtmux.Formats.catalog","publicId":"Libtmux.Formats.catalog","qualifiedName":"Libtmux.Formats.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-formats-catalog"},{"id":"Libtmux.Formats.describe","publicId":"Libtmux.Formats.describe","qualifiedName":"Libtmux.Formats.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":547,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor option, Error.t) result","source":{"file":"lib/libtmux.mli","line":547,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val describe :\n version:string -> string -> (descriptor option, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor option, Error.t) result"}],"slug":"libtmux-formats-describe"},{"id":"Libtmux.Formats.descriptor","publicId":"Libtmux.Formats.descriptor","qualifiedName":"Libtmux.Formats.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":514,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":514,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","doc":{"summary":"Metadata generated from pinned tmux format callbacks. `contexts` lists direct context dependencies, not a promise that a value exists. Caller variables from hooks and menus are outside this built-in catalog."},"signatures":[{"raw":"type descriptor =\n {\n name: string ;\n kind: Kind.t ;\n contexts: Context.t list ;\n versions: string list }","params":[]}],"slug":"libtmux-formats-descriptor"},{"id":"Libtmux.Formats.descriptor.contexts","publicId":"Libtmux.Formats.descriptor.contexts","name":"contexts","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":517,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"contexts : Context.t list;","source":{"file":"lib/libtmux.mli","line":517,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.descriptor","type":"Context.t list","qualifiedName":"Libtmux.Formats.contexts","slug":"libtmux-formats-descriptor-contexts"},{"id":"Libtmux.Formats.descriptor.kind","publicId":"Libtmux.Formats.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":516,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":516,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Formats.kind","slug":"libtmux-formats-descriptor-kind"},{"id":"Libtmux.Formats.descriptor.name","publicId":"Libtmux.Formats.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":515,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":515,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.descriptor","type":"string","qualifiedName":"Libtmux.Formats.name","slug":"libtmux-formats-descriptor-name"},{"id":"Libtmux.Formats.descriptor.versions","publicId":"Libtmux.Formats.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":518,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":518,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.descriptor","type":"string list","qualifiedName":"Libtmux.Formats.versions","slug":"libtmux-formats-descriptor-versions"},{"id":"Libtmux.Formats.lookup","publicId":"Libtmux.Formats.lookup","qualifiedName":"Libtmux.Formats.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":549,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. "],"declarations":[{"kind":"function","text":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","source":{"file":"lib/libtmux.mli","line":549,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","doc":{"summary":"No I/O. Supply the version recorded by the acquiring client's `version` accessor. Unsupported catalog versions return an error. Native typed accessors remain the primary API; lookup does not acquire extra fields."},"signatures":[{"raw":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"observation"},{"name":"arg2","type":"string"}],"returns":"(state, Error.t) result"}],"slug":"libtmux-formats-lookup"},{"id":"Libtmux.Formats.observation","publicId":"Libtmux.Formats.observation","qualifiedName":"Libtmux.Formats.observation","name":"observation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":524,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":524,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type observation =\n | Snapshot of Snapshot.t \n | Session of Session.t \n | Window of Window.t \n | Window_link of Window_link.t \n | Pane of Pane.t \n | Client of Client_observation.t ","params":[]}],"slug":"libtmux-formats-observation"},{"id":"Libtmux.Formats.observation.Client","publicId":"Libtmux.Formats.observation.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":530,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":530,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Client","slug":"libtmux-formats-observation-client"},{"id":"Libtmux.Formats.observation.Pane","publicId":"Libtmux.Formats.observation.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":529,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.t","source":{"file":"lib/libtmux.mli","line":529,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Pane","slug":"libtmux-formats-observation-pane"},{"id":"Libtmux.Formats.observation.Session","publicId":"Libtmux.Formats.observation.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":526,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.t","source":{"file":"lib/libtmux.mli","line":526,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Session","slug":"libtmux-formats-observation-session"},{"id":"Libtmux.Formats.observation.Snapshot","publicId":"Libtmux.Formats.observation.Snapshot","name":"Snapshot","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Snapshot of Snapshot.t","source":{"file":"lib/libtmux.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Snapshot","slug":"libtmux-formats-observation-snapshot"},{"id":"Libtmux.Formats.observation.Window","publicId":"Libtmux.Formats.observation.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":527,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.t","source":{"file":"lib/libtmux.mli","line":527,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window","slug":"libtmux-formats-observation-window"},{"id":"Libtmux.Formats.observation.Window_link","publicId":"Libtmux.Formats.observation.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":528,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link of Window_link.t","source":{"file":"lib/libtmux.mli","line":528,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window_link","slug":"libtmux-formats-observation-window_link"},{"id":"Libtmux.Formats.scalar","publicId":"Libtmux.Formats.scalar","qualifiedName":"Libtmux.Formats.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar = Bool of bool | Int of int | Text of string","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type scalar =\n | Bool of bool \n | Int of int \n | Text of string ","params":[]}],"slug":"libtmux-formats-scalar"},{"id":"Libtmux.Formats.scalar.Bool","publicId":"Libtmux.Formats.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool of bool","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Bool","slug":"libtmux-formats-scalar-bool"},{"id":"Libtmux.Formats.scalar.Int","publicId":"Libtmux.Formats.scalar.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int of int","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Int","slug":"libtmux-formats-scalar-int"},{"id":"Libtmux.Formats.scalar.Text","publicId":"Libtmux.Formats.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Text","slug":"libtmux-formats-scalar-text"},{"id":"Libtmux.Formats.state","publicId":"Libtmux.Formats.state","qualifiedName":"Libtmux.Formats.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":534,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported","source":{"file":"lib/libtmux.mli","line":534,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type state =\n | Value of scalar \n | Missing \n | Unacquired \n | Unsupported ","params":[]}],"slug":"libtmux-formats-state"},{"id":"Libtmux.Formats.state.Missing","publicId":"Libtmux.Formats.state.Missing","name":"Missing","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":536,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing","source":{"file":"lib/libtmux.mli","line":536,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Missing","slug":"libtmux-formats-state-missing"},{"id":"Libtmux.Formats.state.Unacquired","publicId":"Libtmux.Formats.state.Unacquired","name":"Unacquired","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unacquired","source":{"file":"lib/libtmux.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Unacquired","slug":"libtmux-formats-state-unacquired"},{"id":"Libtmux.Formats.state.Unsupported","publicId":"Libtmux.Formats.state.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":538,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. "],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"lib/libtmux.mli","line":538,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.state","doc":{"summary":"`Missing` is an absence explicitly recorded in the observation, such as a client without terminal height. `Unacquired` means no captured value for this observation, including ambiguous session context for a pane. `Unsupported` means the name is outside the selected release's catalog. `Value (Text \"\")` is a captured empty string, never inferred absence."},"variant":"unit","qualifiedName":"Libtmux.Formats.Unsupported","slug":"libtmux-formats-state-unsupported"},{"id":"Libtmux.Formats.state.Value","publicId":"Libtmux.Formats.state.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":535,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Value of scalar","source":{"file":"lib/libtmux.mli","line":535,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Formats.state","variant":"tuple","qualifiedName":"Libtmux.Formats.Value","slug":"libtmux-formats-state-value"},{"id":"Libtmux.Generation","publicId":"Libtmux.Generation","qualifiedName":"Libtmux.Generation","name":"Generation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A random connection-generation identifier. Reconnecting creates a new\n generation even when the socket and server PID are unchanged. "],"declarations":[{"kind":"module","text":"module Generation : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"A random connection-generation identifier. Reconnecting creates a new generation even when the socket and server PID are unchanged."},"slug":"libtmux-generation"},{"id":"Libtmux.Generation.equal","publicId":"Libtmux.Generation.equal","qualifiedName":"Libtmux.Generation.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-generation-equal"},{"id":"Libtmux.Generation.of_string","publicId":"Libtmux.Generation.of_string","qualifiedName":"Libtmux.Generation.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Generation","doc":{"summary":"Import a 256-bit connection nonce as 64 lowercase hexadecimal characters. Backends generate a fresh random nonce for each connection."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-generation-of_string"},{"id":"Libtmux.Generation.t","publicId":"Libtmux.Generation.t","qualifiedName":"Libtmux.Generation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":84,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":84,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-generation-t"},{"id":"Libtmux.Generation.to_string","publicId":"Libtmux.Generation.to_string","qualifiedName":"Libtmux.Generation.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-generation-to_string"},{"id":"Libtmux.Geometry","publicId":"Libtmux.Geometry","qualifiedName":"Libtmux.Geometry","name":"Geometry","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Geometry : sig\n type direction = Left | Right | Above | Below\n type size = Cells of int | Percent of int\nend","source":{"file":"lib/libtmux.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-geometry"},{"id":"Libtmux.Geometry.direction","publicId":"Libtmux.Geometry.direction","qualifiedName":"Libtmux.Geometry.direction","name":"direction","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type direction = Left | Right | Above | Below","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type direction =\n | Left \n | Right \n | Above \n | Below ","params":[]}],"slug":"libtmux-geometry-direction"},{"id":"Libtmux.Geometry.direction.Above","publicId":"Libtmux.Geometry.direction.Above","name":"Above","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Above","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Above","slug":"libtmux-geometry-direction-above"},{"id":"Libtmux.Geometry.direction.Below","publicId":"Libtmux.Geometry.direction.Below","name":"Below","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Below","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Below","slug":"libtmux-geometry-direction-below"},{"id":"Libtmux.Geometry.direction.Left","publicId":"Libtmux.Geometry.direction.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Left","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Left","slug":"libtmux-geometry-direction-left"},{"id":"Libtmux.Geometry.direction.Right","publicId":"Libtmux.Geometry.direction.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Right","slug":"libtmux-geometry-direction-right"},{"id":"Libtmux.Geometry.size","publicId":"Libtmux.Geometry.size","qualifiedName":"Libtmux.Geometry.size","name":"size","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type size = Cells of int | Percent of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type size =\n | Cells of int \n | Percent of int ","params":[]}],"slug":"libtmux-geometry-size"},{"id":"Libtmux.Geometry.size.Cells","publicId":"Libtmux.Geometry.size.Cells","name":"Cells","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Cells of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Cells","slug":"libtmux-geometry-size-cells"},{"id":"Libtmux.Geometry.size.Percent","publicId":"Libtmux.Geometry.size.Percent","name":"Percent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Percent of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Percent","slug":"libtmux-geometry-size-percent"},{"id":"Libtmux.Hook","publicId":"Libtmux.Hook","qualifiedName":"Libtmux.Hook","name":"Hook","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":873,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Hook : sig\n type command = { name : string; arguments : string list }\n (** A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. *)\nend","source":{"file":"lib/libtmux.mli","line":873,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-hook"},{"id":"Libtmux.Hook.command","publicId":"Libtmux.Hook.command","qualifiedName":"Libtmux.Hook.command","name":"command","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. "],"declarations":[{"kind":"struct","text":"type command = { name : string; arguments : string list }","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Hook","doc":{"summary":"A tmux command and its distinct arguments. Setting a hook encodes these as command data; it does not concatenate arguments into shell code. Argument-specific tmux behavior, including format expansion, still applies when the hook runs."},"signatures":[{"raw":"type command = {\n name: string ;\n arguments: string list }","params":[]}],"slug":"libtmux-hook-command"},{"id":"Libtmux.Hook.command.arguments","publicId":"Libtmux.Hook.command.arguments","name":"arguments","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"arguments : string list","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Hook.command","type":"string list","qualifiedName":"Libtmux.Hook.arguments","slug":"libtmux-hook-command-arguments"},{"id":"Libtmux.Hook.command.name","publicId":"Libtmux.Hook.command.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Hook.command","type":"string","qualifiedName":"Libtmux.Hook.name","slug":"libtmux-hook-command-name"},{"id":"Libtmux.ID","publicId":"Libtmux.ID","qualifiedName":"Libtmux.ID","name":"ID","kind":"interface","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"interface","text":"module type ID = sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Accept a canonical prefixed decimal tmux ID in the uint32 range. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\n val compare : t -> t -> int\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-id"},{"id":"Libtmux.ID.compare","publicId":"Libtmux.ID.compare","qualifiedName":"Libtmux.ID.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-id-compare"},{"id":"Libtmux.ID.equal","publicId":"Libtmux.ID.equal","qualifiedName":"Libtmux.ID.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-id-equal"},{"id":"Libtmux.ID.of_string","publicId":"Libtmux.ID.of_string","qualifiedName":"Libtmux.ID.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.ID","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-id-of_string"},{"id":"Libtmux.ID.pp","publicId":"Libtmux.ID.pp","qualifiedName":"Libtmux.ID.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-id-pp"},{"id":"Libtmux.ID.t","publicId":"Libtmux.ID.t","qualifiedName":"Libtmux.ID.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.ID","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-id-t"},{"id":"Libtmux.ID.to_string","publicId":"Libtmux.ID.to_string","qualifiedName":"Libtmux.ID.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-id-to_string"},{"id":"Libtmux.Key","publicId":"Libtmux.Key","qualifiedName":"Libtmux.Key","name":"Key","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Key : sig\n type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char\nend","source":{"file":"lib/libtmux.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-key"},{"id":"Libtmux.Key.t","publicId":"Libtmux.Key.t","qualifiedName":"Libtmux.Key.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":725,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","source":{"file":"lib/libtmux.mli","line":725,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key","signatures":[{"raw":"type t =\n | Enter \n | Tab \n | Escape \n | Backspace \n | Up \n | Down \n | Left \n | Right \n | Control of char ","params":[]}],"slug":"libtmux-key-t"},{"id":"Libtmux.Key.t.Backspace","publicId":"Libtmux.Key.t.Backspace","name":"Backspace","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Backspace","source":{"file":"lib/libtmux.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Backspace","slug":"libtmux-key-t-backspace"},{"id":"Libtmux.Key.t.Control","publicId":"Libtmux.Key.t.Control","name":"Control","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":734,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Control of char","source":{"file":"lib/libtmux.mli","line":734,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"tuple","qualifiedName":"Libtmux.Key.Control","slug":"libtmux-key-t-control"},{"id":"Libtmux.Key.t.Down","publicId":"Libtmux.Key.t.Down","name":"Down","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":731,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Down","source":{"file":"lib/libtmux.mli","line":731,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Down","slug":"libtmux-key-t-down"},{"id":"Libtmux.Key.t.Enter","publicId":"Libtmux.Key.t.Enter","name":"Enter","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":726,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Enter","source":{"file":"lib/libtmux.mli","line":726,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Enter","slug":"libtmux-key-t-enter"},{"id":"Libtmux.Key.t.Escape","publicId":"Libtmux.Key.t.Escape","name":"Escape","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":728,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Escape","source":{"file":"lib/libtmux.mli","line":728,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Escape","slug":"libtmux-key-t-escape"},{"id":"Libtmux.Key.t.Left","publicId":"Libtmux.Key.t.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":732,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Left","source":{"file":"lib/libtmux.mli","line":732,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Left","slug":"libtmux-key-t-left"},{"id":"Libtmux.Key.t.Right","publicId":"Libtmux.Key.t.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":733,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":733,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Right","slug":"libtmux-key-t-right"},{"id":"Libtmux.Key.t.Tab","publicId":"Libtmux.Key.t.Tab","name":"Tab","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":727,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tab","source":{"file":"lib/libtmux.mli","line":727,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Tab","slug":"libtmux-key-t-tab"},{"id":"Libtmux.Key.t.Up","publicId":"Libtmux.Key.t.Up","name":"Up","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":730,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Up","source":{"file":"lib/libtmux.mli","line":730,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Up","slug":"libtmux-key-t-up"},{"id":"Libtmux.Layout","publicId":"Libtmux.Layout","qualifiedName":"Libtmux.Layout","name":"Layout","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":767,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Layout : sig\n type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string\nend","source":{"file":"lib/libtmux.mli","line":767,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","slug":"libtmux-layout"},{"id":"Libtmux.Layout.t","publicId":"Libtmux.Layout.t","qualifiedName":"Libtmux.Layout.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":768,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","source":{"file":"lib/libtmux.mli","line":768,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout","signatures":[{"raw":"type t =\n | Even_horizontal \n | Even_vertical \n | Main_horizontal \n | Main_vertical \n | Tiled \n | Custom of string ","params":[]}],"slug":"libtmux-layout-t"},{"id":"Libtmux.Layout.t.Custom","publicId":"Libtmux.Layout.t.Custom","name":"Custom","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Custom of string","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout.t","variant":"tuple","qualifiedName":"Libtmux.Layout.Custom","slug":"libtmux-layout-t-custom"},{"id":"Libtmux.Layout.t.Even_horizontal","publicId":"Libtmux.Layout.t.Even_horizontal","name":"Even_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":769,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_horizontal","source":{"file":"lib/libtmux.mli","line":769,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_horizontal","slug":"libtmux-layout-t-even_horizontal"},{"id":"Libtmux.Layout.t.Even_vertical","publicId":"Libtmux.Layout.t.Even_vertical","name":"Even_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":770,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_vertical","source":{"file":"lib/libtmux.mli","line":770,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_vertical","slug":"libtmux-layout-t-even_vertical"},{"id":"Libtmux.Layout.t.Main_horizontal","publicId":"Libtmux.Layout.t.Main_horizontal","name":"Main_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":771,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_horizontal","source":{"file":"lib/libtmux.mli","line":771,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_horizontal","slug":"libtmux-layout-t-main_horizontal"},{"id":"Libtmux.Layout.t.Main_vertical","publicId":"Libtmux.Layout.t.Main_vertical","name":"Main_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_vertical","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_vertical","slug":"libtmux-layout-t-main_vertical"},{"id":"Libtmux.Layout.t.Tiled","publicId":"Libtmux.Layout.t.Tiled","name":"Tiled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tiled","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Tiled","slug":"libtmux-layout-t-tiled"},{"id":"Libtmux.Model","publicId":"Libtmux.Model","qualifiedName":"Libtmux.Model","name":"Model","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Built-in model witnesses and canonical field lookup for typed codecs.\n Untrusted field names must resolve against the selected model. "],"declarations":[{"kind":"module","text":"module Model : sig\n type 'a t\n\n val session : Session.t t\n val window : Window.t t\n val window_link : Window_link.t t\n val pane : Pane.t t\n val client : Client_observation.t t\n val name : 'a t -> string\n val fields : 'a t -> 'a Field.packed list\n val find_field : 'a t -> string -> 'a Field.packed option\nend","source":{"file":"lib/libtmux.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Built-in model witnesses and canonical field lookup for typed codecs. Untrusted field names must resolve against the selected model."},"slug":"libtmux-model"},{"id":"Libtmux.Model.client","publicId":"Libtmux.Model.client","qualifiedName":"Libtmux.Model.client","name":"client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val client : Client_observation.t t","source":{"file":"lib/libtmux.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val client : Client_observation.t t","params":[],"returns":"Client_observation.t t"}],"slug":"libtmux-model-client"},{"id":"Libtmux.Model.fields","publicId":"Libtmux.Model.fields","qualifiedName":"Libtmux.Model.fields","name":"fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":567,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val fields : 'a t -> 'a Field.packed list","source":{"file":"lib/libtmux.mli","line":567,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val fields : 'a t -> 'a Field.packed list","params":[{"name":"arg1","type":"'a t"}],"returns":"'a Field.packed list"}],"slug":"libtmux-model-fields"},{"id":"Libtmux.Model.find_field","publicId":"Libtmux.Model.find_field","qualifiedName":"Libtmux.Model.find_field","name":"find_field","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_field : 'a t -> string -> 'a Field.packed option","source":{"file":"lib/libtmux.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val find_field : 'a t -> string -> 'a Field.packed option","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"string"}],"returns":"'a Field.packed option"}],"slug":"libtmux-model-find_field"},{"id":"Libtmux.Model.name","publicId":"Libtmux.Model.name","qualifiedName":"Libtmux.Model.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":566,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : 'a t -> string","source":{"file":"lib/libtmux.mli","line":566,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val name : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-model-name"},{"id":"Libtmux.Model.pane","publicId":"Libtmux.Model.pane","qualifiedName":"Libtmux.Model.pane","name":"pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":564,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pane : Pane.t t","source":{"file":"lib/libtmux.mli","line":564,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val pane : Pane.t t","params":[],"returns":"Pane.t t"}],"slug":"libtmux-model-pane"},{"id":"Libtmux.Model.session","publicId":"Libtmux.Model.session","qualifiedName":"Libtmux.Model.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":561,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : Session.t t","source":{"file":"lib/libtmux.mli","line":561,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val session : Session.t t","params":[],"returns":"Session.t t"}],"slug":"libtmux-model-session"},{"id":"Libtmux.Model.t","publicId":"Libtmux.Model.t","qualifiedName":"Libtmux.Model.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":559,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":559,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-model-t"},{"id":"Libtmux.Model.window","publicId":"Libtmux.Model.window","qualifiedName":"Libtmux.Model.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : Window.t t","source":{"file":"lib/libtmux.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window : Window.t t","params":[],"returns":"Window.t t"}],"slug":"libtmux-model-window"},{"id":"Libtmux.Model.window_link","publicId":"Libtmux.Model.window_link","qualifiedName":"Libtmux.Model.window_link","name":"window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":563,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_link : Window_link.t t","source":{"file":"lib/libtmux.mli","line":563,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window_link : Window_link.t t","params":[],"returns":"Window_link.t t"}],"slug":"libtmux-model-window_link"},{"id":"Libtmux.Operations","publicId":"Libtmux.Operations","qualifiedName":"Libtmux.Operations","name":"Operations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1073,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Construct typed tmux operations for a backend client. Observations are\n immutable, mutations use explicit targets, and no command retries a mutation\n against another connection generation. Construction performs no I/O; the\n descriptions below state what execution does. "],"declarations":[{"kind":"module","text":"module Operations : sig\n val capture : unit -> Snapshot.t Command.t\n (** Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. *)\n\n val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t\n (** Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. *)\n\n val rename_window : Window.target -> name:string -> unit Command.t\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session : Session.target -> name:string -> unit Command.t\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at : Client_name.t -> unit Command.t\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text : Pane.target -> text:string -> unit Command.t\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys : Pane.target -> Key.t list -> unit Command.t\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : string -> unit Command.t\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : string -> unit Command.t\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment : Environment.scope -> string -> unit Command.t\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment : Environment.scope -> string -> unit Command.t\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array : Options.scope -> string -> unit Command.t\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks : Options.scope -> Options.t Command.t\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. *)\n\n val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook : Options.scope -> string -> unit Command.t\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session : Session.target -> unit Command.t\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : Window.target -> unit Command.t\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : Pane.target -> unit Command.t\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at : Session.target -> index:int -> unit Command.t\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : Pane.target -> unit Command.t\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title : Pane.target -> title:string -> unit Command.t\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout : Window.target -> Layout.t -> unit Command.t\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes : Pane.target -> Pane.target -> unit Command.t\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : Pane.target -> unit Command.t\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : Pane.target -> unit Command.t\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\nend","source":{"file":"lib/libtmux.mli","line":1073,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Construct typed tmux operations for a backend client. Observations are immutable, mutations use explicit targets, and no command retries a mutation against another connection generation. Construction performs no I/O; the descriptions below state what execution does."},"slug":"libtmux-operations"},{"id":"Libtmux.Operations.break_pane","publicId":"Libtmux.Operations.break_pane","qualifiedName":"Libtmux.Operations.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1257,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n Pane.target -> session:Session.target -> index:int -> Created.t Command.t","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-break_pane"},{"id":"Libtmux.Operations.capture","publicId":"Libtmux.Operations.capture","qualifiedName":"Libtmux.Operations.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1074,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. "],"declarations":[{"kind":"function","text":"val capture : unit -> Snapshot.t Command.t","source":{"file":"lib/libtmux.mli","line":1074,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture and validate the complete session/window-link/pane graph. The result records an acquisition interval, not an atomic server instant."},"signatures":[{"raw":"val capture : unit -> Snapshot.t Command.t","params":[{"name":"arg1","type":"unit"}],"returns":"Snapshot.t Command.t"}],"slug":"libtmux-operations-capture"},{"id":"Libtmux.Operations.capture_environment","publicId":"Libtmux.Operations.capture_environment","qualifiedName":"Libtmux.Operations.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1132,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","source":{"file":"lib/libtmux.mli","line":1132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"}],"returns":"Environment.t Command.t"}],"slug":"libtmux-operations-capture_environment"},{"id":"Libtmux.Operations.capture_hooks","publicId":"Libtmux.Operations.capture_hooks","qualifiedName":"Libtmux.Operations.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1190,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks : Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks : Options.scope -> Options.t Command.t","params":[{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_hooks"},{"id":"Libtmux.Operations.capture_options","publicId":"Libtmux.Operations.capture_options","qualifiedName":"Libtmux.Operations.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1152,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_options"},{"id":"Libtmux.Operations.capture_text","publicId":"Libtmux.Operations.capture_text","qualifiedName":"Libtmux.Operations.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1078,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t","source":{"file":"lib/libtmux.mli","line":1078,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture inclusive visible rows through an operation-owned temporary file. Require `0 <= start <= end_ < Pane.height pane`; scrollback is excluded. Retained bytes survive client close. The scratch directory must share the daemon filesystem."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n Pane.t -> start:int -> end_:int -> Captured_text.t Command.t","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"Captured_text.t Command.t"}],"slug":"libtmux-operations-capture_text"},{"id":"Libtmux.Operations.clear_history","publicId":"Libtmux.Operations.clear_history","qualifiedName":"Libtmux.Operations.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1355,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1355,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_history"},{"id":"Libtmux.Operations.clear_option_array","publicId":"Libtmux.Operations.clear_option_array","qualifiedName":"Libtmux.Operations.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1187,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_option_array"},{"id":"Libtmux.Operations.create_session","publicId":"Libtmux.Operations.create_session","qualifiedName":"Libtmux.Operations.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1229,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int -> ?spawn:Spawn.t -> name:string -> unit -> Created.t Command.t","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_session"},{"id":"Libtmux.Operations.create_window","publicId":"Libtmux.Operations.create_window","qualifiedName":"Libtmux.Operations.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1239,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string -> ?spawn:Spawn.t -> Session.target -> Created.t Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_window"},{"id":"Libtmux.Operations.cycle_layout","publicId":"Libtmux.Operations.cycle_layout","qualifiedName":"Libtmux.Operations.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1325,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1325,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Next | `Previous ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-cycle_layout"},{"id":"Libtmux.Operations.kill_pane","publicId":"Libtmux.Operations.kill_pane","qualifiedName":"Libtmux.Operations.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1275,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_pane"},{"id":"Libtmux.Operations.kill_session","publicId":"Libtmux.Operations.kill_session","qualifiedName":"Libtmux.Operations.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1267,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session : Session.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1267,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session : Session.target -> unit Command.t","params":[{"name":"arg1","type":"Session.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_session"},{"id":"Libtmux.Operations.kill_window","publicId":"Libtmux.Operations.kill_window","qualifiedName":"Libtmux.Operations.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1271,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1271,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window : Window.target -> unit Command.t","params":[{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_window"},{"id":"Libtmux.Operations.link_window","publicId":"Libtmux.Operations.link_window","qualifiedName":"Libtmux.Operations.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1288,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-link_window"},{"id":"Libtmux.Operations.move_pane","publicId":"Libtmux.Operations.move_pane","qualifiedName":"Libtmux.Operations.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1328,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target -> direction:Geometry.direction -> unit Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"beside","type":"Pane.target","keywordOnly":true},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_pane"},{"id":"Libtmux.Operations.move_window_at","publicId":"Libtmux.Operations.move_window_at","qualifiedName":"Libtmux.Operations.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1293,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n Session.target ->\n from_index:int -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_window_at"},{"id":"Libtmux.Operations.read_hook","publicId":"Libtmux.Operations.read_hook","qualifiedName":"Libtmux.Operations.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1194,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_hook"},{"id":"Libtmux.Operations.read_option","publicId":"Libtmux.Operations.read_option","qualifiedName":"Libtmux.Operations.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1160,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_option"},{"id":"Libtmux.Operations.refresh_client_at","publicId":"Libtmux.Operations.refresh_client_at","qualifiedName":"Libtmux.Operations.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1111,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-refresh_client_at"},{"id":"Libtmux.Operations.remove_environment","publicId":"Libtmux.Operations.remove_environment","qualifiedName":"Libtmux.Operations.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1149,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_environment"},{"id":"Libtmux.Operations.remove_hook","publicId":"Libtmux.Operations.remove_hook","qualifiedName":"Libtmux.Operations.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1217,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_hook"},{"id":"Libtmux.Operations.rename_session","publicId":"Libtmux.Operations.rename_session","qualifiedName":"Libtmux.Operations.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1093,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session : Session.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1093,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session : Session.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_session"},{"id":"Libtmux.Operations.rename_window","publicId":"Libtmux.Operations.rename_window","qualifiedName":"Libtmux.Operations.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1089,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window : Window.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1089,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window : Window.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_window"},{"id":"Libtmux.Operations.request_detach_client_at","publicId":"Libtmux.Operations.request_detach_client_at","qualifiedName":"Libtmux.Operations.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1106,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at : Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at : Client_name.t -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-request_detach_client_at"},{"id":"Libtmux.Operations.resize_control_client_at","publicId":"Libtmux.Operations.resize_control_client_at","qualifiedName":"Libtmux.Operations.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1114,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_control_client_at"},{"id":"Libtmux.Operations.resize_pane","publicId":"Libtmux.Operations.resize_pane","qualifiedName":"Libtmux.Operations.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1310,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1310,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_pane"},{"id":"Libtmux.Operations.resize_window","publicId":"Libtmux.Operations.resize_window","qualifiedName":"Libtmux.Operations.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1315,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_window"},{"id":"Libtmux.Operations.respawn_pane","publicId":"Libtmux.Operations.respawn_pane","qualifiedName":"Libtmux.Operations.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1349,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1349,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Spawn.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-respawn_pane"},{"id":"Libtmux.Operations.rotate_panes","publicId":"Libtmux.Operations.rotate_panes","qualifiedName":"Libtmux.Operations.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1342,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1342,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n Window.target -> [ `Backward | `Forward ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Backward | `Forward ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rotate_panes"},{"id":"Libtmux.Operations.run_hook","publicId":"Libtmux.Operations.run_hook","qualifiedName":"Libtmux.Operations.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1221,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-run_hook"},{"id":"Libtmux.Operations.select_layout","publicId":"Libtmux.Operations.select_layout","qualifiedName":"Libtmux.Operations.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1321,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout : Window.target -> Layout.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1321,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout : Window.target -> Layout.t -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"Layout.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_layout"},{"id":"Libtmux.Operations.select_pane","publicId":"Libtmux.Operations.select_pane","qualifiedName":"Libtmux.Operations.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1302,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_pane"},{"id":"Libtmux.Operations.select_window_at","publicId":"Libtmux.Operations.select_window_at","qualifiedName":"Libtmux.Operations.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1279,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at : Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at : Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_window_at"},{"id":"Libtmux.Operations.send_keys","publicId":"Libtmux.Operations.send_keys","qualifiedName":"Libtmux.Operations.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1121,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys : Pane.target -> Key.t list -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys : Pane.target -> Key.t list -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Key.t list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_keys"},{"id":"Libtmux.Operations.send_text","publicId":"Libtmux.Operations.send_text","qualifiedName":"Libtmux.Operations.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1118,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text : Pane.target -> text:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1118,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text : Pane.target -> text:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_text"},{"id":"Libtmux.Operations.set_environment","publicId":"Libtmux.Operations.set_environment","qualifiedName":"Libtmux.Operations.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1139,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1139,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n Environment.scope -> name:string -> string -> unit Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_environment"},{"id":"Libtmux.Operations.set_hook","publicId":"Libtmux.Operations.set_hook","qualifiedName":"Libtmux.Operations.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1202,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Hook.command list -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Hook.command list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_hook"},{"id":"Libtmux.Operations.set_option","publicId":"Libtmux.Operations.set_option","qualifiedName":"Libtmux.Operations.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1170,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1170,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Options.scalar -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Options.scalar"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_option"},{"id":"Libtmux.Operations.set_pane_title","publicId":"Libtmux.Operations.set_pane_title","qualifiedName":"Libtmux.Operations.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1306,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title : Pane.target -> title:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title : Pane.target -> title:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_pane_title"},{"id":"Libtmux.Operations.signal","publicId":"Libtmux.Operations.signal","qualifiedName":"Libtmux.Operations.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1128,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-signal"},{"id":"Libtmux.Operations.split_pane","publicId":"Libtmux.Operations.split_pane","qualifiedName":"Libtmux.Operations.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1247,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1247,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target -> direction:Geometry.direction -> Created.t Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-split_pane"},{"id":"Libtmux.Operations.swap_panes","publicId":"Libtmux.Operations.swap_panes","qualifiedName":"Libtmux.Operations.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1338,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1338,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-swap_panes"},{"id":"Libtmux.Operations.switch_client_at","publicId":"Libtmux.Operations.switch_client_at","qualifiedName":"Libtmux.Operations.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1097,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1097,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t -> session:Session.target -> unit Command.t","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"},{"name":"session","type":"Session.target","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-switch_client_at"},{"id":"Libtmux.Operations.unlink_window_at","publicId":"Libtmux.Operations.unlink_window_at","qualifiedName":"Libtmux.Operations.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1283,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unlink_window_at"},{"id":"Libtmux.Operations.unset_environment","publicId":"Libtmux.Operations.unset_environment","qualifiedName":"Libtmux.Operations.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1145,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_environment"},{"id":"Libtmux.Operations.unset_option","publicId":"Libtmux.Operations.unset_option","qualifiedName":"Libtmux.Operations.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1183,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_option"},{"id":"Libtmux.Operations.wait_for","publicId":"Libtmux.Operations.wait_for","qualifiedName":"Libtmux.Operations.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1125,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-wait_for"},{"id":"Libtmux.Operations.zoom_pane","publicId":"Libtmux.Operations.zoom_pane","qualifiedName":"Libtmux.Operations.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1346,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Operations","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-zoom_pane"},{"id":"Libtmux.Options","publicId":"Libtmux.Options","qualifiedName":"Libtmux.Options","name":"Options","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":818,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Version-aware option descriptors and captured scoped values. Sparse array\n indexes and inherited entries retain their tmux meaning. "],"declarations":[{"kind":"module","text":"module Options : sig\n module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }\n (** Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. *)\n\n type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target\n\n type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string\n\n type value = Scalar of scalar | Array of (int * scalar) Iarray.t\n type entry = { descriptor : descriptor; value : value; inherited : bool }\n\n type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor, Error.t) result\n\n val lookup : t -> string -> entry option\n (** [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. *)\nend","source":{"file":"lib/libtmux.mli","line":818,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Version-aware option descriptors and captured scoped values. Sparse array indexes and inherited entries retain their tmux meaning."},"slug":"libtmux-options"},{"id":"Libtmux.Options.Kind","publicId":"Libtmux.Options.Kind","qualifiedName":"Libtmux.Options.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":819,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end","source":{"file":"lib/libtmux.mli","line":819,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","slug":"libtmux-options-kind"},{"id":"Libtmux.Options.Kind.t","publicId":"Libtmux.Options.Kind.t","qualifiedName":"Libtmux.Options.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind","signatures":[{"raw":"type t =\n | Text \n | Number \n | Flag \n | Choice \n | Key \n | Colour \n | Commands ","params":[]}],"slug":"libtmux-options-kind-t"},{"id":"Libtmux.Options.Kind.t.Choice","publicId":"Libtmux.Options.Kind.t.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Choice","slug":"libtmux-options-kind-t-choice"},{"id":"Libtmux.Options.Kind.t.Colour","publicId":"Libtmux.Options.Kind.t.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Colour","slug":"libtmux-options-kind-t-colour"},{"id":"Libtmux.Options.Kind.t.Commands","publicId":"Libtmux.Options.Kind.t.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Commands","slug":"libtmux-options-kind-t-commands"},{"id":"Libtmux.Options.Kind.t.Flag","publicId":"Libtmux.Options.Kind.t.Flag","name":"Flag","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Flag","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Flag","slug":"libtmux-options-kind-t-flag"},{"id":"Libtmux.Options.Kind.t.Key","publicId":"Libtmux.Options.Kind.t.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Key","slug":"libtmux-options-kind-t-key"},{"id":"Libtmux.Options.Kind.t.Number","publicId":"Libtmux.Options.Kind.t.Number","name":"Number","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Number","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Number","slug":"libtmux-options-kind-t-number"},{"id":"Libtmux.Options.Kind.t.Text","publicId":"Libtmux.Options.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Text","slug":"libtmux-options-kind-t-text"},{"id":"Libtmux.Options.catalog","publicId":"Libtmux.Options.catalog","qualifiedName":"Libtmux.Options.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":865,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":865,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-options-catalog"},{"id":"Libtmux.Options.describe","publicId":"Libtmux.Options.describe","qualifiedName":"Libtmux.Options.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":866,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor, Error.t) result","source":{"file":"lib/libtmux.mli","line":866,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val describe : version:string -> string -> (descriptor, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor, Error.t) result"}],"slug":"libtmux-options-describe"},{"id":"Libtmux.Options.descriptor","publicId":"Libtmux.Options.descriptor","qualifiedName":"Libtmux.Options.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":823,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":823,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","doc":{"summary":"Generated upstream descriptors. `versions` lists qualified releases; user options have no built-in release history."},"signatures":[{"raw":"type descriptor =\n {\n name: string ;\n kind: Kind.t ;\n array: bool ;\n hook: bool ;\n scopes: [ `Server | `Session | `Window | `Pane ] list ;\n versions: string list }","params":[]}],"slug":"libtmux-options-descriptor"},{"id":"Libtmux.Options.descriptor.array","publicId":"Libtmux.Options.descriptor.array","name":"array","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":826,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"array : bool;","source":{"file":"lib/libtmux.mli","line":826,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.array","slug":"libtmux-options-descriptor-array"},{"id":"Libtmux.Options.descriptor.hook","publicId":"Libtmux.Options.descriptor.hook","name":"hook","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":827,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hook : bool;","source":{"file":"lib/libtmux.mli","line":827,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.hook","slug":"libtmux-options-descriptor-hook"},{"id":"Libtmux.Options.descriptor.kind","publicId":"Libtmux.Options.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":825,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":825,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Options.kind","slug":"libtmux-options-descriptor-kind"},{"id":"Libtmux.Options.descriptor.name","publicId":"Libtmux.Options.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":824,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":824,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.descriptor","type":"string","qualifiedName":"Libtmux.Options.name","slug":"libtmux-options-descriptor-name"},{"id":"Libtmux.Options.descriptor.scopes","publicId":"Libtmux.Options.descriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":828,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scopes : [ `Server | `Session | `Window | `Pane ] list;","source":{"file":"lib/libtmux.mli","line":828,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.descriptor","type":"[ `Pane | `Server | `Session | `Window ] list","qualifiedName":"Libtmux.Options.scopes","slug":"libtmux-options-descriptor-scopes"},{"id":"Libtmux.Options.descriptor.versions","publicId":"Libtmux.Options.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.descriptor","type":"string list","qualifiedName":"Libtmux.Options.versions","slug":"libtmux-options-descriptor-versions"},{"id":"Libtmux.Options.entry","publicId":"Libtmux.Options.entry","qualifiedName":"Libtmux.Options.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { descriptor : descriptor; value : value; inherited : bool }","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type entry = {\n descriptor: descriptor ;\n value: value ;\n inherited: bool }","params":[]}],"slug":"libtmux-options-entry"},{"id":"Libtmux.Options.entry.descriptor","publicId":"Libtmux.Options.entry.descriptor","name":"descriptor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"descriptor : descriptor;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.entry","type":"descriptor","qualifiedName":"Libtmux.Options.descriptor","slug":"libtmux-options-entry-descriptor"},{"id":"Libtmux.Options.entry.inherited","publicId":"Libtmux.Options.entry.inherited","name":"inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inherited : bool","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.entry","type":"bool","qualifiedName":"Libtmux.Options.inherited","slug":"libtmux-options-entry-inherited"},{"id":"Libtmux.Options.entry.value","publicId":"Libtmux.Options.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.entry","type":"value","qualifiedName":"Libtmux.Options.value","slug":"libtmux-options-entry-value"},{"id":"Libtmux.Options.lookup","publicId":"Libtmux.Options.lookup","qualifiedName":"Libtmux.Options.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":868,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> entry option","source":{"file":"lib/libtmux.mli","line":868,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","doc":{"summary":"`None` means absent from this capture's selected scope and inheritance policy. Use `describe` to distinguish an unsupported built-in name."},"signatures":[{"raw":"val lookup : t -> string -> entry option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"entry option"}],"slug":"libtmux-options-lookup"},{"id":"Libtmux.Options.scalar","publicId":"Libtmux.Options.scalar","qualifiedName":"Libtmux.Options.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":842,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","source":{"file":"lib/libtmux.mli","line":842,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scalar =\n | Text of string \n | Integer of int64 \n | Bool of bool \n | Choice of string \n | Key of string \n | Colour of string \n | Commands of string ","params":[]}],"slug":"libtmux-options-scalar"},{"id":"Libtmux.Options.scalar.Bool","publicId":"Libtmux.Options.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":845,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool of bool","source":{"file":"lib/libtmux.mli","line":845,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Bool","slug":"libtmux-options-scalar-bool"},{"id":"Libtmux.Options.scalar.Choice","publicId":"Libtmux.Options.scalar.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":846,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice of string","source":{"file":"lib/libtmux.mli","line":846,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Choice","slug":"libtmux-options-scalar-choice"},{"id":"Libtmux.Options.scalar.Colour","publicId":"Libtmux.Options.scalar.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":848,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour of string","source":{"file":"lib/libtmux.mli","line":848,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Colour","slug":"libtmux-options-scalar-colour"},{"id":"Libtmux.Options.scalar.Commands","publicId":"Libtmux.Options.scalar.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":849,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands of string","source":{"file":"lib/libtmux.mli","line":849,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Commands","slug":"libtmux-options-scalar-commands"},{"id":"Libtmux.Options.scalar.Integer","publicId":"Libtmux.Options.scalar.Integer","name":"Integer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":844,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Integer of int64","source":{"file":"lib/libtmux.mli","line":844,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Integer","slug":"libtmux-options-scalar-integer"},{"id":"Libtmux.Options.scalar.Key","publicId":"Libtmux.Options.scalar.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":847,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key of string","source":{"file":"lib/libtmux.mli","line":847,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Key","slug":"libtmux-options-scalar-key"},{"id":"Libtmux.Options.scalar.Text","publicId":"Libtmux.Options.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":843,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":843,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Text","slug":"libtmux-options-scalar-text"},{"id":"Libtmux.Options.scope","publicId":"Libtmux.Options.scope","qualifiedName":"Libtmux.Options.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":834,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":834,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scope =\n | Server \n | Global_sessions \n | Global_windows \n | Session of Session.target \n | Window of Window.target \n | Pane of Pane.target ","params":[]}],"slug":"libtmux-options-scope"},{"id":"Libtmux.Options.scope.Global_sessions","publicId":"Libtmux.Options.scope.Global_sessions","name":"Global_sessions","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":836,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_sessions","source":{"file":"lib/libtmux.mli","line":836,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_sessions","slug":"libtmux-options-scope-global_sessions"},{"id":"Libtmux.Options.scope.Global_windows","publicId":"Libtmux.Options.scope.Global_windows","name":"Global_windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":837,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_windows","source":{"file":"lib/libtmux.mli","line":837,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_windows","slug":"libtmux-options-scope-global_windows"},{"id":"Libtmux.Options.scope.Pane","publicId":"Libtmux.Options.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":840,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":840,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Pane","slug":"libtmux-options-scope-pane"},{"id":"Libtmux.Options.scope.Server","publicId":"Libtmux.Options.scope.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":835,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":835,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Server","slug":"libtmux-options-scope-server"},{"id":"Libtmux.Options.scope.Session","publicId":"Libtmux.Options.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":838,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":838,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Session","slug":"libtmux-options-scope-session"},{"id":"Libtmux.Options.scope.Window","publicId":"Libtmux.Options.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":839,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.target","source":{"file":"lib/libtmux.mli","line":839,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Window","slug":"libtmux-options-scope-window"},{"id":"Libtmux.Options.t","publicId":"Libtmux.Options.t","qualifiedName":"Libtmux.Options.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":854,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":854,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","doc":{"summary":"Captured options in tmux order, with original array indexes. An empty array differs from an absent local entry. No accessor performs I/O."},"signatures":[{"raw":"type t =\n {\n source: Source.t ;\n scope: scope ;\n include_inherited: bool ;\n entries: entry Iarray.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-options-t"},{"id":"Libtmux.Options.t.entries","publicId":"Libtmux.Options.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":858,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":858,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Options.entries","slug":"libtmux-options-t-entries"},{"id":"Libtmux.Options.t.finished_at_ns","publicId":"Libtmux.Options.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":860,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":860,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.finished_at_ns","slug":"libtmux-options-t-finished_at_ns"},{"id":"Libtmux.Options.t.include_inherited","publicId":"Libtmux.Options.t.include_inherited","name":"include_inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":857,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"include_inherited : bool;","source":{"file":"lib/libtmux.mli","line":857,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.t","type":"bool","qualifiedName":"Libtmux.Options.include_inherited","slug":"libtmux-options-t-include_inherited"},{"id":"Libtmux.Options.t.scope","publicId":"Libtmux.Options.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":856,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":856,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.t","type":"scope","qualifiedName":"Libtmux.Options.scope","slug":"libtmux-options-t-scope"},{"id":"Libtmux.Options.t.source","publicId":"Libtmux.Options.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":855,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":855,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.t","type":"Source.t","qualifiedName":"Libtmux.Options.source","slug":"libtmux-options-t-source"},{"id":"Libtmux.Options.t.started_at_ns","publicId":"Libtmux.Options.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":859,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":859,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.started_at_ns","slug":"libtmux-options-t-started_at_ns"},{"id":"Libtmux.Options.value","publicId":"Libtmux.Options.value","qualifiedName":"Libtmux.Options.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type value =\n | Scalar of scalar \n | Array of (int * scalar) Iarray.t ","params":[]}],"slug":"libtmux-options-value"},{"id":"Libtmux.Options.value.Array","publicId":"Libtmux.Options.value.Array","name":"Array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Array","slug":"libtmux-options-value-array"},{"id":"Libtmux.Options.value.Scalar","publicId":"Libtmux.Options.value.Scalar","name":"Scalar","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Scalar of scalar","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Scalar","slug":"libtmux-options-value-scalar"},{"id":"Libtmux.Output","publicId":"Libtmux.Output","qualifiedName":"Libtmux.Output","name":"Output","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1034,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Future observed pane bytes, local cursors and explicit continuity loss.\n Output cursors are unrelated to snapshot times or server-side history. "],"declarations":[{"kind":"module","text":"module Output : sig\n type cursor = { generation : Generation.t; offset : int64 }\n (** [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. *)\n\n type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t\n\n type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason\n (** Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. *)\n\n val reason_pp : Format.formatter -> reason -> unit\n\n type wait_error =\n | Ended of reason\n | Failure of Error.t\n (** A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. *)\nend","source":{"file":"lib/libtmux.mli","line":1034,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Future observed pane bytes, local cursors and explicit continuity loss. Output cursors are unrelated to snapshot times or server-side history."},"slug":"libtmux-output"},{"id":"Libtmux.Output.cursor","publicId":"Libtmux.Output.cursor","qualifiedName":"Libtmux.Output.cursor","name":"cursor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. "],"declarations":[{"kind":"struct","text":"type cursor = { generation : Generation.t; offset : int64 }","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output","doc":{"summary":"`offset` is the number of observed bytes through the end of a Data event. Cursors from different subscription generations are unrelated. No cursor identifies a snapshot instant or a server-side historical position."},"signatures":[{"raw":"type cursor = {\n generation: Generation.t ;\n offset: int64 }","params":[]}],"slug":"libtmux-output-cursor"},{"id":"Libtmux.Output.cursor.generation","publicId":"Libtmux.Output.cursor.generation","name":"generation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"generation : Generation.t;","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.cursor","type":"Generation.t","qualifiedName":"Libtmux.Output.generation","slug":"libtmux-output-cursor-generation"},{"id":"Libtmux.Output.cursor.offset","publicId":"Libtmux.Output.cursor.offset","name":"offset","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"offset : int64","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.cursor","type":"int64","qualifiedName":"Libtmux.Output.offset","slug":"libtmux-output-cursor-offset"},{"id":"Libtmux.Output.event","publicId":"Libtmux.Output.event","qualifiedName":"Libtmux.Output.event","name":"event","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1048,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason","source":{"file":"lib/libtmux.mli","line":1048,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type event =\n | Data of {\n cursor: cursor ;\n bytes: string } \n | Gap of {\n after: cursor option ;\n lost_bytes: int option ;\n reason: reason } \n | End of reason ","params":[]}],"slug":"libtmux-output-event"},{"id":"Libtmux.Output.event.Data","publicId":"Libtmux.Output.event.Data","name":"Data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Data of { cursor : cursor; bytes : string }","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Data","slug":"libtmux-output-event-data"},{"id":"Libtmux.Output.event.Data.bytes","publicId":"Libtmux.Output.event.Data.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event.Data","type":"string","qualifiedName":"Libtmux.Output.bytes","slug":"libtmux-output-event-data-bytes"},{"id":"Libtmux.Output.event.Data.cursor","publicId":"Libtmux.Output.event.Data.cursor","name":"cursor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cursor : cursor;","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event.Data","type":"cursor","qualifiedName":"Libtmux.Output.cursor","slug":"libtmux-output-event-data-cursor"},{"id":"Libtmux.Output.event.End","publicId":"Libtmux.Output.event.End","name":"End","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1051,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. "],"declarations":[{"kind":"constant","text":"| End of reason","source":{"file":"lib/libtmux.mli","line":1051,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event","doc":{"summary":"Immutable event values. `Gap.after` is the last cursor delivered to the caller. Unknown loss is `None`. A gap ends continuity and is followed by End; recover with a fresh capture and a new subscription. Data preserves bytes, including NUL and invalid UTF-8. It is future observed output, not rendered text or historical reconstruction."},"variant":"tuple","qualifiedName":"Libtmux.Output.End","slug":"libtmux-output-event-end"},{"id":"Libtmux.Output.event.Gap","publicId":"Libtmux.Output.event.Gap","name":"Gap","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Gap of { after : cursor option; lost_bytes : int option; reason : reason }","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Gap","slug":"libtmux-output-event-gap"},{"id":"Libtmux.Output.event.Gap.after","publicId":"Libtmux.Output.event.Gap.after","name":"after","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"after : cursor option;","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event.Gap","type":"cursor option","qualifiedName":"Libtmux.Output.after","slug":"libtmux-output-event-gap-after"},{"id":"Libtmux.Output.event.Gap.lost_bytes","publicId":"Libtmux.Output.event.Gap.lost_bytes","name":"lost_bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"lost_bytes : int option;","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event.Gap","type":"int option","qualifiedName":"Libtmux.Output.lost_bytes","slug":"libtmux-output-event-gap-lost_bytes"},{"id":"Libtmux.Output.event.Gap.reason","publicId":"Libtmux.Output.event.Gap.reason","name":"reason","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"reason : reason","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.event.Gap","type":"reason","qualifiedName":"Libtmux.Output.reason","slug":"libtmux-output-event-gap-reason"},{"id":"Libtmux.Output.reason","publicId":"Libtmux.Output.reason","qualifiedName":"Libtmux.Output.reason","name":"reason","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1040,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1040,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type reason =\n | Overflow \n | Membership_changed \n | Server_paused \n | Cancelled \n | Client_closed \n | Transport_error of Error.t ","params":[]}],"slug":"libtmux-output-reason"},{"id":"Libtmux.Output.reason.Cancelled","publicId":"Libtmux.Output.reason.Cancelled","name":"Cancelled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1044,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancelled","source":{"file":"lib/libtmux.mli","line":1044,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Cancelled","slug":"libtmux-output-reason-cancelled"},{"id":"Libtmux.Output.reason.Client_closed","publicId":"Libtmux.Output.reason.Client_closed","name":"Client_closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1045,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client_closed","source":{"file":"lib/libtmux.mli","line":1045,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Client_closed","slug":"libtmux-output-reason-client_closed"},{"id":"Libtmux.Output.reason.Membership_changed","publicId":"Libtmux.Output.reason.Membership_changed","name":"Membership_changed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1042,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Membership_changed","source":{"file":"lib/libtmux.mli","line":1042,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Membership_changed","slug":"libtmux-output-reason-membership_changed"},{"id":"Libtmux.Output.reason.Overflow","publicId":"Libtmux.Output.reason.Overflow","name":"Overflow","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1041,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Overflow","source":{"file":"lib/libtmux.mli","line":1041,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Overflow","slug":"libtmux-output-reason-overflow"},{"id":"Libtmux.Output.reason.Server_paused","publicId":"Libtmux.Output.reason.Server_paused","name":"Server_paused","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1043,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server_paused","source":{"file":"lib/libtmux.mli","line":1043,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Server_paused","slug":"libtmux-output-reason-server_paused"},{"id":"Libtmux.Output.reason.Transport_error","publicId":"Libtmux.Output.reason.Transport_error","name":"Transport_error","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1046,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1046,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.reason","variant":"tuple","qualifiedName":"Libtmux.Output.Transport_error","slug":"libtmux-output-reason-transport_error"},{"id":"Libtmux.Output.reason_pp","publicId":"Libtmux.Output.reason_pp","qualifiedName":"Libtmux.Output.reason_pp","name":"reason_pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1059,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val reason_pp : Format.formatter -> reason -> unit","source":{"file":"lib/libtmux.mli","line":1059,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output","signatures":[{"raw":"val reason_pp : Format.formatter -> reason -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"reason"}],"returns":"unit"}],"slug":"libtmux-output-reason_pp"},{"id":"Libtmux.Output.wait_error","publicId":"Libtmux.Output.wait_error","qualifiedName":"Libtmux.Output.wait_error","name":"wait_error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1061,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type wait_error =\n | Ended of reason\n | Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1061,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type wait_error =\n | Ended of reason \n | Failure of Error.t ","params":[]}],"slug":"libtmux-output-wait_error"},{"id":"Libtmux.Output.wait_error.Ended","publicId":"Libtmux.Output.wait_error.Ended","name":"Ended","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1062,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Ended of reason","source":{"file":"lib/libtmux.mli","line":1062,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.wait_error","variant":"tuple","qualifiedName":"Libtmux.Output.Ended","slug":"libtmux-output-wait_error-ended"},{"id":"Libtmux.Output.wait_error.Failure","publicId":"Libtmux.Output.wait_error.Failure","name":"Failure","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1063,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. "],"declarations":[{"kind":"constant","text":"| Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1063,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Output.wait_error","doc":{"summary":"A future-byte wait either loses its subscription's continuity or fails an operation. Neither result establishes that the text was absent earlier."},"variant":"tuple","qualifiedName":"Libtmux.Output.Failure","slug":"libtmux-output-wait_error-failure"},{"id":"Libtmux.Pane","publicId":"Libtmux.Pane","qualifiedName":"Libtmux.Pane","name":"Pane","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A captured pane with local geometry, process metadata and a window\n relationship. Use {!Pane.val-target} for explicit actions; reading the\n observation never refreshes it. "],"declarations":[{"kind":"module","text":"and Pane : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end\n\n module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val index : t -> int\n val active : t -> bool\n val dead : t -> bool\n val title : t -> string\n val current_command : t -> string\n val current_path : t -> string\n\n val pid : t -> int option\n (** The captured process ID, absent when tmux reports no process. *)\n\n val width : t -> int\n val height : t -> int\n val left : t -> int\n val top : t -> int\n val window : t -> Window.t\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\nend","source":{"file":"lib/libtmux.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"A captured pane with local geometry, process metadata and a window relationship. Use {!Pane.val-target} for explicit actions; reading the observation never refreshes it."},"slug":"libtmux-pane"},{"id":"Libtmux.Pane.Fields","publicId":"Libtmux.Pane.Fields","qualifiedName":"Libtmux.Pane.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-fields"},{"id":"Libtmux.Pane.Fields.active","publicId":"Libtmux.Pane.Fields.active","qualifiedName":"Libtmux.Pane.Fields.active","name":"active","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":312,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val active : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":312,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val active : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-active"},{"id":"Libtmux.Pane.Fields.current_command","publicId":"Libtmux.Pane.Fields.current_command","qualifiedName":"Libtmux.Pane.Fields.current_command","name":"current_command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":315,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_command : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_command : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_command"},{"id":"Libtmux.Pane.Fields.current_path","publicId":"Libtmux.Pane.Fields.current_path","qualifiedName":"Libtmux.Pane.Fields.current_path","name":"current_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":316,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_path : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_path : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_path"},{"id":"Libtmux.Pane.Fields.dead","publicId":"Libtmux.Pane.Fields.dead","qualifiedName":"Libtmux.Pane.Fields.dead","name":"dead","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":313,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val dead : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":313,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val dead : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-dead"},{"id":"Libtmux.Pane.Fields.height","publicId":"Libtmux.Pane.Fields.height","qualifiedName":"Libtmux.Pane.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":318,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":318,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-height"},{"id":"Libtmux.Pane.Fields.id","publicId":"Libtmux.Pane.Fields.id","qualifiedName":"Libtmux.Pane.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":310,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":310,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-id"},{"id":"Libtmux.Pane.Fields.index","publicId":"Libtmux.Pane.Fields.index","qualifiedName":"Libtmux.Pane.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":311,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":311,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-index"},{"id":"Libtmux.Pane.Fields.left","publicId":"Libtmux.Pane.Fields.left","qualifiedName":"Libtmux.Pane.Fields.left","name":"left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val left : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val left : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-left"},{"id":"Libtmux.Pane.Fields.title","publicId":"Libtmux.Pane.Fields.title","qualifiedName":"Libtmux.Pane.Fields.title","name":"title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":314,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val title : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":314,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val title : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-title"},{"id":"Libtmux.Pane.Fields.top","publicId":"Libtmux.Pane.Fields.top","qualifiedName":"Libtmux.Pane.Fields.top","name":"top","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":320,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val top : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val top : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-top"},{"id":"Libtmux.Pane.Fields.width","publicId":"Libtmux.Pane.Fields.width","qualifiedName":"Libtmux.Pane.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":317,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":317,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-width"},{"id":"Libtmux.Pane.Id","publicId":"Libtmux.Pane.Id","qualifiedName":"Libtmux.Pane.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-id-16to"},{"id":"Libtmux.Pane.Id.compare","publicId":"Libtmux.Pane.Id.compare","qualifiedName":"Libtmux.Pane.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-id-compare"},{"id":"Libtmux.Pane.Id.equal","publicId":"Libtmux.Pane.Id.equal","qualifiedName":"Libtmux.Pane.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-id-equal"},{"id":"Libtmux.Pane.Id.of_string","publicId":"Libtmux.Pane.Id.of_string","qualifiedName":"Libtmux.Pane.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-pane-id-of_string"},{"id":"Libtmux.Pane.Id.pp","publicId":"Libtmux.Pane.Id.pp","qualifiedName":"Libtmux.Pane.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-pane-id-pp"},{"id":"Libtmux.Pane.Id.t","publicId":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux.Pane.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-id-t"},{"id":"Libtmux.Pane.Id.to_string","publicId":"Libtmux.Pane.Id.to_string","qualifiedName":"Libtmux.Pane.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-id-to_string"},{"id":"Libtmux.Pane.Relations","publicId":"Libtmux.Pane.Relations","qualifiedName":"Libtmux.Pane.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":323,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":323,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-relations"},{"id":"Libtmux.Pane.Relations.window","publicId":"Libtmux.Pane.Relations.window","qualifiedName":"Libtmux.Pane.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":324,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-pane-relations-window"},{"id":"Libtmux.Pane.Target","publicId":"Libtmux.Pane.Target","qualifiedName":"Libtmux.Pane.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":329,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":329,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-target-nx8w"},{"id":"Libtmux.Pane.Target.id","publicId":"Libtmux.Pane.Target.id","qualifiedName":"Libtmux.Pane.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":334,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":334,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-target-id"},{"id":"Libtmux.Pane.Target.of_id","publicId":"Libtmux.Pane.Target.of_id","qualifiedName":"Libtmux.Pane.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-pane-target-of_id"},{"id":"Libtmux.Pane.Target.source","publicId":"Libtmux.Pane.Target.source","qualifiedName":"Libtmux.Pane.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":333,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-target-source"},{"id":"Libtmux.Pane.Target.t","publicId":"Libtmux.Pane.Target.t","qualifiedName":"Libtmux.Pane.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":330,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":330,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-target-t"},{"id":"Libtmux.Pane.active","publicId":"Libtmux.Pane.active","qualifiedName":"Libtmux.Pane.active","name":"active","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":341,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val active : t -> bool","source":{"file":"lib/libtmux.mli","line":341,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val active : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-active"},{"id":"Libtmux.Pane.current_command","publicId":"Libtmux.Pane.current_command","qualifiedName":"Libtmux.Pane.current_command","name":"current_command","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_command : t -> string","source":{"file":"lib/libtmux.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_command : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_command"},{"id":"Libtmux.Pane.current_path","publicId":"Libtmux.Pane.current_path","qualifiedName":"Libtmux.Pane.current_path","name":"current_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":345,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_path : t -> string","source":{"file":"lib/libtmux.mli","line":345,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_path : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_path"},{"id":"Libtmux.Pane.dead","publicId":"Libtmux.Pane.dead","qualifiedName":"Libtmux.Pane.dead","name":"dead","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":342,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dead : t -> bool","source":{"file":"lib/libtmux.mli","line":342,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val dead : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-dead"},{"id":"Libtmux.Pane.height","publicId":"Libtmux.Pane.height","qualifiedName":"Libtmux.Pane.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":351,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":351,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-height"},{"id":"Libtmux.Pane.id","publicId":"Libtmux.Pane.id","qualifiedName":"Libtmux.Pane.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":339,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":339,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-id-19ve"},{"id":"Libtmux.Pane.index","publicId":"Libtmux.Pane.index","qualifiedName":"Libtmux.Pane.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-index"},{"id":"Libtmux.Pane.left","publicId":"Libtmux.Pane.left","qualifiedName":"Libtmux.Pane.left","name":"left","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":352,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val left : t -> int","source":{"file":"lib/libtmux.mli","line":352,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val left : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-left"},{"id":"Libtmux.Pane.pid","publicId":"Libtmux.Pane.pid","qualifiedName":"Libtmux.Pane.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":347,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" The captured process ID, absent when tmux reports no process. "],"declarations":[{"kind":"function","text":"val pid : t -> int option","source":{"file":"lib/libtmux.mli","line":347,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","doc":{"summary":"The captured process ID, absent when tmux reports no process."},"signatures":[{"raw":"val pid : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-pane-pid"},{"id":"Libtmux.Pane.same_entity","publicId":"Libtmux.Pane.same_entity","qualifiedName":"Libtmux.Pane.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_entity"},{"id":"Libtmux.Pane.same_observation","publicId":"Libtmux.Pane.same_observation","qualifiedName":"Libtmux.Pane.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_observation"},{"id":"Libtmux.Pane.source","publicId":"Libtmux.Pane.source","qualifiedName":"Libtmux.Pane.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":355,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":355,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-source"},{"id":"Libtmux.Pane.t","publicId":"Libtmux.Pane.t","qualifiedName":"Libtmux.Pane.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":307,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":307,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-t"},{"id":"Libtmux.Pane.target","publicId":"Libtmux.Pane.target","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":356,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":356,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-pane-target-t3h1"},{"id":"Libtmux.Pane.target:type","publicId":"Libtmux.Pane.target:type","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-pane-target-type"},{"id":"Libtmux.Pane.title","publicId":"Libtmux.Pane.title","qualifiedName":"Libtmux.Pane.title","name":"title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":343,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val title : t -> string","source":{"file":"lib/libtmux.mli","line":343,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val title : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-title"},{"id":"Libtmux.Pane.top","publicId":"Libtmux.Pane.top","qualifiedName":"Libtmux.Pane.top","name":"top","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":353,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val top : t -> int","source":{"file":"lib/libtmux.mli","line":353,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val top : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-top"},{"id":"Libtmux.Pane.width","publicId":"Libtmux.Pane.width","qualifiedName":"Libtmux.Pane.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":350,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":350,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-width"},{"id":"Libtmux.Pane.window","publicId":"Libtmux.Pane.window","qualifiedName":"Libtmux.Pane.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-pane-window"},{"id":"Libtmux.Plan","publicId":"Libtmux.Plan","qualifiedName":"Libtmux.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Explicit source-filter planning for a new acquisition. A plan separates\n supported tmux predicates from residual local evaluation; it never changes\n the I/O-free contract of {!Query.matching}. Backend capture operations\n acquire a complete graph and do not consume these plans. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type pushdown = Auto | Never | Require_exact\n type t\n\n val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result\n (** Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. *)\n\n val source_filter : t -> string option\n val residual : t -> Pane.t Expr.t\n val required_fields : t -> string list\n val required_relations : t -> string list\n val explanation : t -> string\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Explicit source-filter planning for a new acquisition. A plan separates supported tmux predicates from residual local evaluation; it never changes the I/O-free contract of {!Query.matching}. Backend capture operations acquire a complete graph and do not consume these plans."},"slug":"libtmux-plan"},{"id":"Libtmux.Plan.explanation","publicId":"Libtmux.Plan.explanation","qualifiedName":"Libtmux.Plan.explanation","name":"explanation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":681,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val explanation : t -> string","source":{"file":"lib/libtmux.mli","line":681,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val explanation : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-plan-explanation"},{"id":"Libtmux.Plan.panes","publicId":"Libtmux.Plan.panes","qualifiedName":"Libtmux.Plan.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":670,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. "],"declarations":[{"kind":"function","text":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":670,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","doc":{"summary":"Plan without I/O. Exact lowering covers pane active/dead flags and complete Boolean combinations. Unsupported children prevent lowering the whole expression, including under OR and NOT. Relationships always stay local. `Require_exact` rejects an unsupported expression before acquisition."},"signatures":[{"raw":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","params":[{"name":"pushdown","type":"pushdown","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t Expr.t"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-plan-panes"},{"id":"Libtmux.Plan.pp","publicId":"Libtmux.Plan.pp","qualifiedName":"Libtmux.Plan.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":682,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":682,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-plan-pp"},{"id":"Libtmux.Plan.pushdown","publicId":"Libtmux.Plan.pushdown","qualifiedName":"Libtmux.Plan.pushdown","name":"pushdown","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type pushdown = Auto | Never | Require_exact","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type pushdown =\n | Auto \n | Never \n | Require_exact ","params":[]}],"slug":"libtmux-plan-pushdown"},{"id":"Libtmux.Plan.pushdown.Auto","publicId":"Libtmux.Plan.pushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Auto","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Auto","slug":"libtmux-plan-pushdown-auto"},{"id":"Libtmux.Plan.pushdown.Never","publicId":"Libtmux.Plan.pushdown.Never","name":"Never","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Never","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Never","slug":"libtmux-plan-pushdown-never"},{"id":"Libtmux.Plan.pushdown.Require_exact","publicId":"Libtmux.Plan.pushdown.Require_exact","name":"Require_exact","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_exact","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Require_exact","slug":"libtmux-plan-pushdown-require_exact"},{"id":"Libtmux.Plan.required_fields","publicId":"Libtmux.Plan.required_fields","qualifiedName":"Libtmux.Plan.required_fields","name":"required_fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":679,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_fields : t -> string list","source":{"file":"lib/libtmux.mli","line":679,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_fields : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_fields"},{"id":"Libtmux.Plan.required_relations","publicId":"Libtmux.Plan.required_relations","qualifiedName":"Libtmux.Plan.required_relations","name":"required_relations","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":680,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_relations : t -> string list","source":{"file":"lib/libtmux.mli","line":680,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_relations : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_relations"},{"id":"Libtmux.Plan.residual","publicId":"Libtmux.Plan.residual","qualifiedName":"Libtmux.Plan.residual","name":"residual","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":678,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val residual : t -> Pane.t Expr.t","source":{"file":"lib/libtmux.mli","line":678,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val residual : t -> Pane.t Expr.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Expr.t"}],"slug":"libtmux-plan-residual"},{"id":"Libtmux.Plan.source_filter","publicId":"Libtmux.Plan.source_filter","qualifiedName":"Libtmux.Plan.source_filter","name":"source_filter","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":677,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source_filter : t -> string option","source":{"file":"lib/libtmux.mli","line":677,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val source_filter : t -> string option","params":[{"name":"arg1","type":"t"}],"returns":"string option"}],"slug":"libtmux-plan-source_filter"},{"id":"Libtmux.Plan.t","publicId":"Libtmux.Plan.t","qualifiedName":"Libtmux.Plan.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":668,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":668,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-plan-t"},{"id":"Libtmux.Query","publicId":"Libtmux.Query","qualifiedName":"Libtmux.Query","name":"Query","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":694,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Sequence adapters and bounded cardinality checks over captured values.\n Matching preserves order and duplicates. Expected absence and ambiguity\n remain ordinary result values. "],"declarations":[{"kind":"module","text":"module Query : sig\n val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t\n (** [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. *)\n\n val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result\n (** Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. *)\n\n val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result\n (** As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n *)\nend","source":{"file":"lib/libtmux.mli","line":694,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Sequence adapters and bounded cardinality checks over captured values. Matching preserves order and duplicates. Expected absence and ambiguity remain ordinary result values."},"slug":"libtmux-query"},{"id":"Libtmux.Query.exactly_one","publicId":"Libtmux.Query.exactly_one","qualifiedName":"Libtmux.Query.exactly_one","name":"exactly_one","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":701,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. "],"declarations":[{"kind":"function","text":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":701,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Query","doc":{"summary":"Return the unique value. Stop when a second value is found; proving uniqueness requires exhausting the remaining sequence. The input's effects and exceptions propagate. This does not execute a mutation."},"signatures":[{"raw":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a, Cardinality.error) result"}],"slug":"libtmux-query-exactly_one"},{"id":"Libtmux.Query.matching","publicId":"Libtmux.Query.matching","qualifiedName":"Libtmux.Query.matching","name":"matching","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":695,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. "],"declarations":[{"kind":"function","text":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","source":{"file":"lib/libtmux.mli","line":695,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Query","doc":{"summary":"`matching expression` compiles once when the adapter is constructed. Filtering preserves order and duplicates. Snapshot-derived sequences replay captured values; arbitrary input sequences retain their effects, exceptions and replay semantics. No tmux acquisition occurs."},"signatures":[{"raw":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","params":[{"name":"arg1","type":"'a Expr.t"},{"name":"arg2","type":"'a Seq.t"}],"returns":"'a Seq.t"}],"slug":"libtmux-query-matching"},{"id":"Libtmux.Query.one_or_none","publicId":"Libtmux.Query.one_or_none","qualifiedName":"Libtmux.Query.one_or_none","name":"one_or_none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":706,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n "],"declarations":[{"kind":"function","text":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":706,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Query","doc":{"summary":"As {!exactly_one}, with `Ok None` for an empty sequence. Order and duplicate entries count toward cardinality; values are not deduplicated."},"signatures":[{"raw":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a option, Cardinality.error) result"}],"slug":"libtmux-query-one_or_none"},{"id":"Libtmux.Relation","publicId":"Libtmux.Relation","qualifiedName":"Libtmux.Relation","name":"Relation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":159,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Typed edges in a captured graph. Many, one and optional relations are\n distinct; an unacquired relationship is never represented as an empty one.\n"],"declarations":[{"kind":"module","text":"module Relation : sig\n module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\nend","source":{"file":"lib/libtmux.mli","line":159,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Typed edges in a captured graph. Many, one and optional relations are distinct; an unacquired relationship is never represented as an empty one."},"slug":"libtmux-relation"},{"id":"Libtmux.Relation.Many","publicId":"Libtmux.Relation.Many","qualifiedName":"Libtmux.Relation.Many","name":"Many","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":160,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-many"},{"id":"Libtmux.Relation.Many.name","publicId":"Libtmux.Relation.Many.name","qualifiedName":"Libtmux.Relation.Many.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-many-name"},{"id":"Libtmux.Relation.Many.t","publicId":"Libtmux.Relation.Many.t","qualifiedName":"Libtmux.Relation.Many.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":161,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":161,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-many-t"},{"id":"Libtmux.Relation.One","publicId":"Libtmux.Relation.One","qualifiedName":"Libtmux.Relation.One","name":"One","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-one"},{"id":"Libtmux.Relation.One.name","publicId":"Libtmux.Relation.One.name","qualifiedName":"Libtmux.Relation.One.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-one-name"},{"id":"Libtmux.Relation.One.t","publicId":"Libtmux.Relation.One.t","qualifiedName":"Libtmux.Relation.One.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-one-t"},{"id":"Libtmux.Relation.Optional","publicId":"Libtmux.Relation.Optional","qualifiedName":"Libtmux.Relation.Optional","name":"Optional","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-optional"},{"id":"Libtmux.Relation.Optional.name","publicId":"Libtmux.Relation.Optional.name","qualifiedName":"Libtmux.Relation.Optional.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":175,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":175,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-optional-name"},{"id":"Libtmux.Relation.Optional.t","publicId":"Libtmux.Relation.Optional.t","qualifiedName":"Libtmux.Relation.Optional.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-optional-t"},{"id":"Libtmux.Session","publicId":"Libtmux.Session","qualifiedName":"Libtmux.Session","name":"Session","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A captured session and its ordered window-link contexts. A session can\n contain repeated links to the same global window. "],"declarations":[{"kind":"module","text":"module rec Session : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end\n\n module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val attached : t -> int\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\n\n val window_links : t -> Window_link.t Iarray.t\n (** All captured links, in capture order, including repeated windows. *)\n\n val windows : t -> Window.t Iarray.t\n (** Distinct windows in first-link order. All accesses are local. *)\nend","source":{"file":"lib/libtmux.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"A captured session and its ordered window-link contexts. A session can contain repeated links to the same global window."},"slug":"libtmux-session"},{"id":"Libtmux.Session.Fields","publicId":"Libtmux.Session.Fields","qualifiedName":"Libtmux.Session.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":184,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":184,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","slug":"libtmux-session-fields"},{"id":"Libtmux.Session.Fields.attached","publicId":"Libtmux.Session.Fields.attached","qualifiedName":"Libtmux.Session.Fields.attached","name":"attached","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val attached : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val attached : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-session-fields-attached"},{"id":"Libtmux.Session.Fields.id","publicId":"Libtmux.Session.Fields.id","qualifiedName":"Libtmux.Session.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-id"},{"id":"Libtmux.Session.Fields.name","publicId":"Libtmux.Session.Fields.name","qualifiedName":"Libtmux.Session.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-name"},{"id":"Libtmux.Session.Id","publicId":"Libtmux.Session.Id","qualifiedName":"Libtmux.Session.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":195,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","slug":"libtmux-session-id-12k2"},{"id":"Libtmux.Session.Id.compare","publicId":"Libtmux.Session.Id.compare","qualifiedName":"Libtmux.Session.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-session-id-compare"},{"id":"Libtmux.Session.Id.equal","publicId":"Libtmux.Session.Id.equal","qualifiedName":"Libtmux.Session.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-id-equal"},{"id":"Libtmux.Session.Id.of_string","publicId":"Libtmux.Session.Id.of_string","qualifiedName":"Libtmux.Session.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-session-id-of_string"},{"id":"Libtmux.Session.Id.pp","publicId":"Libtmux.Session.Id.pp","qualifiedName":"Libtmux.Session.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-session-id-pp"},{"id":"Libtmux.Session.Id.t","publicId":"Libtmux.Session.Id.t","qualifiedName":"Libtmux.Session.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-id-t"},{"id":"Libtmux.Session.Id.to_string","publicId":"Libtmux.Session.Id.to_string","qualifiedName":"Libtmux.Session.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-id-to_string"},{"id":"Libtmux.Session.Relations","publicId":"Libtmux.Session.Relations","qualifiedName":"Libtmux.Session.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":190,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","slug":"libtmux-session-relations"},{"id":"Libtmux.Session.Relations.window_links","publicId":"Libtmux.Session.Relations.window_links","qualifiedName":"Libtmux.Session.Relations.window_links","name":"window_links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val window_links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-session-relations-window_links"},{"id":"Libtmux.Session.Relations.windows","publicId":"Libtmux.Session.Relations.windows","qualifiedName":"Libtmux.Session.Relations.windows","name":"windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":192,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val windows : (t, Window.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":192,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val windows : (t, Window.t) Relation.Many.t","params":[],"returns":"(t, Window.t) Relation.Many.t"}],"slug":"libtmux-session-relations-windows"},{"id":"Libtmux.Session.Target","publicId":"Libtmux.Session.Target","qualifiedName":"Libtmux.Session.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":197,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":197,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","slug":"libtmux-session-target-5p2d"},{"id":"Libtmux.Session.Target.id","publicId":"Libtmux.Session.Target.id","qualifiedName":"Libtmux.Session.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-target-id"},{"id":"Libtmux.Session.Target.of_id","publicId":"Libtmux.Session.Target.of_id","qualifiedName":"Libtmux.Session.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Describe a target in an existing connection generation. No I/O. "],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Target","doc":{"summary":"Describe a target in an existing connection generation. No I/O."},"signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-session-target-of_id"},{"id":"Libtmux.Session.Target.source","publicId":"Libtmux.Session.Target.source","qualifiedName":"Libtmux.Session.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-target-source"},{"id":"Libtmux.Session.Target.t","publicId":"Libtmux.Session.Target.t","qualifiedName":"Libtmux.Session.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-target-t"},{"id":"Libtmux.Session.attached","publicId":"Libtmux.Session.attached","qualifiedName":"Libtmux.Session.attached","name":"attached","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val attached : t -> int","source":{"file":"lib/libtmux.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val attached : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-session-attached"},{"id":"Libtmux.Session.id","publicId":"Libtmux.Session.id","qualifiedName":"Libtmux.Session.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-id-12gy"},{"id":"Libtmux.Session.name","publicId":"Libtmux.Session.name","qualifiedName":"Libtmux.Session.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":210,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":210,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-name"},{"id":"Libtmux.Session.same_entity","publicId":"Libtmux.Session.same_entity","qualifiedName":"Libtmux.Session.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":215,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":215,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_entity"},{"id":"Libtmux.Session.same_observation","publicId":"Libtmux.Session.same_observation","qualifiedName":"Libtmux.Session.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_observation"},{"id":"Libtmux.Session.source","publicId":"Libtmux.Session.source","qualifiedName":"Libtmux.Session.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-source"},{"id":"Libtmux.Session.t","publicId":"Libtmux.Session.t","qualifiedName":"Libtmux.Session.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-t"},{"id":"Libtmux.Session.target","publicId":"Libtmux.Session.target","qualifiedName":"Libtmux.Session.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-session-target-iu8j"},{"id":"Libtmux.Session.target:type","publicId":"Libtmux.Session.target:type","qualifiedName":"Libtmux.Session.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-session-target-type"},{"id":"Libtmux.Session.window_links","publicId":"Libtmux.Session.window_links","qualifiedName":"Libtmux.Session.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" All captured links, in capture order, including repeated windows. "],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","doc":{"summary":"All captured links, in capture order, including repeated windows.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-session-window_links"},{"id":"Libtmux.Session.windows","publicId":"Libtmux.Session.windows","qualifiedName":"Libtmux.Session.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Distinct windows in first-link order. All accesses are local. "],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Session","doc":{"summary":"Distinct windows in first-link order. All accesses are local."},"signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-session-windows"},{"id":"Libtmux.Snapshot","publicId":"Libtmux.Snapshot","qualifiedName":"Libtmux.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A complete immutable graph captured over an acquisition interval.\n Collections are replayable immutable arrays. Capturing several tmux commands\n does not establish an atomic transaction. "],"declarations":[{"kind":"module","text":"module Snapshot : sig\n type t\n\n module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end\n\n module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end\n\n val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result\n (** Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. *)\n\n val id : t -> Id.t\n val source : t -> Source.t\n val started_at_ns : t -> int64\n val finished_at_ns : t -> int64\n val sessions : t -> Session.t Iarray.t\n val windows : t -> Window.t Iarray.t\n val window_links : t -> Window_link.t Iarray.t\n val panes : t -> Pane.t Iarray.t\n\n val clients : t -> Client_observation.t Iarray.t\n (** Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. *)\n\n val find_session : t -> Session.Id.t -> Session.t option\n val find_window : t -> Window.Id.t -> Window.t option\n val find_pane : t -> Pane.Id.t -> Pane.t option\nend","source":{"file":"lib/libtmux.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"A complete immutable graph captured over an acquisition interval. Collections are replayable immutable arrays. Capturing several tmux commands does not establish an atomic transaction."},"slug":"libtmux-snapshot"},{"id":"Libtmux.Snapshot.Id","publicId":"Libtmux.Snapshot.Id","qualifiedName":"Libtmux.Snapshot.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end","source":{"file":"lib/libtmux.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-id-1y9h"},{"id":"Libtmux.Snapshot.Id.equal","publicId":"Libtmux.Snapshot.Id.equal","qualifiedName":"Libtmux.Snapshot.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-snapshot-id-equal"},{"id":"Libtmux.Snapshot.Id.of_string","publicId":"Libtmux.Snapshot.Id.of_string","qualifiedName":"Libtmux.Snapshot.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":409,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":409,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-id-of_string"},{"id":"Libtmux.Snapshot.Id.t","publicId":"Libtmux.Snapshot.Id.t","qualifiedName":"Libtmux.Snapshot.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":407,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":407,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-id-t"},{"id":"Libtmux.Snapshot.Id.to_string","publicId":"Libtmux.Snapshot.Id.to_string","qualifiedName":"Libtmux.Snapshot.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-snapshot-id-to_string"},{"id":"Libtmux.Snapshot.Input","publicId":"Libtmux.Snapshot.Input","qualifiedName":"Libtmux.Snapshot.Input","name":"Input","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end","source":{"file":"lib/libtmux.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-input"},{"id":"Libtmux.Snapshot.Input.client","publicId":"Libtmux.Snapshot.Input.client","qualifiedName":"Libtmux.Snapshot.Input.client","name":"client","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":448,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }","source":{"file":"lib/libtmux.mli","line":448,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type client =\n {\n name: string ;\n session_id: Session.Id.t option ;\n pid: int ;\n width: int ;\n height: int option ;\n control_mode: bool }","params":[]}],"slug":"libtmux-snapshot-input-client"},{"id":"Libtmux.Snapshot.Input.client.control_mode","publicId":"Libtmux.Snapshot.Input.client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":454,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"control_mode : bool;","source":{"file":"lib/libtmux.mli","line":454,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.client","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.control_mode","slug":"libtmux-snapshot-input-client-control_mode"},{"id":"Libtmux.Snapshot.Input.client.height","publicId":"Libtmux.Snapshot.Input.client.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":453,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":453,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-client-height"},{"id":"Libtmux.Snapshot.Input.client.name","publicId":"Libtmux.Snapshot.Input.client.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.client","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-client-name"},{"id":"Libtmux.Snapshot.Input.client.pid","publicId":"Libtmux.Snapshot.Input.client.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":451,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int;","source":{"file":"lib/libtmux.mli","line":451,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-client-pid"},{"id":"Libtmux.Snapshot.Input.client.session_id","publicId":"Libtmux.Snapshot.Input.client.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t option;","source":{"file":"lib/libtmux.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.client","type":"Session.Id.t option","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-client-session_id"},{"id":"Libtmux.Snapshot.Input.client.width","publicId":"Libtmux.Snapshot.Input.client.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":452,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":452,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-client-width"},{"id":"Libtmux.Snapshot.Input.pane","publicId":"Libtmux.Snapshot.Input.pane","qualifiedName":"Libtmux.Snapshot.Input.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":432,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }","source":{"file":"lib/libtmux.mli","line":432,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type pane =\n {\n id: Pane.Id.t ;\n window_id: Window.Id.t ;\n index: int ;\n active: bool ;\n dead: bool ;\n title: string ;\n current_command: string ;\n current_path: string ;\n pid: int option ;\n width: int ;\n height: int ;\n left: int ;\n top: int }","params":[]}],"slug":"libtmux-snapshot-input-pane"},{"id":"Libtmux.Snapshot.Input.pane.active","publicId":"Libtmux.Snapshot.Input.pane.active","name":"active","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":436,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"active : bool;","source":{"file":"lib/libtmux.mli","line":436,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.active","slug":"libtmux-snapshot-input-pane-active"},{"id":"Libtmux.Snapshot.Input.pane.current_command","publicId":"Libtmux.Snapshot.Input.pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":439,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_command : string;","source":{"file":"lib/libtmux.mli","line":439,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_command","slug":"libtmux-snapshot-input-pane-current_command"},{"id":"Libtmux.Snapshot.Input.pane.current_path","publicId":"Libtmux.Snapshot.Input.pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_path : string;","source":{"file":"lib/libtmux.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_path","slug":"libtmux-snapshot-input-pane-current_path"},{"id":"Libtmux.Snapshot.Input.pane.dead","publicId":"Libtmux.Snapshot.Input.pane.dead","name":"dead","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":437,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"dead : bool;","source":{"file":"lib/libtmux.mli","line":437,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.dead","slug":"libtmux-snapshot-input-pane-dead"},{"id":"Libtmux.Snapshot.Input.pane.height","publicId":"Libtmux.Snapshot.Input.pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":443,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":443,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-pane-height"},{"id":"Libtmux.Snapshot.Input.pane.id","publicId":"Libtmux.Snapshot.Input.pane.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":433,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":433,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Pane.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-pane-id"},{"id":"Libtmux.Snapshot.Input.pane.index","publicId":"Libtmux.Snapshot.Input.pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":435,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":435,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-pane-index"},{"id":"Libtmux.Snapshot.Input.pane.left","publicId":"Libtmux.Snapshot.Input.pane.left","name":"left","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":444,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"left : int;","source":{"file":"lib/libtmux.mli","line":444,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.left","slug":"libtmux-snapshot-input-pane-left"},{"id":"Libtmux.Snapshot.Input.pane.pid","publicId":"Libtmux.Snapshot.Input.pane.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":441,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int option;","source":{"file":"lib/libtmux.mli","line":441,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-pane-pid"},{"id":"Libtmux.Snapshot.Input.pane.title","publicId":"Libtmux.Snapshot.Input.pane.title","name":"title","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":438,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"title : string;","source":{"file":"lib/libtmux.mli","line":438,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.title","slug":"libtmux-snapshot-input-pane-title"},{"id":"Libtmux.Snapshot.Input.pane.top","publicId":"Libtmux.Snapshot.Input.pane.top","name":"top","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":445,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"top : int;","source":{"file":"lib/libtmux.mli","line":445,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.top","slug":"libtmux-snapshot-input-pane-top"},{"id":"Libtmux.Snapshot.Input.pane.width","publicId":"Libtmux.Snapshot.Input.pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":442,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":442,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-pane-width"},{"id":"Libtmux.Snapshot.Input.pane.window_id","publicId":"Libtmux.Snapshot.Input.pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":434,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":434,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-pane-window_id"},{"id":"Libtmux.Snapshot.Input.session","publicId":"Libtmux.Snapshot.Input.session","qualifiedName":"Libtmux.Snapshot.Input.session","name":"session","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type session = { id : Session.Id.t; name : string; attached : int }","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type session = {\n id: Session.Id.t ;\n name: string ;\n attached: int }","params":[]}],"slug":"libtmux-snapshot-input-session"},{"id":"Libtmux.Snapshot.Input.session.attached","publicId":"Libtmux.Snapshot.Input.session.attached","name":"attached","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"attached : int","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.session","type":"int","qualifiedName":"Libtmux.Snapshot.Input.attached","slug":"libtmux-snapshot-input-session-attached"},{"id":"Libtmux.Snapshot.Input.session.id","publicId":"Libtmux.Snapshot.Input.session.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.session","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-session-id"},{"id":"Libtmux.Snapshot.Input.session.name","publicId":"Libtmux.Snapshot.Input.session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.session","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-session-name"},{"id":"Libtmux.Snapshot.Input.window","publicId":"Libtmux.Snapshot.Input.window","qualifiedName":"Libtmux.Snapshot.Input.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }","source":{"file":"lib/libtmux.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window =\n {\n id: Window.Id.t ;\n name: string ;\n width: int ;\n height: int ;\n layout: string }","params":[]}],"slug":"libtmux-snapshot-input-window"},{"id":"Libtmux.Snapshot.Input.window.height","publicId":"Libtmux.Snapshot.Input.window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":421,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":421,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-window-height"},{"id":"Libtmux.Snapshot.Input.window.id","publicId":"Libtmux.Snapshot.Input.window.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":418,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":418,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-window-id"},{"id":"Libtmux.Snapshot.Input.window.layout","publicId":"Libtmux.Snapshot.Input.window.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : string;","source":{"file":"lib/libtmux.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.layout","slug":"libtmux-snapshot-input-window-layout"},{"id":"Libtmux.Snapshot.Input.window.name","publicId":"Libtmux.Snapshot.Input.window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":419,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":419,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-window-name"},{"id":"Libtmux.Snapshot.Input.window.width","publicId":"Libtmux.Snapshot.Input.window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":420,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":420,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-window-width"},{"id":"Libtmux.Snapshot.Input.window_link","publicId":"Libtmux.Snapshot.Input.window_link","qualifiedName":"Libtmux.Snapshot.Input.window_link","name":"window_link","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":425,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }","source":{"file":"lib/libtmux.mli","line":425,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window_link =\n {\n session_id: Session.Id.t ;\n window_id: Window.Id.t ;\n index: int ;\n is_current: bool }","params":[]}],"slug":"libtmux-snapshot-input-window_link"},{"id":"Libtmux.Snapshot.Input.window_link.index","publicId":"Libtmux.Snapshot.Input.window_link.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":428,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":428,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-window_link-index"},{"id":"Libtmux.Snapshot.Input.window_link.is_current","publicId":"Libtmux.Snapshot.Input.window_link.is_current","name":"is_current","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":429,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"is_current : bool;","source":{"file":"lib/libtmux.mli","line":429,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.is_current","slug":"libtmux-snapshot-input-window_link-is_current"},{"id":"Libtmux.Snapshot.Input.window_link.session_id","publicId":"Libtmux.Snapshot.Input.window_link.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-window_link-session_id"},{"id":"Libtmux.Snapshot.Input.window_link.window_id","publicId":"Libtmux.Snapshot.Input.window_link.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-window_link-window_id"},{"id":"Libtmux.Snapshot.clients","publicId":"Libtmux.Snapshot.clients","qualifiedName":"Libtmux.Snapshot.clients","name":"clients","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":486,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. "],"declarations":[{"kind":"function","text":"val clients : t -> Client_observation.t Iarray.t","source":{"file":"lib/libtmux.mli","line":486,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Collections and their contents are immutable. They retain capture order, are replayable and remain readable after the acquiring client closes."},"signatures":[{"raw":"val clients : t -> Client_observation.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_observation.t Iarray.t"}],"slug":"libtmux-snapshot-clients"},{"id":"Libtmux.Snapshot.create","publicId":"Libtmux.Snapshot.create","qualifiedName":"Libtmux.Snapshot.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. "],"declarations":[{"kind":"function","text":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Validate and materialize a complete captured graph without I/O. Equal duplicate global rows collapse in first-occurrence order; conflicting rows and dangling references return {!Error.Capture_raced}. Links at different indexes remain distinct, including within one session. At most 10,000 input rows are admitted. Each session needs one current link and each window one active pane. Capture spans an interval, not an atomic instant. Input strings are bytes; no Unicode normalization is performed."},"signatures":[{"raw":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list -> clients:Input.client list -> (t, Error.t) result","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"id","type":"Id.t","keywordOnly":true},{"name":"started_at_ns","type":"int64","keywordOnly":true},{"name":"finished_at_ns","type":"int64","keywordOnly":true},{"name":"sessions","type":"Input.session list","keywordOnly":true},{"name":"windows","type":"Input.window list","keywordOnly":true},{"name":"window_links","type":"Input.window_link list","keywordOnly":true},{"name":"panes","type":"Input.pane list","keywordOnly":true},{"name":"clients","type":"Input.client list","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-create"},{"id":"Libtmux.Snapshot.find_pane","publicId":"Libtmux.Snapshot.find_pane","qualifiedName":"Libtmux.Snapshot.find_pane","name":"find_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":492,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_pane : t -> Pane.Id.t -> Pane.t option","source":{"file":"lib/libtmux.mli","line":492,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_pane : t -> Pane.Id.t -> Pane.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Pane.Id.t"}],"returns":"Pane.t option"}],"slug":"libtmux-snapshot-find_pane"},{"id":"Libtmux.Snapshot.find_session","publicId":"Libtmux.Snapshot.find_session","qualifiedName":"Libtmux.Snapshot.find_session","name":"find_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":490,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_session : t -> Session.Id.t -> Session.t option","source":{"file":"lib/libtmux.mli","line":490,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_session : t -> Session.Id.t -> Session.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Session.Id.t"}],"returns":"Session.t option"}],"slug":"libtmux-snapshot-find_session"},{"id":"Libtmux.Snapshot.find_window","publicId":"Libtmux.Snapshot.find_window","qualifiedName":"Libtmux.Snapshot.find_window","name":"find_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":491,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_window : t -> Window.Id.t -> Window.t option","source":{"file":"lib/libtmux.mli","line":491,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_window : t -> Window.Id.t -> Window.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Window.Id.t"}],"returns":"Window.t option"}],"slug":"libtmux-snapshot-find_window"},{"id":"Libtmux.Snapshot.finished_at_ns","publicId":"Libtmux.Snapshot.finished_at_ns","qualifiedName":"Libtmux.Snapshot.finished_at_ns","name":"finished_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":480,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val finished_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":480,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val finished_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-finished_at_ns"},{"id":"Libtmux.Snapshot.id","publicId":"Libtmux.Snapshot.id","qualifiedName":"Libtmux.Snapshot.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":477,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":477,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-snapshot-id-1y6d"},{"id":"Libtmux.Snapshot.panes","publicId":"Libtmux.Snapshot.panes","qualifiedName":"Libtmux.Snapshot.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"slug":"libtmux-snapshot-panes"},{"id":"Libtmux.Snapshot.sessions","publicId":"Libtmux.Snapshot.sessions","qualifiedName":"Libtmux.Snapshot.sessions","name":"sessions","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val sessions : t -> Session.t Iarray.t","source":{"file":"lib/libtmux.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val sessions : t -> Session.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-snapshot-sessions"},{"id":"Libtmux.Snapshot.source","publicId":"Libtmux.Snapshot.source","qualifiedName":"Libtmux.Snapshot.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":478,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":478,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-snapshot-source"},{"id":"Libtmux.Snapshot.started_at_ns","publicId":"Libtmux.Snapshot.started_at_ns","qualifiedName":"Libtmux.Snapshot.started_at_ns","name":"started_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":479,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val started_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":479,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val started_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-started_at_ns"},{"id":"Libtmux.Snapshot.t","publicId":"Libtmux.Snapshot.t","qualifiedName":"Libtmux.Snapshot.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":404,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":404,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-t"},{"id":"Libtmux.Snapshot.window_links","publicId":"Libtmux.Snapshot.window_links","qualifiedName":"Libtmux.Snapshot.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":483,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":483,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-snapshot-window_links"},{"id":"Libtmux.Snapshot.windows","publicId":"Libtmux.Snapshot.windows","qualifiedName":"Libtmux.Snapshot.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":482,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":482,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-snapshot-windows"},{"id":"Libtmux.Source","publicId":"Libtmux.Source","qualifiedName":"Libtmux.Source","name":"Source","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Endpoint and observed daemon identity for one connection generation.\n Constructing metadata alone does not establish a live binding. "],"declarations":[{"kind":"module","text":"module Source : sig\n type t\n\n val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result\n (** Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. *)\n\n val endpoint : t -> Endpoint.t\n val generation : t -> Generation.t\n val server_pid : t -> int\n\n val equal : t -> t -> bool\n (** Compare endpoint, observed daemon PID and connection generation.\n Independent connections compare unequal even when they observe the same\n PID. Equality establishes neither a live binding nor fresh observations.\n *)\nend","source":{"file":"lib/libtmux.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"Endpoint and observed daemon identity for one connection generation. Constructing metadata alone does not establish a live binding."},"slug":"libtmux-source"},{"id":"Libtmux.Source.create","publicId":"Libtmux.Source.create","qualifiedName":"Libtmux.Source.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. "],"declarations":[{"kind":"function","text":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Source","doc":{"summary":"Pure metadata import for capture adapters. This neither establishes a connection nor verifies process identity. The backend must bind the generation to a live daemon before it admits operations."},"signatures":[{"raw":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t -> server_pid:int -> (t, Error.t) result","params":[{"name":"endpoint","type":"Endpoint.t","keywordOnly":true},{"name":"generation","type":"Generation.t","keywordOnly":true},{"name":"server_pid","type":"int","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-source-create"},{"id":"Libtmux.Source.endpoint","publicId":"Libtmux.Source.endpoint","qualifiedName":"Libtmux.Source.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Endpoint.t","source":{"file":"lib/libtmux.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val endpoint : t -> Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Endpoint.t"}],"slug":"libtmux-source-endpoint"},{"id":"Libtmux.Source.equal","publicId":"Libtmux.Source.equal","qualifiedName":"Libtmux.Source.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare endpoint, observed daemon PID and connection generation.\n Independent connections compare unequal even when they observe the same\n PID. Equality establishes neither a live binding nor fresh observations.\n "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Source","doc":{"summary":"Compare endpoint, observed daemon PID and connection generation. Independent connections compare unequal even when they observe the same PID. Equality establishes neither a live binding nor fresh observations."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-source-equal"},{"id":"Libtmux.Source.generation","publicId":"Libtmux.Source.generation","qualifiedName":"Libtmux.Source.generation","name":"generation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":109,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val generation : t -> Generation.t","source":{"file":"lib/libtmux.mli","line":109,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val generation : t -> Generation.t","params":[{"name":"arg1","type":"t"}],"returns":"Generation.t"}],"slug":"libtmux-source-generation"},{"id":"Libtmux.Source.server_pid","publicId":"Libtmux.Source.server_pid","qualifiedName":"Libtmux.Source.server_pid","name":"server_pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val server_pid : t -> int","source":{"file":"lib/libtmux.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val server_pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-source-server_pid"},{"id":"Libtmux.Source.t","publicId":"Libtmux.Source.t","qualifiedName":"Libtmux.Source.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Source","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-source-t"},{"id":"Libtmux.Spawn","publicId":"Libtmux.Spawn","qualifiedName":"Libtmux.Spawn","name":"Spawn","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":739,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A process description with explicit argv or shell semantics, working\n directory and environment. Describing a process performs no I/O. "],"declarations":[{"kind":"module","text":"module Spawn : sig\n type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string\n\n type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }\n\n val make : ?cwd:string -> ?environment:(string * string) list -> command -> t\n (** Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. *)\n\n val default : t\nend","source":{"file":"lib/libtmux.mli","line":739,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"A process description with explicit argv or shell semantics, working directory and environment. Describing a process performs no I/O."},"slug":"libtmux-spawn"},{"id":"Libtmux.Spawn.command","publicId":"Libtmux.Spawn.command","qualifiedName":"Libtmux.Spawn.command","name":"command","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":740,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string","source":{"file":"lib/libtmux.mli","line":740,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type command =\n | Default \n | Exec of {\n program: string ;\n args: string list } \n | Shell of string ","params":[]}],"slug":"libtmux-spawn-command"},{"id":"Libtmux.Spawn.command.Default","publicId":"Libtmux.Spawn.command.Default","name":"Default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Default","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.command","variant":"unit","qualifiedName":"Libtmux.Spawn.Default","slug":"libtmux-spawn-command-default"},{"id":"Libtmux.Spawn.command.Exec","publicId":"Libtmux.Spawn.command.Exec","name":"Exec","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Exec of { program : string; args : string list }","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.command","variant":"struct","qualifiedName":"Libtmux.Spawn.Exec","slug":"libtmux-spawn-command-exec"},{"id":"Libtmux.Spawn.command.Exec.args","publicId":"Libtmux.Spawn.command.Exec.args","name":"args","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"args : string list","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string list","qualifiedName":"Libtmux.Spawn.args","slug":"libtmux-spawn-command-exec-args"},{"id":"Libtmux.Spawn.command.Exec.program","publicId":"Libtmux.Spawn.command.Exec.program","name":"program","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"program : string;","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string","qualifiedName":"Libtmux.Spawn.program","slug":"libtmux-spawn-command-exec-program"},{"id":"Libtmux.Spawn.command.Shell","publicId":"Libtmux.Spawn.command.Shell","name":"Shell","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":743,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Shell of string","source":{"file":"lib/libtmux.mli","line":743,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.command","variant":"tuple","qualifiedName":"Libtmux.Spawn.Shell","slug":"libtmux-spawn-command-shell"},{"id":"Libtmux.Spawn.default","publicId":"Libtmux.Spawn.default","qualifiedName":"Libtmux.Spawn.default","name":"default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":759,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val default : t","source":{"file":"lib/libtmux.mli","line":759,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"val default : t","params":[],"returns":"t"}],"slug":"libtmux-spawn-default"},{"id":"Libtmux.Spawn.make","publicId":"Libtmux.Spawn.make","qualifiedName":"Libtmux.Spawn.make","name":"make","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":751,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. "],"declarations":[{"kind":"function","text":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","source":{"file":"lib/libtmux.mli","line":751,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn","doc":{"summary":"Describe a program without I/O. `Exec` preserves argv; `Shell` explicitly requests the daemon's configured shell. `cwd` must be absolute. Validation occurs at admission. With no arguments, `Exec` uses a fixed `/bin/sh` trampoline because tmux treats a single argument as shell code. `Default` follows tmux defaults on creation and reuses the previous command on respawn."},"signatures":[{"raw":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"arg1","type":"command"}],"returns":"t"}],"slug":"libtmux-spawn-make"},{"id":"Libtmux.Spawn.t","publicId":"Libtmux.Spawn.t","qualifiedName":"Libtmux.Spawn.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":745,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }","source":{"file":"lib/libtmux.mli","line":745,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type t =\n {\n command: command ;\n cwd: string option ;\n environment: (string * string) list }","params":[]}],"slug":"libtmux-spawn-t"},{"id":"Libtmux.Spawn.t.command","publicId":"Libtmux.Spawn.t.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":746,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : command;","source":{"file":"lib/libtmux.mli","line":746,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.t","type":"command","qualifiedName":"Libtmux.Spawn.command","slug":"libtmux-spawn-t-command"},{"id":"Libtmux.Spawn.t.cwd","publicId":"Libtmux.Spawn.t.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":747,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"lib/libtmux.mli","line":747,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.t","type":"string option","qualifiedName":"Libtmux.Spawn.cwd","slug":"libtmux-spawn-t-cwd"},{"id":"Libtmux.Spawn.t.environment","publicId":"Libtmux.Spawn.t.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":748,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"lib/libtmux.mli","line":748,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Spawn.t","type":"(string * string) list","qualifiedName":"Libtmux.Spawn.environment","slug":"libtmux-spawn-t-environment"},{"id":"Libtmux.Window","publicId":"Libtmux.Window","qualifiedName":"Libtmux.Window","name":"Window","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A global window shared by its session links. Window index and current state\n belong to a link, while panes and geometry belong to the window. "],"declarations":[{"kind":"module","text":"and Window : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end\n\n module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val width : t -> int\n val height : t -> int\n val layout : t -> string\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\n\n val panes : t -> Pane.t Iarray.t\n val links : t -> Window_link.t Iarray.t\nend","source":{"file":"lib/libtmux.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"A global window shared by its session links. Window index and current state belong to a link, while panes and geometry belong to the window."},"slug":"libtmux-window"},{"id":"Libtmux.Window.Fields","publicId":"Libtmux.Window.Fields","qualifiedName":"Libtmux.Window.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end","source":{"file":"lib/libtmux.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","slug":"libtmux-window-fields"},{"id":"Libtmux.Window.Fields.height","publicId":"Libtmux.Window.Fields.height","qualifiedName":"Libtmux.Window.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":237,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":237,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-height"},{"id":"Libtmux.Window.Fields.id","publicId":"Libtmux.Window.Fields.id","qualifiedName":"Libtmux.Window.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-id"},{"id":"Libtmux.Window.Fields.layout","publicId":"Libtmux.Window.Fields.layout","qualifiedName":"Libtmux.Window.Fields.layout","name":"layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val layout : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val layout : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-layout"},{"id":"Libtmux.Window.Fields.name","publicId":"Libtmux.Window.Fields.name","qualifiedName":"Libtmux.Window.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-name"},{"id":"Libtmux.Window.Fields.width","publicId":"Libtmux.Window.Fields.width","qualifiedName":"Libtmux.Window.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-width"},{"id":"Libtmux.Window.Id","publicId":"Libtmux.Window.Id","qualifiedName":"Libtmux.Window.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","slug":"libtmux-window-id-1sgu"},{"id":"Libtmux.Window.Id.compare","publicId":"Libtmux.Window.Id.compare","qualifiedName":"Libtmux.Window.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-window-id-compare"},{"id":"Libtmux.Window.Id.equal","publicId":"Libtmux.Window.Id.equal","qualifiedName":"Libtmux.Window.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-id-equal"},{"id":"Libtmux.Window.Id.of_string","publicId":"Libtmux.Window.Id.of_string","qualifiedName":"Libtmux.Window.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-window-id-of_string"},{"id":"Libtmux.Window.Id.pp","publicId":"Libtmux.Window.Id.pp","qualifiedName":"Libtmux.Window.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-window-id-pp"},{"id":"Libtmux.Window.Id.t","publicId":"Libtmux.Window.Id.t","qualifiedName":"Libtmux.Window.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-id-t"},{"id":"Libtmux.Window.Id.to_string","publicId":"Libtmux.Window.Id.to_string","qualifiedName":"Libtmux.Window.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-id-to_string"},{"id":"Libtmux.Window.Relations","publicId":"Libtmux.Window.Relations","qualifiedName":"Libtmux.Window.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":241,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":241,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","slug":"libtmux-window-relations"},{"id":"Libtmux.Window.Relations.links","publicId":"Libtmux.Window.Relations.links","qualifiedName":"Libtmux.Window.Relations.links","name":"links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":243,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":243,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-window-relations-links"},{"id":"Libtmux.Window.Relations.panes","publicId":"Libtmux.Window.Relations.panes","qualifiedName":"Libtmux.Window.Relations.panes","name":"panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":242,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val panes : (t, Pane.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":242,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val panes : (t, Pane.t) Relation.Many.t","params":[],"returns":"(t, Pane.t) Relation.Many.t"}],"slug":"libtmux-window-relations-panes"},{"id":"Libtmux.Window.Target","publicId":"Libtmux.Window.Target","qualifiedName":"Libtmux.Window.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","slug":"libtmux-window-target-6ecc"},{"id":"Libtmux.Window.Target.id","publicId":"Libtmux.Window.Target.id","qualifiedName":"Libtmux.Window.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-target-id"},{"id":"Libtmux.Window.Target.of_id","publicId":"Libtmux.Window.Target.of_id","qualifiedName":"Libtmux.Window.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-window-target-of_id"},{"id":"Libtmux.Window.Target.source","publicId":"Libtmux.Window.Target.source","qualifiedName":"Libtmux.Window.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-target-source"},{"id":"Libtmux.Window.Target.t","publicId":"Libtmux.Window.Target.t","qualifiedName":"Libtmux.Window.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-target-t"},{"id":"Libtmux.Window.height","publicId":"Libtmux.Window.height","qualifiedName":"Libtmux.Window.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-height"},{"id":"Libtmux.Window.id","publicId":"Libtmux.Window.id","qualifiedName":"Libtmux.Window.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":258,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":258,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-id-1sjw"},{"id":"Libtmux.Window.layout","publicId":"Libtmux.Window.layout","qualifiedName":"Libtmux.Window.layout","name":"layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":262,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val layout : t -> string","source":{"file":"lib/libtmux.mli","line":262,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val layout : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-layout"},{"id":"Libtmux.Window.links","publicId":"Libtmux.Window.links","qualifiedName":"Libtmux.Window.links","name":"links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-window-links"},{"id":"Libtmux.Window.name","publicId":"Libtmux.Window.name","qualifiedName":"Libtmux.Window.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":259,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":259,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-name"},{"id":"Libtmux.Window.panes","publicId":"Libtmux.Window.panes","qualifiedName":"Libtmux.Window.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":272,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":272,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-window-panes"},{"id":"Libtmux.Window.same_entity","publicId":"Libtmux.Window.same_entity","qualifiedName":"Libtmux.Window.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":266,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_entity"},{"id":"Libtmux.Window.same_observation","publicId":"Libtmux.Window.same_observation","qualifiedName":"Libtmux.Window.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_observation"},{"id":"Libtmux.Window.source","publicId":"Libtmux.Window.source","qualifiedName":"Libtmux.Window.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-source"},{"id":"Libtmux.Window.t","publicId":"Libtmux.Window.t","qualifiedName":"Libtmux.Window.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-t"},{"id":"Libtmux.Window.target","publicId":"Libtmux.Window.target","qualifiedName":"Libtmux.Window.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-window-target-1sbf"},{"id":"Libtmux.Window.target:type","publicId":"Libtmux.Window.target:type","qualifiedName":"Libtmux.Window.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":256,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":256,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-window-target-type"},{"id":"Libtmux.Window.width","publicId":"Libtmux.Window.width","qualifiedName":"Libtmux.Window.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-width"},{"id":"Libtmux.Window_link","publicId":"Libtmux.Window_link","qualifiedName":"Libtmux.Window_link","name":"Window_link","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":278,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" One captured session/index/window context. It is not a stable link\n incarnation across unlinking, movement or reindexing. "],"declarations":[{"kind":"module","text":"and Window_link : sig\n type t\n\n module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end\n\n val index : t -> int\n val is_current : t -> bool\n val session : t -> Session.t\n val window : t -> Window.t\n\n val same_context : t -> t -> bool\n (** Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. *)\n\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":278,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux","doc":{"summary":"One captured session/index/window context. It is not a stable link incarnation across unlinking, movement or reindexing."},"slug":"libtmux-window_link"},{"id":"Libtmux.Window_link.Fields","publicId":"Libtmux.Window_link.Fields","qualifiedName":"Libtmux.Window_link.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":281,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":281,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-fields"},{"id":"Libtmux.Window_link.Fields.index","publicId":"Libtmux.Window_link.Fields.index","qualifiedName":"Libtmux.Window_link.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window_link-fields-index"},{"id":"Libtmux.Window_link.Fields.is_current","publicId":"Libtmux.Window_link.Fields.is_current","qualifiedName":"Libtmux.Window_link.Fields.is_current","name":"is_current","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":283,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val is_current : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val is_current : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-window_link-fields-is_current"},{"id":"Libtmux.Window_link.Relations","publicId":"Libtmux.Window_link.Relations","qualifiedName":"Libtmux.Window_link.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":286,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":286,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-relations"},{"id":"Libtmux.Window_link.Relations.session","publicId":"Libtmux.Window_link.Relations.session","qualifiedName":"Libtmux.Window_link.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":287,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":287,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.One.t","params":[],"returns":"(t, Session.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-session"},{"id":"Libtmux.Window_link.Relations.window","publicId":"Libtmux.Window_link.Relations.window","qualifiedName":"Libtmux.Window_link.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":288,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-window"},{"id":"Libtmux.Window_link.index","publicId":"Libtmux.Window_link.index","qualifiedName":"Libtmux.Window_link.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":291,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":291,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window_link-index"},{"id":"Libtmux.Window_link.is_current","publicId":"Libtmux.Window_link.is_current","qualifiedName":"Libtmux.Window_link.is_current","name":"is_current","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":292,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_current : t -> bool","source":{"file":"lib/libtmux.mli","line":292,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val is_current : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-is_current"},{"id":"Libtmux.Window_link.same_context","publicId":"Libtmux.Window_link.same_context","qualifiedName":"Libtmux.Window_link.same_context","name":"same_context","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":296,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. "],"declarations":[{"kind":"function","text":"val same_context : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":296,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","doc":{"summary":"Compare source, session, index and window. An equal context does not certify a stable link incarnation across reindexing or unlink/relink."},"signatures":[{"raw":"val same_context : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_context"},{"id":"Libtmux.Window_link.same_observation","publicId":"Libtmux.Window_link.same_observation","qualifiedName":"Libtmux.Window_link.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_observation"},{"id":"Libtmux.Window_link.session","publicId":"Libtmux.Window_link.session","qualifiedName":"Libtmux.Window_link.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":293,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> Session.t","source":{"file":"lib/libtmux.mli","line":293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val session : t -> Session.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t"}],"slug":"libtmux-window_link-session"},{"id":"Libtmux.Window_link.t","publicId":"Libtmux.Window_link.t","qualifiedName":"Libtmux.Window_link.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window_link-t"},{"id":"Libtmux.Window_link.window","publicId":"Libtmux.Window_link.window","qualifiedName":"Libtmux.Window_link.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-window_link-window"},{"id":"Libtmux_eio","publicId":"Libtmux_eio","qualifiedName":"Libtmux_eio","name":"Libtmux_eio","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Concurrent Linux tmux clients using the application's Eio scheduler.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md}streaming\n guide} demonstrates application-owned switches, cancellation and continuity\n gaps. "],"declarations":[{"kind":"module","text":"","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"doc":{"summary":"Concurrent Linux tmux clients using the application's Eio scheduler.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [streaming guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md) demonstrates application-owned switches, cancellation and continuity gaps."},"slug":"libtmux_eio"},{"id":"Libtmux_eio.Cleanup","publicId":"Libtmux_eio.Cleanup","qualifiedName":"Libtmux_eio.Cleanup","name":"Cleanup","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Domain-owned cleanup diagnostics shared with the blocking backend. Supply a\n report before setup to inspect secondary failures after native cancellation.\n No scheduler is needed to inspect a report. "],"declarations":[{"kind":"module","text":"module Cleanup = Libtmux_unix.Cleanup","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","doc":{"summary":"Domain-owned cleanup diagnostics shared with the blocking backend. Supply a report before setup to inspect secondary failures after native cancellation. No scheduler is needed to inspect a report."},"exportedFrom":"Libtmux_unix.Cleanup","slug":"libtmux_eio-cleanup"},{"id":"Libtmux_eio.Client","publicId":"Libtmux_eio.Client","qualifiedName":"Libtmux_eio.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n *)\n\n val cleanup : t -> Cleanup.t\n (** Read the supplied report or the client's fresh default without I/O.\n {!Cleanup.inspect} remains available after close. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. New admission returns\n [Error Libtmux.Error.Closed] once {!close} starts. *)\n\n val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. A cleanup failure cannot replace\n an earlier error or cancellation; inspect {!cleanup} for secondary\n failures. Otherwise cleanup failure prevents success or renewed coverage.\n No history/barrier guarantee. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve bounded capacity without I/O. Return\n [Error Libtmux.Error.Closed] once {!close} starts. *)\n\n val await : 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. *)\n\n val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result\n (** Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. *)\n\n val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. *)\n\n val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Retire the generation and close owned control clients and descriptors.\n Reject new {!submit} and {!subscribe} calls as soon as closing starts.\n Concurrent calls await the same teardown result. Later calls retain a\n teardown failure instead of treating the closed flag as success. Each\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n Other fibers can run during that wait. The grace is per helper; it does\n not bound scheduling, filesystem or uninterruptible kernel work. No signal\n targets the daemon. tmux's [exit-unattached] and [exit-empty] policies can\n end the daemon after its clients or sessions disappear. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_eio-client"},{"id":"Libtmux_eio.Client.await","publicId":"Libtmux_eio.Client.await","qualifiedName":"Libtmux_eio.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. "],"declarations":[{"kind":"function","text":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Cancellation propagates as Eio cancellation. Store the handle outside the cancelled fiber: the client drains written work independently, and the eventual result remains inspectable."},"signatures":[{"raw":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-await"},{"id":"Libtmux_eio.Client.break_pane","publicId":"Libtmux_eio.Client.break_pane","qualifiedName":"Libtmux_eio.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":434,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":434,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-break_pane"},{"id":"Libtmux_eio.Client.capture","publicId":"Libtmux_eio.Client.capture","qualifiedName":"Libtmux_eio.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. "],"declarations":[{"kind":"function","text":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a complete immutable graph over an interval. Conflicting or disappearing entities fail capture; they do not become empty relations. The returned values remain readable after client closure."},"signatures":[{"raw":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture"},{"id":"Libtmux_eio.Client.capture_environment","publicId":"Libtmux_eio.Client.capture_environment","qualifiedName":"Libtmux_eio.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":276,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":276,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_environment"},{"id":"Libtmux_eio.Client.capture_hooks","publicId":"Libtmux_eio.Client.capture_hooks","qualifiedName":"Libtmux_eio.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":355,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":355,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_hooks"},{"id":"Libtmux_eio.Client.capture_options","publicId":"Libtmux_eio.Client.capture_options","qualifiedName":"Libtmux_eio.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_options"},{"id":"Libtmux_eio.Client.capture_text","publicId":"Libtmux_eio.Client.capture_text","qualifiedName":"Libtmux_eio.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Inclusive ordinary screen rows, using a bounded private file transfer. Qualified local scratch storage must be shared with the daemon."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_text"},{"id":"Libtmux_eio.Client.cleanup","publicId":"Libtmux_eio.Client.cleanup","qualifiedName":"Libtmux_eio.Client.cleanup","name":"cleanup","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":142,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read the supplied report or the client's fresh default without I/O.\n {!Cleanup.inspect} remains available after close. "],"declarations":[{"kind":"function","text":"val cleanup : t -> Cleanup.t","source":{"file":"eio/libtmux_eio.mli","line":142,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the supplied report or the client's fresh default without I/O. {!Cleanup.inspect} remains available after close."},"signatures":[{"raw":"val cleanup : t -> Cleanup.t","params":[{"name":"arg1","type":"t"}],"returns":"Cleanup.t"}],"slug":"libtmux_eio-client-cleanup"},{"id":"Libtmux_eio.Client.clear_history","publicId":"Libtmux_eio.Client.clear_history","qualifiedName":"Libtmux_eio.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_history"},{"id":"Libtmux_eio.Client.clear_option_array","publicId":"Libtmux_eio.Client.clear_option_array","qualifiedName":"Libtmux_eio.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":351,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":351,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_option_array"},{"id":"Libtmux_eio.Client.close","publicId":"Libtmux_eio.Client.close","qualifiedName":"Libtmux_eio.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":581,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Retire the generation and close owned control clients and descriptors.\n Reject new {!submit} and {!subscribe} calls as soon as closing starts.\n Concurrent calls await the same teardown result. Later calls retain a\n teardown failure instead of treating the closed flag as success. Each\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n Other fibers can run during that wait. The grace is per helper; it does\n not bound scheduling, filesystem or uninterruptible kernel work. No signal\n targets the daemon. tmux's [exit-unattached] and [exit-empty] policies can\n end the daemon after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":581,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Retire the generation and close owned control clients and descriptors. Reject new {!submit} and {!subscribe} calls as soon as closing starts. Concurrent calls await the same teardown result. Later calls retain a teardown failure instead of treating the closed flag as success. Each helper gets 200 ms of TERM grace, followed by KILL if needed and reaping. Other fibers can run during that wait. The grace is per helper; it does not bound scheduling, filesystem or uninterruptible kernel work. No signal targets the daemon. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-close"},{"id":"Libtmux_eio.Client.connect","publicId":"Libtmux_eio.Client.connect","qualifiedName":"Libtmux_eio.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n "],"declarations":[{"kind":"function","text":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Attach to an existing local Linux daemon in the same PID namespace and shared filesystem. Requires pidfd support. Default exchange timeout: one second. All client calls belong to the connecting OCaml domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-connect"},{"id":"Libtmux_eio.Client.create_session","publicId":"Libtmux_eio.Client.create_session","qualifiedName":"Libtmux_eio.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_session"},{"id":"Libtmux_eio.Client.create_window","publicId":"Libtmux_eio.Client.create_window","qualifiedName":"Libtmux_eio.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_window"},{"id":"Libtmux_eio.Client.cycle_layout","publicId":"Libtmux_eio.Client.cycle_layout","qualifiedName":"Libtmux_eio.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":528,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":528,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-cycle_layout"},{"id":"Libtmux_eio.Client.kill_pane","publicId":"Libtmux_eio.Client.kill_pane","qualifiedName":"Libtmux_eio.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":454,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":454,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_pane"},{"id":"Libtmux_eio.Client.kill_session","publicId":"Libtmux_eio.Client.kill_session","qualifiedName":"Libtmux_eio.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":445,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":445,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_session"},{"id":"Libtmux_eio.Client.kill_window","publicId":"Libtmux_eio.Client.kill_window","qualifiedName":"Libtmux_eio.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_window"},{"id":"Libtmux_eio.Client.link_window","publicId":"Libtmux_eio.Client.link_window","qualifiedName":"Libtmux_eio.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-link_window"},{"id":"Libtmux_eio.Client.move_pane","publicId":"Libtmux_eio.Client.move_pane","qualifiedName":"Libtmux_eio.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":535,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":535,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_pane"},{"id":"Libtmux_eio.Client.move_window_at","publicId":"Libtmux_eio.Client.move_window_at","qualifiedName":"Libtmux_eio.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_window_at"},{"id":"Libtmux_eio.Client.read_hook","publicId":"Libtmux_eio.Client.read_hook","qualifiedName":"Libtmux_eio.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":360,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":360,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_hook"},{"id":"Libtmux_eio.Client.read_option","publicId":"Libtmux_eio.Client.read_option","qualifiedName":"Libtmux_eio.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":317,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":317,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_option"},{"id":"Libtmux_eio.Client.refresh_client_at","publicId":"Libtmux_eio.Client.refresh_client_at","qualifiedName":"Libtmux_eio.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":242,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":242,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-refresh_client_at"},{"id":"Libtmux_eio.Client.remove_environment","publicId":"Libtmux_eio.Client.remove_environment","qualifiedName":"Libtmux_eio.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":302,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_environment"},{"id":"Libtmux_eio.Client.remove_hook","publicId":"Libtmux_eio.Client.remove_hook","qualifiedName":"Libtmux_eio.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":385,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":385,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_hook"},{"id":"Libtmux_eio.Client.rename_session","publicId":"Libtmux_eio.Client.rename_session","qualifiedName":"Libtmux_eio.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_session"},{"id":"Libtmux_eio.Client.rename_window","publicId":"Libtmux_eio.Client.rename_window","qualifiedName":"Libtmux_eio.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":216,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":216,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_window"},{"id":"Libtmux_eio.Client.request_detach_client_at","publicId":"Libtmux_eio.Client.request_detach_client_at","qualifiedName":"Libtmux_eio.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-request_detach_client_at"},{"id":"Libtmux_eio.Client.resize_control_client_at","publicId":"Libtmux_eio.Client.resize_control_client_at","qualifiedName":"Libtmux_eio.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_control_client_at"},{"id":"Libtmux_eio.Client.resize_pane","publicId":"Libtmux_eio.Client.resize_pane","qualifiedName":"Libtmux_eio.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":500,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":500,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_pane"},{"id":"Libtmux_eio.Client.resize_window","publicId":"Libtmux_eio.Client.resize_window","qualifiedName":"Libtmux_eio.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_window"},{"id":"Libtmux_eio.Client.respawn_pane","publicId":"Libtmux_eio.Client.respawn_pane","qualifiedName":"Libtmux_eio.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-respawn_pane"},{"id":"Libtmux_eio.Client.rotate_panes","publicId":"Libtmux_eio.Client.rotate_panes","qualifiedName":"Libtmux_eio.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":554,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":554,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rotate_panes"},{"id":"Libtmux_eio.Client.run","publicId":"Libtmux_eio.Client.run","qualifiedName":"Libtmux_eio.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":196,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. "],"declarations":[{"kind":"function","text":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":196,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Submit and await an explicit command. Retain a separate submitted handle when the outcome must remain inspectable after caller cancellation."},"signatures":[{"raw":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run"},{"id":"Libtmux_eio.Client.run_hook","publicId":"Libtmux_eio.Client.run_hook","qualifiedName":"Libtmux_eio.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":394,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":394,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run_hook"},{"id":"Libtmux_eio.Client.select_layout","publicId":"Libtmux_eio.Client.select_layout","qualifiedName":"Libtmux_eio.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":520,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":520,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout :\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_layout"},{"id":"Libtmux_eio.Client.select_pane","publicId":"Libtmux_eio.Client.select_pane","qualifiedName":"Libtmux_eio.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":491,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":491,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_pane"},{"id":"Libtmux_eio.Client.select_window_at","publicId":"Libtmux_eio.Client.select_window_at","qualifiedName":"Libtmux_eio.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_window_at"},{"id":"Libtmux_eio.Client.send_keys","publicId":"Libtmux_eio.Client.send_keys","qualifiedName":"Libtmux_eio.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys :\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_keys"},{"id":"Libtmux_eio.Client.send_text","publicId":"Libtmux_eio.Client.send_text","qualifiedName":"Libtmux_eio.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":257,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_text"},{"id":"Libtmux_eio.Client.set_environment","publicId":"Libtmux_eio.Client.set_environment","qualifiedName":"Libtmux_eio.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":286,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":286,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_environment"},{"id":"Libtmux_eio.Client.set_hook","publicId":"Libtmux_eio.Client.set_hook","qualifiedName":"Libtmux_eio.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":369,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":369,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_hook"},{"id":"Libtmux_eio.Client.set_option","publicId":"Libtmux_eio.Client.set_option","qualifiedName":"Libtmux_eio.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_option"},{"id":"Libtmux_eio.Client.set_pane_title","publicId":"Libtmux_eio.Client.set_pane_title","qualifiedName":"Libtmux_eio.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_pane_title"},{"id":"Libtmux_eio.Client.signal","publicId":"Libtmux_eio.Client.signal","qualifiedName":"Libtmux_eio.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":272,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":272,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-signal"},{"id":"Libtmux_eio.Client.source","publicId":"Libtmux_eio.Client.source","qualifiedName":"Libtmux_eio.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"eio/libtmux_eio.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_eio-client-source"},{"id":"Libtmux_eio.Client.split_pane","publicId":"Libtmux_eio.Client.split_pane","qualifiedName":"Libtmux_eio.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-split_pane"},{"id":"Libtmux_eio.Client.submit","publicId":"Libtmux_eio.Client.submit","qualifiedName":"Libtmux_eio.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate and reserve bounded capacity without I/O. Return\n [Error Libtmux.Error.Closed] once {!close} starts. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate and reserve bounded capacity without I/O. Return `Error Libtmux.Error.Closed` once {!close} starts."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-submit"},{"id":"Libtmux_eio.Client.subscribe","publicId":"Libtmux_eio.Client.subscribe","qualifiedName":"Libtmux_eio.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":153,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. New admission returns\n [Error Libtmux.Error.Closed] once {!close} starts. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":153,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire verified coverage through one shared lane per session; choose the least observed session ID unless supplied. A client-owned reader delivers future bytes without application callbacks. Default queue bounds are 1 MiB/1024 events; max 16 subscribers and eight total client lanes, sharing the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap then End. Data starts after admission's marker, with no snapshot/history barrier, automatic reconnect or silent cursor reuse. New admission returns `Error Libtmux.Error.Closed` once {!close} starts.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-subscribe"},{"id":"Libtmux_eio.Client.swap_panes","publicId":"Libtmux_eio.Client.swap_panes","qualifiedName":"Libtmux_eio.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-swap_panes"},{"id":"Libtmux_eio.Client.switch_client_at","publicId":"Libtmux_eio.Client.switch_client_at","qualifiedName":"Libtmux_eio.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-switch_client_at"},{"id":"Libtmux_eio.Client.t","publicId":"Libtmux_eio.Client.t","qualifiedName":"Libtmux_eio.Client.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-client-t"},{"id":"Libtmux_eio.Client.unlink_window_at","publicId":"Libtmux_eio.Client.unlink_window_at","qualifiedName":"Libtmux_eio.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":463,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":463,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unlink_window_at"},{"id":"Libtmux_eio.Client.unset_environment","publicId":"Libtmux_eio.Client.unset_environment","qualifiedName":"Libtmux_eio.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":297,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":297,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_environment"},{"id":"Libtmux_eio.Client.unset_option","publicId":"Libtmux_eio.Client.unset_option","qualifiedName":"Libtmux_eio.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":342,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":342,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_option"},{"id":"Libtmux_eio.Client.version","publicId":"Libtmux_eio.Client.version","qualifiedName":"Libtmux_eio.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"eio/libtmux_eio.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_eio-client-version"},{"id":"Libtmux_eio.Client.wait_for","publicId":"Libtmux_eio.Client.wait_for","qualifiedName":"Libtmux_eio.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for"},{"id":"Libtmux_eio.Client.wait_for_text","publicId":"Libtmux_eio.Client.wait_for_text","qualifiedName":"Libtmux_eio.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. A cleanup failure cannot replace\n an earlier error or cancellation; inspect {!cleanup} for secondary\n failures. Otherwise cleanup failure prevents success or renewed coverage.\n No history/barrier guarantee. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Subscribe and capture the screen immediately, then recapture on output. Membership/overflow gaps establish fresh coverage in the same binding. Maximum pattern: 64 KiB. Return captured rendered text containing it; transient text may be missed. Deadlines are checked between bounded acquisitions, whose I/O retains the client exchange timeout. Cancellation propagates and releases the subscription. A cleanup failure cannot replace an earlier error or cancellation; inspect {!cleanup} for secondary failures. Otherwise cleanup failure prevents success or renewed coverage. No history/barrier guarantee."},"signatures":[{"raw":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for_text"},{"id":"Libtmux_eio.Client.zoom_pane","publicId":"Libtmux_eio.Client.zoom_pane","qualifiedName":"Libtmux_eio.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-zoom_pane"},{"id":"Libtmux_eio.Operation","publicId":"Libtmux_eio.Operation","qualifiedName":"Libtmux_eio.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** Read without I/O, including after client closure. Owning domain only. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove unsent work. A written request remains owned and drained by the\n client. *)\n\n val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result\n (** Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_eio-operation"},{"id":"Libtmux_eio.Operation.await_stage","publicId":"Libtmux_eio.Operation.await_stage","qualifiedName":"Libtmux_eio.Operation.await_stage","name":"await_stage","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n "],"declarations":[{"kind":"function","text":"val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Wait for the named stage or a terminal state. Acknowledgement does not establish completion. Cancelling this observer leaves the operation alone."},"signatures":[{"raw":"val await_stage :\n 'a t -> [ `Acknowledged | `Written ] -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"[ `Acknowledged | `Written ]"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-await_stage"},{"id":"Libtmux_eio.Operation.cancel","publicId":"Libtmux_eio.Operation.cancel","qualifiedName":"Libtmux_eio.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove unsent work. A written request remains owned and drained by the\n client. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Remove unsent work. A written request remains owned and drained by the client."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-cancel"},{"id":"Libtmux_eio.Operation.cleanup_receipt","publicId":"Libtmux_eio.Operation.cleanup_receipt","qualifiedName":"Libtmux_eio.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt =\n {\n cause: Libtmux.Error.t ;\n owned_buffers: string list ;\n created: Libtmux.Created.t list }","params":[]}],"slug":"libtmux_eio-operation-cleanup_receipt"},{"id":"Libtmux_eio.Operation.cleanup_receipt.cause","publicId":"Libtmux_eio.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_eio.Operation.cause","slug":"libtmux_eio-operation-cleanup_receipt-cause"},{"id":"Libtmux_eio.Operation.cleanup_receipt.created","publicId":"Libtmux_eio.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_eio.Operation.created","slug":"libtmux_eio-operation-cleanup_receipt-created"},{"id":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_eio.Operation.owned_buffers","slug":"libtmux_eio-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_eio.Operation.id","publicId":"Libtmux_eio.Operation.id","qualifiedName":"Libtmux_eio.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"eio/libtmux_eio.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_eio-operation-id"},{"id":"Libtmux_eio.Operation.inspect","publicId":"Libtmux_eio.Operation.inspect","qualifiedName":"Libtmux_eio.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read without I/O, including after client closure. Owning domain only. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Read without I/O, including after client closure. Owning domain only."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-inspect"},{"id":"Libtmux_eio.Operation.state","publicId":"Libtmux_eio.Operation.state","qualifiedName":"Libtmux_eio.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a state =\n | Queued \n | Not_started \n | Written \n | Acknowledged \n | Finished of ('a, Libtmux.Error.t) result \n | Outcome_unknown of cleanup_receipt ","params":[]}],"slug":"libtmux_eio-operation-state"},{"id":"Libtmux_eio.Operation.state.Acknowledged","publicId":"Libtmux_eio.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"eio/libtmux_eio.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Acknowledged","slug":"libtmux_eio-operation-state-acknowledged"},{"id":"Libtmux_eio.Operation.state.Finished","publicId":"Libtmux_eio.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Finished","slug":"libtmux_eio-operation-state-finished"},{"id":"Libtmux_eio.Operation.state.Not_started","publicId":"Libtmux_eio.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"eio/libtmux_eio.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Not_started","slug":"libtmux_eio-operation-state-not_started"},{"id":"Libtmux_eio.Operation.state.Outcome_unknown","publicId":"Libtmux_eio.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Outcome_unknown","slug":"libtmux_eio-operation-state-outcome_unknown"},{"id":"Libtmux_eio.Operation.state.Queued","publicId":"Libtmux_eio.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"eio/libtmux_eio.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Queued","slug":"libtmux_eio-operation-state-queued"},{"id":"Libtmux_eio.Operation.state.Written","publicId":"Libtmux_eio.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Written","slug":"libtmux_eio-operation-state-written"},{"id":"Libtmux_eio.Operation.t","publicId":"Libtmux_eio.Operation.t","qualifiedName":"Libtmux_eio.Operation.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-operation-t"},{"id":"Libtmux_eio.Rendered","publicId":"Libtmux_eio.Rendered","qualifiedName":"Libtmux_eio.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","exportedFrom":"Libtmux.Captured_text","slug":"libtmux_eio-rendered"},{"id":"Libtmux_eio.Subscription","publicId":"Libtmux_eio.Subscription","qualifiedName":"Libtmux_eio.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":92,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O, on the owning domain. *)\n\n val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Concurrent calls\n join the same cleanup, including reaping a lane when it becomes unused;\n later calls retain cleanup failures. Borrowed clients and the daemon\n remain alive. {!poll} can still read the terminal event. *)\n\n val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":92,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_eio-subscription"},{"id":"Libtmux_eio.Subscription.close","publicId":"Libtmux_eio.Subscription.close","qualifiedName":"Libtmux_eio.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Concurrent calls\n join the same cleanup, including reaping a lane when it becomes unused;\n later calls retain cleanup failures. Borrowed clients and the daemon\n remain alive. {!poll} can still read the terminal event. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"End an active subscription with Cancelled and discard pending data. Preserve an already ended subscription's terminal reason. Concurrent calls join the same cleanup, including reaping a lane when it becomes unused; later calls retain cleanup failures. Borrowed clients and the daemon remain alive. {!poll} can still read the terminal event."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-close"},{"id":"Libtmux_eio.Subscription.next","publicId":"Libtmux_eio.Subscription.next","qualifiedName":"Libtmux_eio.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. "],"declarations":[{"kind":"function","text":"val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Await one event, defaulting to a one-second deadline. `None` follows a consumed End. A deadline keeps the subscription active. Eio cancellation closes it, releases its lane when unused, and propagates."},"signatures":[{"raw":"val next :\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-next"},{"id":"Libtmux_eio.Subscription.poll","publicId":"Libtmux_eio.Subscription.poll","qualifiedName":"Libtmux_eio.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove a queued event without I/O, on the owning domain. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Remove a queued event without I/O, on the owning domain."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-poll"},{"id":"Libtmux_eio.Subscription.t","publicId":"Libtmux_eio.Subscription.t","qualifiedName":"Libtmux_eio.Subscription.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-subscription-t"},{"id":"Libtmux_eio.Subscription.wait_for_bytes","publicId":"Libtmux_eio.Subscription.wait_for_bytes","qualifiedName":"Libtmux_eio.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"eio/libtmux_eio.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Consume future observed bytes through a match, with a maximum 64 KiB nonempty pattern. Match across Data boundaries and return its end cursor. Gaps end matching. This searches neither rendered text nor history. A deadline leaves the subscription active; cancellation closes it.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_eio-subscription-wait_for_bytes"},{"id":"Libtmux_eio.Terminal","publicId":"Libtmux_eio.Terminal","qualifiedName":"Libtmux_eio.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Cooperative TERM gets\n 200 ms of grace before forced termination, while other fibers can run.\n Scheduling and kernel completion can add time. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. Supply\n [cleanup] before the call to retain secondary failures after cancellation.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_eio-terminal"},{"id":"Libtmux_eio.Terminal.attach_current","publicId":"Libtmux_eio.Terminal.attach_current","qualifiedName":"Libtmux_eio.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Cooperative TERM gets\n 200 ms of grace before forced termination, while other fibers can run.\n Scheduling and kernel completion can add time. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. Supply\n [cleanup] before the call to retain secondary failures after cancellation.\n "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Terminal","doc":{"summary":"Run an interactive terminal client until exit, using the application's process manager and standard streams unless explicit flows are supplied. `stdin` must be backed by a terminal descriptor; a pipe-backed flow is rejected by tmux. Select the exact ID on the daemon currently listening at `endpoint`, without a captured target, binding, retry or daemon startup.","body":"Environment updates and read-only mode default to false. Clear inherited `TMUX` and `TMUX_PANE`. Cancellation propagates after terminating and reaping this client; it does not stop the daemon. Cooperative TERM gets 200 ms of grace before forced termination, while other fibers can run. Scheduling and kernel completion can add time. Success proves terminal client exit. Diagnostics go to `stderr`; borrowed flows stay open. Supply `cleanup` before the call to retain secondary failures after cancellation."},"signatures":[{"raw":"val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:[> Eio.Flow.source_ty ] Eio.Flow.source ->\n ?stdout:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n ?stderr:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"[> Eio.Flow.source_ty ] Eio.Flow.source","optional":true,"keywordOnly":true},{"name":"stdout","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"stderr","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-terminal-attach_current"},{"id":"Libtmux_eio.Workspace","publicId":"Libtmux_eio.Workspace","qualifiedName":"Libtmux_eio.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Apply workspace plans through Eio while retaining journals across caller\n cancellation. Handles belong to the creating domain; the application owns\n the scheduler and switch. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. *)\n\n val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. *)\n\n val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Read a journal copy without I/O, including any late retained outcome. *)\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio","doc":{"summary":"Apply workspace plans through Eio while retaining journals across caller cancellation. Handles belong to the creating domain; the application owns the scheduler and switch."},"slug":"libtmux_eio-workspace"},{"id":"Libtmux_eio.Workspace.await","publicId":"Libtmux_eio.Workspace.await","qualifiedName":"Libtmux_eio.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":617,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. "],"declarations":[{"kind":"function","text":"val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":617,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Apply once. Expected failures return a retained journal. Eio cancellation propagates after progress is recorded and at most 500 ms of protected compensation. Admitted commands can still complete under client ownership; inspect the receipt before attempting manual recovery."},"signatures":[{"raw":"val await :\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-await"},{"id":"Libtmux_eio.Workspace.client","publicId":"Libtmux_eio.Workspace.client","qualifiedName":"Libtmux_eio.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":630,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"eio/libtmux_eio.mli","line":630,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_eio-workspace-client"},{"id":"Libtmux_eio.Workspace.close","publicId":"Libtmux_eio.Workspace.close","qualifiedName":"Libtmux_eio.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Closing is idempotent; completed journals remain readable."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-close"},{"id":"Libtmux_eio.Workspace.inspect","publicId":"Libtmux_eio.Workspace.inspect","qualifiedName":"Libtmux_eio.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":626,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read a journal copy without I/O, including any late retained outcome. "],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":626,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Read a journal copy without I/O, including any late retained outcome."},"signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-inspect"},{"id":"Libtmux_eio.Workspace.submit","publicId":"Libtmux_eio.Workspace.submit","qualifiedName":"Libtmux_eio.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":599,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":599,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a generation-bound handle without I/O. The supplied client is borrowed; closing the handle leaves it open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit"},{"id":"Libtmux_eio.Workspace.submit_bootstrap","publicId":"Libtmux_eio.Workspace.submit_bootstrap","qualifiedName":"Libtmux_eio.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":604,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":604,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a missing-endpoint execution without I/O. Await starts control new-session and binds that same connection. The handle owns its new client within `sw`; it never owns the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit_bootstrap"},{"id":"Libtmux_eio.Workspace.t","publicId":"Libtmux_eio.Workspace.t","qualifiedName":"Libtmux_eio.Workspace.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_eio.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-workspace-t"},{"id":"Libtmux_json","publicId":"Libtmux_json","qualifiedName":"Libtmux_json","name":"Libtmux_json","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Pure, bounded query and workspace JSON interchange.\n\n {!Expr} validates portable queries and {!Workspace} decodes configurations\n and encodes plans and receipts. Both return {!Decode_error.t} on invalid\n data. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} and\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for complete programs. "],"declarations":[{"kind":"module","text":"","source":{"file":"json/libtmux_json.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"doc":{"summary":"Pure, bounded query and workspace JSON interchange.","body":"{!Expr} validates portable queries and {!Workspace} decodes configurations and encodes plans and receipts. Both return {!Decode_error.t} on invalid data. See the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) and [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for complete programs."},"slug":"libtmux_json"},{"id":"Libtmux_json.Decode_error","publicId":"Libtmux_json.Decode_error","qualifiedName":"Libtmux_json.Decode_error","name":"Decode_error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Decode_error : sig\n type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported\n\n type t = { pointer : string; category : category; message : string }\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"json/libtmux_json.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json","slug":"libtmux_json-decode_error"},{"id":"Libtmux_json.Decode_error.category","publicId":"Libtmux_json.Decode_error.category","qualifiedName":"Libtmux_json.Decode_error.category","name":"category","kind":"enum","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":12,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","source":{"file":"json/libtmux_json.mli","line":12,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type category =\n | Syntax \n | Limit \n | Unknown \n | Wrong_type \n | Out_of_range \n | Unsupported ","params":[]}],"slug":"libtmux_json-decode_error-category"},{"id":"Libtmux_json.Decode_error.category.Limit","publicId":"Libtmux_json.Decode_error.category.Limit","name":"Limit","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Limit","source":{"file":"json/libtmux_json.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Limit","slug":"libtmux_json-decode_error-category-limit"},{"id":"Libtmux_json.Decode_error.category.Out_of_range","publicId":"Libtmux_json.Decode_error.category.Out_of_range","name":"Out_of_range","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Out_of_range","source":{"file":"json/libtmux_json.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Out_of_range","slug":"libtmux_json-decode_error-category-out_of_range"},{"id":"Libtmux_json.Decode_error.category.Syntax","publicId":"Libtmux_json.Decode_error.category.Syntax","name":"Syntax","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Syntax","source":{"file":"json/libtmux_json.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Syntax","slug":"libtmux_json-decode_error-category-syntax"},{"id":"Libtmux_json.Decode_error.category.Unknown","publicId":"Libtmux_json.Decode_error.category.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"json/libtmux_json.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unknown","slug":"libtmux_json-decode_error-category-unknown"},{"id":"Libtmux_json.Decode_error.category.Unsupported","publicId":"Libtmux_json.Decode_error.category.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"json/libtmux_json.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unsupported","slug":"libtmux_json-decode_error-category-unsupported"},{"id":"Libtmux_json.Decode_error.category.Wrong_type","publicId":"Libtmux_json.Decode_error.category.Wrong_type","name":"Wrong_type","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_type","source":{"file":"json/libtmux_json.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Wrong_type","slug":"libtmux_json-decode_error-category-wrong_type"},{"id":"Libtmux_json.Decode_error.pp","publicId":"Libtmux_json.Decode_error.pp","qualifiedName":"Libtmux_json.Decode_error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"json/libtmux_json.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux_json-decode_error-pp"},{"id":"Libtmux_json.Decode_error.t","publicId":"Libtmux_json.Decode_error.t","qualifiedName":"Libtmux_json.Decode_error.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = { pointer : string; category : category; message : string }","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type t = {\n pointer: string ;\n category: category ;\n message: string }","params":[]}],"slug":"libtmux_json-decode_error-t"},{"id":"Libtmux_json.Decode_error.t.category","publicId":"Libtmux_json.Decode_error.t.category","name":"category","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"category : category;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.t","type":"category","qualifiedName":"Libtmux_json.Decode_error.category","slug":"libtmux_json-decode_error-t-category"},{"id":"Libtmux_json.Decode_error.t.message","publicId":"Libtmux_json.Decode_error.t.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.message","slug":"libtmux_json-decode_error-t-message"},{"id":"Libtmux_json.Decode_error.t.pointer","publicId":"Libtmux_json.Decode_error.t.pointer","name":"pointer","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pointer : string;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.pointer","slug":"libtmux_json-decode_error-t-pointer"},{"id":"Libtmux_json.Error","publicId":"Libtmux_json.Error","qualifiedName":"Libtmux_json.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Structured native failures for JSON consumers. "],"declarations":[{"kind":"module","text":"module Error : sig\n val encode : Libtmux.Error.t -> Yojson.Safe.t\n (** Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json","doc":{"summary":"Structured native failures for JSON consumers."},"slug":"libtmux_json-error"},{"id":"Libtmux_json.Error.encode","publicId":"Libtmux_json.Error.encode","qualifiedName":"Libtmux_json.Error.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. "],"declarations":[{"kind":"function","text":"val encode : Libtmux.Error.t -> Yojson.Safe.t","source":{"file":"json/libtmux_json.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Error","doc":{"summary":"Return a stable `code`, bounded `message`, `message_truncated` flag and relevant operation, resource or target metadata. Messages and text attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex representation described by {!Workspace.encode_receipt}. No I/O."},"signatures":[{"raw":"val encode : Libtmux.Error.t -> Yojson.Safe.t","params":[{"name":"arg1","type":"Libtmux.Error.t"}],"returns":"Yojson.Safe.t"}],"slug":"libtmux_json-error-encode"},{"id":"Libtmux_json.Expr","publicId":"Libtmux_json.Expr","qualifiedName":"Libtmux_json.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Portable scalar pane expressions. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/query-interchange.md}wire\n subset} for canonical fields, operators and bounds. "],"declarations":[{"kind":"module","text":"module Expr : sig\n val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result\n (** Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. *)\n\n val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result\n (** Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. *)\n\n val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result\n\n val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result\n (** Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json","doc":{"summary":"Portable scalar pane expressions. See the [wire subset](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/query-interchange.md) for canonical fields, operators and bounds."},"slug":"libtmux_json-expr"},{"id":"Libtmux_json.Expr.decode","publicId":"Libtmux_json.Expr.decode","qualifiedName":"Libtmux_json.Expr.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. "],"declarations":[{"kind":"function","text":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Validate the supplied tree, including duplicate properties, before typed construction. Only the shared scalar pane registry and Boolean composition are accepted. Java regex, relationships and native extension fields return `Unsupported`. Numbers must fit signed 32-bit integers."},"signatures":[{"raw":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"Yojson.Safe.t"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-decode"},{"id":"Libtmux_json.Expr.encode","publicId":"Libtmux_json.Expr.encode","qualifiedName":"Libtmux_json.Expr.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Expr","signatures":[{"raw":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-encode"},{"id":"Libtmux_json.Expr.of_string","publicId":"Libtmux_json.Expr.of_string","qualifiedName":"Libtmux_json.Expr.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. "],"declarations":[{"kind":"function","text":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at most 256 values. Errors include a JSON pointer, never the whole input."},"signatures":[{"raw":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"string"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-of_string"},{"id":"Libtmux_json.Expr.to_string","publicId":"Libtmux_json.Expr.to_string","qualifiedName":"Libtmux_json.Expr.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. "],"declarations":[{"kind":"function","text":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Apply the same bounds and subset when encoding. Text with invalid UTF-8 has no representation in this schema. These functions perform no I/O."},"signatures":[{"raw":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(string, Decode_error.t) result"}],"slug":"libtmux_json-expr-to_string"},{"id":"Libtmux_json.Workspace","publicId":"Libtmux_json.Workspace","qualifiedName":"Libtmux_json.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Validate workspace documents and describe plans and retained execution.\n Preview output never supplies executable targets. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n\n val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n (** Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. *)\n\n val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. *)\n\n val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. *)\nend","source":{"file":"json/libtmux_json.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json","doc":{"summary":"Validate workspace documents and describe plans and retained execution. Preview output never supplies executable targets."},"slug":"libtmux_json-workspace"},{"id":"Libtmux_json.Workspace.decode","publicId":"Libtmux_json.Workspace.decode","qualifiedName":"Libtmux_json.Workspace.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Workspace","signatures":[{"raw":"val decode :\n directory:string ->\n Yojson.Safe.t -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"Yojson.Safe.t"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-decode"},{"id":"Libtmux_json.Workspace.encode_plan","publicId":"Libtmux_json.Workspace.encode_plan","qualifiedName":"Libtmux_json.Workspace.encode_plan","name":"encode_plan","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. "],"declarations":[{"kind":"function","text":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-plan/1` without I/O. The advisory preview contains command argv, cwd and environment names, excluding environment values, option values and startup text. It is not an execution script."},"signatures":[{"raw":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_plan"},{"id":"Libtmux_json.Workspace.encode_receipt","publicId":"Libtmux_json.Workspace.encode_receipt","qualifiedName":"Libtmux_json.Workspace.encode_receipt","name":"encode_receipt","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. "],"declarations":[{"kind":"function","text":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-receipt/1` with ordered steps, outcome index lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic messages are limited to 4096 bytes with an explicit truncation flag; command payloads are omitted.","body":"Both output schemas have a 4 MiB bound. Invalid UTF-8 values use `{\"encoding\":\"hex\",\"bytes\":\"...\"}` instead of losing bytes. Imported IDs and hints never establish a connection binding."},"signatures":[{"raw":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Execution.receipt"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_receipt"},{"id":"Libtmux_json.Workspace.of_string","publicId":"Libtmux_json.Workspace.of_string","qualifiedName":"Libtmux_json.Workspace.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":42,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. "],"declarations":[{"kind":"function","text":"val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":42,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Decode `libtmux.workspace/1` with the query codec's 64 KiB, UTF-8 and 32-level JSON bounds. Reject duplicate and unknown properties, invalid argv/shell combinations and configuration errors. `directory` is the absolute document directory; these functions perform no filesystem I/O."},"signatures":[{"raw":"val of_string :\n directory:string ->\n string -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-of_string"},{"id":"Libtmux_unix","publicId":"Libtmux_unix","qualifiedName":"Libtmux_unix","name":"Libtmux_unix","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Blocking Linux tmux clients with explicit scoped cancellation.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md}control\n guide} explains binding, completion and recovery. "],"declarations":[{"kind":"module","text":"","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"doc":{"summary":"Blocking Linux tmux clients with explicit scoped cancellation.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [control guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md) explains binding, completion and recovery."},"slug":"libtmux_unix"},{"id":"Libtmux_unix.Cancellation","publicId":"Libtmux_unix.Cancellation","qualifiedName":"Libtmux_unix.Cancellation","name":"Cancellation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cancellation : sig\n type t\n\n exception Cancelled\n\n val with_ : (t -> 'a) -> 'a\n (** Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. *)\n\n val cancel : t -> unit\n (** Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","slug":"libtmux_unix-cancellation"},{"id":"Libtmux_unix.Cancellation.Cancelled","publicId":"Libtmux_unix.Cancellation.Cancelled","qualifiedName":"Libtmux_unix.Cancellation.Cancelled","name":"Cancelled","kind":"exception","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"exception","text":"exception Cancelled","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type exn += Cancelled","params":[]}],"slug":"libtmux_unix-cancellation-cancelled"},{"id":"Libtmux_unix.Cancellation.cancel","publicId":"Libtmux_unix.Cancellation.cancel","qualifiedName":"Libtmux_unix.Cancellation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. "],"declarations":[{"kind":"function","text":"val cancel : t -> unit","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Wake waiters. Safe from another domain or systhread, but not from a signal handler. Repeated calls and calls after scope exit have no effect."},"signatures":[{"raw":"val cancel : t -> unit","params":[{"name":"arg1","type":"t"}],"returns":"unit"}],"slug":"libtmux_unix-cancellation-cancel"},{"id":"Libtmux_unix.Cancellation.t","publicId":"Libtmux_unix.Cancellation.t","qualifiedName":"Libtmux_unix.Cancellation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-cancellation-t"},{"id":"Libtmux_unix.Cancellation.with_","publicId":"Libtmux_unix.Cancellation.with_","qualifiedName":"Libtmux_unix.Cancellation.with_","name":"with_","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. "],"declarations":[{"kind":"function","text":"val with_ : (t -> 'a) -> 'a","source":{"file":"unix/libtmux_unix.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Own a cancellation token for the callback's lifetime. Leaving the scope cancels outstanding waiters and releases its descriptors after they finish. An escaped token is cancelled and cannot be reused."},"signatures":[{"raw":"val with_ : (t -> 'a) -> 'a","params":[{"name":"arg1","type":"t -> 'a"}],"returns":"'a"}],"slug":"libtmux_unix-cancellation-with_"},{"id":"Libtmux_unix.Cleanup","publicId":"Libtmux_unix.Cleanup","qualifiedName":"Libtmux_unix.Cleanup","name":"Cleanup","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Retained failures from releasing processes and descriptors. Reports belong\n to their creating domain and remain readable after client closure. They\n preserve secondary failures without replacing a primary exception or\n cancellation. "],"declarations":[{"kind":"module","text":"module Cleanup : sig\n type t = Cleanup.t\n\n type phase = Cleanup.phase =\n | Close_pipe\n | Open_pidfd\n | Close_pidfd\n | Terminate\n | Grace\n | Kill\n | Reap\n | Unreaped_child\n | Cancel_workers\n | Release_hook\n | Notify_waiters\n\n type issue = Cleanup.issue = {\n phase : phase;\n error : Libtmux.Error.t option;\n exception_ : exn;\n backtrace : Printexc.raw_backtrace;\n }\n (** One failed cleanup action. [error] retains a typed library cause when\n available; [exception_] and [backtrace] retain the original exception.\n [Unreaped_child] means exit was not established after a failed signal. It\n does not release ownership or authorize signalling a reused PID. *)\n\n type snapshot = Cleanup.snapshot = { issues : issue Iarray.t; omitted : int }\n (** Issues in occurrence order, with a count of additional omitted issues. A\n report retains at most 64 entries. This bounds entry count, not heap\n retention: exception payloads and backtraces may retain other values.\n These diagnostics are not immutable graph observations. *)\n\n val create : unit -> t\n (** Create an empty report without I/O. Supply it before {!Client.connect},\n {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain\n cleanup evidence even when setup fails or cancellation raises. *)\n\n val inspect : t -> (snapshot, Libtmux.Error.t) result\n (** Copy the current diagnostics without I/O. Returns\n {!Libtmux.Error.Wrong_domain} outside the creating domain. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"Retained failures from releasing processes and descriptors. Reports belong to their creating domain and remain readable after client closure. They preserve secondary failures without replacing a primary exception or cancellation."},"slug":"libtmux_unix-cleanup"},{"id":"Libtmux_unix.Cleanup.create","publicId":"Libtmux_unix.Cleanup.create","qualifiedName":"Libtmux_unix.Cleanup.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create an empty report without I/O. Supply it before {!Client.connect},\n {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain\n cleanup evidence even when setup fails or cancellation raises. "],"declarations":[{"kind":"function","text":"val create : unit -> t","source":{"file":"unix/libtmux_unix.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Create an empty report without I/O. Supply it before {!Client.connect}, {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain cleanup evidence even when setup fails or cancellation raises."},"signatures":[{"raw":"val create : unit -> t","params":[{"name":"arg1","type":"unit"}],"returns":"t"}],"slug":"libtmux_unix-cleanup-create"},{"id":"Libtmux_unix.Cleanup.inspect","publicId":"Libtmux_unix.Cleanup.inspect","qualifiedName":"Libtmux_unix.Cleanup.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Copy the current diagnostics without I/O. Returns\n {!Libtmux.Error.Wrong_domain} outside the creating domain. "],"declarations":[{"kind":"function","text":"val inspect : t -> (snapshot, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Copy the current diagnostics without I/O. Returns {!Libtmux.Error.Wrong_domain} outside the creating domain."},"signatures":[{"raw":"val inspect : t -> (snapshot, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(snapshot, Libtmux.Error.t) result"}],"slug":"libtmux_unix-cleanup-inspect"},{"id":"Libtmux_unix.Cleanup.issue","publicId":"Libtmux_unix.Cleanup.issue","qualifiedName":"Libtmux_unix.Cleanup.issue","name":"issue","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" One failed cleanup action. [error] retains a typed library cause when\n available; [exception_] and [backtrace] retain the original exception.\n [Unreaped_child] means exit was not established after a failed signal. It\n does not release ownership or authorize signalling a reused PID. "],"declarations":[{"kind":"struct","text":"type issue = Cleanup.issue = {\n phase : phase;\n error : Libtmux.Error.t option;\n exception_ : exn;\n backtrace : Printexc.raw_backtrace;\n }","source":{"file":"unix/libtmux_unix.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"One failed cleanup action. `error` retains a typed library cause when available; `exception_` and `backtrace` retain the original exception. `Unreaped_child` means exit was not established after a failed signal. It does not release ownership or authorize signalling a reused PID."},"type":"Cleanup.issue","signatures":[{"raw":"type issue = Cleanup.issue =\n {\n phase: phase ;\n error: Libtmux.Error.t option ;\n exception_: exn ;\n backtrace: Printexc.raw_backtrace }","params":[]}],"slug":"libtmux_unix-cleanup-issue"},{"id":"Libtmux_unix.Cleanup.issue.backtrace","publicId":"Libtmux_unix.Cleanup.issue.backtrace","name":"backtrace","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"backtrace : Printexc.raw_backtrace;","source":{"file":"unix/libtmux_unix.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"Printexc.raw_backtrace","qualifiedName":"Libtmux_unix.Cleanup.backtrace","slug":"libtmux_unix-cleanup-issue-backtrace"},{"id":"Libtmux_unix.Cleanup.issue.error","publicId":"Libtmux_unix.Cleanup.issue.error","name":"error","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"error : Libtmux.Error.t option;","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_unix.Cleanup.error","slug":"libtmux_unix-cleanup-issue-error"},{"id":"Libtmux_unix.Cleanup.issue.exception_","publicId":"Libtmux_unix.Cleanup.issue.exception_","name":"exception_","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"exception_ : exn;","source":{"file":"unix/libtmux_unix.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"exn","qualifiedName":"Libtmux_unix.Cleanup.exception_","slug":"libtmux_unix-cleanup-issue-exception_"},{"id":"Libtmux_unix.Cleanup.issue.phase","publicId":"Libtmux_unix.Cleanup.issue.phase","name":"phase","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"phase : phase;","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"phase","qualifiedName":"Libtmux_unix.Cleanup.phase","slug":"libtmux_unix-cleanup-issue-phase"},{"id":"Libtmux_unix.Cleanup.phase","publicId":"Libtmux_unix.Cleanup.phase","qualifiedName":"Libtmux_unix.Cleanup.phase","name":"phase","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type phase = Cleanup.phase =\n | Close_pipe\n | Open_pidfd\n | Close_pidfd\n | Terminate\n | Grace\n | Kill\n | Reap\n | Unreaped_child\n | Cancel_workers\n | Release_hook\n | Notify_waiters","source":{"file":"unix/libtmux_unix.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup","type":"Cleanup.phase","signatures":[{"raw":"type phase = Cleanup.phase =\n | Close_pipe \n | Open_pidfd \n | Close_pidfd \n | Terminate \n | Grace \n | Kill \n | Reap \n | Unreaped_child \n | Cancel_workers \n | Release_hook \n | Notify_waiters ","params":[]}],"slug":"libtmux_unix-cleanup-phase"},{"id":"Libtmux_unix.Cleanup.phase.Cancel_workers","publicId":"Libtmux_unix.Cleanup.phase.Cancel_workers","name":"Cancel_workers","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancel_workers","source":{"file":"unix/libtmux_unix.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Cancel_workers","slug":"libtmux_unix-cleanup-phase-cancel_workers"},{"id":"Libtmux_unix.Cleanup.phase.Close_pidfd","publicId":"Libtmux_unix.Cleanup.phase.Close_pidfd","name":"Close_pidfd","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Close_pidfd","source":{"file":"unix/libtmux_unix.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Close_pidfd","slug":"libtmux_unix-cleanup-phase-close_pidfd"},{"id":"Libtmux_unix.Cleanup.phase.Close_pipe","publicId":"Libtmux_unix.Cleanup.phase.Close_pipe","name":"Close_pipe","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Close_pipe","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Close_pipe","slug":"libtmux_unix-cleanup-phase-close_pipe"},{"id":"Libtmux_unix.Cleanup.phase.Grace","publicId":"Libtmux_unix.Cleanup.phase.Grace","name":"Grace","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Grace","source":{"file":"unix/libtmux_unix.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Grace","slug":"libtmux_unix-cleanup-phase-grace"},{"id":"Libtmux_unix.Cleanup.phase.Kill","publicId":"Libtmux_unix.Cleanup.phase.Kill","name":"Kill","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Kill","slug":"libtmux_unix-cleanup-phase-kill"},{"id":"Libtmux_unix.Cleanup.phase.Notify_waiters","publicId":"Libtmux_unix.Cleanup.phase.Notify_waiters","name":"Notify_waiters","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Notify_waiters","source":{"file":"unix/libtmux_unix.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Notify_waiters","slug":"libtmux_unix-cleanup-phase-notify_waiters"},{"id":"Libtmux_unix.Cleanup.phase.Open_pidfd","publicId":"Libtmux_unix.Cleanup.phase.Open_pidfd","name":"Open_pidfd","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Open_pidfd","source":{"file":"unix/libtmux_unix.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Open_pidfd","slug":"libtmux_unix-cleanup-phase-open_pidfd"},{"id":"Libtmux_unix.Cleanup.phase.Reap","publicId":"Libtmux_unix.Cleanup.phase.Reap","name":"Reap","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Reap","source":{"file":"unix/libtmux_unix.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Reap","slug":"libtmux_unix-cleanup-phase-reap"},{"id":"Libtmux_unix.Cleanup.phase.Release_hook","publicId":"Libtmux_unix.Cleanup.phase.Release_hook","name":"Release_hook","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Release_hook","source":{"file":"unix/libtmux_unix.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Release_hook","slug":"libtmux_unix-cleanup-phase-release_hook"},{"id":"Libtmux_unix.Cleanup.phase.Terminate","publicId":"Libtmux_unix.Cleanup.phase.Terminate","name":"Terminate","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Terminate","source":{"file":"unix/libtmux_unix.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Terminate","slug":"libtmux_unix-cleanup-phase-terminate"},{"id":"Libtmux_unix.Cleanup.phase.Unreaped_child","publicId":"Libtmux_unix.Cleanup.phase.Unreaped_child","name":"Unreaped_child","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":28,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unreaped_child","source":{"file":"unix/libtmux_unix.mli","line":28,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Unreaped_child","slug":"libtmux_unix-cleanup-phase-unreaped_child"},{"id":"Libtmux_unix.Cleanup.snapshot","publicId":"Libtmux_unix.Cleanup.snapshot","qualifiedName":"Libtmux_unix.Cleanup.snapshot","name":"snapshot","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Issues in occurrence order, with a count of additional omitted issues. A\n report retains at most 64 entries. This bounds entry count, not heap\n retention: exception payloads and backtraces may retain other values.\n These diagnostics are not immutable graph observations. "],"declarations":[{"kind":"struct","text":"type snapshot = Cleanup.snapshot = { issues : issue Iarray.t; omitted : int }","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Issues in occurrence order, with a count of additional omitted issues. A report retains at most 64 entries. This bounds entry count, not heap retention: exception payloads and backtraces may retain other values. These diagnostics are not immutable graph observations."},"type":"Cleanup.snapshot","signatures":[{"raw":"type snapshot = Cleanup.snapshot = {\n issues: issue Iarray.t ;\n omitted: int }","params":[]}],"slug":"libtmux_unix-cleanup-snapshot"},{"id":"Libtmux_unix.Cleanup.snapshot.issues","publicId":"Libtmux_unix.Cleanup.snapshot.issues","name":"issues","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"issues : issue Iarray.t;","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.snapshot","type":"issue Iarray.t","qualifiedName":"Libtmux_unix.Cleanup.issues","slug":"libtmux_unix-cleanup-snapshot-issues"},{"id":"Libtmux_unix.Cleanup.snapshot.omitted","publicId":"Libtmux_unix.Cleanup.snapshot.omitted","name":"omitted","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"omitted : int","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup.snapshot","type":"int","qualifiedName":"Libtmux_unix.Cleanup.omitted","slug":"libtmux_unix-cleanup-snapshot-omitted"},{"id":"Libtmux_unix.Cleanup.t","publicId":"Libtmux_unix.Cleanup.t","qualifiedName":"Libtmux_unix.Cleanup.t","name":"t","kind":"typealias","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t = Cleanup.t","source":{"file":"unix/libtmux_unix.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Cleanup","type":"Cleanup.t","signatures":[{"raw":"type t = Cleanup.t","params":[]}],"slug":"libtmux_unix-cleanup-t"},{"id":"Libtmux_unix.Client","publicId":"Libtmux_unix.Client","qualifiedName":"Libtmux_unix.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. *)\n\n val cleanup : t -> Cleanup.t\n (** Read the report supplied at connection time, or its fresh default.\n {!Cleanup.inspect} remains available after close. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. *)\n\n val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. Release the temporary subscription\n without replacing an earlier error or cancellation; inspect {!cleanup} for\n secondary failures. Otherwise cleanup failure prevents success or renewed\n coverage. No capture/stream barrier exists. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve queue capacity without I/O. *)\n\n val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O and owned-child cleanup must also\n finish. Each owned child gets 200 ms of TERM grace before forced\n termination and reaping; scheduling and kernel completion can add time. No\n background scheduler or worker is started. *)\n\n val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result\n (** Submit and await. Use the two calls separately to retain an operation\n handle. *)\n\n val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. *)\n\n val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. *)\n\n val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Close owned control clients and descriptors on the owning domain. Later\n calls retain the original cleanup result, including failure. Each owned\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n This is not a whole-client deadline or a bound on uninterruptible kernel\n work. No signal targets the daemon. tmux's [exit-unattached] and\n [exit-empty] policies can end the daemon after its clients or sessions\n disappear. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_unix-client"},{"id":"Libtmux_unix.Client.await","publicId":"Libtmux_unix.Client.await","qualifiedName":"Libtmux_unix.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O and owned-child cleanup must also\n finish. Each owned child gets 200 ms of TERM grace before forced\n termination and reaping; scheduling and kernel completion can add time. No\n background scheduler or worker is started. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Pump admitted work until this operation is finished. Only one blocking caller may own the client at a time. Cancellation removes queued work or drains admitted work before raising `Cancellation.Cancelled`. The handle retains its outcome. Draining has at most one exchange timeout from detection; local scratch filesystem I/O and owned-child cleanup must also finish. Each owned child gets 200 ms of TERM grace before forced termination and reaping; scheduling and kernel completion can add time. No background scheduler or worker is started."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-await"},{"id":"Libtmux_unix.Client.break_pane","publicId":"Libtmux_unix.Client.break_pane","qualifiedName":"Libtmux_unix.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":559,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":559,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-break_pane"},{"id":"Libtmux_unix.Client.capture","publicId":"Libtmux_unix.Client.capture","qualifiedName":"Libtmux_unix.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":268,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. "],"declarations":[{"kind":"function","text":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":268,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a complete graph over a recorded interval, with a fixed number of listing commands. Races fail validation. Access to returned values performs no I/O, including after closing the client.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture"},{"id":"Libtmux_unix.Client.capture_environment","publicId":"Libtmux_unix.Client.capture_environment","qualifiedName":"Libtmux_unix.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_environment"},{"id":"Libtmux_unix.Client.capture_hooks","publicId":"Libtmux_unix.Client.capture_hooks","qualifiedName":"Libtmux_unix.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":467,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":467,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_hooks"},{"id":"Libtmux_unix.Client.capture_options","publicId":"Libtmux_unix.Client.capture_options","qualifiedName":"Libtmux_unix.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other\n versions return [Unsupported]. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors are qualified on tmux 3.3, 3.3a, 3.4 and 3.8; other versions return `Unsupported`."},"signatures":[{"raw":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_options"},{"id":"Libtmux_unix.Client.capture_text","publicId":"Libtmux_unix.Client.capture_text","qualifiedName":"Libtmux_unix.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture ordinary rendered screen rows, inclusively, via an owned paste buffer and private file. Reject applicable capture/save hooks. The scratch directory defaults to `/tmp` and must be local storage shared with the daemon. Pending and alternate-screen byte modes are unsupported. This observes an interval and establishes no stream continuity barrier."},"signatures":[{"raw":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_text"},{"id":"Libtmux_unix.Client.cleanup","publicId":"Libtmux_unix.Client.cleanup","qualifiedName":"Libtmux_unix.Client.cleanup","name":"cleanup","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read the report supplied at connection time, or its fresh default.\n {!Cleanup.inspect} remains available after close. "],"declarations":[{"kind":"function","text":"val cleanup : t -> Cleanup.t","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the report supplied at connection time, or its fresh default. {!Cleanup.inspect} remains available after close."},"signatures":[{"raw":"val cleanup : t -> Cleanup.t","params":[{"name":"arg1","type":"t"}],"returns":"Cleanup.t"}],"slug":"libtmux_unix-client-cleanup"},{"id":"Libtmux_unix.Client.clear_history","publicId":"Libtmux_unix.Client.clear_history","qualifiedName":"Libtmux_unix.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":739,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":739,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_history"},{"id":"Libtmux_unix.Client.clear_option_array","publicId":"Libtmux_unix.Client.clear_option_array","qualifiedName":"Libtmux_unix.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":459,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":459,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_option_array"},{"id":"Libtmux_unix.Client.close","publicId":"Libtmux_unix.Client.close","qualifiedName":"Libtmux_unix.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":749,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Close owned control clients and descriptors on the owning domain. Later\n calls retain the original cleanup result, including failure. Each owned\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n This is not a whole-client deadline or a bound on uninterruptible kernel\n work. No signal targets the daemon. tmux's [exit-unattached] and\n [exit-empty] policies can end the daemon after its clients or sessions\n disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":749,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Close owned control clients and descriptors on the owning domain. Later calls retain the original cleanup result, including failure. Each owned helper gets 200 ms of TERM grace, followed by KILL if needed and reaping. This is not a whole-client deadline or a bound on uninterruptible kernel work. No signal targets the daemon. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-close"},{"id":"Libtmux_unix.Client.connect","publicId":"Libtmux_unix.Client.connect","qualifiedName":"Libtmux_unix.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. "],"declarations":[{"kind":"function","text":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Attach to an existing local daemon with at least one session. The caller and daemon must share the PID namespace and filesystem. A local socket pathname alone does not establish these preconditions. `timeout` is the maximum seconds per control exchange, defaulting to one second. Requires Linux pidfd support. The client belongs to the current domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float -> Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-connect"},{"id":"Libtmux_unix.Client.create_session","publicId":"Libtmux_unix.Client.create_session","qualifiedName":"Libtmux_unix.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_session"},{"id":"Libtmux_unix.Client.create_window","publicId":"Libtmux_unix.Client.create_window","qualifiedName":"Libtmux_unix.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_create_window.ml","intro":"Create a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"created: logs\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_window"},{"id":"Libtmux_unix.Client.cycle_layout","publicId":"Libtmux_unix.Client.cycle_layout","qualifiedName":"Libtmux_unix.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":683,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":683,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-cycle_layout"},{"id":"Libtmux_unix.Client.kill_pane","publicId":"Libtmux_unix.Client.kill_pane","qualifiedName":"Libtmux_unix.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_pane"},{"id":"Libtmux_unix.Client.kill_session","publicId":"Libtmux_unix.Client.kill_session","qualifiedName":"Libtmux_unix.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":571,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":571,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_session"},{"id":"Libtmux_unix.Client.kill_window","publicId":"Libtmux_unix.Client.kill_window","qualifiedName":"Libtmux_unix.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":579,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":579,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_window"},{"id":"Libtmux_unix.Client.link_window","publicId":"Libtmux_unix.Client.link_window","qualifiedName":"Libtmux_unix.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":614,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":614,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-link_window"},{"id":"Libtmux_unix.Client.move_pane","publicId":"Libtmux_unix.Client.move_pane","qualifiedName":"Libtmux_unix.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":691,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":691,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_pane"},{"id":"Libtmux_unix.Client.move_window_at","publicId":"Libtmux_unix.Client.move_window_at","qualifiedName":"Libtmux_unix.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_move_window.ml","intro":"Move a window between sessions. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"moved: build at 7\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_window_at"},{"id":"Libtmux_unix.Client.read_hook","publicId":"Libtmux_unix.Client.read_hook","qualifiedName":"Libtmux_unix.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_hook"},{"id":"Libtmux_unix.Client.read_option","publicId":"Libtmux_unix.Client.read_option","qualifiedName":"Libtmux_unix.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_option"},{"id":"Libtmux_unix.Client.refresh_client_at","publicId":"Libtmux_unix.Client.refresh_client_at","qualifiedName":"Libtmux_unix.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-refresh_client_at"},{"id":"Libtmux_unix.Client.remove_environment","publicId":"Libtmux_unix.Client.remove_environment","qualifiedName":"Libtmux_unix.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":402,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":402,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_environment"},{"id":"Libtmux_unix.Client.remove_hook","publicId":"Libtmux_unix.Client.remove_hook","qualifiedName":"Libtmux_unix.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_hook"},{"id":"Libtmux_unix.Client.rename_session","publicId":"Libtmux_unix.Client.rename_session","qualifiedName":"Libtmux_unix.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":298,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":298,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_session"},{"id":"Libtmux_unix.Client.rename_window","publicId":"Libtmux_unix.Client.rename_window","qualifiedName":"Libtmux_unix.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":289,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":289,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_rename_window.ml","intro":"Rename a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"renamed: editor-main\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val rename_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_window"},{"id":"Libtmux_unix.Client.request_detach_client_at","publicId":"Libtmux_unix.Client.request_detach_client_at","qualifiedName":"Libtmux_unix.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":318,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":318,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-request_detach_client_at"},{"id":"Libtmux_unix.Client.resize_control_client_at","publicId":"Libtmux_unix.Client.resize_control_client_at","qualifiedName":"Libtmux_unix.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":335,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":335,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_control_client_at"},{"id":"Libtmux_unix.Client.resize_pane","publicId":"Libtmux_unix.Client.resize_pane","qualifiedName":"Libtmux_unix.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":652,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":652,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_pane"},{"id":"Libtmux_unix.Client.resize_window","publicId":"Libtmux_unix.Client.resize_window","qualifiedName":"Libtmux_unix.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":663,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":663,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_window"},{"id":"Libtmux_unix.Client.respawn_pane","publicId":"Libtmux_unix.Client.respawn_pane","qualifiedName":"Libtmux_unix.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":728,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":728,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-respawn_pane"},{"id":"Libtmux_unix.Client.rotate_panes","publicId":"Libtmux_unix.Client.rotate_panes","qualifiedName":"Libtmux_unix.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rotate_panes"},{"id":"Libtmux_unix.Client.run","publicId":"Libtmux_unix.Client.run","qualifiedName":"Libtmux_unix.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Submit and await. Use the two calls separately to retain an operation\n handle. "],"declarations":[{"kind":"function","text":"val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Submit and await. Use the two calls separately to retain an operation handle."},"signatures":[{"raw":"val run :\n ?cancel:Cancellation.t ->\n t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run"},{"id":"Libtmux_unix.Client.run_hook","publicId":"Libtmux_unix.Client.run_hook","qualifiedName":"Libtmux_unix.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run_hook"},{"id":"Libtmux_unix.Client.select_layout","publicId":"Libtmux_unix.Client.select_layout","qualifiedName":"Libtmux_unix.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":674,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":674,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_layout.ml","intro":"Apply a layout. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"layout: 3 horizontal panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_layout"},{"id":"Libtmux_unix.Client.select_pane","publicId":"Libtmux_unix.Client.select_pane","qualifiedName":"Libtmux_unix.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_pane"},{"id":"Libtmux_unix.Client.select_window_at","publicId":"Libtmux_unix.Client.select_window_at","qualifiedName":"Libtmux_unix.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":595,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":595,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_window_at"},{"id":"Libtmux_unix.Client.send_keys","publicId":"Libtmux_unix.Client.send_keys","qualifiedName":"Libtmux_unix.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":352,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":352,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_keys"},{"id":"Libtmux_unix.Client.send_text","publicId":"Libtmux_unix.Client.send_text","qualifiedName":"Libtmux_unix.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/4d2203d04f74d03dc3f6df0660362fc17b771287/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3 or newer. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_text :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_text"},{"id":"Libtmux_unix.Client.set_environment","publicId":"Libtmux_unix.Client.set_environment","qualifiedName":"Libtmux_unix.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_environment"},{"id":"Libtmux_unix.Client.set_hook","publicId":"Libtmux_unix.Client.set_hook","qualifiedName":"Libtmux_unix.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_hook"},{"id":"Libtmux_unix.Client.set_option","publicId":"Libtmux_unix.Client.set_option","qualifiedName":"Libtmux_unix.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":434,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":434,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_option"},{"id":"Libtmux_unix.Client.set_pane_title","publicId":"Libtmux_unix.Client.set_pane_title","qualifiedName":"Libtmux_unix.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":643,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":643,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_pane_title"},{"id":"Libtmux_unix.Client.signal","publicId":"Libtmux_unix.Client.signal","qualifiedName":"Libtmux_unix.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-signal"},{"id":"Libtmux_unix.Client.source","publicId":"Libtmux_unix.Client.source","qualifiedName":"Libtmux_unix.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"unix/libtmux_unix.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_unix-client-source"},{"id":"Libtmux_unix.Client.split_pane","publicId":"Libtmux_unix.Client.split_pane","qualifiedName":"Libtmux_unix.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":547,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":547,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-split_pane"},{"id":"Libtmux_unix.Client.submit","publicId":"Libtmux_unix.Client.submit","qualifiedName":"Libtmux_unix.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Validate and reserve queue capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate and reserve queue capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-submit"},{"id":"Libtmux_unix.Client.subscribe","publicId":"Libtmux_unix.Client.subscribe","qualifiedName":"Libtmux_unix.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire verified coverage of the pane's observed session/window. Choose the least session ID unless explicitly supplied. Reuse one lane per session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16 subscribers and eight client lanes including commands. Reserve payload against the shared 32 MiB budget before admission.","body":"Data starts after admission's marker. Layout/membership changes end continuity conservatively. Overflow emits Gap then End, without blocking another subscriber. Blocking delivery advances during Subscription.next. There is no snapshot/history barrier or automatic recovery."},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-subscribe"},{"id":"Libtmux_unix.Client.swap_panes","publicId":"Libtmux_unix.Client.swap_panes","qualifiedName":"Libtmux_unix.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":703,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":703,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-swap_panes"},{"id":"Libtmux_unix.Client.switch_client_at","publicId":"Libtmux_unix.Client.switch_client_at","qualifiedName":"Libtmux_unix.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":307,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":307,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-switch_client_at"},{"id":"Libtmux_unix.Client.t","publicId":"Libtmux_unix.Client.t","qualifiedName":"Libtmux_unix.Client.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-client-t"},{"id":"Libtmux_unix.Client.unlink_window_at","publicId":"Libtmux_unix.Client.unlink_window_at","qualifiedName":"Libtmux_unix.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":604,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":604,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unlink_window_at"},{"id":"Libtmux_unix.Client.unset_environment","publicId":"Libtmux_unix.Client.unset_environment","qualifiedName":"Libtmux_unix.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_environment"},{"id":"Libtmux_unix.Client.unset_option","publicId":"Libtmux_unix.Client.unset_option","qualifiedName":"Libtmux_unix.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_option"},{"id":"Libtmux_unix.Client.version","publicId":"Libtmux_unix.Client.version","qualifiedName":"Libtmux_unix.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_unix-client-version"},{"id":"Libtmux_unix.Client.wait_for","publicId":"Libtmux_unix.Client.wait_for","qualifiedName":"Libtmux_unix.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for"},{"id":"Libtmux_unix.Client.wait_for_text","publicId":"Libtmux_unix.Client.wait_for_text","qualifiedName":"Libtmux_unix.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. Release the temporary subscription\n without replacing an earlier error or cancellation; inspect {!cleanup} for\n secondary failures. Otherwise cleanup failure prevents success or renewed\n coverage. No capture/stream barrier exists. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Subscribe, capture the ordinary screen immediately, and recapture after output. Membership/overflow gaps trigger explicit fresh capture and new coverage in the same binding. Maximum pattern: 64 KiB. Success returns a capture that contains the text. Transient text between captures may be missed. Check the deadline between bounded acquisitions; in-flight I/O retains the client's exchange timeout. Release the temporary subscription without replacing an earlier error or cancellation; inspect {!cleanup} for secondary failures. Otherwise cleanup failure prevents success or renewed coverage. No capture/stream barrier exists."},"signatures":[{"raw":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for_text"},{"id":"Libtmux_unix.Client.zoom_pane","publicId":"Libtmux_unix.Client.zoom_pane","qualifiedName":"Libtmux_unix.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-zoom_pane"},{"id":"Libtmux_unix.Operation","publicId":"Libtmux_unix.Operation","qualifiedName":"Libtmux_unix.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** No I/O. Results remain inspectable after client closure, on the owning\n domain. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_unix-operation"},{"id":"Libtmux_unix.Operation.cancel","publicId":"Libtmux_unix.Operation.cancel","qualifiedName":"Libtmux_unix.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"Remove queued work before it is written. Admitted commands retain their owner and are drained by {!Client.await}; cancellation does not undo effects. Returns `Busy` while another blocking caller owns the client; use a {!Cancellation.t} token to interrupt that caller."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-cancel"},{"id":"Libtmux_unix.Operation.cleanup_receipt","publicId":"Libtmux_unix.Operation.cleanup_receipt","qualifiedName":"Libtmux_unix.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt =\n {\n cause: Libtmux.Error.t ;\n owned_buffers: string list ;\n created: Libtmux.Created.t list }","params":[]}],"slug":"libtmux_unix-operation-cleanup_receipt"},{"id":"Libtmux_unix.Operation.cleanup_receipt.cause","publicId":"Libtmux_unix.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"unix/libtmux_unix.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_unix.Operation.cause","slug":"libtmux_unix-operation-cleanup_receipt-cause"},{"id":"Libtmux_unix.Operation.cleanup_receipt.created","publicId":"Libtmux_unix.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":118,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"unix/libtmux_unix.mli","line":118,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_unix.Operation.created","slug":"libtmux_unix-operation-cleanup_receipt-created"},{"id":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"unix/libtmux_unix.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_unix.Operation.owned_buffers","slug":"libtmux_unix-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_unix.Operation.id","publicId":"Libtmux_unix.Operation.id","qualifiedName":"Libtmux_unix.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"unix/libtmux_unix.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_unix-operation-id"},{"id":"Libtmux_unix.Operation.inspect","publicId":"Libtmux_unix.Operation.inspect","qualifiedName":"Libtmux_unix.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" No I/O. Results remain inspectable after client closure, on the owning\n domain. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"No I/O. Results remain inspectable after client closure, on the owning domain."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-inspect"},{"id":"Libtmux_unix.Operation.state","publicId":"Libtmux_unix.Operation.state","qualifiedName":"Libtmux_unix.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a state =\n | Queued \n | Not_started \n | Written \n | Acknowledged \n | Finished of ('a, Libtmux.Error.t) result \n | Outcome_unknown of cleanup_receipt ","params":[]}],"slug":"libtmux_unix-operation-state"},{"id":"Libtmux_unix.Operation.state.Acknowledged","publicId":"Libtmux_unix.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"unix/libtmux_unix.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Acknowledged","slug":"libtmux_unix-operation-state-acknowledged"},{"id":"Libtmux_unix.Operation.state.Finished","publicId":"Libtmux_unix.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Finished","slug":"libtmux_unix-operation-state-finished"},{"id":"Libtmux_unix.Operation.state.Not_started","publicId":"Libtmux_unix.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"unix/libtmux_unix.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Not_started","slug":"libtmux_unix-operation-state-not_started"},{"id":"Libtmux_unix.Operation.state.Outcome_unknown","publicId":"Libtmux_unix.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Outcome_unknown","slug":"libtmux_unix-operation-state-outcome_unknown"},{"id":"Libtmux_unix.Operation.state.Queued","publicId":"Libtmux_unix.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"unix/libtmux_unix.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Queued","slug":"libtmux_unix-operation-state-queued"},{"id":"Libtmux_unix.Operation.state.Written","publicId":"Libtmux_unix.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"unix/libtmux_unix.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Written","slug":"libtmux_unix-operation-state-written"},{"id":"Libtmux_unix.Operation.t","publicId":"Libtmux_unix.Operation.t","qualifiedName":"Libtmux_unix.Operation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"unix/libtmux_unix.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-operation-t"},{"id":"Libtmux_unix.Rendered","publicId":"Libtmux_unix.Rendered","qualifiedName":"Libtmux_unix.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Blocking native Linux transport. No Eio scheduler is started. "],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"unix/libtmux_unix.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"Blocking native Linux transport. No Eio scheduler is started."},"exportedFrom":"Libtmux.Captured_text","slug":"libtmux_unix-rendered"},{"id":"Libtmux_unix.Subscription","publicId":"Libtmux_unix.Subscription","qualifiedName":"Libtmux_unix.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. *)\n\n val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Release and reap\n an unused lane; later calls retain cleanup failures. Does not stop the\n daemon. {!poll} can still read the terminal event. *)\n\n val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_unix-subscription"},{"id":"Libtmux_unix.Subscription.close","publicId":"Libtmux_unix.Subscription.close","qualifiedName":"Libtmux_unix.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":162,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Release and reap\n an unused lane; later calls retain cleanup failures. Does not stop the\n daemon. {!poll} can still read the terminal event. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":162,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"End an active subscription with Cancelled and discard pending data. Preserve an already ended subscription's terminal reason. Release and reap an unused lane; later calls retain cleanup failures. Does not stop the daemon. {!poll} can still read the terminal event."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-close"},{"id":"Libtmux_unix.Subscription.next","publicId":"Libtmux_unix.Subscription.next","qualifiedName":"Libtmux_unix.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":153,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. "],"declarations":[{"kind":"function","text":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":153,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Pump all subscription lanes until one event is available. Default deadline is one second. `None` follows a consumed End. A deadline keeps the subscription active; cancellation closes it and raises Cancelled."},"signatures":[{"raw":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-next"},{"id":"Libtmux_unix.Subscription.poll","publicId":"Libtmux_unix.Subscription.poll","qualifiedName":"Libtmux_unix.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Remove a queued event without I/O. Owning domain only, including after client closure. `None` means no queued event, not proof of continuity."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-poll"},{"id":"Libtmux_unix.Subscription.t","publicId":"Libtmux_unix.Subscription.t","qualifiedName":"Libtmux_unix.Subscription.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":147,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":147,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-subscription-t"},{"id":"Libtmux_unix.Subscription.wait_for_bytes","publicId":"Libtmux_unix.Subscription.wait_for_bytes","qualifiedName":"Libtmux_unix.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"unix/libtmux_unix.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Consume future bytes until the nonempty pattern matches, including across Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's end within its consumed event. Gaps stop matching; no rendered or earlier output is searched. Timeout leaves the subscription active."},"signatures":[{"raw":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_unix-subscription-wait_for_bytes"},{"id":"Libtmux_unix.Terminal","publicId":"Libtmux_unix.Terminal","qualifiedName":"Libtmux_unix.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM\n gets 200 ms of cooperative grace before KILL and reaping. Scheduling and\n uninterruptible kernel work can add time. Supply [cleanup] before the call\n to retain secondary failures after cancellation. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_unix-terminal"},{"id":"Libtmux_unix.Terminal.attach_current","publicId":"Libtmux_unix.Terminal.attach_current","qualifiedName":"Libtmux_unix.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM\n gets 200 ms of cooperative grace before KILL and reaping. Scheduling and\n uninterruptible kernel work can add time. Supply [cleanup] before the call\n to retain secondary failures after cancellation. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Terminal","doc":{"summary":"Run an interactive terminal client until it exits. Select the exact session ID on the daemon currently listening at `endpoint`; this is explicitly unbound and accepts no captured target. No retry or daemon startup occurs. A successful result proves client exit, not continued attachment. Diagnostics go to `stderr`.","body":"Descriptors default to the application's standard streams and remain caller-owned. `stdin` must be a terminal. Environment updates and read-only mode are disabled by default; inherited `TMUX` and `TMUX_PANE` are removed. Cancellation terminates and reaps this terminal client, leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM gets 200 ms of cooperative grace before KILL and reaping. Scheduling and uninterruptible kernel work can add time. Supply `cleanup` before the call to retain secondary failures after cancellation."},"signatures":[{"raw":"val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stdout","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stderr","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-terminal-attach_current"},{"id":"Libtmux_unix.Workspace","publicId":"Libtmux_unix.Workspace","qualifiedName":"Libtmux_unix.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Apply validated plans with blocking I/O and scoped cancellation tokens.\n Execution handles retain journals and borrow existing clients; bootstrap\n handles own their newly bound clients without owning the daemon. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. *)\n\n val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. *)\n\n val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix","doc":{"summary":"Apply validated plans with blocking I/O and scoped cancellation tokens. Execution handles retain journals and borrow existing clients; bootstrap handles own their newly bound clients without owning the daemon."},"slug":"libtmux_unix-workspace"},{"id":"Libtmux_unix.Workspace.await","publicId":"Libtmux_unix.Workspace.await","qualifiedName":"Libtmux_unix.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Expected apply failures are retained receipts. Cancellation propagates after recording progress and at most 500 ms of protected compensation."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-await"},{"id":"Libtmux_unix.Workspace.client","publicId":"Libtmux_unix.Workspace.client","qualifiedName":"Libtmux_unix.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":791,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"unix/libtmux_unix.mli","line":791,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_unix-workspace-client"},{"id":"Libtmux_unix.Workspace.close","publicId":"Libtmux_unix.Workspace.close","qualifiedName":"Libtmux_unix.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Completed journals remain readable after close."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-close"},{"id":"Libtmux_unix.Workspace.inspect","publicId":"Libtmux_unix.Workspace.inspect","qualifiedName":"Libtmux_unix.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":788,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":788,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-inspect"},{"id":"Libtmux_unix.Workspace.submit","publicId":"Libtmux_unix.Workspace.submit","qualifiedName":"Libtmux_unix.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":765,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":765,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a generation-bound execution handle without I/O. The caller owns the supplied client; closing this handle leaves that client open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit"},{"id":"Libtmux_unix.Workspace.submit_bootstrap","publicId":"Libtmux_unix.Workspace.submit_bootstrap","qualifiedName":"Libtmux_unix.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":770,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":770,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a handle for a missing-endpoint plan. Awaiting it starts control new-session and binds the same connection. The handle owns its new client; it never acquires ownership of the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit_bootstrap"},{"id":"Libtmux_unix.Workspace.t","publicId":"Libtmux_unix.Workspace.t","qualifiedName":"Libtmux_unix.Workspace.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-workspace-t"},{"id":"Libtmux_workspace","publicId":"Libtmux_workspace","qualifiedName":"Libtmux_workspace","name":"Libtmux_workspace","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" {!Config} validates workspace descriptions and {!Plan} previews their\n actions without I/O. {!Execution} delegates effects to an explicit executor\n and retains a recovery journal. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for JSON loading, preview, apply and receipt inspection. "],"declarations":[{"kind":"module","text":"","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"doc":{"summary":"{!Config} validates workspace descriptions and {!Plan} previews their actions without I/O. {!Execution} delegates effects to an explicit executor and retains a recovery journal. See the [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for JSON loading, preview, apply and receipt inspection."},"slug":"libtmux_workspace"},{"id":"Libtmux_workspace.Config","publicId":"Libtmux_workspace.Config","qualifiedName":"Libtmux_workspace.Config","name":"Config","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Validate native workspace values without contacting tmux or reading the\n filesystem. Relative directories resolve against the document directory;\n only declared variables participate in expansion. "],"declarations":[{"kind":"module","text":"module Config : sig\n type error = { path : string; message : string }\n\n val pp_error : Format.formatter -> error -> unit\n\n type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }\n\n type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n\n type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }\n\n type t\n\n val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane\n\n val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window\n (** Builders are unchecked descriptions; {!make} validates the whole document.\n *)\n\n val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result\n (** Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. *)\n\n val session : t -> string\n val windows : t -> window Iarray.t\n val environment : t -> (string * string) list\n val options : t -> setting list\n val dimensions : t -> int * int\nend","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace","doc":{"summary":"Validate native workspace values without contacting tmux or reading the filesystem. Relative directories resolve against the document directory; only declared variables participate in expansion."},"slug":"libtmux_workspace-config"},{"id":"Libtmux_workspace.Config.dimensions","publicId":"Libtmux_workspace.Config.dimensions","qualifiedName":"Libtmux_workspace.Config.dimensions","name":"dimensions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dimensions : t -> int * int","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val dimensions : t -> int * int","params":[{"name":"arg1","type":"t"}],"returns":"int * int"}],"slug":"libtmux_workspace-config-dimensions"},{"id":"Libtmux_workspace.Config.environment","publicId":"Libtmux_workspace.Config.environment","qualifiedName":"Libtmux_workspace.Config.environment","name":"environment","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val environment : t -> (string * string) list","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val environment : t -> (string * string) list","params":[{"name":"arg1","type":"t"}],"returns":"(string * string) list"}],"slug":"libtmux_workspace-config-environment"},{"id":"Libtmux_workspace.Config.error","publicId":"Libtmux_workspace.Config.error","qualifiedName":"Libtmux_workspace.Config.error","name":"error","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type error = { path : string; message : string }","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type error = {\n path: string ;\n message: string }","params":[]}],"slug":"libtmux_workspace-config-error"},{"id":"Libtmux_workspace.Config.error.message","publicId":"Libtmux_workspace.Config.error.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.message","slug":"libtmux_workspace-config-error-message"},{"id":"Libtmux_workspace.Config.error.path","publicId":"Libtmux_workspace.Config.error.path","name":"path","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"path : string;","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.path","slug":"libtmux_workspace-config-error-path"},{"id":"Libtmux_workspace.Config.make","publicId":"Libtmux_workspace.Config.make","qualifiedName":"Libtmux_workspace.Config.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. "],"declarations":[{"kind":"function","text":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Resolve relative working directories against the absolute document directory. Explicit variables expand `${NAME}` in directories only; they never read the process environment. Cycles and unknown names fail. Command arguments, shell code, startup text and environment values remain literal.","body":"At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names and settings must be unique in their scope. No filesystem is consulted."},"signatures":[{"raw":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string -> session:string -> window list -> (t, error) result","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"variables","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"directory","type":"string","keywordOnly":true},{"name":"session","type":"string","keywordOnly":true},{"name":"arg1","type":"window list"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-config-make"},{"id":"Libtmux_workspace.Config.options","publicId":"Libtmux_workspace.Config.options","qualifiedName":"Libtmux_workspace.Config.options","name":"options","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val options : t -> setting list","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val options : t -> setting list","params":[{"name":"arg1","type":"t"}],"returns":"setting list"}],"slug":"libtmux_workspace-config-options"},{"id":"Libtmux_workspace.Config.pane","publicId":"Libtmux_workspace.Config.pane","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size -> unit -> pane","params":[{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"startup","type":"string list","optional":true,"keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"pane"}],"slug":"libtmux_workspace-config-pane"},{"id":"Libtmux_workspace.Config.pane:type","publicId":"Libtmux_workspace.Config.pane:type","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type pane =\n {\n spawn: Libtmux.Spawn.t ;\n options: setting list ;\n startup: string list ;\n direction: Libtmux.Geometry.direction ;\n size: Libtmux.Geometry.size option }","params":[]}],"slug":"libtmux_workspace-config-pane-type"},{"id":"Libtmux_workspace.Config.pane:type.direction","publicId":"Libtmux_workspace.Config.pane:type.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Config.direction","slug":"libtmux_workspace-config-pane-type-direction"},{"id":"Libtmux_workspace.Config.pane:type.options","publicId":"Libtmux_workspace.Config.pane:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-pane-type-options"},{"id":"Libtmux_workspace.Config.pane:type.size","publicId":"Libtmux_workspace.Config.pane:type.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Config.size","slug":"libtmux_workspace-config-pane-type-size"},{"id":"Libtmux_workspace.Config.pane:type.spawn","publicId":"Libtmux_workspace.Config.pane:type.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Config.spawn","slug":"libtmux_workspace-config-pane-type-spawn"},{"id":"Libtmux_workspace.Config.pane:type.startup","publicId":"Libtmux_workspace.Config.pane:type.startup","name":"startup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"startup : string list;","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"string list","qualifiedName":"Libtmux_workspace.Config.startup","slug":"libtmux_workspace-config-pane-type-startup"},{"id":"Libtmux_workspace.Config.pp_error","publicId":"Libtmux_workspace.Config.pp_error","qualifiedName":"Libtmux_workspace.Config.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-config-pp_error"},{"id":"Libtmux_workspace.Config.session","publicId":"Libtmux_workspace.Config.session","qualifiedName":"Libtmux_workspace.Config.session","name":"session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> string","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val session : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_workspace-config-session"},{"id":"Libtmux_workspace.Config.setting","publicId":"Libtmux_workspace.Config.setting","qualifiedName":"Libtmux_workspace.Config.setting","name":"setting","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type setting =\n {\n name: string ;\n index: int option ;\n value: Libtmux.Options.scalar }","params":[]}],"slug":"libtmux_workspace-config-setting"},{"id":"Libtmux_workspace.Config.setting.index","publicId":"Libtmux_workspace.Config.setting.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.setting","type":"int option","qualifiedName":"Libtmux_workspace.Config.index","slug":"libtmux_workspace-config-setting-index"},{"id":"Libtmux_workspace.Config.setting.name","publicId":"Libtmux_workspace.Config.setting.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.setting","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-setting-name"},{"id":"Libtmux_workspace.Config.setting.value","publicId":"Libtmux_workspace.Config.setting.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Libtmux.Options.scalar;","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.setting","type":"Libtmux.Options.scalar","qualifiedName":"Libtmux_workspace.Config.value","slug":"libtmux_workspace-config-setting-value"},{"id":"Libtmux_workspace.Config.t","publicId":"Libtmux_workspace.Config.t","qualifiedName":"Libtmux_workspace.Config.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-config-t"},{"id":"Libtmux_workspace.Config.window","publicId":"Libtmux_workspace.Config.window","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Builders are unchecked descriptions; {!make} validates the whole document.\n "],"declarations":[{"kind":"function","text":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Builders are unchecked descriptions; {!make} validates the whole document."},"signatures":[{"raw":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t -> name:string -> pane list -> window","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"layout","type":"Libtmux.Layout.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"pane list"}],"returns":"window"}],"slug":"libtmux_workspace-config-window"},{"id":"Libtmux_workspace.Config.window:type","publicId":"Libtmux_workspace.Config.window:type","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type window =\n {\n name: string ;\n cwd: string option ;\n environment: (string * string) list ;\n options: setting list ;\n panes: pane list ;\n layout: Libtmux.Layout.t option }","params":[]}],"slug":"libtmux_workspace-config-window-type"},{"id":"Libtmux_workspace.Config.window:type.cwd","publicId":"Libtmux_workspace.Config.window:type.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string option","qualifiedName":"Libtmux_workspace.Config.cwd","slug":"libtmux_workspace-config-window-type-cwd"},{"id":"Libtmux_workspace.Config.window:type.environment","publicId":"Libtmux_workspace.Config.window:type.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.window:type","type":"(string * string) list","qualifiedName":"Libtmux_workspace.Config.environment","slug":"libtmux_workspace-config-window-type-environment"},{"id":"Libtmux_workspace.Config.window:type.layout","publicId":"Libtmux_workspace.Config.window:type.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : Libtmux.Layout.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.window:type","type":"Libtmux.Layout.t option","qualifiedName":"Libtmux_workspace.Config.layout","slug":"libtmux_workspace-config-window-type-layout"},{"id":"Libtmux_workspace.Config.window:type.name","publicId":"Libtmux_workspace.Config.window:type.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-window-type-name"},{"id":"Libtmux_workspace.Config.window:type.options","publicId":"Libtmux_workspace.Config.window:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.window:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-window-type-options"},{"id":"Libtmux_workspace.Config.window:type.panes","publicId":"Libtmux_workspace.Config.window:type.panes","name":"panes","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"panes : pane list;","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config.window:type","type":"pane list","qualifiedName":"Libtmux_workspace.Config.panes","slug":"libtmux_workspace-config-window-type-panes"},{"id":"Libtmux_workspace.Config.windows","publicId":"Libtmux_workspace.Config.windows","qualifiedName":"Libtmux_workspace.Config.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> window Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val windows : t -> window Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"window Iarray.t"}],"slug":"libtmux_workspace-config-windows"},{"id":"Libtmux_workspace.Execution","publicId":"Libtmux_workspace.Execution","qualifiedName":"Libtmux_workspace.Execution","name":"Execution","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Apply a plan once per handle and retain effects, uncertainty and cleanup.\n The journal lives in process memory while its execution handle is retained;\n {!Execution.val-inspect} returns immutable copies. It survives waiter\n cancellation and client closure, but supplies no crash-durable recovery or\n cross-invocation deduplication. Ordinary applications use their backend's\n Workspace module; executors below integrate another transport. "],"declarations":[{"kind":"module","text":"module Execution : sig\n type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }\n (** A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. *)\n\n type certainty = Not_started | Applied | Unknown\n\n type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }\n (** Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. *)\n\n type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t\n\n type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }\n\n type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t\n\n type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }\n\n type t\n\n val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. [operation_id] correlates receipts; it\n does not deduplicate handles. A new handle starts a new execution even if\n its ID matches an earlier one. *)\n\n val inspect : t -> receipt\n (** Return an immutable copy of the retained journal without I/O. *)\n\n val await : ?compensate_on_failure:bool -> t -> receipt\n (** Execute once per handle, rechecking generation and captured preconditions\n first. Expected failures return a partial journal. Exceptions, including\n native cancellation, propagate after recording progress and bounded\n compensation. Subsequent calls only return the retained receipt; mutations\n never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. Compensation cannot undo external effects of programs\n started inside the panes. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace","doc":{"summary":"Apply a plan once per handle and retain effects, uncertainty and cleanup. The journal lives in process memory while its execution handle is retained; {!Execution.val-inspect} returns immutable copies. It survives waiter cancellation and client closure, but supplies no crash-durable recovery or cross-invocation deduplication. Ordinary applications use their backend's Workspace module; executors below integrate another transport."},"slug":"libtmux_workspace-execution"},{"id":"Libtmux_workspace.Execution.await","publicId":"Libtmux_workspace.Execution.await","qualifiedName":"Libtmux_workspace.Execution.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Execute once per handle, rechecking generation and captured preconditions\n first. Expected failures return a partial journal. Exceptions, including\n native cancellation, propagate after recording progress and bounded\n compensation. Subsequent calls only return the retained receipt; mutations\n never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. Compensation cannot undo external effects of programs\n started inside the panes. "],"declarations":[{"kind":"function","text":"val await : ?compensate_on_failure:bool -> t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Execute once per handle, rechecking generation and captured preconditions first. Expected failures return a partial journal. Exceptions, including native cancellation, propagate after recording progress and bounded compensation. Subsequent calls only return the retained receipt; mutations never retry.","body":"Compensation kills only panes reported by completed creation commands, in reverse creation order. tmux removes windows and sessions that become empty. Containers with foreign panes or window links remain; adding a borrowed pane never makes it eligible for cleanup. Cleanup failures have separate outcomes. Compensation cannot undo external effects of programs started inside the panes."},"signatures":[{"raw":"val await : ?compensate_on_failure:bool -> t -> receipt","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-await"},{"id":"Libtmux_workspace.Execution.certainty","publicId":"Libtmux_workspace.Execution.certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","name":"certainty","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type certainty = Not_started | Applied | Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type certainty =\n | Not_started \n | Applied \n | Unknown ","params":[]}],"slug":"libtmux_workspace-execution-certainty"},{"id":"Libtmux_workspace.Execution.certainty.Applied","publicId":"Libtmux_workspace.Execution.certainty.Applied","name":"Applied","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applied","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applied","slug":"libtmux_workspace-execution-certainty-applied"},{"id":"Libtmux_workspace.Execution.certainty.Not_started","publicId":"Libtmux_workspace.Execution.certainty.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Not_started","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Not_started","slug":"libtmux_workspace-execution-certainty-not_started"},{"id":"Libtmux_workspace.Execution.certainty.Unknown","publicId":"Libtmux_workspace.Execution.certainty.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Unknown","slug":"libtmux_workspace-execution-certainty-unknown"},{"id":"Libtmux_workspace.Execution.cleanup","publicId":"Libtmux_workspace.Execution.cleanup","qualifiedName":"Libtmux_workspace.Execution.cleanup","name":"cleanup","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":215,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":215,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type cleanup =\n {\n pane: Libtmux.Pane.target ;\n outcome: (unit, Libtmux.Error.t) result }","params":[]}],"slug":"libtmux_workspace-execution-cleanup"},{"id":"Libtmux_workspace.Execution.cleanup.outcome","publicId":"Libtmux_workspace.Execution.cleanup.outcome","name":"outcome","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"outcome : (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"(unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.outcome","slug":"libtmux_workspace-execution-cleanup-outcome"},{"id":"Libtmux_workspace.Execution.cleanup.pane","publicId":"Libtmux_workspace.Execution.cleanup.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":216,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.target;","source":{"file":"workspace/libtmux_workspace.mli","line":216,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"Libtmux.Pane.target","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-cleanup-pane"},{"id":"Libtmux_workspace.Execution.create","publicId":"Libtmux_workspace.Execution.create","qualifiedName":"Libtmux_workspace.Execution.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":240,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. [operation_id] correlates receipts; it\n does not deduplicate handles. A new handle starts a new execution even if\n its ID matches an earlier one. "],"declarations":[{"kind":"function","text":"val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"workspace/libtmux_workspace.mli","line":240,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Allocate a retained handle without I/O. IDs have 1..64 ASCII letters, digits, underscores or hyphens. `operation_id` correlates receipts; it does not deduplicate handles. A new handle starts a new execution even if its ID matches an earlier one."},"signatures":[{"raw":"val create :\n operation_id:string ->\n executor:executor -> Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"operation_id","type":"string","keywordOnly":true},{"name":"executor","type":"executor","keywordOnly":true},{"name":"arg1","type":"Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_workspace-execution-create"},{"id":"Libtmux_workspace.Execution.executor","publicId":"Libtmux_workspace.Execution.executor","qualifiedName":"Libtmux_workspace.Execution.executor","name":"executor","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. "],"declarations":[{"kind":"struct","text":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Backend integration: `inspect` returns a callback tied to the latest operation, reading only its retained state even after later submissions. `protect` bounds compensation and shields it from caller cancellation, reporting expected failures as `Error`. Ordinary callers use their backend's Workspace API."},"signatures":[{"raw":"type executor =\n {\n source: unit -> Libtmux.Source.t option ;\n capture: unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result ;\n run: 'a . 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result ;\n bootstrap: Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result ;\n inspect: unit -> unit -> observation ;\n protect: (unit -> unit) -> (unit, Libtmux.Error.t) result }","params":[]}],"slug":"libtmux_workspace-execution-executor"},{"id":"Libtmux_workspace.Execution.executor.bootstrap","publicId":"Libtmux_workspace.Execution.executor.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.executor","type":"Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.bootstrap","slug":"libtmux_workspace-execution-executor-bootstrap"},{"id":"Libtmux_workspace.Execution.executor.capture","publicId":"Libtmux_workspace.Execution.executor.capture","name":"capture","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.capture","slug":"libtmux_workspace-execution-executor-capture"},{"id":"Libtmux_workspace.Execution.executor.inspect","publicId":"Libtmux_workspace.Execution.executor.inspect","name":"inspect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":190,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inspect : unit -> unit -> observation;","source":{"file":"workspace/libtmux_workspace.mli","line":190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> unit -> observation","qualifiedName":"Libtmux_workspace.Execution.inspect","slug":"libtmux_workspace-execution-executor-inspect"},{"id":"Libtmux_workspace.Execution.executor.protect","publicId":"Libtmux_workspace.Execution.executor.protect","name":"protect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.executor","type":"(unit -> unit) -> (unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.protect","slug":"libtmux_workspace-execution-executor-protect"},{"id":"Libtmux_workspace.Execution.executor.run","publicId":"Libtmux_workspace.Execution.executor.run","name":"run","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.executor","type":"'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.run","slug":"libtmux_workspace-execution-executor-run"},{"id":"Libtmux_workspace.Execution.executor.source","publicId":"Libtmux_workspace.Execution.executor.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : unit -> Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-executor-source"},{"id":"Libtmux_workspace.Execution.hint","publicId":"Libtmux_workspace.Execution.hint","qualifiedName":"Libtmux_workspace.Execution.hint","name":"hint","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. "],"declarations":[{"kind":"struct","text":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"A creation row received before daemon binding finished. Hints are not operational targets and are never eligible for automatic compensation."},"signatures":[{"raw":"type hint =\n {\n session: Libtmux.Session.Id.t ;\n window: Libtmux.Window.Id.t ;\n pane: Libtmux.Pane.Id.t ;\n window_index: int ;\n pane_index: int ;\n server_pid: int }","params":[]}],"slug":"libtmux_workspace-execution-hint"},{"id":"Libtmux_workspace.Execution.hint.pane","publicId":"Libtmux_workspace.Execution.hint.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-hint-pane"},{"id":"Libtmux_workspace.Execution.hint.pane_index","publicId":"Libtmux_workspace.Execution.hint.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":171,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":171,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.pane_index","slug":"libtmux_workspace-execution-hint-pane_index"},{"id":"Libtmux_workspace.Execution.hint.server_pid","publicId":"Libtmux_workspace.Execution.hint.server_pid","name":"server_pid","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"server_pid : int;","source":{"file":"workspace/libtmux_workspace.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.server_pid","slug":"libtmux_workspace-execution-hint-server_pid"},{"id":"Libtmux_workspace.Execution.hint.session","publicId":"Libtmux_workspace.Execution.hint.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Libtmux.Session.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Session.Id.t","qualifiedName":"Libtmux_workspace.Execution.session","slug":"libtmux_workspace-execution-hint-session"},{"id":"Libtmux_workspace.Execution.hint.window","publicId":"Libtmux_workspace.Execution.hint.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Libtmux.Window.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Window.Id.t","qualifiedName":"Libtmux_workspace.Execution.window","slug":"libtmux_workspace-execution-hint-window"},{"id":"Libtmux_workspace.Execution.hint.window_index","publicId":"Libtmux_workspace.Execution.hint.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":170,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":170,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.window_index","slug":"libtmux_workspace-execution-hint-window_index"},{"id":"Libtmux_workspace.Execution.inspect","publicId":"Libtmux_workspace.Execution.inspect","qualifiedName":"Libtmux_workspace.Execution.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":250,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Return an immutable copy of the retained journal without I/O. "],"declarations":[{"kind":"function","text":"val inspect : t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":250,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Return an immutable copy of the retained journal without I/O."},"signatures":[{"raw":"val inspect : t -> receipt","params":[{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-inspect"},{"id":"Libtmux_workspace.Execution.observation","publicId":"Libtmux_workspace.Execution.observation","qualifiedName":"Libtmux_workspace.Execution.observation","name":"observation","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type observation =\n {\n certainty: certainty ;\n created: Libtmux.Created.t list ;\n unbound: hint option }","params":[]}],"slug":"libtmux_workspace-execution-observation"},{"id":"Libtmux_workspace.Execution.observation.certainty","publicId":"Libtmux_workspace.Execution.observation.certainty","name":"certainty","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":180,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"certainty : certainty;","source":{"file":"workspace/libtmux_workspace.mli","line":180,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.observation","type":"certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","slug":"libtmux_workspace-execution-observation-certainty"},{"id":"Libtmux_workspace.Execution.observation.created","publicId":"Libtmux_workspace.Execution.observation.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.observation","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-observation-created"},{"id":"Libtmux_workspace.Execution.observation.unbound","publicId":"Libtmux_workspace.Execution.observation.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.observation","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-observation-unbound"},{"id":"Libtmux_workspace.Execution.receipt","publicId":"Libtmux_workspace.Execution.receipt","qualifiedName":"Libtmux_workspace.Execution.receipt","name":"receipt","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type receipt =\n {\n operation_id: string ;\n source: Libtmux.Source.t option ;\n status: status ;\n steps: step Iarray.t ;\n cleanup: cleanup Iarray.t ;\n cleanup_error: Libtmux.Error.t option }","params":[]}],"slug":"libtmux_workspace-execution-receipt"},{"id":"Libtmux_workspace.Execution.receipt.cleanup","publicId":"Libtmux_workspace.Execution.receipt.cleanup","name":"cleanup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup : cleanup Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"cleanup Iarray.t","qualifiedName":"Libtmux_workspace.Execution.cleanup","slug":"libtmux_workspace-execution-receipt-cleanup"},{"id":"Libtmux_workspace.Execution.receipt.cleanup_error","publicId":"Libtmux_workspace.Execution.receipt.cleanup_error","name":"cleanup_error","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup_error : Libtmux.Error.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_workspace.Execution.cleanup_error","slug":"libtmux_workspace-execution-receipt-cleanup_error"},{"id":"Libtmux_workspace.Execution.receipt.operation_id","publicId":"Libtmux_workspace.Execution.receipt.operation_id","name":"operation_id","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation_id : string;","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"string","qualifiedName":"Libtmux_workspace.Execution.operation_id","slug":"libtmux_workspace-execution-receipt-operation_id"},{"id":"Libtmux_workspace.Execution.receipt.source","publicId":"Libtmux_workspace.Execution.receipt.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-receipt-source"},{"id":"Libtmux_workspace.Execution.receipt.status","publicId":"Libtmux_workspace.Execution.receipt.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : status;","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-receipt-status"},{"id":"Libtmux_workspace.Execution.receipt.steps","publicId":"Libtmux_workspace.Execution.receipt.steps","name":"steps","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"steps : step Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"step Iarray.t","qualifiedName":"Libtmux_workspace.Execution.steps","slug":"libtmux_workspace-execution-receipt-steps"},{"id":"Libtmux_workspace.Execution.status","publicId":"Libtmux_workspace.Execution.status","qualifiedName":"Libtmux_workspace.Execution.status","name":"status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type status =\n | Queued \n | Applying \n | Succeeded \n | Partial \n | Interrupted \n | Rejected of Plan.error \n | Unavailable of Libtmux.Error.t ","params":[]}],"slug":"libtmux_workspace-execution-status"},{"id":"Libtmux_workspace.Execution.status.Applying","publicId":"Libtmux_workspace.Execution.status.Applying","name":"Applying","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applying","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applying","slug":"libtmux_workspace-execution-status-applying"},{"id":"Libtmux_workspace.Execution.status.Interrupted","publicId":"Libtmux_workspace.Execution.status.Interrupted","name":"Interrupted","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":225,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Interrupted","source":{"file":"workspace/libtmux_workspace.mli","line":225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Interrupted","slug":"libtmux_workspace-execution-status-interrupted"},{"id":"Libtmux_workspace.Execution.status.Partial","publicId":"Libtmux_workspace.Execution.status.Partial","name":"Partial","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Partial","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Partial","slug":"libtmux_workspace-execution-status-partial"},{"id":"Libtmux_workspace.Execution.status.Queued","publicId":"Libtmux_workspace.Execution.status.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Queued","slug":"libtmux_workspace-execution-status-queued"},{"id":"Libtmux_workspace.Execution.status.Rejected","publicId":"Libtmux_workspace.Execution.status.Rejected","name":"Rejected","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rejected of Plan.error","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Rejected","slug":"libtmux_workspace-execution-status-rejected"},{"id":"Libtmux_workspace.Execution.status.Succeeded","publicId":"Libtmux_workspace.Execution.status.Succeeded","name":"Succeeded","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Succeeded","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Succeeded","slug":"libtmux_workspace-execution-status-succeeded"},{"id":"Libtmux_workspace.Execution.status.Unavailable","publicId":"Libtmux_workspace.Execution.status.Unavailable","name":"Unavailable","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Unavailable","slug":"libtmux_workspace-execution-status-unavailable"},{"id":"Libtmux_workspace.Execution.step","publicId":"Libtmux_workspace.Execution.step","qualifiedName":"Libtmux_workspace.Execution.step","name":"step","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step =\n {\n index: int ;\n action: Plan.action ;\n status: step_status ;\n created: Libtmux.Created.t list ;\n unbound: hint option }","params":[]}],"slug":"libtmux_workspace-execution-step"},{"id":"Libtmux_workspace.Execution.step.action","publicId":"Libtmux_workspace.Execution.step.action","name":"action","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"action : Plan.action;","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step","type":"Plan.action","qualifiedName":"Libtmux_workspace.Execution.action","slug":"libtmux_workspace-execution-step-action"},{"id":"Libtmux_workspace.Execution.step.created","publicId":"Libtmux_workspace.Execution.step.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-step-created"},{"id":"Libtmux_workspace.Execution.step.index","publicId":"Libtmux_workspace.Execution.step.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step","type":"int","qualifiedName":"Libtmux_workspace.Execution.index","slug":"libtmux_workspace-execution-step-index"},{"id":"Libtmux_workspace.Execution.step.status","publicId":"Libtmux_workspace.Execution.step.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":210,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : step_status;","source":{"file":"workspace/libtmux_workspace.mli","line":210,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step","type":"step_status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-step-status"},{"id":"Libtmux_workspace.Execution.step.unbound","publicId":"Libtmux_workspace.Execution.step.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-step-unbound"},{"id":"Libtmux_workspace.Execution.step_status","publicId":"Libtmux_workspace.Execution.step_status","qualifiedName":"Libtmux_workspace.Execution.step_status","name":"step_status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step_status =\n | Pending \n | Running \n | Completed \n | Failed of Libtmux.Error.t \n | Skipped \n | Uncertain of Libtmux.Error.t ","params":[]}],"slug":"libtmux_workspace-execution-step_status"},{"id":"Libtmux_workspace.Execution.step_status.Completed","publicId":"Libtmux_workspace.Execution.step_status.Completed","name":"Completed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Completed","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Completed","slug":"libtmux_workspace-execution-step_status-completed"},{"id":"Libtmux_workspace.Execution.step_status.Failed","publicId":"Libtmux_workspace.Execution.step_status.Failed","name":"Failed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Failed of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Failed","slug":"libtmux_workspace-execution-step_status-failed"},{"id":"Libtmux_workspace.Execution.step_status.Pending","publicId":"Libtmux_workspace.Execution.step_status.Pending","name":"Pending","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pending","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Pending","slug":"libtmux_workspace-execution-step_status-pending"},{"id":"Libtmux_workspace.Execution.step_status.Running","publicId":"Libtmux_workspace.Execution.step_status.Running","name":"Running","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Running","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Running","slug":"libtmux_workspace-execution-step_status-running"},{"id":"Libtmux_workspace.Execution.step_status.Skipped","publicId":"Libtmux_workspace.Execution.step_status.Skipped","name":"Skipped","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Skipped","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Skipped","slug":"libtmux_workspace-execution-step_status-skipped"},{"id":"Libtmux_workspace.Execution.step_status.Uncertain","publicId":"Libtmux_workspace.Execution.step_status.Uncertain","name":"Uncertain","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Uncertain","slug":"libtmux_workspace-execution-step_status-uncertain"},{"id":"Libtmux_workspace.Execution.t","publicId":"Libtmux_workspace.Execution.t","qualifiedName":"Libtmux_workspace.Execution.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-execution-t"},{"id":"Libtmux_workspace.Plan","publicId":"Libtmux_workspace.Plan","qualifiedName":"Libtmux_workspace.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[" Preview ordered workspace actions against one observed daemon generation. A\n plan retains collision policy and bound targets; it is not a portable\n command script. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type server_policy = Create_if_missing | Require_existing_server\n type window_collision = Reject\n\n type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }\n\n type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale\n\n val pp_error : Format.formatter -> error -> unit\n\n type scope = Session | Window of int | Pane of { window : int; pane : int }\n\n type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t\n\n type t\n\n val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result\n (** [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. *)\n\n val endpoint : t -> Libtmux.Endpoint.t\n val source : t -> Libtmux.Source.t option\n val existing_session : t -> Libtmux.Session.target option\n val actions : t -> action Iarray.t\n val config : t -> Config.t\n\n val check_source : t -> Libtmux.Source.t option -> (unit, error) result\n (** Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace","doc":{"summary":"Preview ordered workspace actions against one observed daemon generation. A plan retains collision policy and bound targets; it is not a portable command script."},"slug":"libtmux_workspace-plan"},{"id":"Libtmux_workspace.Plan.action","publicId":"Libtmux_workspace.Plan.action","qualifiedName":"Libtmux_workspace.Plan.action","name":"action","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type action =\n | Create_session of\n {\n bootstrap: bool ;\n name: string ;\n window_name: string ;\n spawn: Libtmux.Spawn.t ;\n width: int ;\n height: int } \n | Create_window of {\n window: int ;\n name: string ;\n spawn: Libtmux.Spawn.t } \n | Split_pane of\n {\n window: int ;\n pane: int ;\n spawn: Libtmux.Spawn.t ;\n direction: Libtmux.Geometry.direction ;\n size: Libtmux.Geometry.size option } \n | Set_environment of string * string \n | Set_option of scope * Config.setting \n | Send_text of {\n window: int ;\n pane: int ;\n text: string } \n | Send_enter of {\n window: int ;\n pane: int } \n | Select_layout of int * Libtmux.Layout.t ","params":[]}],"slug":"libtmux_workspace-plan-action"},{"id":"Libtmux_workspace.Plan.action.Create_session","publicId":"Libtmux_workspace.Plan.action.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_session","slug":"libtmux_workspace-plan-action-create_session"},{"id":"Libtmux_workspace.Plan.action.Create_session.bootstrap","publicId":"Libtmux_workspace.Plan.action.Create_session.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : bool;","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"bool","qualifiedName":"Libtmux_workspace.Plan.bootstrap","slug":"libtmux_workspace-plan-action-create_session-bootstrap"},{"id":"Libtmux_workspace.Plan.action.Create_session.height","publicId":"Libtmux_workspace.Plan.action.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.height","slug":"libtmux_workspace-plan-action-create_session-height"},{"id":"Libtmux_workspace.Plan.action.Create_session.name","publicId":"Libtmux_workspace.Plan.action.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_session-name"},{"id":"Libtmux_workspace.Plan.action.Create_session.spawn","publicId":"Libtmux_workspace.Plan.action.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_session-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_session.width","publicId":"Libtmux_workspace.Plan.action.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.width","slug":"libtmux_workspace-plan-action-create_session-width"},{"id":"Libtmux_workspace.Plan.action.Create_session.window_name","publicId":"Libtmux_workspace.Plan.action.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.window_name","slug":"libtmux_workspace-plan-action-create_session-window_name"},{"id":"Libtmux_workspace.Plan.action.Create_window","publicId":"Libtmux_workspace.Plan.action.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_window","slug":"libtmux_workspace-plan-action-create_window"},{"id":"Libtmux_workspace.Plan.action.Create_window.name","publicId":"Libtmux_workspace.Plan.action.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_window-name"},{"id":"Libtmux_workspace.Plan.action.Create_window.spawn","publicId":"Libtmux_workspace.Plan.action.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_window-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_window.window","publicId":"Libtmux_workspace.Plan.action.Create_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-create_window-window"},{"id":"Libtmux_workspace.Plan.action.Select_layout","publicId":"Libtmux_workspace.Plan.action.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Select_layout","slug":"libtmux_workspace-plan-action-select_layout"},{"id":"Libtmux_workspace.Plan.action.Send_enter","publicId":"Libtmux_workspace.Plan.action.Send_enter","name":"Send_enter","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_enter of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_enter","slug":"libtmux_workspace-plan-action-send_enter"},{"id":"Libtmux_workspace.Plan.action.Send_enter.pane","publicId":"Libtmux_workspace.Plan.action.Send_enter.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_enter-pane"},{"id":"Libtmux_workspace.Plan.action.Send_enter.window","publicId":"Libtmux_workspace.Plan.action.Send_enter.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_enter-window"},{"id":"Libtmux_workspace.Plan.action.Send_text","publicId":"Libtmux_workspace.Plan.action.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text of { window : int; pane : int; text : string }","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_text","slug":"libtmux_workspace-plan-action-send_text"},{"id":"Libtmux_workspace.Plan.action.Send_text.pane","publicId":"Libtmux_workspace.Plan.action.Send_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_text-pane"},{"id":"Libtmux_workspace.Plan.action.Send_text.text","publicId":"Libtmux_workspace.Plan.action.Send_text.text","name":"text","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"text : string","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"string","qualifiedName":"Libtmux_workspace.Plan.text","slug":"libtmux_workspace-plan-action-send_text-text"},{"id":"Libtmux_workspace.Plan.action.Send_text.window","publicId":"Libtmux_workspace.Plan.action.Send_text.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_text-window"},{"id":"Libtmux_workspace.Plan.action.Set_environment","publicId":"Libtmux_workspace.Plan.action.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of string * string","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_environment","slug":"libtmux_workspace-plan-action-set_environment"},{"id":"Libtmux_workspace.Plan.action.Set_option","publicId":"Libtmux_workspace.Plan.action.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of scope * Config.setting","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_option","slug":"libtmux_workspace-plan-action-set_option"},{"id":"Libtmux_workspace.Plan.action.Split_pane","publicId":"Libtmux_workspace.Plan.action.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Split_pane","slug":"libtmux_workspace-plan-action-split_pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.direction","publicId":"Libtmux_workspace.Plan.action.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Plan.direction","slug":"libtmux_workspace-plan-action-split_pane-direction"},{"id":"Libtmux_workspace.Plan.action.Split_pane.pane","publicId":"Libtmux_workspace.Plan.action.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-split_pane-pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.size","publicId":"Libtmux_workspace.Plan.action.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Plan.size","slug":"libtmux_workspace-plan-action-split_pane-size"},{"id":"Libtmux_workspace.Plan.action.Split_pane.spawn","publicId":"Libtmux_workspace.Plan.action.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-split_pane-spawn"},{"id":"Libtmux_workspace.Plan.action.Split_pane.window","publicId":"Libtmux_workspace.Plan.action.Split_pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-split_pane-window"},{"id":"Libtmux_workspace.Plan.actions","publicId":"Libtmux_workspace.Plan.actions","qualifiedName":"Libtmux_workspace.Plan.actions","name":"actions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val actions : t -> action Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val actions : t -> action Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"action Iarray.t"}],"slug":"libtmux_workspace-plan-actions"},{"id":"Libtmux_workspace.Plan.check_source","publicId":"Libtmux_workspace.Plan.check_source","qualifiedName":"Libtmux_workspace.Plan.check_source","name":"check_source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. "],"declarations":[{"kind":"function","text":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"Operational plans are ephemeral and bound to one connection generation. A printed or serialized preview cannot supply operational targets."},"signatures":[{"raw":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Source.t option"}],"returns":"(unit, error) result"}],"slug":"libtmux_workspace-plan-check_source"},{"id":"Libtmux_workspace.Plan.collision_policy","publicId":"Libtmux_workspace.Plan.collision_policy","qualifiedName":"Libtmux_workspace.Plan.collision_policy","name":"collision_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type collision_policy =\n | Fail_if_session_exists \n | Append_new_windows of {\n window_collision: window_collision } ","params":[]}],"slug":"libtmux_workspace-plan-collision_policy"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","name":"Append_new_windows","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Append_new_windows","slug":"libtmux_workspace-plan-collision_policy-append_new_windows"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","name":"window_collision","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_collision : window_collision","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","type":"window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","slug":"libtmux_workspace-plan-collision_policy-append_new_windows-window_collision"},{"id":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","publicId":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","name":"Fail_if_session_exists","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Fail_if_session_exists","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Fail_if_session_exists","slug":"libtmux_workspace-plan-collision_policy-fail_if_session_exists"},{"id":"Libtmux_workspace.Plan.config","publicId":"Libtmux_workspace.Plan.config","qualifiedName":"Libtmux_workspace.Plan.config","name":"config","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val config : t -> Config.t","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val config : t -> Config.t","params":[{"name":"arg1","type":"t"}],"returns":"Config.t"}],"slug":"libtmux_workspace-plan-config"},{"id":"Libtmux_workspace.Plan.endpoint","publicId":"Libtmux_workspace.Plan.endpoint","qualifiedName":"Libtmux_workspace.Plan.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Libtmux.Endpoint.t","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val endpoint : t -> Libtmux.Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Endpoint.t"}],"slug":"libtmux_workspace-plan-endpoint"},{"id":"Libtmux_workspace.Plan.error","publicId":"Libtmux_workspace.Plan.error","qualifiedName":"Libtmux_workspace.Plan.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type error =\n | Missing_endpoint \n | Session_conflict of string \n | Window_conflict of string \n | Append_session_options \n | Too_many_steps \n | Unsupported_setting of Config.error \n | Stale ","params":[]}],"slug":"libtmux_workspace-plan-error"},{"id":"Libtmux_workspace.Plan.error.Append_session_options","publicId":"Libtmux_workspace.Plan.error.Append_session_options","name":"Append_session_options","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_session_options","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Append_session_options","slug":"libtmux_workspace-plan-error-append_session_options"},{"id":"Libtmux_workspace.Plan.error.Missing_endpoint","publicId":"Libtmux_workspace.Plan.error.Missing_endpoint","name":"Missing_endpoint","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing_endpoint","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Missing_endpoint","slug":"libtmux_workspace-plan-error-missing_endpoint"},{"id":"Libtmux_workspace.Plan.error.Session_conflict","publicId":"Libtmux_workspace.Plan.error.Session_conflict","name":"Session_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Session_conflict","slug":"libtmux_workspace-plan-error-session_conflict"},{"id":"Libtmux_workspace.Plan.error.Stale","publicId":"Libtmux_workspace.Plan.error.Stale","name":"Stale","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Stale","slug":"libtmux_workspace-plan-error-stale"},{"id":"Libtmux_workspace.Plan.error.Too_many_steps","publicId":"Libtmux_workspace.Plan.error.Too_many_steps","name":"Too_many_steps","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Too_many_steps","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Too_many_steps","slug":"libtmux_workspace-plan-error-too_many_steps"},{"id":"Libtmux_workspace.Plan.error.Unsupported_setting","publicId":"Libtmux_workspace.Plan.error.Unsupported_setting","name":"Unsupported_setting","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_setting of Config.error","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Unsupported_setting","slug":"libtmux_workspace-plan-error-unsupported_setting"},{"id":"Libtmux_workspace.Plan.error.Window_conflict","publicId":"Libtmux_workspace.Plan.error.Window_conflict","name":"Window_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window_conflict","slug":"libtmux_workspace-plan-error-window_conflict"},{"id":"Libtmux_workspace.Plan.existing_session","publicId":"Libtmux_workspace.Plan.existing_session","qualifiedName":"Libtmux_workspace.Plan.existing_session","name":"existing_session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val existing_session : t -> Libtmux.Session.target option","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val existing_session : t -> Libtmux.Session.target option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Session.target option"}],"slug":"libtmux_workspace-plan-existing_session"},{"id":"Libtmux_workspace.Plan.make","publicId":"Libtmux_workspace.Plan.make","qualifiedName":"Libtmux_workspace.Plan.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[" [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. "],"declarations":[{"kind":"function","text":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"`None` means an explicitly observed missing endpoint. It is not an empty successful snapshot. A plan does not start a server. Append rejects any existing requested window name and never changes session options. `version` selects the generated option catalog."},"signatures":[{"raw":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option -> Config.t -> (t, error) result","params":[{"name":"server_policy","type":"server_policy","optional":true,"keywordOnly":true},{"name":"collision_policy","type":"collision_policy","optional":true,"keywordOnly":true},{"name":"endpoint","type":"Libtmux.Endpoint.t","keywordOnly":true},{"name":"version","type":"string","keywordOnly":true},{"name":"observed","type":"Libtmux.Snapshot.t option","keywordOnly":true},{"name":"arg1","type":"Config.t"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-plan-make"},{"id":"Libtmux_workspace.Plan.pp_error","publicId":"Libtmux_workspace.Plan.pp_error","qualifiedName":"Libtmux_workspace.Plan.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-plan-pp_error"},{"id":"Libtmux_workspace.Plan.scope","publicId":"Libtmux_workspace.Plan.scope","qualifiedName":"Libtmux_workspace.Plan.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Session | Window of int | Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type scope =\n | Session \n | Window of int \n | Pane of {\n window: int ;\n pane: int } ","params":[]}],"slug":"libtmux_workspace-plan-scope"},{"id":"Libtmux_workspace.Plan.scope.Pane","publicId":"Libtmux_workspace.Plan.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Pane","slug":"libtmux_workspace-plan-scope-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.pane","publicId":"Libtmux_workspace.Plan.scope.Pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-scope-pane-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.window","publicId":"Libtmux_workspace.Plan.scope.Pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-scope-pane-window"},{"id":"Libtmux_workspace.Plan.scope.Session","publicId":"Libtmux_workspace.Plan.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Session","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Session","slug":"libtmux_workspace-plan-scope-session"},{"id":"Libtmux_workspace.Plan.scope.Window","publicId":"Libtmux_workspace.Plan.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window","slug":"libtmux_workspace-plan-scope-window"},{"id":"Libtmux_workspace.Plan.server_policy","publicId":"Libtmux_workspace.Plan.server_policy","qualifiedName":"Libtmux_workspace.Plan.server_policy","name":"server_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type server_policy = Create_if_missing | Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type server_policy =\n | Create_if_missing \n | Require_existing_server ","params":[]}],"slug":"libtmux_workspace-plan-server_policy"},{"id":"Libtmux_workspace.Plan.server_policy.Create_if_missing","publicId":"Libtmux_workspace.Plan.server_policy.Create_if_missing","name":"Create_if_missing","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Create_if_missing","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Create_if_missing","slug":"libtmux_workspace-plan-server_policy-create_if_missing"},{"id":"Libtmux_workspace.Plan.server_policy.Require_existing_server","publicId":"Libtmux_workspace.Plan.server_policy.Require_existing_server","name":"Require_existing_server","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Require_existing_server","slug":"libtmux_workspace-plan-server_policy-require_existing_server"},{"id":"Libtmux_workspace.Plan.source","publicId":"Libtmux_workspace.Plan.source","qualifiedName":"Libtmux_workspace.Plan.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t option","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val source : t -> Libtmux.Source.t option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t option"}],"slug":"libtmux_workspace-plan-source"},{"id":"Libtmux_workspace.Plan.t","publicId":"Libtmux_workspace.Plan.t","qualifiedName":"Libtmux_workspace.Plan.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-plan-t"},{"id":"Libtmux_workspace.Plan.window_collision","publicId":"Libtmux_workspace.Plan.window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","name":"window_collision","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type window_collision = Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type window_collision =\n | Reject ","params":[]}],"slug":"libtmux_workspace-plan-window_collision"},{"id":"Libtmux_workspace.Plan.window_collision.Reject","publicId":"Libtmux_workspace.Plan.window_collision.Reject","name":"Reject","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","extractedRevision":"4d2203d04f74d03dc3f6df0660362fc17b771287"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287"}}],"parent":"Libtmux_workspace.Plan.window_collision","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Reject","slug":"libtmux_workspace-plan-window_collision-reject"}]} +{"port":"ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","repo":"libtmux/libtmux-ocaml","sources":[{"product":"core","package":"libtmux","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"core","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"workspace","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"core","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"workspace","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"core","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"workspace","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}],"extractor":"OCaml 5.5.2 compiler-libs .cmti + odoc-parser 3.2.2","nativeProvenance":{"files":[{"path":"lib/libtmux.mli","sha256":"cde6d0a89aeb60e3bffe3df003ffba1115d3a0c1318c6361a874202580797bfb"},{"path":"_build/install/default/lib/libtmux/libtmux.cmti","sha256":"296786db1d801c4a2ed7071b942a9c785f120474a9479aafda0837e8fcb00c18"},{"path":"workspace/libtmux_workspace.mli","sha256":"7f828d52abc58665510de7cf87bc03479d85feaaca5f00e678fda58f47713a4d"},{"path":"_build/install/default/lib/libtmux-workspace/libtmux_workspace.cmti","sha256":"5a55a369dde40b8a1261089043218e0bbb245f5ea09088365b7fc3dd91b82b7f"},{"path":"json/libtmux_json.mli","sha256":"0df1e135b74307a8ef363bcd484e499c463172f6a0451a8ebbd511ec8adb57bc"},{"path":"_build/install/default/lib/libtmux-json/libtmux_json.cmti","sha256":"1a065de46eb27da42755e3bef53c4de6ca30fcdd587556a0daef9bf6a6afbd6d"},{"path":"unix/libtmux_unix.mli","sha256":"ce6a551ab8258ae4b01cf3c1c21ec8f6a0c76ca1cd4170e8799e59e25f18a4df"},{"path":"_build/install/default/lib/libtmux-unix/libtmux_unix.cmti","sha256":"258641a2be793576f46c493a582ca4c334a11c569a62725b1b9be985b68b564e"},{"path":"eio/libtmux_eio.mli","sha256":"ccd8fd3d603e82e5618af23e5ae82853361a9c3d88ef409ed6ea83cf1d2ee765"},{"path":"_build/install/default/lib/libtmux-eio/libtmux_eio.cmti","sha256":"788ca92dc96d1ec3ce868d8585f7cbfb9e19ce31b5a7472a41aaf2504205023d"}],"exporter":{"revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","baseRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","files":[{"path":"tools/api_export.ml","sha256":"34b59e728494aeed3595c5a88e1a1482d7dfa65ddcda725e43cd6c21ee131945"},{"path":"tools/api_doc.ml","sha256":"94d9b4dff3f86d570a31161019e06cea250926200b8cc4562f7d14f9f3cd0d59"},{"path":"tools/export_api.py","sha256":"5188348adc7e3ea577889e144de30da6204ec14ec6fc1577f86a732bc7625973"},{"path":"tools/api_modules.json","sha256":"233ef409440fa5015f522a11933e74f059a301aecbce5ab5126f14e8a35614cf"},{"path":"tools/dune","sha256":"777e122d729870f9f8dc6fc13485ce0eea29f0e741b9bb22cb0245d433ff9442"}],"compiler":"5.5.2","schema":"libtmux.ocaml-api/1","publicManifest":"tools/api_modules.json"}},"symbols":[{"id":"Libtmux","publicId":"Libtmux","qualifiedName":"Libtmux","name":"Libtmux","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Native captured values, typed queries and explicit command descriptions.\n\n A {!Snapshot.t} owns immutable observations. Entity accessors and query\n evaluation perform no I/O, preserve captured order and remain usable after\n client closure. Use [Libtmux_unix.Client] or [Libtmux_eio.Client] to acquire\n or mutate state.\n\n Retaining any entity retains its complete snapshot graph. Copy scalar\n summaries when captured relationships are no longer needed. Targets omit the\n graph but remain restricted to their original {!Source.t}.\n\n {1 Typical flow}\n\n Capture explicitly, traverse {!Session.window_links} and {!Window.panes},\n filter with [Seq.filter] or {!Query.matching}, establish cardinality with\n {!Query.exactly_one}, then submit a command with a bound target.\n\n The core depends only on the standard library. Its abstract observations are\n safe to share; live clients and subscriptions belong to their backend.\n\n See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md}graph\n guide} for window links and the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} for native predicates and typed expressions. "],"declarations":[{"kind":"module","text":"","source":{"file":"lib/libtmux.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"doc":{"summary":"Native captured values, typed queries and explicit command descriptions.","body":"A {!Snapshot.t} owns immutable observations. Entity accessors and query evaluation perform no I/O, preserve captured order and remain usable after client closure. Use `Libtmux_unix.Client` or `Libtmux_eio.Client` to acquire or mutate state.\n\nRetaining any entity retains its complete snapshot graph. Copy scalar summaries when captured relationships are no longer needed. Targets omit the graph but remain restricted to their original {!Source.t}.\n\n## Typical flow\n\nCapture explicitly, traverse {!Session.window_links} and {!Window.panes}, filter with `Seq.filter` or {!Query.matching}, establish cardinality with {!Query.exactly_one}, then submit a command with a bound target.\n\nThe core depends only on the standard library. Its abstract observations are safe to share; live clients and subscriptions belong to their backend.\n\nSee the [graph guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md) for window links and the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) for native predicates and typed expressions."},"slug":"libtmux"},{"id":"Libtmux.Captured_text","publicId":"Libtmux.Captured_text","qualifiedName":"Libtmux.Captured_text","name":"Captured_text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Captured_text : sig\n type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. *)\nend","source":{"file":"lib/libtmux.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-captured_text"},{"id":"Libtmux.Captured_text.t","publicId":"Libtmux.Captured_text.t","qualifiedName":"Libtmux.Captured_text.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":713,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. "],"declarations":[{"kind":"struct","text":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":713,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Captured_text","doc":{"summary":"Ordinary rendered rows captured over an interval. This value has no implied relationship to a subscription cursor."},"signatures":[{"raw":"type t =\n {\n bytes: string ;\n source: Source.t ;\n pane: Pane.Id.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-captured_text-t"},{"id":"Libtmux.Captured_text.t.bytes","publicId":"Libtmux.Captured_text.t.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":714,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string;","source":{"file":"lib/libtmux.mli","line":714,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Captured_text.t","type":"string","qualifiedName":"Libtmux.Captured_text.bytes","slug":"libtmux-captured_text-t-bytes"},{"id":"Libtmux.Captured_text.t.finished_at_ns","publicId":"Libtmux.Captured_text.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":718,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":718,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.finished_at_ns","slug":"libtmux-captured_text-t-finished_at_ns"},{"id":"Libtmux.Captured_text.t.pane","publicId":"Libtmux.Captured_text.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":716,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":716,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Captured_text.t","type":"Pane.Id.t","qualifiedName":"Libtmux.Captured_text.pane","slug":"libtmux-captured_text-t-pane"},{"id":"Libtmux.Captured_text.t.source","publicId":"Libtmux.Captured_text.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":715,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":715,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Captured_text.t","type":"Source.t","qualifiedName":"Libtmux.Captured_text.source","slug":"libtmux-captured_text-t-source"},{"id":"Libtmux.Captured_text.t.started_at_ns","publicId":"Libtmux.Captured_text.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":717,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":717,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.started_at_ns","slug":"libtmux-captured_text-t-started_at_ns"},{"id":"Libtmux.Cardinality","publicId":"Libtmux.Cardinality","qualifiedName":"Libtmux.Cardinality","name":"Cardinality","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":685,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cardinality : sig\n type error = No_match | Multiple_matches of { at_least : int }\n\n val pp_error : Format.formatter -> error -> unit\nend","source":{"file":"lib/libtmux.mli","line":685,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-cardinality"},{"id":"Libtmux.Cardinality.error","publicId":"Libtmux.Cardinality.error","qualifiedName":"Libtmux.Cardinality.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error = No_match | Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"type error =\n | No_match \n | Multiple_matches of {\n at_least: int } ","params":[]}],"slug":"libtmux-cardinality-error"},{"id":"Libtmux.Cardinality.error.Multiple_matches","publicId":"Libtmux.Cardinality.error.Multiple_matches","name":"Multiple_matches","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Cardinality.error","variant":"struct","qualifiedName":"Libtmux.Cardinality.Multiple_matches","slug":"libtmux-cardinality-error-multiple_matches"},{"id":"Libtmux.Cardinality.error.Multiple_matches.at_least","publicId":"Libtmux.Cardinality.error.Multiple_matches.at_least","name":"at_least","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"at_least : int","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Cardinality.error.Multiple_matches","type":"int","qualifiedName":"Libtmux.Cardinality.at_least","slug":"libtmux-cardinality-error-multiple_matches-at_least"},{"id":"Libtmux.Cardinality.error.No_match","publicId":"Libtmux.Cardinality.error.No_match","name":"No_match","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"No_match","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Cardinality.error","variant":"unit","qualifiedName":"Libtmux.Cardinality.No_match","slug":"libtmux-cardinality-error-no_match"},{"id":"Libtmux.Cardinality.pp_error","publicId":"Libtmux.Cardinality.pp_error","qualifiedName":"Libtmux.Cardinality.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":688,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"lib/libtmux.mli","line":688,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux-cardinality-pp_error"},{"id":"Libtmux.Client_name","publicId":"Libtmux.Client_name","qualifiedName":"Libtmux.Client_name","name":"Client_name","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Client_name : sig\n type t\n (** A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. *)\n\n val source : t -> Source.t\n val to_string : t -> string\nend","source":{"file":"lib/libtmux.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-client_name"},{"id":"Libtmux.Client_name.source","publicId":"Libtmux.Client_name.source","qualifiedName":"Libtmux.Client_name.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_name-source"},{"id":"Libtmux.Client_name.t","publicId":"Libtmux.Client_name.t","qualifiedName":"Libtmux.Client_name.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_name","doc":{"summary":"A name in one connection generation, with current-name semantics. It does not identify a stable client incarnation; tmux may reuse client names."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_name-t"},{"id":"Libtmux.Client_name.to_string","publicId":"Libtmux.Client_name.to_string","qualifiedName":"Libtmux.Client_name.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_name-to_string"},{"id":"Libtmux.Client_observation","publicId":"Libtmux.Client_observation","qualifiedName":"Libtmux.Client_observation","name":"Client_observation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"and Client_observation : sig\n type t\n\n module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end\n\n val name : t -> string\n val pid : t -> int\n val width : t -> int\n\n val height : t -> int option\n (** No height is reported until the client has a started terminal. *)\n\n val control_mode : t -> bool\n val source : t -> Source.t\n\n val current_name : t -> Client_name.t\n (** Address whichever client has this name when a command executes. *)\n\n val session : t -> Session.t option\n (** [None] means the captured client has no attached session. *)\n\n val same_observation : t -> t -> bool\n (** Client names may be reused. No cross-snapshot entity equality is offered.\n *)\nend","source":{"file":"lib/libtmux.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-client_observation"},{"id":"Libtmux.Client_observation.Fields","publicId":"Libtmux.Client_observation.Fields","qualifiedName":"Libtmux.Client_observation.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":368,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":368,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-fields"},{"id":"Libtmux.Client_observation.Fields.control_mode","publicId":"Libtmux.Client_observation.Fields.control_mode","qualifiedName":"Libtmux.Client_observation.Fields.control_mode","name":"control_mode","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val control_mode : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val control_mode : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-client_observation-fields-control_mode"},{"id":"Libtmux.Client_observation.Fields.name","publicId":"Libtmux.Client_observation.Fields.name","qualifiedName":"Libtmux.Client_observation.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":369,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":369,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-client_observation-fields-name"},{"id":"Libtmux.Client_observation.Fields.pid","publicId":"Libtmux.Client_observation.Fields.pid","qualifiedName":"Libtmux.Client_observation.Fields.pid","name":"pid","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pid : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val pid : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-pid"},{"id":"Libtmux.Client_observation.Fields.width","publicId":"Libtmux.Client_observation.Fields.width","qualifiedName":"Libtmux.Client_observation.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":371,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":371,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-width"},{"id":"Libtmux.Client_observation.Relations","publicId":"Libtmux.Client_observation.Relations","qualifiedName":"Libtmux.Client_observation.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":375,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end","source":{"file":"lib/libtmux.mli","line":375,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-relations"},{"id":"Libtmux.Client_observation.Relations.session","publicId":"Libtmux.Client_observation.Relations.session","qualifiedName":"Libtmux.Client_observation.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":376,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.Optional.t","source":{"file":"lib/libtmux.mli","line":376,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.Optional.t","params":[],"returns":"(t, Session.t) Relation.Optional.t"}],"slug":"libtmux-client_observation-relations-session"},{"id":"Libtmux.Client_observation.control_mode","publicId":"Libtmux.Client_observation.control_mode","qualifiedName":"Libtmux.Client_observation.control_mode","name":"control_mode","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":386,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val control_mode : t -> bool","source":{"file":"lib/libtmux.mli","line":386,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val control_mode : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-control_mode"},{"id":"Libtmux.Client_observation.current_name","publicId":"Libtmux.Client_observation.current_name","qualifiedName":"Libtmux.Client_observation.current_name","name":"current_name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":389,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Address whichever client has this name when a command executes. "],"declarations":[{"kind":"function","text":"val current_name : t -> Client_name.t","source":{"file":"lib/libtmux.mli","line":389,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Address whichever client has this name when a command executes."},"signatures":[{"raw":"val current_name : t -> Client_name.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_name.t"}],"slug":"libtmux-client_observation-current_name"},{"id":"Libtmux.Client_observation.height","publicId":"Libtmux.Client_observation.height","qualifiedName":"Libtmux.Client_observation.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":383,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" No height is reported until the client has a started terminal. "],"declarations":[{"kind":"function","text":"val height : t -> int option","source":{"file":"lib/libtmux.mli","line":383,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"No height is reported until the client has a started terminal."},"signatures":[{"raw":"val height : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-client_observation-height"},{"id":"Libtmux.Client_observation.name","publicId":"Libtmux.Client_observation.name","qualifiedName":"Libtmux.Client_observation.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":379,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":379,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_observation-name"},{"id":"Libtmux.Client_observation.pid","publicId":"Libtmux.Client_observation.pid","qualifiedName":"Libtmux.Client_observation.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":380,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pid : t -> int","source":{"file":"lib/libtmux.mli","line":380,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-pid"},{"id":"Libtmux.Client_observation.same_observation","publicId":"Libtmux.Client_observation.same_observation","qualifiedName":"Libtmux.Client_observation.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":395,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Client names may be reused. No cross-snapshot entity equality is offered.\n "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":395,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Client names may be reused. No cross-snapshot entity equality is offered."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-same_observation"},{"id":"Libtmux.Client_observation.session","publicId":"Libtmux.Client_observation.session","qualifiedName":"Libtmux.Client_observation.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":392,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [None] means the captured client has no attached session. "],"declarations":[{"kind":"function","text":"val session : t -> Session.t option","source":{"file":"lib/libtmux.mli","line":392,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"`None` means the captured client has no attached session."},"signatures":[{"raw":"val session : t -> Session.t option","params":[{"name":"arg1","type":"t"}],"returns":"Session.t option"}],"slug":"libtmux-client_observation-session"},{"id":"Libtmux.Client_observation.source","publicId":"Libtmux.Client_observation.source","qualifiedName":"Libtmux.Client_observation.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_observation-source"},{"id":"Libtmux.Client_observation.t","publicId":"Libtmux.Client_observation.t","qualifiedName":"Libtmux.Client_observation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":366,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":366,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_observation-t"},{"id":"Libtmux.Client_observation.width","publicId":"Libtmux.Client_observation.width","qualifiedName":"Libtmux.Client_observation.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-width"},{"id":"Libtmux.Command","publicId":"Libtmux.Command","qualifiedName":"Libtmux.Command","name":"Command","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":883,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Typed descriptions of explicit acquisition and mutation operations.\n Construction performs no I/O; a backend validates and admits the command. "],"declarations":[{"kind":"module","text":"module Command : sig\n type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }\n\n type 'a t\n (** An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. *)\n\n type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view\n\n val view : 'a t -> 'a view\n (** Read-only inspection for transport adapters. *)\nend","source":{"file":"lib/libtmux.mli","line":883,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Typed descriptions of explicit acquisition and mutation operations. Construction performs no I/O; a backend validates and admits the command."},"slug":"libtmux-command"},{"id":"Libtmux.Command.mutation","publicId":"Libtmux.Command.mutation","qualifiedName":"Libtmux.Command.mutation","name":"mutation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":884,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":884,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type mutation =\n | Kill_session of Session.target \n | Kill_window of Window.target \n | Kill_pane of Pane.target \n | Select_window_at of Session.target * int \n | Unlink_window_at of\n {\n session: Session.target ;\n index: int ;\n allow_kill: bool } \n | Link_window of\n {\n window: Window.target ;\n session: Session.target ;\n index: int } \n | Move_window_at of\n {\n from_session: Session.target ;\n from_index: int ;\n session: Session.target ;\n index: int } \n | Select_pane of Pane.target \n | Set_pane_title of Pane.target * string \n | Resize_pane of\n {\n pane: Pane.target ;\n width: int option ;\n height: int option } \n | Resize_window of\n {\n window: Window.target ;\n width: int option ;\n height: int option } \n | Select_layout of Window.target * Layout.t \n | Cycle_layout of Window.target * [ `Next | `Previous ] \n | Move_pane of\n {\n pane: Pane.target ;\n beside: Pane.target ;\n direction: Geometry.direction ;\n size: Geometry.size option } \n | Swap_panes of Pane.target * Pane.target \n | Rotate_panes of Window.target * [ `Forward | `Backward ] \n | Zoom_pane of Pane.target \n | Respawn_pane of {\n pane: Pane.target ;\n spawn: Spawn.t ;\n kill_running: bool } \n | Clear_history of Pane.target \n | Set_environment of\n {\n scope: Environment.scope ;\n name: string ;\n value: string ;\n hidden: bool } \n | Unset_environment of Environment.scope * string \n | Remove_environment of Environment.scope * string \n | Set_option of\n {\n scope: Options.scope ;\n name: string ;\n index: int option ;\n value: Options.scalar ;\n append: bool } \n | Unset_option of Options.scope * string * int option \n | Clear_option_array of Options.scope * string \n | Set_hook of\n {\n scope: Options.scope ;\n name: string ;\n index: int option ;\n commands: Hook.command list ;\n append: bool } \n | Remove_hook of Options.scope * string * int option \n | Run_hook of Options.scope * string \n | Switch_client_at of\n {\n client: Client_name.t ;\n session: Session.target ;\n update_environment: bool } \n | Request_detach_client_at of Client_name.t \n | Refresh_client_at of Client_name.t * bool \n | Resize_control_client_at of\n {\n client: Client_name.t ;\n width: int ;\n height: int } ","params":[]}],"slug":"libtmux-command-mutation"},{"id":"Libtmux.Command.mutation.Clear_history","publicId":"Libtmux.Command.mutation.Clear_history","name":"Clear_history","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":933,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_history of Pane.target","source":{"file":"lib/libtmux.mli","line":933,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_history","slug":"libtmux-command-mutation-clear_history"},{"id":"Libtmux.Command.mutation.Clear_option_array","publicId":"Libtmux.Command.mutation.Clear_option_array","name":"Clear_option_array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":950,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_option_array of Options.scope * string","source":{"file":"lib/libtmux.mli","line":950,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_option_array","slug":"libtmux-command-mutation-clear_option_array"},{"id":"Libtmux.Command.mutation.Cycle_layout","publicId":"Libtmux.Command.mutation.Cycle_layout","name":"Cycle_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":918,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cycle_layout of Window.target * [ `Next | `Previous ]","source":{"file":"lib/libtmux.mli","line":918,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Cycle_layout","slug":"libtmux-command-mutation-cycle_layout"},{"id":"Libtmux.Command.mutation.Kill_pane","publicId":"Libtmux.Command.mutation.Kill_pane","name":"Kill_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":887,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":887,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_pane","slug":"libtmux-command-mutation-kill_pane"},{"id":"Libtmux.Command.mutation.Kill_session","publicId":"Libtmux.Command.mutation.Kill_session","name":"Kill_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":885,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_session of Session.target","source":{"file":"lib/libtmux.mli","line":885,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_session","slug":"libtmux-command-mutation-kill_session"},{"id":"Libtmux.Command.mutation.Kill_window","publicId":"Libtmux.Command.mutation.Kill_window","name":"Kill_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":886,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_window of Window.target","source":{"file":"lib/libtmux.mli","line":886,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_window","slug":"libtmux-command-mutation-kill_window"},{"id":"Libtmux.Command.mutation.Link_window","publicId":"Libtmux.Command.mutation.Link_window","name":"Link_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":894,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":894,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Link_window","slug":"libtmux-command-mutation-link_window"},{"id":"Libtmux.Command.mutation.Link_window.index","publicId":"Libtmux.Command.mutation.Link_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":897,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":897,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-link_window-index"},{"id":"Libtmux.Command.mutation.Link_window.session","publicId":"Libtmux.Command.mutation.Link_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":896,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":896,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-link_window-session"},{"id":"Libtmux.Command.mutation.Link_window.window","publicId":"Libtmux.Command.mutation.Link_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":895,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":895,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-link_window-window"},{"id":"Libtmux.Command.mutation.Move_pane","publicId":"Libtmux.Command.mutation.Move_pane","name":"Move_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":919,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }","source":{"file":"lib/libtmux.mli","line":919,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_pane","slug":"libtmux-command-mutation-move_pane"},{"id":"Libtmux.Command.mutation.Move_pane.beside","publicId":"Libtmux.Command.mutation.Move_pane.beside","name":"beside","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":921,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"beside : Pane.target;","source":{"file":"lib/libtmux.mli","line":921,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.beside","slug":"libtmux-command-mutation-move_pane-beside"},{"id":"Libtmux.Command.mutation.Move_pane.direction","publicId":"Libtmux.Command.mutation.Move_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":922,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":922,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-mutation-move_pane-direction"},{"id":"Libtmux.Command.mutation.Move_pane.pane","publicId":"Libtmux.Command.mutation.Move_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":920,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":920,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-move_pane-pane"},{"id":"Libtmux.Command.mutation.Move_pane.size","publicId":"Libtmux.Command.mutation.Move_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":923,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":923,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-mutation-move_pane-size"},{"id":"Libtmux.Command.mutation.Move_window_at","publicId":"Libtmux.Command.mutation.Move_window_at","name":"Move_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":899,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":899,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_window_at","slug":"libtmux-command-mutation-move_window_at"},{"id":"Libtmux.Command.mutation.Move_window_at.from_index","publicId":"Libtmux.Command.mutation.Move_window_at.from_index","name":"from_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":901,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_index : int;","source":{"file":"lib/libtmux.mli","line":901,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.from_index","slug":"libtmux-command-mutation-move_window_at-from_index"},{"id":"Libtmux.Command.mutation.Move_window_at.from_session","publicId":"Libtmux.Command.mutation.Move_window_at.from_session","name":"from_session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":900,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_session : Session.target;","source":{"file":"lib/libtmux.mli","line":900,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.from_session","slug":"libtmux-command-mutation-move_window_at-from_session"},{"id":"Libtmux.Command.mutation.Move_window_at.index","publicId":"Libtmux.Command.mutation.Move_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":903,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":903,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-move_window_at-index"},{"id":"Libtmux.Command.mutation.Move_window_at.session","publicId":"Libtmux.Command.mutation.Move_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":902,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":902,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-move_window_at-session"},{"id":"Libtmux.Command.mutation.Refresh_client_at","publicId":"Libtmux.Command.mutation.Refresh_client_at","name":"Refresh_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":966,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Refresh_client_at of Client_name.t * bool","source":{"file":"lib/libtmux.mli","line":966,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Refresh_client_at","slug":"libtmux-command-mutation-refresh_client_at"},{"id":"Libtmux.Command.mutation.Remove_environment","publicId":"Libtmux.Command.mutation.Remove_environment","name":"Remove_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":941,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":941,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_environment","slug":"libtmux-command-mutation-remove_environment"},{"id":"Libtmux.Command.mutation.Remove_hook","publicId":"Libtmux.Command.mutation.Remove_hook","name":"Remove_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":958,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_hook of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":958,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_hook","slug":"libtmux-command-mutation-remove_hook"},{"id":"Libtmux.Command.mutation.Request_detach_client_at","publicId":"Libtmux.Command.mutation.Request_detach_client_at","name":"Request_detach_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":965,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Request_detach_client_at of Client_name.t","source":{"file":"lib/libtmux.mli","line":965,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Request_detach_client_at","slug":"libtmux-command-mutation-request_detach_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at","publicId":"Libtmux.Command.mutation.Resize_control_client_at","name":"Resize_control_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":967,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":967,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_control_client_at","slug":"libtmux-command-mutation-resize_control_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.client","publicId":"Libtmux.Command.mutation.Resize_control_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":968,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":968,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-resize_control_client_at-client"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.height","publicId":"Libtmux.Command.mutation.Resize_control_client_at.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":970,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":970,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_control_client_at-height"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.width","publicId":"Libtmux.Command.mutation.Resize_control_client_at.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":969,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":969,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_control_client_at-width"},{"id":"Libtmux.Command.mutation.Resize_pane","publicId":"Libtmux.Command.mutation.Resize_pane","name":"Resize_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":907,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":907,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_pane","slug":"libtmux-command-mutation-resize_pane"},{"id":"Libtmux.Command.mutation.Resize_pane.height","publicId":"Libtmux.Command.mutation.Resize_pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":910,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":910,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_pane-height"},{"id":"Libtmux.Command.mutation.Resize_pane.pane","publicId":"Libtmux.Command.mutation.Resize_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":908,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":908,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-resize_pane-pane"},{"id":"Libtmux.Command.mutation.Resize_pane.width","publicId":"Libtmux.Command.mutation.Resize_pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":909,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":909,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_pane-width"},{"id":"Libtmux.Command.mutation.Resize_window","publicId":"Libtmux.Command.mutation.Resize_window","name":"Resize_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":912,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":912,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_window","slug":"libtmux-command-mutation-resize_window"},{"id":"Libtmux.Command.mutation.Resize_window.height","publicId":"Libtmux.Command.mutation.Resize_window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":915,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":915,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_window-height"},{"id":"Libtmux.Command.mutation.Resize_window.width","publicId":"Libtmux.Command.mutation.Resize_window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":914,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":914,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_window-width"},{"id":"Libtmux.Command.mutation.Resize_window.window","publicId":"Libtmux.Command.mutation.Resize_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":913,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":913,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-resize_window-window"},{"id":"Libtmux.Command.mutation.Respawn_pane","publicId":"Libtmux.Command.mutation.Respawn_pane","name":"Respawn_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":928,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }","source":{"file":"lib/libtmux.mli","line":928,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Respawn_pane","slug":"libtmux-command-mutation-respawn_pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.kill_running","publicId":"Libtmux.Command.mutation.Respawn_pane.kill_running","name":"kill_running","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":931,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kill_running : bool;","source":{"file":"lib/libtmux.mli","line":931,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"bool","qualifiedName":"Libtmux.Command.kill_running","slug":"libtmux-command-mutation-respawn_pane-kill_running"},{"id":"Libtmux.Command.mutation.Respawn_pane.pane","publicId":"Libtmux.Command.mutation.Respawn_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":929,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":929,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-respawn_pane-pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.spawn","publicId":"Libtmux.Command.mutation.Respawn_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":930,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":930,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-mutation-respawn_pane-spawn"},{"id":"Libtmux.Command.mutation.Rotate_panes","publicId":"Libtmux.Command.mutation.Rotate_panes","name":"Rotate_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":926,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rotate_panes of Window.target * [ `Forward | `Backward ]","source":{"file":"lib/libtmux.mli","line":926,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Rotate_panes","slug":"libtmux-command-mutation-rotate_panes"},{"id":"Libtmux.Command.mutation.Run_hook","publicId":"Libtmux.Command.mutation.Run_hook","name":"Run_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":959,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Run_hook of Options.scope * string","source":{"file":"lib/libtmux.mli","line":959,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Run_hook","slug":"libtmux-command-mutation-run_hook"},{"id":"Libtmux.Command.mutation.Select_layout","publicId":"Libtmux.Command.mutation.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":917,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of Window.target * Layout.t","source":{"file":"lib/libtmux.mli","line":917,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_layout","slug":"libtmux-command-mutation-select_layout"},{"id":"Libtmux.Command.mutation.Select_pane","publicId":"Libtmux.Command.mutation.Select_pane","name":"Select_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":905,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":905,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_pane","slug":"libtmux-command-mutation-select_pane"},{"id":"Libtmux.Command.mutation.Select_window_at","publicId":"Libtmux.Command.mutation.Select_window_at","name":"Select_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":888,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_window_at of Session.target * int","source":{"file":"lib/libtmux.mli","line":888,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_window_at","slug":"libtmux-command-mutation-select_window_at"},{"id":"Libtmux.Command.mutation.Set_environment","publicId":"Libtmux.Command.mutation.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":934,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }","source":{"file":"lib/libtmux.mli","line":934,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_environment","slug":"libtmux-command-mutation-set_environment"},{"id":"Libtmux.Command.mutation.Set_environment.hidden","publicId":"Libtmux.Command.mutation.Set_environment.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":938,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":938,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"bool","qualifiedName":"Libtmux.Command.hidden","slug":"libtmux-command-mutation-set_environment-hidden"},{"id":"Libtmux.Command.mutation.Set_environment.name","publicId":"Libtmux.Command.mutation.Set_environment.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":936,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":936,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_environment-name"},{"id":"Libtmux.Command.mutation.Set_environment.scope","publicId":"Libtmux.Command.mutation.Set_environment.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":935,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Environment.scope;","source":{"file":"lib/libtmux.mli","line":935,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"Environment.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_environment-scope"},{"id":"Libtmux.Command.mutation.Set_environment.value","publicId":"Libtmux.Command.mutation.Set_environment.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":937,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : string;","source":{"file":"lib/libtmux.mli","line":937,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_environment-value"},{"id":"Libtmux.Command.mutation.Set_hook","publicId":"Libtmux.Command.mutation.Set_hook","name":"Set_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":951,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":951,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_hook","slug":"libtmux-command-mutation-set_hook"},{"id":"Libtmux.Command.mutation.Set_hook.append","publicId":"Libtmux.Command.mutation.Set_hook.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":956,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":956,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_hook-append"},{"id":"Libtmux.Command.mutation.Set_hook.commands","publicId":"Libtmux.Command.mutation.Set_hook.commands","name":"commands","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":955,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"commands : Hook.command list;","source":{"file":"lib/libtmux.mli","line":955,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Hook.command list","qualifiedName":"Libtmux.Command.commands","slug":"libtmux-command-mutation-set_hook-commands"},{"id":"Libtmux.Command.mutation.Set_hook.index","publicId":"Libtmux.Command.mutation.Set_hook.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":954,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":954,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_hook-index"},{"id":"Libtmux.Command.mutation.Set_hook.name","publicId":"Libtmux.Command.mutation.Set_hook.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":953,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":953,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_hook-name"},{"id":"Libtmux.Command.mutation.Set_hook.scope","publicId":"Libtmux.Command.mutation.Set_hook.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":952,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":952,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_hook-scope"},{"id":"Libtmux.Command.mutation.Set_option","publicId":"Libtmux.Command.mutation.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":942,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":942,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_option","slug":"libtmux-command-mutation-set_option"},{"id":"Libtmux.Command.mutation.Set_option.append","publicId":"Libtmux.Command.mutation.Set_option.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":947,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":947,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_option-append"},{"id":"Libtmux.Command.mutation.Set_option.index","publicId":"Libtmux.Command.mutation.Set_option.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":945,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":945,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_option-index"},{"id":"Libtmux.Command.mutation.Set_option.name","publicId":"Libtmux.Command.mutation.Set_option.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":944,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":944,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_option-name"},{"id":"Libtmux.Command.mutation.Set_option.scope","publicId":"Libtmux.Command.mutation.Set_option.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":943,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":943,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_option-scope"},{"id":"Libtmux.Command.mutation.Set_option.value","publicId":"Libtmux.Command.mutation.Set_option.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":946,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Options.scalar;","source":{"file":"lib/libtmux.mli","line":946,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scalar","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_option-value"},{"id":"Libtmux.Command.mutation.Set_pane_title","publicId":"Libtmux.Command.mutation.Set_pane_title","name":"Set_pane_title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":906,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_pane_title of Pane.target * string","source":{"file":"lib/libtmux.mli","line":906,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Set_pane_title","slug":"libtmux-command-mutation-set_pane_title"},{"id":"Libtmux.Command.mutation.Swap_panes","publicId":"Libtmux.Command.mutation.Swap_panes","name":"Swap_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":925,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Swap_panes of Pane.target * Pane.target","source":{"file":"lib/libtmux.mli","line":925,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Swap_panes","slug":"libtmux-command-mutation-swap_panes"},{"id":"Libtmux.Command.mutation.Switch_client_at","publicId":"Libtmux.Command.mutation.Switch_client_at","name":"Switch_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":960,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }","source":{"file":"lib/libtmux.mli","line":960,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Switch_client_at","slug":"libtmux-command-mutation-switch_client_at"},{"id":"Libtmux.Command.mutation.Switch_client_at.client","publicId":"Libtmux.Command.mutation.Switch_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":961,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":961,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-switch_client_at-client"},{"id":"Libtmux.Command.mutation.Switch_client_at.session","publicId":"Libtmux.Command.mutation.Switch_client_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":962,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":962,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-switch_client_at-session"},{"id":"Libtmux.Command.mutation.Switch_client_at.update_environment","publicId":"Libtmux.Command.mutation.Switch_client_at.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":963,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"update_environment : bool;","source":{"file":"lib/libtmux.mli","line":963,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"bool","qualifiedName":"Libtmux.Command.update_environment","slug":"libtmux-command-mutation-switch_client_at-update_environment"},{"id":"Libtmux.Command.mutation.Unlink_window_at","publicId":"Libtmux.Command.mutation.Unlink_window_at","name":"Unlink_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":889,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }","source":{"file":"lib/libtmux.mli","line":889,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Unlink_window_at","slug":"libtmux-command-mutation-unlink_window_at"},{"id":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","publicId":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","name":"allow_kill","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":892,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"allow_kill : bool;","source":{"file":"lib/libtmux.mli","line":892,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"bool","qualifiedName":"Libtmux.Command.allow_kill","slug":"libtmux-command-mutation-unlink_window_at-allow_kill"},{"id":"Libtmux.Command.mutation.Unlink_window_at.index","publicId":"Libtmux.Command.mutation.Unlink_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":891,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":891,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-unlink_window_at-index"},{"id":"Libtmux.Command.mutation.Unlink_window_at.session","publicId":"Libtmux.Command.mutation.Unlink_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":890,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":890,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-unlink_window_at-session"},{"id":"Libtmux.Command.mutation.Unset_environment","publicId":"Libtmux.Command.mutation.Unset_environment","name":"Unset_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":940,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":940,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_environment","slug":"libtmux-command-mutation-unset_environment"},{"id":"Libtmux.Command.mutation.Unset_option","publicId":"Libtmux.Command.mutation.Unset_option","name":"Unset_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":949,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_option of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":949,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_option","slug":"libtmux-command-mutation-unset_option"},{"id":"Libtmux.Command.mutation.Zoom_pane","publicId":"Libtmux.Command.mutation.Zoom_pane","name":"Zoom_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":927,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Zoom_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":927,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Zoom_pane","slug":"libtmux-command-mutation-zoom_pane"},{"id":"Libtmux.Command.t","publicId":"Libtmux.Command.t","qualifiedName":"Libtmux.Command.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":973,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. "],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":973,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command","doc":{"summary":"An immutable description, validated by a backend before admission. Constructing or inspecting it performs no I/O."},"signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-command-t"},{"id":"Libtmux.Command.view","publicId":"Libtmux.Command.view","qualifiedName":"Libtmux.Command.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read-only inspection for transport adapters. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command","doc":{"summary":"Read-only inspection for transport adapters."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-command-view"},{"id":"Libtmux.Command.view:type","publicId":"Libtmux.Command.view:type","qualifiedName":"Libtmux.Command.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":977,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":977,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type _ view =\n | Capture: Snapshot.t view \n | Capture_text: {\n pane: Pane.t ;\n start: int ;\n end_: int ;\n scratch_dir: string } -> Captured_text.t view \n | Rename_window: Window.target * string -> unit view \n | Rename_session: Session.target * string -> unit view \n | Send_text: Pane.target * string -> unit view \n | Send_keys: Pane.target * Key.t list -> unit view \n | Wait_for: string -> unit view \n | Signal: string -> unit view \n | Capture_environment: Environment.scope * bool -> Environment.t view \n | Capture_options: Options.scope * bool -> Options.t view \n | Read_option: Options.scope * string * bool -> Options.value option view \n | Capture_hooks: Options.scope -> Options.t view \n | Read_hook: Options.scope * string * bool -> Options.value option view \n | Mutate: mutation -> unit view \n | Create_session:\n {\n name: string ;\n window_name: string option ;\n width: int ;\n height: int ;\n spawn: Spawn.t } -> Created.t view \n | Create_window:\n {\n session: Session.target ;\n index: int option ;\n name: string option ;\n spawn: Spawn.t } -> Created.t view \n | Split_pane:\n {\n pane: Pane.target ;\n direction: Geometry.direction ;\n size: Geometry.size option ;\n spawn: Spawn.t } -> Created.t view \n | Break_pane:\n {\n pane: Pane.target ;\n session: Session.target ;\n index: int ;\n name: string option } -> Created.t view ","params":[]}],"slug":"libtmux-command-view-type"},{"id":"Libtmux.Command.view:type.Break_pane","publicId":"Libtmux.Command.view:type.Break_pane","name":"Break_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1020,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1020,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Break_pane","slug":"libtmux-command-view-type-break_pane"},{"id":"Libtmux.Command.view:type.Break_pane.index","publicId":"Libtmux.Command.view:type.Break_pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1023,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":1023,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-break_pane-index"},{"id":"Libtmux.Command.view:type.Break_pane.name","publicId":"Libtmux.Command.view:type.Break_pane.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1024,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1024,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-break_pane-name"},{"id":"Libtmux.Command.view:type.Break_pane.pane","publicId":"Libtmux.Command.view:type.Break_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1021,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":1021,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-break_pane-pane"},{"id":"Libtmux.Command.view:type.Break_pane.session","publicId":"Libtmux.Command.view:type.Break_pane.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1022,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1022,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-break_pane-session"},{"id":"Libtmux.Command.view:type.Capture","publicId":"Libtmux.Command.view:type.Capture","name":"Capture","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":978,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture : Snapshot.t view","source":{"file":"lib/libtmux.mli","line":978,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"unit","qualifiedName":"Libtmux.Command.Capture","slug":"libtmux-command-view-type-capture"},{"id":"Libtmux.Command.view:type.Capture_environment","publicId":"Libtmux.Command.view:type.Capture_environment","name":"Capture_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":992,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_environment : Environment.scope * bool -> Environment.t view","source":{"file":"lib/libtmux.mli","line":992,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_environment","slug":"libtmux-command-view-type-capture_environment"},{"id":"Libtmux.Command.view:type.Capture_hooks","publicId":"Libtmux.Command.view:type.Capture_hooks","name":"Capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":995,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_hooks : Options.scope -> Options.t view","source":{"file":"lib/libtmux.mli","line":995,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_hooks","slug":"libtmux-command-view-type-capture_hooks"},{"id":"Libtmux.Command.view:type.Capture_options","publicId":"Libtmux.Command.view:type.Capture_options","name":"Capture_options","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":993,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_options : Options.scope * bool -> Options.t view","source":{"file":"lib/libtmux.mli","line":993,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_options","slug":"libtmux-command-view-type-capture_options"},{"id":"Libtmux.Command.view:type.Capture_text","publicId":"Libtmux.Command.view:type.Capture_text","name":"Capture_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":979,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view","source":{"file":"lib/libtmux.mli","line":979,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Capture_text","slug":"libtmux-command-view-type-capture_text"},{"id":"Libtmux.Command.view:type.Capture_text.end_","publicId":"Libtmux.Command.view:type.Capture_text.end_","name":"end_","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":982,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"end_ : int;","source":{"file":"lib/libtmux.mli","line":982,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.end_","slug":"libtmux-command-view-type-capture_text-end_"},{"id":"Libtmux.Command.view:type.Capture_text.pane","publicId":"Libtmux.Command.view:type.Capture_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":980,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.t;","source":{"file":"lib/libtmux.mli","line":980,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"Pane.t","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-capture_text-pane"},{"id":"Libtmux.Command.view:type.Capture_text.scratch_dir","publicId":"Libtmux.Command.view:type.Capture_text.scratch_dir","name":"scratch_dir","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":983,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scratch_dir : string;","source":{"file":"lib/libtmux.mli","line":983,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"string","qualifiedName":"Libtmux.Command.scratch_dir","slug":"libtmux-command-view-type-capture_text-scratch_dir"},{"id":"Libtmux.Command.view:type.Capture_text.start","publicId":"Libtmux.Command.view:type.Capture_text.start","name":"start","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":981,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"start : int;","source":{"file":"lib/libtmux.mli","line":981,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.start","slug":"libtmux-command-view-type-capture_text-start"},{"id":"Libtmux.Command.view:type.Create_session","publicId":"Libtmux.Command.view:type.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":998,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":998,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_session","slug":"libtmux-command-view-type-create_session"},{"id":"Libtmux.Command.view:type.Create_session.height","publicId":"Libtmux.Command.view:type.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1002,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":1002,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-view-type-create_session-height"},{"id":"Libtmux.Command.view:type.Create_session.name","publicId":"Libtmux.Command.view:type.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":999,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":999,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_session-name"},{"id":"Libtmux.Command.view:type.Create_session.spawn","publicId":"Libtmux.Command.view:type.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1003,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1003,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_session-spawn"},{"id":"Libtmux.Command.view:type.Create_session.width","publicId":"Libtmux.Command.view:type.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1001,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":1001,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-view-type-create_session-width"},{"id":"Libtmux.Command.view:type.Create_session.window_name","publicId":"Libtmux.Command.view:type.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1000,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string option;","source":{"file":"lib/libtmux.mli","line":1000,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string option","qualifiedName":"Libtmux.Command.window_name","slug":"libtmux-command-view-type-create_session-window_name"},{"id":"Libtmux.Command.view:type.Create_window","publicId":"Libtmux.Command.view:type.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1006,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1006,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_window","slug":"libtmux-command-view-type-create_window"},{"id":"Libtmux.Command.view:type.Create_window.index","publicId":"Libtmux.Command.view:type.Create_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1008,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":1008,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-create_window-index"},{"id":"Libtmux.Command.view:type.Create_window.name","publicId":"Libtmux.Command.view:type.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1009,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1009,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_window-name"},{"id":"Libtmux.Command.view:type.Create_window.session","publicId":"Libtmux.Command.view:type.Create_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1007,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1007,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-create_window-session"},{"id":"Libtmux.Command.view:type.Create_window.spawn","publicId":"Libtmux.Command.view:type.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1010,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1010,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_window-spawn"},{"id":"Libtmux.Command.view:type.Mutate","publicId":"Libtmux.Command.view:type.Mutate","name":"Mutate","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":997,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mutate : mutation -> unit view","source":{"file":"lib/libtmux.mli","line":997,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Mutate","slug":"libtmux-command-view-type-mutate"},{"id":"Libtmux.Command.view:type.Read_hook","publicId":"Libtmux.Command.view:type.Read_hook","name":"Read_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":996,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_hook : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":996,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_hook","slug":"libtmux-command-view-type-read_hook"},{"id":"Libtmux.Command.view:type.Read_option","publicId":"Libtmux.Command.view:type.Read_option","name":"Read_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":994,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_option : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":994,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_option","slug":"libtmux-command-view-type-read_option"},{"id":"Libtmux.Command.view:type.Rename_session","publicId":"Libtmux.Command.view:type.Rename_session","name":"Rename_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":987,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_session : Session.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":987,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_session","slug":"libtmux-command-view-type-rename_session"},{"id":"Libtmux.Command.view:type.Rename_window","publicId":"Libtmux.Command.view:type.Rename_window","name":"Rename_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":986,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_window : Window.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":986,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_window","slug":"libtmux-command-view-type-rename_window"},{"id":"Libtmux.Command.view:type.Send_keys","publicId":"Libtmux.Command.view:type.Send_keys","name":"Send_keys","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":989,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_keys : Pane.target * Key.t list -> unit view","source":{"file":"lib/libtmux.mli","line":989,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_keys","slug":"libtmux-command-view-type-send_keys"},{"id":"Libtmux.Command.view:type.Send_text","publicId":"Libtmux.Command.view:type.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":988,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text : Pane.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":988,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_text","slug":"libtmux-command-view-type-send_text"},{"id":"Libtmux.Command.view:type.Signal","publicId":"Libtmux.Command.view:type.Signal","name":"Signal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":991,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Signal : string -> unit view","source":{"file":"lib/libtmux.mli","line":991,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Signal","slug":"libtmux-command-view-type-signal"},{"id":"Libtmux.Command.view:type.Split_pane","publicId":"Libtmux.Command.view:type.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Split_pane","slug":"libtmux-command-view-type-split_pane"},{"id":"Libtmux.Command.view:type.Split_pane.direction","publicId":"Libtmux.Command.view:type.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1015,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":1015,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-view-type-split_pane-direction"},{"id":"Libtmux.Command.view:type.Split_pane.pane","publicId":"Libtmux.Command.view:type.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1014,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":1014,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-split_pane-pane"},{"id":"Libtmux.Command.view:type.Split_pane.size","publicId":"Libtmux.Command.view:type.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1016,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":1016,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-view-type-split_pane-size"},{"id":"Libtmux.Command.view:type.Split_pane.spawn","publicId":"Libtmux.Command.view:type.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1017,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1017,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-split_pane-spawn"},{"id":"Libtmux.Command.view:type.Wait_for","publicId":"Libtmux.Command.view:type.Wait_for","name":"Wait_for","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":990,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wait_for : string -> unit view","source":{"file":"lib/libtmux.mli","line":990,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Wait_for","slug":"libtmux-command-view-type-wait_for"},{"id":"Libtmux.Created","publicId":"Libtmux.Created","qualifiedName":"Libtmux.Created","name":"Created","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":779,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" IDs reported by a successful creation reply. Only the requested kind is\n newly created; the other fields can describe existing containers. "],"declarations":[{"kind":"module","text":"module Created : sig\n type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }\n (** IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. *)\nend","source":{"file":"lib/libtmux.mli","line":779,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"IDs reported by a successful creation reply. Only the requested kind is newly created; the other fields can describe existing containers."},"slug":"libtmux-created"},{"id":"Libtmux.Created.t","publicId":"Libtmux.Created.t","qualifiedName":"Libtmux.Created.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. "],"declarations":[{"kind":"struct","text":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }","source":{"file":"lib/libtmux.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Created","doc":{"summary":"IDs returned by the creation command, without a second capture. Indexes describe the creation response and may change afterward. Only the resource requested by the command is newly created: splitting a pane does not create the reported session or window."},"signatures":[{"raw":"type t =\n {\n session: Session.target ;\n window: Window.target ;\n pane: Pane.target ;\n window_index: int ;\n pane_index: int }","params":[]}],"slug":"libtmux-created-t"},{"id":"Libtmux.Created.t.pane","publicId":"Libtmux.Created.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":783,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":783,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Created.t","type":"Pane.target","qualifiedName":"Libtmux.Created.pane","slug":"libtmux-created-t-pane"},{"id":"Libtmux.Created.t.pane_index","publicId":"Libtmux.Created.t.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":785,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"lib/libtmux.mli","line":785,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.pane_index","slug":"libtmux-created-t-pane_index"},{"id":"Libtmux.Created.t.session","publicId":"Libtmux.Created.t.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":781,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":781,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Created.t","type":"Session.target","qualifiedName":"Libtmux.Created.session","slug":"libtmux-created-t-session"},{"id":"Libtmux.Created.t.window","publicId":"Libtmux.Created.t.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":782,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":782,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Created.t","type":"Window.target","qualifiedName":"Libtmux.Created.window","slug":"libtmux-created-t-window"},{"id":"Libtmux.Created.t.window_index","publicId":"Libtmux.Created.t.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":784,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"lib/libtmux.mli","line":784,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.window_index","slug":"libtmux-created-t-window_index"},{"id":"Libtmux.Endpoint","publicId":"Libtmux.Endpoint","qualifiedName":"Libtmux.Endpoint","name":"Endpoint","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" An explicit socket description. Constructing an endpoint neither reads the\n environment nor starts a daemon. {!Source.t} adds the observed daemon and\n connection generation. "],"declarations":[{"kind":"module","text":"module Endpoint : sig\n type t\n (** An explicit socket description, independent of the environment. *)\n\n type kind = Named_socket of string | Socket_path of string\n\n val named_socket : string -> t\n (** [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. *)\n\n val socket_path : string -> t\n (** [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. *)\n\n val kind : t -> kind\n\n val equal : t -> t -> bool\n (** Equality compares descriptions, not server instances or resolved paths. *)\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"An explicit socket description. Constructing an endpoint neither reads the environment nor starts a daemon. {!Source.t} adds the observed daemon and connection generation."},"slug":"libtmux-endpoint"},{"id":"Libtmux.Endpoint.equal","publicId":"Libtmux.Endpoint.equal","qualifiedName":"Libtmux.Endpoint.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":47,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Equality compares descriptions, not server instances or resolved paths. "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":47,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"Equality compares descriptions, not server instances or resolved paths."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-endpoint-equal"},{"id":"Libtmux.Endpoint.kind","publicId":"Libtmux.Endpoint.kind","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":45,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : t -> kind","source":{"file":"lib/libtmux.mli","line":45,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val kind : t -> kind","params":[{"name":"arg1","type":"t"}],"returns":"kind"}],"slug":"libtmux-endpoint-kind"},{"id":"Libtmux.Endpoint.kind:type","publicId":"Libtmux.Endpoint.kind:type","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type kind = Named_socket of string | Socket_path of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"type kind =\n | Named_socket of string \n | Socket_path of string ","params":[]}],"slug":"libtmux-endpoint-kind-type"},{"id":"Libtmux.Endpoint.kind:type.Named_socket","publicId":"Libtmux.Endpoint.kind:type.Named_socket","name":"Named_socket","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Named_socket of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Named_socket","slug":"libtmux-endpoint-kind-type-named_socket"},{"id":"Libtmux.Endpoint.kind:type.Socket_path","publicId":"Libtmux.Endpoint.kind:type.Socket_path","name":"Socket_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Socket_path of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Socket_path","slug":"libtmux-endpoint-kind-type-socket_path"},{"id":"Libtmux.Endpoint.named_socket","publicId":"Libtmux.Endpoint.named_socket","qualifiedName":"Libtmux.Endpoint.named_socket","name":"named_socket","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. "],"declarations":[{"kind":"function","text":"val named_socket : string -> t","source":{"file":"lib/libtmux.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`named_socket name` describes tmux's `-L name` endpoint. Raises `Invalid_argument` if `name` is empty or contains NUL or `/`."},"signatures":[{"raw":"val named_socket : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-named_socket"},{"id":"Libtmux.Endpoint.pp","publicId":"Libtmux.Endpoint.pp","qualifiedName":"Libtmux.Endpoint.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-endpoint-pp"},{"id":"Libtmux.Endpoint.socket_path","publicId":"Libtmux.Endpoint.socket_path","qualifiedName":"Libtmux.Endpoint.socket_path","name":"socket_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. "],"declarations":[{"kind":"function","text":"val socket_path : string -> t","source":{"file":"lib/libtmux.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`socket_path path` describes an absolute `-S path` endpoint. It does not check existence or resolve symbolic links. Raises `Invalid_argument` if `path` is relative, empty or contains NUL."},"signatures":[{"raw":"val socket_path : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-socket_path"},{"id":"Libtmux.Endpoint.t","publicId":"Libtmux.Endpoint.t","qualifiedName":"Libtmux.Endpoint.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" An explicit socket description, independent of the environment. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"An explicit socket description, independent of the environment."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-endpoint-t"},{"id":"Libtmux.Environment","publicId":"Libtmux.Environment","qualifiedName":"Libtmux.Environment","name":"Environment","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":793,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Environment : sig\n type scope = Global | Session of Session.target\n type value = Value of string | Removed\n type entry = { name : string; value : value }\n\n type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. *)\n\n val lookup : t -> string -> value option\n (** No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. *)\nend","source":{"file":"lib/libtmux.mli","line":793,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-environment"},{"id":"Libtmux.Environment.entry","publicId":"Libtmux.Environment.entry","qualifiedName":"Libtmux.Environment.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { name : string; value : value }","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type entry = {\n name: string ;\n value: value }","params":[]}],"slug":"libtmux-environment-entry"},{"id":"Libtmux.Environment.entry.name","publicId":"Libtmux.Environment.entry.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.entry","type":"string","qualifiedName":"Libtmux.Environment.name","slug":"libtmux-environment-entry-name"},{"id":"Libtmux.Environment.entry.value","publicId":"Libtmux.Environment.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.entry","type":"value","qualifiedName":"Libtmux.Environment.value","slug":"libtmux-environment-entry-value"},{"id":"Libtmux.Environment.lookup","publicId":"Libtmux.Environment.lookup","qualifiedName":"Libtmux.Environment.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":810,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> value option","source":{"file":"lib/libtmux.mli","line":810,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment","doc":{"summary":"No I/O. `None` means absent from the selected table and visibility. `Removed` masks a global value; `Value \"\"` is an explicitly empty value. Names must be ASCII identifiers; values preserve non-NUL bytes."},"signatures":[{"raw":"val lookup : t -> string -> value option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"value option"}],"slug":"libtmux-environment-lookup"},{"id":"Libtmux.Environment.scope","publicId":"Libtmux.Environment.scope","qualifiedName":"Libtmux.Environment.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Global | Session of Session.target","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type scope =\n | Global \n | Session of Session.target ","params":[]}],"slug":"libtmux-environment-scope"},{"id":"Libtmux.Environment.scope.Global","publicId":"Libtmux.Environment.scope.Global","name":"Global","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Global","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.scope","variant":"unit","qualifiedName":"Libtmux.Environment.Global","slug":"libtmux-environment-scope-global"},{"id":"Libtmux.Environment.scope.Session","publicId":"Libtmux.Environment.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.scope","variant":"tuple","qualifiedName":"Libtmux.Environment.Session","slug":"libtmux-environment-scope-session"},{"id":"Libtmux.Environment.t","publicId":"Libtmux.Environment.t","qualifiedName":"Libtmux.Environment.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment","doc":{"summary":"One captured environment table, in tmux order. `hidden` selects hidden variables exclusively. Session tables contain local entries, including removal markers; they do not merge the global environment."},"signatures":[{"raw":"type t =\n {\n source: Source.t ;\n scope: scope ;\n hidden: bool ;\n entries: entry Iarray.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-environment-t"},{"id":"Libtmux.Environment.t.entries","publicId":"Libtmux.Environment.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":802,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":802,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Environment.entries","slug":"libtmux-environment-t-entries"},{"id":"Libtmux.Environment.t.finished_at_ns","publicId":"Libtmux.Environment.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":804,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":804,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.finished_at_ns","slug":"libtmux-environment-t-finished_at_ns"},{"id":"Libtmux.Environment.t.hidden","publicId":"Libtmux.Environment.t.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":801,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":801,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.t","type":"bool","qualifiedName":"Libtmux.Environment.hidden","slug":"libtmux-environment-t-hidden"},{"id":"Libtmux.Environment.t.scope","publicId":"Libtmux.Environment.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":800,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":800,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.t","type":"scope","qualifiedName":"Libtmux.Environment.scope","slug":"libtmux-environment-t-scope"},{"id":"Libtmux.Environment.t.source","publicId":"Libtmux.Environment.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":799,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":799,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.t","type":"Source.t","qualifiedName":"Libtmux.Environment.source","slug":"libtmux-environment-t-source"},{"id":"Libtmux.Environment.t.started_at_ns","publicId":"Libtmux.Environment.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":803,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":803,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.started_at_ns","slug":"libtmux-environment-t-started_at_ns"},{"id":"Libtmux.Environment.value","publicId":"Libtmux.Environment.value","qualifiedName":"Libtmux.Environment.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Value of string | Removed","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type value =\n | Value of string \n | Removed ","params":[]}],"slug":"libtmux-environment-value"},{"id":"Libtmux.Environment.value.Removed","publicId":"Libtmux.Environment.value.Removed","name":"Removed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Removed","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.value","variant":"unit","qualifiedName":"Libtmux.Environment.Removed","slug":"libtmux-environment-value-removed"},{"id":"Libtmux.Environment.value.Value","publicId":"Libtmux.Environment.value.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Value of string","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.value","variant":"tuple","qualifiedName":"Libtmux.Environment.Value","slug":"libtmux-environment-value-value"},{"id":"Libtmux.Error","publicId":"Libtmux.Error","qualifiedName":"Libtmux.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Expected input, capture, capability and transport failures. Cancellation\n belongs to the chosen backend and is not converted into an ordinary error.\n"],"declarations":[{"kind":"module","text":"module Error : sig\n type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Expected input, capture, capability and transport failures. Cancellation belongs to the chosen backend and is not converted into an ordinary error."},"slug":"libtmux-error"},{"id":"Libtmux.Error.pp","publicId":"Libtmux.Error.pp","qualifiedName":"Libtmux.Error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":78,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":78,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-error-pp"},{"id":"Libtmux.Error.t","publicId":"Libtmux.Error.t","qualifiedName":"Libtmux.Error.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error","signatures":[{"raw":"type t =\n | Invalid_input of string \n | Malformed_data of string \n | Capture_raced of string \n | Unsupported_version of string \n | Unsupported_binding of string \n | Unsupported_capture_hooks \n | Unsupported of string \n | Closed \n | Disconnected of string \n | Filesystem of {\n operation: string ;\n message: string } \n | Wrong_domain \n | Busy \n | Capacity of {\n resource: string ;\n limit: int } \n | Stale_target \n | No_such_entity of {\n kind: string ;\n id: string } \n | Command_failed of {\n command: string ;\n message: string } \n | Deadline_exceeded \n | Not_started \n | Outcome_unknown of string ","params":[]}],"slug":"libtmux-error-t"},{"id":"Libtmux.Error.t.Busy","publicId":"Libtmux.Error.t.Busy","name":"Busy","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Busy","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Busy","slug":"libtmux-error-t-busy"},{"id":"Libtmux.Error.t.Capacity","publicId":"Libtmux.Error.t.Capacity","name":"Capacity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capacity of { resource : string; limit : int }","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Capacity","slug":"libtmux-error-t-capacity"},{"id":"Libtmux.Error.t.Capacity.limit","publicId":"Libtmux.Error.t.Capacity.limit","name":"limit","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"limit : int","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.Capacity","type":"int","qualifiedName":"Libtmux.Error.limit","slug":"libtmux-error-t-capacity-limit"},{"id":"Libtmux.Error.t.Capacity.resource","publicId":"Libtmux.Error.t.Capacity.resource","name":"resource","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"resource : string;","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.Capacity","type":"string","qualifiedName":"Libtmux.Error.resource","slug":"libtmux-error-t-capacity-resource"},{"id":"Libtmux.Error.t.Capture_raced","publicId":"Libtmux.Error.t.Capture_raced","name":"Capture_raced","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_raced of string","source":{"file":"lib/libtmux.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Capture_raced","slug":"libtmux-error-t-capture_raced"},{"id":"Libtmux.Error.t.Closed","publicId":"Libtmux.Error.t.Closed","name":"Closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Closed","source":{"file":"lib/libtmux.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Closed","slug":"libtmux-error-t-closed"},{"id":"Libtmux.Error.t.Command_failed","publicId":"Libtmux.Error.t.Command_failed","name":"Command_failed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command_failed of { command : string; message : string }","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Command_failed","slug":"libtmux-error-t-command_failed"},{"id":"Libtmux.Error.t.Command_failed.command","publicId":"Libtmux.Error.t.Command_failed.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : string;","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.command","slug":"libtmux-error-t-command_failed-command"},{"id":"Libtmux.Error.t.Command_failed.message","publicId":"Libtmux.Error.t.Command_failed.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-command_failed-message"},{"id":"Libtmux.Error.t.Deadline_exceeded","publicId":"Libtmux.Error.t.Deadline_exceeded","name":"Deadline_exceeded","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Deadline_exceeded","source":{"file":"lib/libtmux.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Deadline_exceeded","slug":"libtmux-error-t-deadline_exceeded"},{"id":"Libtmux.Error.t.Disconnected","publicId":"Libtmux.Error.t.Disconnected","name":"Disconnected","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Disconnected of string","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Disconnected","slug":"libtmux-error-t-disconnected"},{"id":"Libtmux.Error.t.Filesystem","publicId":"Libtmux.Error.t.Filesystem","name":"Filesystem","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Filesystem of { operation : string; message : string }","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Filesystem","slug":"libtmux-error-t-filesystem"},{"id":"Libtmux.Error.t.Filesystem.message","publicId":"Libtmux.Error.t.Filesystem.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-filesystem-message"},{"id":"Libtmux.Error.t.Filesystem.operation","publicId":"Libtmux.Error.t.Filesystem.operation","name":"operation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation : string;","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.operation","slug":"libtmux-error-t-filesystem-operation"},{"id":"Libtmux.Error.t.Invalid_input","publicId":"Libtmux.Error.t.Invalid_input","name":"Invalid_input","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Invalid_input of string","source":{"file":"lib/libtmux.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Invalid_input","slug":"libtmux-error-t-invalid_input"},{"id":"Libtmux.Error.t.Malformed_data","publicId":"Libtmux.Error.t.Malformed_data","name":"Malformed_data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Malformed_data of string","source":{"file":"lib/libtmux.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Malformed_data","slug":"libtmux-error-t-malformed_data"},{"id":"Libtmux.Error.t.No_such_entity","publicId":"Libtmux.Error.t.No_such_entity","name":"No_such_entity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| No_such_entity of { kind : string; id : string }","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.No_such_entity","slug":"libtmux-error-t-no_such_entity"},{"id":"Libtmux.Error.t.No_such_entity.id","publicId":"Libtmux.Error.t.No_such_entity.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : string","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.id","slug":"libtmux-error-t-no_such_entity-id"},{"id":"Libtmux.Error.t.No_such_entity.kind","publicId":"Libtmux.Error.t.No_such_entity.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : string;","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.kind","slug":"libtmux-error-t-no_such_entity-kind"},{"id":"Libtmux.Error.t.Not_started","publicId":"Libtmux.Error.t.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"lib/libtmux.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Not_started","slug":"libtmux-error-t-not_started"},{"id":"Libtmux.Error.t.Outcome_unknown","publicId":"Libtmux.Error.t.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Outcome_unknown","slug":"libtmux-error-t-outcome_unknown"},{"id":"Libtmux.Error.t.Stale_target","publicId":"Libtmux.Error.t.Stale_target","name":"Stale_target","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale_target","source":{"file":"lib/libtmux.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Stale_target","slug":"libtmux-error-t-stale_target"},{"id":"Libtmux.Error.t.Unsupported","publicId":"Libtmux.Error.t.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported of string","source":{"file":"lib/libtmux.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported","slug":"libtmux-error-t-unsupported"},{"id":"Libtmux.Error.t.Unsupported_binding","publicId":"Libtmux.Error.t.Unsupported_binding","name":"Unsupported_binding","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_binding of string","source":{"file":"lib/libtmux.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_binding","slug":"libtmux-error-t-unsupported_binding"},{"id":"Libtmux.Error.t.Unsupported_capture_hooks","publicId":"Libtmux.Error.t.Unsupported_capture_hooks","name":"Unsupported_capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_capture_hooks","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Unsupported_capture_hooks","slug":"libtmux-error-t-unsupported_capture_hooks"},{"id":"Libtmux.Error.t.Unsupported_version","publicId":"Libtmux.Error.t.Unsupported_version","name":"Unsupported_version","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_version of string","source":{"file":"lib/libtmux.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_version","slug":"libtmux-error-t-unsupported_version"},{"id":"Libtmux.Error.t.Wrong_domain","publicId":"Libtmux.Error.t.Wrong_domain","name":"Wrong_domain","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_domain","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Wrong_domain","slug":"libtmux-error-t-wrong_domain"},{"id":"Libtmux.Expr","publicId":"Libtmux.Expr","qualifiedName":"Libtmux.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":574,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Inspectable predicates whose entity and operand types are checked by the\n compiler. Combine native closures separately with [Seq.filter]. Evaluation\n follows captured relationships without acquisition or hidden caches. "],"declarations":[{"kind":"module","text":"module Expr : sig\n type 'entity t\n\n val all : 'a t list -> 'a t\n (** Boolean conjunction; the empty conjunction is true. *)\n\n val any : 'a t list -> 'a t\n (** Boolean disjunction; the empty disjunction is false. *)\n\n val not_ : 'a t -> 'a t\n\n module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end\n\n module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end\n\n module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end\n\n module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end\n\n val compile : 'a t -> 'a -> bool\n (** Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n *)\n\n val pp : Format.formatter -> 'a t -> unit\n val describe : 'a t -> string\n\n type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison\n\n type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view\n\n val view : 'a t -> 'a view\n (** Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. *)\nend","source":{"file":"lib/libtmux.mli","line":574,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Inspectable predicates whose entity and operand types are checked by the compiler. Combine native closures separately with `Seq.filter`. Evaluation follows captured relationships without acquisition or hidden caches."},"slug":"libtmux-expr"},{"id":"Libtmux.Expr.Bool","publicId":"Libtmux.Expr.Bool","qualifiedName":"Libtmux.Expr.Bool","name":"Bool","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":585,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":585,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-bool"},{"id":"Libtmux.Expr.Bool.equal","publicId":"Libtmux.Expr.Bool.equal","qualifiedName":"Libtmux.Expr.Bool.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":586,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, bool) Field.t -> bool -> 'a t","source":{"file":"lib/libtmux.mli","line":586,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val equal : ('a, bool) Field.t -> bool -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"},{"name":"arg2","type":"bool"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-equal"},{"id":"Libtmux.Expr.Bool.is_false","publicId":"Libtmux.Expr.Bool.is_false","qualifiedName":"Libtmux.Expr.Bool.is_false","name":"is_false","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":588,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_false : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":588,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_false : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_false"},{"id":"Libtmux.Expr.Bool.is_true","publicId":"Libtmux.Expr.Bool.is_true","qualifiedName":"Libtmux.Expr.Bool.is_true","name":"is_true","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_true : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_true : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_true"},{"id":"Libtmux.Expr.Int","publicId":"Libtmux.Expr.Int","qualifiedName":"Libtmux.Expr.Int","name":"Int","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":591,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":591,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-int"},{"id":"Libtmux.Expr.Int.equal","publicId":"Libtmux.Expr.Int.equal","qualifiedName":"Libtmux.Expr.Int.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":592,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":592,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val equal : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-equal"},{"id":"Libtmux.Expr.Int.ge","publicId":"Libtmux.Expr.Int.ge","qualifiedName":"Libtmux.Expr.Int.ge","name":"ge","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ge : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val ge : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-ge"},{"id":"Libtmux.Expr.Int.gt","publicId":"Libtmux.Expr.Int.gt","qualifiedName":"Libtmux.Expr.Int.gt","name":"gt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":595,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val gt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":595,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val gt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-gt"},{"id":"Libtmux.Expr.Int.is_in","publicId":"Libtmux.Expr.Int.is_in","qualifiedName":"Libtmux.Expr.Int.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_in : ('a, int) Field.t -> int list -> 'a t","source":{"file":"lib/libtmux.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val is_in : ('a, int) Field.t -> int list -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int list"}],"returns":"'a t"}],"slug":"libtmux-expr-int-is_in"},{"id":"Libtmux.Expr.Int.le","publicId":"Libtmux.Expr.Int.le","qualifiedName":"Libtmux.Expr.Int.le","name":"le","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":594,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val le : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":594,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val le : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-le"},{"id":"Libtmux.Expr.Int.lt","publicId":"Libtmux.Expr.Int.lt","qualifiedName":"Libtmux.Expr.Int.lt","name":"lt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":593,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val lt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":593,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val lt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-lt"},{"id":"Libtmux.Expr.Rel","publicId":"Libtmux.Expr.Rel","qualifiedName":"Libtmux.Expr.Rel","name":"Rel","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":611,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":611,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-rel"},{"id":"Libtmux.Expr.Rel.all","publicId":"Libtmux.Expr.Rel.all","qualifiedName":"Libtmux.Expr.Rel.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":613,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":613,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-all"},{"id":"Libtmux.Expr.Rel.any","publicId":"Libtmux.Expr.Rel.any","qualifiedName":"Libtmux.Expr.Rel.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-any"},{"id":"Libtmux.Expr.Rel.exists","publicId":"Libtmux.Expr.Rel.exists","qualifiedName":"Libtmux.Expr.Rel.exists","name":"exists","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-exists"},{"id":"Libtmux.Expr.Rel.is","publicId":"Libtmux.Expr.Rel.is","qualifiedName":"Libtmux.Expr.Rel.is","name":"is","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":619,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":619,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.One.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is"},{"id":"Libtmux.Expr.Rel.is_absent","publicId":"Libtmux.Expr.Rel.is_absent","qualifiedName":"Libtmux.Expr.Rel.is_absent","name":"is_absent","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","source":{"file":"lib/libtmux.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is_absent"},{"id":"Libtmux.Expr.Rel.none","publicId":"Libtmux.Expr.Rel.none","qualifiedName":"Libtmux.Expr.Rel.none","name":"none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":615,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. "],"declarations":[{"kind":"function","text":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":615,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Rel","doc":{"summary":"On empty relations, `any` is false; `all` and `none` are true. One child must satisfy the complete nested expression."},"signatures":[{"raw":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-none"},{"id":"Libtmux.Expr.Text","publicId":"Libtmux.Expr.Text","qualifiedName":"Libtmux.Expr.Text","name":"Text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end","source":{"file":"lib/libtmux.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-text"},{"id":"Libtmux.Expr.Text.contains","publicId":"Libtmux.Expr.Text.contains","qualifiedName":"Libtmux.Expr.Text.contains","name":"contains","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":604,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val contains : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":604,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val contains : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-contains"},{"id":"Libtmux.Expr.Text.ends_with","publicId":"Libtmux.Expr.Text.ends_with","qualifiedName":"Libtmux.Expr.Text.ends_with","name":"ends_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":603,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ends_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":603,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val ends_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-ends_with"},{"id":"Libtmux.Expr.Text.equal","publicId":"Libtmux.Expr.Text.equal","qualifiedName":"Libtmux.Expr.Text.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":601,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":601,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val equal : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-equal"},{"id":"Libtmux.Expr.Text.is_in","publicId":"Libtmux.Expr.Text.is_in","qualifiedName":"Libtmux.Expr.Text.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":606,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. "],"declarations":[{"kind":"function","text":"val is_in : ('a, string) Field.t -> string list -> 'a t","source":{"file":"lib/libtmux.mli","line":606,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Text","doc":{"summary":"Comparisons use exact bytes, without case folding or normalization. The empty substring matches every string."},"signatures":[{"raw":"val is_in : ('a, string) Field.t -> string list -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string list"}],"returns":"'a t"}],"slug":"libtmux-expr-text-is_in"},{"id":"Libtmux.Expr.Text.starts_with","publicId":"Libtmux.Expr.Text.starts_with","qualifiedName":"Libtmux.Expr.Text.starts_with","name":"starts_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val starts_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val starts_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-starts_with"},{"id":"Libtmux.Expr.all","publicId":"Libtmux.Expr.all","qualifiedName":"Libtmux.Expr.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":577,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Boolean conjunction; the empty conjunction is true. "],"declarations":[{"kind":"function","text":"val all : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":577,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean conjunction; the empty conjunction is true."},"signatures":[{"raw":"val all : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-all"},{"id":"Libtmux.Expr.any","publicId":"Libtmux.Expr.any","qualifiedName":"Libtmux.Expr.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":580,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Boolean disjunction; the empty disjunction is false. "],"declarations":[{"kind":"function","text":"val any : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":580,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean disjunction; the empty disjunction is false."},"signatures":[{"raw":"val any : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-any"},{"id":"Libtmux.Expr.comparison","publicId":"Libtmux.Expr.comparison","qualifiedName":"Libtmux.Expr.comparison","name":"comparison","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":631,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":631,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type _ comparison =\n | Bool_equal: bool -> bool comparison \n | Int_equal: int -> int comparison \n | Int_lt: int -> int comparison \n | Int_le: int -> int comparison \n | Int_gt: int -> int comparison \n | Int_ge: int -> int comparison \n | Int_in: int list -> int comparison \n | Text_equal: string -> string comparison \n | Text_starts_with: string -> string comparison \n | Text_ends_with: string -> string comparison \n | Text_contains: string -> string comparison \n | Text_in: string list -> string comparison ","params":[]}],"slug":"libtmux-expr-comparison"},{"id":"Libtmux.Expr.comparison.Bool_equal","publicId":"Libtmux.Expr.comparison.Bool_equal","name":"Bool_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":632,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool_equal : bool -> bool comparison","source":{"file":"lib/libtmux.mli","line":632,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Bool_equal","slug":"libtmux-expr-comparison-bool_equal"},{"id":"Libtmux.Expr.comparison.Int_equal","publicId":"Libtmux.Expr.comparison.Int_equal","name":"Int_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_equal : int -> int comparison","source":{"file":"lib/libtmux.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_equal","slug":"libtmux-expr-comparison-int_equal"},{"id":"Libtmux.Expr.comparison.Int_ge","publicId":"Libtmux.Expr.comparison.Int_ge","name":"Int_ge","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":637,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_ge : int -> int comparison","source":{"file":"lib/libtmux.mli","line":637,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_ge","slug":"libtmux-expr-comparison-int_ge"},{"id":"Libtmux.Expr.comparison.Int_gt","publicId":"Libtmux.Expr.comparison.Int_gt","name":"Int_gt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":636,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_gt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":636,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_gt","slug":"libtmux-expr-comparison-int_gt"},{"id":"Libtmux.Expr.comparison.Int_in","publicId":"Libtmux.Expr.comparison.Int_in","name":"Int_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":638,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_in : int list -> int comparison","source":{"file":"lib/libtmux.mli","line":638,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_in","slug":"libtmux-expr-comparison-int_in"},{"id":"Libtmux.Expr.comparison.Int_le","publicId":"Libtmux.Expr.comparison.Int_le","name":"Int_le","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_le : int -> int comparison","source":{"file":"lib/libtmux.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_le","slug":"libtmux-expr-comparison-int_le"},{"id":"Libtmux.Expr.comparison.Int_lt","publicId":"Libtmux.Expr.comparison.Int_lt","name":"Int_lt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":634,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_lt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":634,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_lt","slug":"libtmux-expr-comparison-int_lt"},{"id":"Libtmux.Expr.comparison.Text_contains","publicId":"Libtmux.Expr.comparison.Text_contains","name":"Text_contains","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":642,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_contains : string -> string comparison","source":{"file":"lib/libtmux.mli","line":642,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_contains","slug":"libtmux-expr-comparison-text_contains"},{"id":"Libtmux.Expr.comparison.Text_ends_with","publicId":"Libtmux.Expr.comparison.Text_ends_with","name":"Text_ends_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":641,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_ends_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":641,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_ends_with","slug":"libtmux-expr-comparison-text_ends_with"},{"id":"Libtmux.Expr.comparison.Text_equal","publicId":"Libtmux.Expr.comparison.Text_equal","name":"Text_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":639,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_equal : string -> string comparison","source":{"file":"lib/libtmux.mli","line":639,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_equal","slug":"libtmux-expr-comparison-text_equal"},{"id":"Libtmux.Expr.comparison.Text_in","publicId":"Libtmux.Expr.comparison.Text_in","name":"Text_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":643,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":643,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_in","slug":"libtmux-expr-comparison-text_in"},{"id":"Libtmux.Expr.comparison.Text_starts_with","publicId":"Libtmux.Expr.comparison.Text_starts_with","name":"Text_starts_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":640,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_starts_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":640,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_starts_with","slug":"libtmux-expr-comparison-text_starts_with"},{"id":"Libtmux.Expr.compile","publicId":"Libtmux.Expr.compile","qualifiedName":"Libtmux.Expr.compile","name":"compile","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n "],"declarations":[{"kind":"function","text":"val compile : 'a t -> 'a -> bool","source":{"file":"lib/libtmux.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","doc":{"summary":"Prepare a reusable predicate. Compilation and evaluation perform no I/O."},"signatures":[{"raw":"val compile : 'a t -> 'a -> bool","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"'a"}],"returns":"bool"}],"slug":"libtmux-expr-compile"},{"id":"Libtmux.Expr.describe","publicId":"Libtmux.Expr.describe","qualifiedName":"Libtmux.Expr.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : 'a t -> string","source":{"file":"lib/libtmux.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val describe : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-expr-describe"},{"id":"Libtmux.Expr.not_","publicId":"Libtmux.Expr.not_","qualifiedName":"Libtmux.Expr.not_","name":"not_","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":583,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val not_ : 'a t -> 'a t","source":{"file":"lib/libtmux.mli","line":583,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val not_ : 'a t -> 'a t","params":[{"name":"arg1","type":"'a t"}],"returns":"'a t"}],"slug":"libtmux-expr-not_"},{"id":"Libtmux.Expr.pp","publicId":"Libtmux.Expr.pp","qualifiedName":"Libtmux.Expr.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":628,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> 'a t -> unit","source":{"file":"lib/libtmux.mli","line":628,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val pp : Format.formatter -> 'a t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"'a t"}],"returns":"unit"}],"slug":"libtmux-expr-pp"},{"id":"Libtmux.Expr.t","publicId":"Libtmux.Expr.t","qualifiedName":"Libtmux.Expr.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'entity t","source":{"file":"lib/libtmux.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'entity t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-expr-t"},{"id":"Libtmux.Expr.view","publicId":"Libtmux.Expr.view","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":657,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":657,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","doc":{"summary":"Typed read-only inspection for codecs and planners. A view cannot add custom accessors or closures to an expression."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-expr-view"},{"id":"Libtmux.Expr.view:type","publicId":"Libtmux.Expr.view:type","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'a view =\n | Compare: ('a, 'v) Field.t * 'v comparison -> 'a view \n | All of 'a t list \n | Any of 'a t list \n | Not of 'a t \n | Related_any: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_all: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_none: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_one: ('a, 'b) Relation.One.t * 'b t -> 'a view \n | Related_optional: ('a, 'b) Relation.Optional.t * 'b t -> 'a view \n | Absent: ('a, 'b) Relation.Optional.t -> 'a view ","params":[]}],"slug":"libtmux-expr-view-type"},{"id":"Libtmux.Expr.view:type.Absent","publicId":"Libtmux.Expr.view:type.Absent","name":"Absent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":655,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":655,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Absent","slug":"libtmux-expr-view-type-absent"},{"id":"Libtmux.Expr.view:type.All","publicId":"Libtmux.Expr.view:type.All","name":"All","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":647,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| All of 'a t list","source":{"file":"lib/libtmux.mli","line":647,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.All","slug":"libtmux-expr-view-type-all"},{"id":"Libtmux.Expr.view:type.Any","publicId":"Libtmux.Expr.view:type.Any","name":"Any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":648,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Any of 'a t list","source":{"file":"lib/libtmux.mli","line":648,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Any","slug":"libtmux-expr-view-type-any"},{"id":"Libtmux.Expr.view:type.Compare","publicId":"Libtmux.Expr.view:type.Compare","name":"Compare","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":646,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Compare : ('a, 'v) Field.t * 'v comparison -> 'a view","source":{"file":"lib/libtmux.mli","line":646,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Compare","slug":"libtmux-expr-view-type-compare"},{"id":"Libtmux.Expr.view:type.Not","publicId":"Libtmux.Expr.view:type.Not","name":"Not","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":649,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not of 'a t","source":{"file":"lib/libtmux.mli","line":649,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Not","slug":"libtmux-expr-view-type-not"},{"id":"Libtmux.Expr.view:type.Related_all","publicId":"Libtmux.Expr.view:type.Related_all","name":"Related_all","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":651,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":651,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_all","slug":"libtmux-expr-view-type-related_all"},{"id":"Libtmux.Expr.view:type.Related_any","publicId":"Libtmux.Expr.view:type.Related_any","name":"Related_any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":650,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":650,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_any","slug":"libtmux-expr-view-type-related_any"},{"id":"Libtmux.Expr.view:type.Related_none","publicId":"Libtmux.Expr.view:type.Related_none","name":"Related_none","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":652,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":652,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_none","slug":"libtmux-expr-view-type-related_none"},{"id":"Libtmux.Expr.view:type.Related_one","publicId":"Libtmux.Expr.view:type.Related_one","name":"Related_one","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":653,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":653,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_one","slug":"libtmux-expr-view-type-related_one"},{"id":"Libtmux.Expr.view:type.Related_optional","publicId":"Libtmux.Expr.view:type.Related_optional","name":"Related_optional","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":654,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":654,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_optional","slug":"libtmux-expr-view-type-related_optional"},{"id":"Libtmux.Field","publicId":"Libtmux.Field","qualifiedName":"Libtmux.Field","name":"Field","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":143,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Sealed scalar descriptors carrying entity and value types. Descriptors read\n captured data and provide trusted identities for {!Expr} values. Use\n {!Relation} for graph edges. "],"declarations":[{"kind":"module","text":"module Field : sig\n type _ kind = Bool : bool kind | Int : int kind | Text : string kind\n type ('entity, 'value) t\n type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed\n\n val name : ('entity, 'value) t -> string\n val kind : ('entity, 'value) t -> 'value kind\n\n val get : ('entity, 'value) t -> 'entity -> 'value\n (** Canonical descriptors are sealed. Accessing a field reads captured data.\n *)\nend","source":{"file":"lib/libtmux.mli","line":143,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Sealed scalar descriptors carrying entity and value types. Descriptors read captured data and provide trusted identities for {!Expr} values. Use {!Relation} for graph edges."},"slug":"libtmux-field"},{"id":"Libtmux.Field.get","publicId":"Libtmux.Field.get","qualifiedName":"Libtmux.Field.get","name":"get","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Canonical descriptors are sealed. Accessing a field reads captured data.\n "],"declarations":[{"kind":"function","text":"val get : ('entity, 'value) t -> 'entity -> 'value","source":{"file":"lib/libtmux.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field","doc":{"summary":"Canonical descriptors are sealed. Accessing a field reads captured data."},"signatures":[{"raw":"val get : ('entity, 'value) t -> 'entity -> 'value","params":[{"name":"arg1","type":"('entity, 'value) t"},{"name":"arg2","type":"'entity"}],"returns":"'value"}],"slug":"libtmux-field-get"},{"id":"Libtmux.Field.kind","publicId":"Libtmux.Field.kind","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : ('entity, 'value) t -> 'value kind","source":{"file":"lib/libtmux.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val kind : ('entity, 'value) t -> 'value kind","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"'value kind"}],"slug":"libtmux-field-kind"},{"id":"Libtmux.Field.kind:type","publicId":"Libtmux.Field.kind:type","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type _ kind =\n | Bool: bool kind \n | Int: int kind \n | Text: string kind ","params":[]}],"slug":"libtmux-field-kind-type"},{"id":"Libtmux.Field.kind:type.Bool","publicId":"Libtmux.Field.kind:type.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool : bool kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Bool","slug":"libtmux-field-kind-type-bool"},{"id":"Libtmux.Field.kind:type.Int","publicId":"Libtmux.Field.kind:type.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int : int kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Int","slug":"libtmux-field-kind-type-int"},{"id":"Libtmux.Field.kind:type.Text","publicId":"Libtmux.Field.kind:type.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text : string kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Text","slug":"libtmux-field-kind-type-text"},{"id":"Libtmux.Field.name","publicId":"Libtmux.Field.name","qualifiedName":"Libtmux.Field.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('entity, 'value) t -> string","source":{"file":"lib/libtmux.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val name : ('entity, 'value) t -> string","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"string"}],"slug":"libtmux-field-name"},{"id":"Libtmux.Field.packed","publicId":"Libtmux.Field.packed","qualifiedName":"Libtmux.Field.packed","name":"packed","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type 'entity packed =\n | Pack: ('entity, 'value) t -> 'entity packed ","params":[]}],"slug":"libtmux-field-packed"},{"id":"Libtmux.Field.packed.Pack","publicId":"Libtmux.Field.packed.Pack","name":"Pack","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field.packed","variant":"tuple","qualifiedName":"Libtmux.Field.Pack","slug":"libtmux-field-packed-pack"},{"id":"Libtmux.Field.t","publicId":"Libtmux.Field.t","qualifiedName":"Libtmux.Field.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":145,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('entity, 'value) t","source":{"file":"lib/libtmux.mli","line":145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type ('entity, 'value) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-field-t"},{"id":"Libtmux.Formats","publicId":"Libtmux.Formats","qualifiedName":"Libtmux.Formats","name":"Formats","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Formats : sig\n module Kind : sig\n type t = Text | Timestamp\n end\n\n module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }\n (** Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. *)\n\n type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t\n\n type scalar = Bool of bool | Int of int | Text of string\n\n type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported\n (** [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor option, Error.t) result\n\n val lookup :\n version:string -> observation -> string -> (state, Error.t) result\n (** No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. *)\nend","source":{"file":"lib/libtmux.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-formats"},{"id":"Libtmux.Formats.Context","publicId":"Libtmux.Formats.Context","qualifiedName":"Libtmux.Formats.Context","name":"Context","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":500,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end","source":{"file":"lib/libtmux.mli","line":500,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-context"},{"id":"Libtmux.Formats.Context.t","publicId":"Libtmux.Formats.Context.t","qualifiedName":"Libtmux.Formats.Context.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":501,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","source":{"file":"lib/libtmux.mli","line":501,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context","signatures":[{"raw":"type t =\n | Server \n | Connection \n | Session \n | Window \n | Window_link \n | Pane \n | Client \n | Buffer \n | Mouse \n | Command ","params":[]}],"slug":"libtmux-formats-context-t"},{"id":"Libtmux.Formats.Context.t.Buffer","publicId":"Libtmux.Formats.Context.t.Buffer","name":"Buffer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":509,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Buffer","source":{"file":"lib/libtmux.mli","line":509,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Buffer","slug":"libtmux-formats-context-t-buffer"},{"id":"Libtmux.Formats.Context.t.Client","publicId":"Libtmux.Formats.Context.t.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":508,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client","source":{"file":"lib/libtmux.mli","line":508,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Client","slug":"libtmux-formats-context-t-client"},{"id":"Libtmux.Formats.Context.t.Command","publicId":"Libtmux.Formats.Context.t.Command","name":"Command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":511,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command","source":{"file":"lib/libtmux.mli","line":511,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Command","slug":"libtmux-formats-context-t-command"},{"id":"Libtmux.Formats.Context.t.Connection","publicId":"Libtmux.Formats.Context.t.Connection","name":"Connection","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Connection","source":{"file":"lib/libtmux.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Connection","slug":"libtmux-formats-context-t-connection"},{"id":"Libtmux.Formats.Context.t.Mouse","publicId":"Libtmux.Formats.Context.t.Mouse","name":"Mouse","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mouse","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Mouse","slug":"libtmux-formats-context-t-mouse"},{"id":"Libtmux.Formats.Context.t.Pane","publicId":"Libtmux.Formats.Context.t.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":507,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane","source":{"file":"lib/libtmux.mli","line":507,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Pane","slug":"libtmux-formats-context-t-pane"},{"id":"Libtmux.Formats.Context.t.Server","publicId":"Libtmux.Formats.Context.t.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Server","slug":"libtmux-formats-context-t-server"},{"id":"Libtmux.Formats.Context.t.Session","publicId":"Libtmux.Formats.Context.t.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":504,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session","source":{"file":"lib/libtmux.mli","line":504,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Session","slug":"libtmux-formats-context-t-session"},{"id":"Libtmux.Formats.Context.t.Window","publicId":"Libtmux.Formats.Context.t.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window","source":{"file":"lib/libtmux.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window","slug":"libtmux-formats-context-t-window"},{"id":"Libtmux.Formats.Context.t.Window_link","publicId":"Libtmux.Formats.Context.t.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":506,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link","source":{"file":"lib/libtmux.mli","line":506,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window_link","slug":"libtmux-formats-context-t-window_link"},{"id":"Libtmux.Formats.Kind","publicId":"Libtmux.Formats.Kind","qualifiedName":"Libtmux.Formats.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":496,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Timestamp\n end","source":{"file":"lib/libtmux.mli","line":496,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-kind"},{"id":"Libtmux.Formats.Kind.t","publicId":"Libtmux.Formats.Kind.t","qualifiedName":"Libtmux.Formats.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Timestamp","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Kind","signatures":[{"raw":"type t =\n | Text \n | Timestamp ","params":[]}],"slug":"libtmux-formats-kind-t"},{"id":"Libtmux.Formats.Kind.t.Text","publicId":"Libtmux.Formats.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Text","slug":"libtmux-formats-kind-t-text"},{"id":"Libtmux.Formats.Kind.t.Timestamp","publicId":"Libtmux.Formats.Kind.t.Timestamp","name":"Timestamp","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Timestamp","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Timestamp","slug":"libtmux-formats-kind-t-timestamp"},{"id":"Libtmux.Formats.catalog","publicId":"Libtmux.Formats.catalog","qualifiedName":"Libtmux.Formats.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-formats-catalog"},{"id":"Libtmux.Formats.describe","publicId":"Libtmux.Formats.describe","qualifiedName":"Libtmux.Formats.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":547,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor option, Error.t) result","source":{"file":"lib/libtmux.mli","line":547,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val describe :\n version:string -> string -> (descriptor option, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor option, Error.t) result"}],"slug":"libtmux-formats-describe"},{"id":"Libtmux.Formats.descriptor","publicId":"Libtmux.Formats.descriptor","qualifiedName":"Libtmux.Formats.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":514,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":514,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","doc":{"summary":"Metadata generated from pinned tmux format callbacks. `contexts` lists direct context dependencies, not a promise that a value exists. Caller variables from hooks and menus are outside this built-in catalog."},"signatures":[{"raw":"type descriptor =\n {\n name: string ;\n kind: Kind.t ;\n contexts: Context.t list ;\n versions: string list }","params":[]}],"slug":"libtmux-formats-descriptor"},{"id":"Libtmux.Formats.descriptor.contexts","publicId":"Libtmux.Formats.descriptor.contexts","name":"contexts","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":517,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"contexts : Context.t list;","source":{"file":"lib/libtmux.mli","line":517,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.descriptor","type":"Context.t list","qualifiedName":"Libtmux.Formats.contexts","slug":"libtmux-formats-descriptor-contexts"},{"id":"Libtmux.Formats.descriptor.kind","publicId":"Libtmux.Formats.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":516,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":516,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Formats.kind","slug":"libtmux-formats-descriptor-kind"},{"id":"Libtmux.Formats.descriptor.name","publicId":"Libtmux.Formats.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":515,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":515,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.descriptor","type":"string","qualifiedName":"Libtmux.Formats.name","slug":"libtmux-formats-descriptor-name"},{"id":"Libtmux.Formats.descriptor.versions","publicId":"Libtmux.Formats.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":518,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":518,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.descriptor","type":"string list","qualifiedName":"Libtmux.Formats.versions","slug":"libtmux-formats-descriptor-versions"},{"id":"Libtmux.Formats.lookup","publicId":"Libtmux.Formats.lookup","qualifiedName":"Libtmux.Formats.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":549,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. "],"declarations":[{"kind":"function","text":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","source":{"file":"lib/libtmux.mli","line":549,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","doc":{"summary":"No I/O. Supply the version recorded by the acquiring client's `version` accessor. Unsupported catalog versions return an error. Native typed accessors remain the primary API; lookup does not acquire extra fields."},"signatures":[{"raw":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"observation"},{"name":"arg2","type":"string"}],"returns":"(state, Error.t) result"}],"slug":"libtmux-formats-lookup"},{"id":"Libtmux.Formats.observation","publicId":"Libtmux.Formats.observation","qualifiedName":"Libtmux.Formats.observation","name":"observation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":524,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":524,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type observation =\n | Snapshot of Snapshot.t \n | Session of Session.t \n | Window of Window.t \n | Window_link of Window_link.t \n | Pane of Pane.t \n | Client of Client_observation.t ","params":[]}],"slug":"libtmux-formats-observation"},{"id":"Libtmux.Formats.observation.Client","publicId":"Libtmux.Formats.observation.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":530,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":530,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Client","slug":"libtmux-formats-observation-client"},{"id":"Libtmux.Formats.observation.Pane","publicId":"Libtmux.Formats.observation.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":529,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.t","source":{"file":"lib/libtmux.mli","line":529,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Pane","slug":"libtmux-formats-observation-pane"},{"id":"Libtmux.Formats.observation.Session","publicId":"Libtmux.Formats.observation.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":526,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.t","source":{"file":"lib/libtmux.mli","line":526,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Session","slug":"libtmux-formats-observation-session"},{"id":"Libtmux.Formats.observation.Snapshot","publicId":"Libtmux.Formats.observation.Snapshot","name":"Snapshot","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Snapshot of Snapshot.t","source":{"file":"lib/libtmux.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Snapshot","slug":"libtmux-formats-observation-snapshot"},{"id":"Libtmux.Formats.observation.Window","publicId":"Libtmux.Formats.observation.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":527,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.t","source":{"file":"lib/libtmux.mli","line":527,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window","slug":"libtmux-formats-observation-window"},{"id":"Libtmux.Formats.observation.Window_link","publicId":"Libtmux.Formats.observation.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":528,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link of Window_link.t","source":{"file":"lib/libtmux.mli","line":528,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window_link","slug":"libtmux-formats-observation-window_link"},{"id":"Libtmux.Formats.scalar","publicId":"Libtmux.Formats.scalar","qualifiedName":"Libtmux.Formats.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar = Bool of bool | Int of int | Text of string","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type scalar =\n | Bool of bool \n | Int of int \n | Text of string ","params":[]}],"slug":"libtmux-formats-scalar"},{"id":"Libtmux.Formats.scalar.Bool","publicId":"Libtmux.Formats.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool of bool","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Bool","slug":"libtmux-formats-scalar-bool"},{"id":"Libtmux.Formats.scalar.Int","publicId":"Libtmux.Formats.scalar.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int of int","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Int","slug":"libtmux-formats-scalar-int"},{"id":"Libtmux.Formats.scalar.Text","publicId":"Libtmux.Formats.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Text","slug":"libtmux-formats-scalar-text"},{"id":"Libtmux.Formats.state","publicId":"Libtmux.Formats.state","qualifiedName":"Libtmux.Formats.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":534,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported","source":{"file":"lib/libtmux.mli","line":534,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type state =\n | Value of scalar \n | Missing \n | Unacquired \n | Unsupported ","params":[]}],"slug":"libtmux-formats-state"},{"id":"Libtmux.Formats.state.Missing","publicId":"Libtmux.Formats.state.Missing","name":"Missing","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":536,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing","source":{"file":"lib/libtmux.mli","line":536,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Missing","slug":"libtmux-formats-state-missing"},{"id":"Libtmux.Formats.state.Unacquired","publicId":"Libtmux.Formats.state.Unacquired","name":"Unacquired","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unacquired","source":{"file":"lib/libtmux.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Unacquired","slug":"libtmux-formats-state-unacquired"},{"id":"Libtmux.Formats.state.Unsupported","publicId":"Libtmux.Formats.state.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":538,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. "],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"lib/libtmux.mli","line":538,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.state","doc":{"summary":"`Missing` is an absence explicitly recorded in the observation, such as a client without terminal height. `Unacquired` means no captured value for this observation, including ambiguous session context for a pane. `Unsupported` means the name is outside the selected release's catalog. `Value (Text \"\")` is a captured empty string, never inferred absence."},"variant":"unit","qualifiedName":"Libtmux.Formats.Unsupported","slug":"libtmux-formats-state-unsupported"},{"id":"Libtmux.Formats.state.Value","publicId":"Libtmux.Formats.state.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":535,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Value of scalar","source":{"file":"lib/libtmux.mli","line":535,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.state","variant":"tuple","qualifiedName":"Libtmux.Formats.Value","slug":"libtmux-formats-state-value"},{"id":"Libtmux.Generation","publicId":"Libtmux.Generation","qualifiedName":"Libtmux.Generation","name":"Generation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A random connection-generation identifier. Reconnecting creates a new\n generation even when the socket and server PID are unchanged. "],"declarations":[{"kind":"module","text":"module Generation : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"A random connection-generation identifier. Reconnecting creates a new generation even when the socket and server PID are unchanged."},"slug":"libtmux-generation"},{"id":"Libtmux.Generation.equal","publicId":"Libtmux.Generation.equal","qualifiedName":"Libtmux.Generation.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-generation-equal"},{"id":"Libtmux.Generation.of_string","publicId":"Libtmux.Generation.of_string","qualifiedName":"Libtmux.Generation.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Generation","doc":{"summary":"Import a 256-bit connection nonce as 64 lowercase hexadecimal characters. Backends generate a fresh random nonce for each connection."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-generation-of_string"},{"id":"Libtmux.Generation.t","publicId":"Libtmux.Generation.t","qualifiedName":"Libtmux.Generation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":84,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":84,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-generation-t"},{"id":"Libtmux.Generation.to_string","publicId":"Libtmux.Generation.to_string","qualifiedName":"Libtmux.Generation.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-generation-to_string"},{"id":"Libtmux.Geometry","publicId":"Libtmux.Geometry","qualifiedName":"Libtmux.Geometry","name":"Geometry","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Geometry : sig\n type direction = Left | Right | Above | Below\n type size = Cells of int | Percent of int\nend","source":{"file":"lib/libtmux.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-geometry"},{"id":"Libtmux.Geometry.direction","publicId":"Libtmux.Geometry.direction","qualifiedName":"Libtmux.Geometry.direction","name":"direction","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type direction = Left | Right | Above | Below","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type direction =\n | Left \n | Right \n | Above \n | Below ","params":[]}],"slug":"libtmux-geometry-direction"},{"id":"Libtmux.Geometry.direction.Above","publicId":"Libtmux.Geometry.direction.Above","name":"Above","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Above","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Above","slug":"libtmux-geometry-direction-above"},{"id":"Libtmux.Geometry.direction.Below","publicId":"Libtmux.Geometry.direction.Below","name":"Below","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Below","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Below","slug":"libtmux-geometry-direction-below"},{"id":"Libtmux.Geometry.direction.Left","publicId":"Libtmux.Geometry.direction.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Left","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Left","slug":"libtmux-geometry-direction-left"},{"id":"Libtmux.Geometry.direction.Right","publicId":"Libtmux.Geometry.direction.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Right","slug":"libtmux-geometry-direction-right"},{"id":"Libtmux.Geometry.size","publicId":"Libtmux.Geometry.size","qualifiedName":"Libtmux.Geometry.size","name":"size","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type size = Cells of int | Percent of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type size =\n | Cells of int \n | Percent of int ","params":[]}],"slug":"libtmux-geometry-size"},{"id":"Libtmux.Geometry.size.Cells","publicId":"Libtmux.Geometry.size.Cells","name":"Cells","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Cells of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Cells","slug":"libtmux-geometry-size-cells"},{"id":"Libtmux.Geometry.size.Percent","publicId":"Libtmux.Geometry.size.Percent","name":"Percent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Percent of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Percent","slug":"libtmux-geometry-size-percent"},{"id":"Libtmux.Hook","publicId":"Libtmux.Hook","qualifiedName":"Libtmux.Hook","name":"Hook","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":873,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Hook : sig\n type command = { name : string; arguments : string list }\n (** A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. *)\nend","source":{"file":"lib/libtmux.mli","line":873,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-hook"},{"id":"Libtmux.Hook.command","publicId":"Libtmux.Hook.command","qualifiedName":"Libtmux.Hook.command","name":"command","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. "],"declarations":[{"kind":"struct","text":"type command = { name : string; arguments : string list }","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Hook","doc":{"summary":"A tmux command and its distinct arguments. Setting a hook encodes these as command data; it does not concatenate arguments into shell code. Argument-specific tmux behavior, including format expansion, still applies when the hook runs."},"signatures":[{"raw":"type command = {\n name: string ;\n arguments: string list }","params":[]}],"slug":"libtmux-hook-command"},{"id":"Libtmux.Hook.command.arguments","publicId":"Libtmux.Hook.command.arguments","name":"arguments","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"arguments : string list","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Hook.command","type":"string list","qualifiedName":"Libtmux.Hook.arguments","slug":"libtmux-hook-command-arguments"},{"id":"Libtmux.Hook.command.name","publicId":"Libtmux.Hook.command.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Hook.command","type":"string","qualifiedName":"Libtmux.Hook.name","slug":"libtmux-hook-command-name"},{"id":"Libtmux.ID","publicId":"Libtmux.ID","qualifiedName":"Libtmux.ID","name":"ID","kind":"interface","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"interface","text":"module type ID = sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Accept a canonical prefixed decimal tmux ID in the uint32 range. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\n val compare : t -> t -> int\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-id"},{"id":"Libtmux.ID.compare","publicId":"Libtmux.ID.compare","qualifiedName":"Libtmux.ID.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-id-compare"},{"id":"Libtmux.ID.equal","publicId":"Libtmux.ID.equal","qualifiedName":"Libtmux.ID.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-id-equal"},{"id":"Libtmux.ID.of_string","publicId":"Libtmux.ID.of_string","qualifiedName":"Libtmux.ID.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.ID","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-id-of_string"},{"id":"Libtmux.ID.pp","publicId":"Libtmux.ID.pp","qualifiedName":"Libtmux.ID.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-id-pp"},{"id":"Libtmux.ID.t","publicId":"Libtmux.ID.t","qualifiedName":"Libtmux.ID.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.ID","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-id-t"},{"id":"Libtmux.ID.to_string","publicId":"Libtmux.ID.to_string","qualifiedName":"Libtmux.ID.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-id-to_string"},{"id":"Libtmux.Key","publicId":"Libtmux.Key","qualifiedName":"Libtmux.Key","name":"Key","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Key : sig\n type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char\nend","source":{"file":"lib/libtmux.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-key"},{"id":"Libtmux.Key.t","publicId":"Libtmux.Key.t","qualifiedName":"Libtmux.Key.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":725,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","source":{"file":"lib/libtmux.mli","line":725,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key","signatures":[{"raw":"type t =\n | Enter \n | Tab \n | Escape \n | Backspace \n | Up \n | Down \n | Left \n | Right \n | Control of char ","params":[]}],"slug":"libtmux-key-t"},{"id":"Libtmux.Key.t.Backspace","publicId":"Libtmux.Key.t.Backspace","name":"Backspace","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Backspace","source":{"file":"lib/libtmux.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Backspace","slug":"libtmux-key-t-backspace"},{"id":"Libtmux.Key.t.Control","publicId":"Libtmux.Key.t.Control","name":"Control","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":734,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Control of char","source":{"file":"lib/libtmux.mli","line":734,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"tuple","qualifiedName":"Libtmux.Key.Control","slug":"libtmux-key-t-control"},{"id":"Libtmux.Key.t.Down","publicId":"Libtmux.Key.t.Down","name":"Down","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":731,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Down","source":{"file":"lib/libtmux.mli","line":731,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Down","slug":"libtmux-key-t-down"},{"id":"Libtmux.Key.t.Enter","publicId":"Libtmux.Key.t.Enter","name":"Enter","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":726,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Enter","source":{"file":"lib/libtmux.mli","line":726,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Enter","slug":"libtmux-key-t-enter"},{"id":"Libtmux.Key.t.Escape","publicId":"Libtmux.Key.t.Escape","name":"Escape","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":728,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Escape","source":{"file":"lib/libtmux.mli","line":728,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Escape","slug":"libtmux-key-t-escape"},{"id":"Libtmux.Key.t.Left","publicId":"Libtmux.Key.t.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":732,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Left","source":{"file":"lib/libtmux.mli","line":732,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Left","slug":"libtmux-key-t-left"},{"id":"Libtmux.Key.t.Right","publicId":"Libtmux.Key.t.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":733,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":733,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Right","slug":"libtmux-key-t-right"},{"id":"Libtmux.Key.t.Tab","publicId":"Libtmux.Key.t.Tab","name":"Tab","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":727,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tab","source":{"file":"lib/libtmux.mli","line":727,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Tab","slug":"libtmux-key-t-tab"},{"id":"Libtmux.Key.t.Up","publicId":"Libtmux.Key.t.Up","name":"Up","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":730,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Up","source":{"file":"lib/libtmux.mli","line":730,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Up","slug":"libtmux-key-t-up"},{"id":"Libtmux.Layout","publicId":"Libtmux.Layout","qualifiedName":"Libtmux.Layout","name":"Layout","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":767,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Layout : sig\n type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string\nend","source":{"file":"lib/libtmux.mli","line":767,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-layout"},{"id":"Libtmux.Layout.t","publicId":"Libtmux.Layout.t","qualifiedName":"Libtmux.Layout.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":768,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","source":{"file":"lib/libtmux.mli","line":768,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout","signatures":[{"raw":"type t =\n | Even_horizontal \n | Even_vertical \n | Main_horizontal \n | Main_vertical \n | Tiled \n | Custom of string ","params":[]}],"slug":"libtmux-layout-t"},{"id":"Libtmux.Layout.t.Custom","publicId":"Libtmux.Layout.t.Custom","name":"Custom","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Custom of string","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout.t","variant":"tuple","qualifiedName":"Libtmux.Layout.Custom","slug":"libtmux-layout-t-custom"},{"id":"Libtmux.Layout.t.Even_horizontal","publicId":"Libtmux.Layout.t.Even_horizontal","name":"Even_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":769,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_horizontal","source":{"file":"lib/libtmux.mli","line":769,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_horizontal","slug":"libtmux-layout-t-even_horizontal"},{"id":"Libtmux.Layout.t.Even_vertical","publicId":"Libtmux.Layout.t.Even_vertical","name":"Even_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":770,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_vertical","source":{"file":"lib/libtmux.mli","line":770,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_vertical","slug":"libtmux-layout-t-even_vertical"},{"id":"Libtmux.Layout.t.Main_horizontal","publicId":"Libtmux.Layout.t.Main_horizontal","name":"Main_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":771,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_horizontal","source":{"file":"lib/libtmux.mli","line":771,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_horizontal","slug":"libtmux-layout-t-main_horizontal"},{"id":"Libtmux.Layout.t.Main_vertical","publicId":"Libtmux.Layout.t.Main_vertical","name":"Main_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_vertical","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_vertical","slug":"libtmux-layout-t-main_vertical"},{"id":"Libtmux.Layout.t.Tiled","publicId":"Libtmux.Layout.t.Tiled","name":"Tiled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tiled","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Tiled","slug":"libtmux-layout-t-tiled"},{"id":"Libtmux.Model","publicId":"Libtmux.Model","qualifiedName":"Libtmux.Model","name":"Model","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Built-in model witnesses and canonical field lookup for typed codecs.\n Untrusted field names must resolve against the selected model. "],"declarations":[{"kind":"module","text":"module Model : sig\n type 'a t\n\n val session : Session.t t\n val window : Window.t t\n val window_link : Window_link.t t\n val pane : Pane.t t\n val client : Client_observation.t t\n val name : 'a t -> string\n val fields : 'a t -> 'a Field.packed list\n val find_field : 'a t -> string -> 'a Field.packed option\nend","source":{"file":"lib/libtmux.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Built-in model witnesses and canonical field lookup for typed codecs. Untrusted field names must resolve against the selected model."},"slug":"libtmux-model"},{"id":"Libtmux.Model.client","publicId":"Libtmux.Model.client","qualifiedName":"Libtmux.Model.client","name":"client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val client : Client_observation.t t","source":{"file":"lib/libtmux.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val client : Client_observation.t t","params":[],"returns":"Client_observation.t t"}],"slug":"libtmux-model-client"},{"id":"Libtmux.Model.fields","publicId":"Libtmux.Model.fields","qualifiedName":"Libtmux.Model.fields","name":"fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":567,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val fields : 'a t -> 'a Field.packed list","source":{"file":"lib/libtmux.mli","line":567,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val fields : 'a t -> 'a Field.packed list","params":[{"name":"arg1","type":"'a t"}],"returns":"'a Field.packed list"}],"slug":"libtmux-model-fields"},{"id":"Libtmux.Model.find_field","publicId":"Libtmux.Model.find_field","qualifiedName":"Libtmux.Model.find_field","name":"find_field","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_field : 'a t -> string -> 'a Field.packed option","source":{"file":"lib/libtmux.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val find_field : 'a t -> string -> 'a Field.packed option","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"string"}],"returns":"'a Field.packed option"}],"slug":"libtmux-model-find_field"},{"id":"Libtmux.Model.name","publicId":"Libtmux.Model.name","qualifiedName":"Libtmux.Model.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":566,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : 'a t -> string","source":{"file":"lib/libtmux.mli","line":566,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val name : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-model-name"},{"id":"Libtmux.Model.pane","publicId":"Libtmux.Model.pane","qualifiedName":"Libtmux.Model.pane","name":"pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":564,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pane : Pane.t t","source":{"file":"lib/libtmux.mli","line":564,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val pane : Pane.t t","params":[],"returns":"Pane.t t"}],"slug":"libtmux-model-pane"},{"id":"Libtmux.Model.session","publicId":"Libtmux.Model.session","qualifiedName":"Libtmux.Model.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":561,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : Session.t t","source":{"file":"lib/libtmux.mli","line":561,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val session : Session.t t","params":[],"returns":"Session.t t"}],"slug":"libtmux-model-session"},{"id":"Libtmux.Model.t","publicId":"Libtmux.Model.t","qualifiedName":"Libtmux.Model.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":559,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":559,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-model-t"},{"id":"Libtmux.Model.window","publicId":"Libtmux.Model.window","qualifiedName":"Libtmux.Model.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : Window.t t","source":{"file":"lib/libtmux.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window : Window.t t","params":[],"returns":"Window.t t"}],"slug":"libtmux-model-window"},{"id":"Libtmux.Model.window_link","publicId":"Libtmux.Model.window_link","qualifiedName":"Libtmux.Model.window_link","name":"window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":563,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_link : Window_link.t t","source":{"file":"lib/libtmux.mli","line":563,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window_link : Window_link.t t","params":[],"returns":"Window_link.t t"}],"slug":"libtmux-model-window_link"},{"id":"Libtmux.Operations","publicId":"Libtmux.Operations","qualifiedName":"Libtmux.Operations","name":"Operations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1073,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Construct typed tmux operations for a backend client. Observations are\n immutable, mutations use explicit targets, and no command retries a mutation\n against another connection generation. Construction performs no I/O; the\n descriptions below state what execution does. "],"declarations":[{"kind":"module","text":"module Operations : sig\n val capture : unit -> Snapshot.t Command.t\n (** Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. *)\n\n val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t\n (** Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. *)\n\n val rename_window : Window.target -> name:string -> unit Command.t\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session : Session.target -> name:string -> unit Command.t\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at : Client_name.t -> unit Command.t\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text : Pane.target -> text:string -> unit Command.t\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys : Pane.target -> Key.t list -> unit Command.t\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : string -> unit Command.t\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : string -> unit Command.t\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment : Environment.scope -> string -> unit Command.t\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment : Environment.scope -> string -> unit Command.t\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Error.Unsupported}. *)\n\n val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array : Options.scope -> string -> unit Command.t\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks : Options.scope -> Options.t Command.t\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. *)\n\n val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook : Options.scope -> string -> unit Command.t\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session : Session.target -> unit Command.t\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : Window.target -> unit Command.t\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : Pane.target -> unit Command.t\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at : Session.target -> index:int -> unit Command.t\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : Pane.target -> unit Command.t\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title : Pane.target -> title:string -> unit Command.t\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout : Window.target -> Layout.t -> unit Command.t\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes : Pane.target -> Pane.target -> unit Command.t\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : Pane.target -> unit Command.t\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : Pane.target -> unit Command.t\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\nend","source":{"file":"lib/libtmux.mli","line":1073,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Construct typed tmux operations for a backend client. Observations are immutable, mutations use explicit targets, and no command retries a mutation against another connection generation. Construction performs no I/O; the descriptions below state what execution does."},"slug":"libtmux-operations"},{"id":"Libtmux.Operations.break_pane","publicId":"Libtmux.Operations.break_pane","qualifiedName":"Libtmux.Operations.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1257,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n Pane.target -> session:Session.target -> index:int -> Created.t Command.t","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-break_pane"},{"id":"Libtmux.Operations.capture","publicId":"Libtmux.Operations.capture","qualifiedName":"Libtmux.Operations.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1074,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. "],"declarations":[{"kind":"function","text":"val capture : unit -> Snapshot.t Command.t","source":{"file":"lib/libtmux.mli","line":1074,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture and validate the complete session/window-link/pane graph. The result records an acquisition interval, not an atomic server instant."},"signatures":[{"raw":"val capture : unit -> Snapshot.t Command.t","params":[{"name":"arg1","type":"unit"}],"returns":"Snapshot.t Command.t"}],"slug":"libtmux-operations-capture"},{"id":"Libtmux.Operations.capture_environment","publicId":"Libtmux.Operations.capture_environment","qualifiedName":"Libtmux.Operations.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1132,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","source":{"file":"lib/libtmux.mli","line":1132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"}],"returns":"Environment.t Command.t"}],"slug":"libtmux-operations-capture_environment"},{"id":"Libtmux.Operations.capture_hooks","publicId":"Libtmux.Operations.capture_hooks","qualifiedName":"Libtmux.Operations.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1190,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks : Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks : Options.scope -> Options.t Command.t","params":[{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_hooks"},{"id":"Libtmux.Operations.capture_options","publicId":"Libtmux.Operations.capture_options","qualifiedName":"Libtmux.Operations.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1152,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Error.Unsupported}. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors cover every supported release from tmux 3.3a through 3.8; other versions return {!Error.Unsupported}."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_options"},{"id":"Libtmux.Operations.capture_text","publicId":"Libtmux.Operations.capture_text","qualifiedName":"Libtmux.Operations.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1078,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t","source":{"file":"lib/libtmux.mli","line":1078,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture inclusive visible rows through an operation-owned temporary file. Require `0 <= start <= end_ < Pane.height pane`; scrollback is excluded. Retained bytes survive client close. The scratch directory must share the daemon filesystem."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n Pane.t -> start:int -> end_:int -> Captured_text.t Command.t","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"Captured_text.t Command.t"}],"slug":"libtmux-operations-capture_text"},{"id":"Libtmux.Operations.clear_history","publicId":"Libtmux.Operations.clear_history","qualifiedName":"Libtmux.Operations.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1355,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1355,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_history"},{"id":"Libtmux.Operations.clear_option_array","publicId":"Libtmux.Operations.clear_option_array","qualifiedName":"Libtmux.Operations.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1187,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_option_array"},{"id":"Libtmux.Operations.create_session","publicId":"Libtmux.Operations.create_session","qualifiedName":"Libtmux.Operations.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1229,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int -> ?spawn:Spawn.t -> name:string -> unit -> Created.t Command.t","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_session"},{"id":"Libtmux.Operations.create_window","publicId":"Libtmux.Operations.create_window","qualifiedName":"Libtmux.Operations.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1239,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string -> ?spawn:Spawn.t -> Session.target -> Created.t Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_window"},{"id":"Libtmux.Operations.cycle_layout","publicId":"Libtmux.Operations.cycle_layout","qualifiedName":"Libtmux.Operations.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1325,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1325,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Next | `Previous ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-cycle_layout"},{"id":"Libtmux.Operations.kill_pane","publicId":"Libtmux.Operations.kill_pane","qualifiedName":"Libtmux.Operations.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1275,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_pane"},{"id":"Libtmux.Operations.kill_session","publicId":"Libtmux.Operations.kill_session","qualifiedName":"Libtmux.Operations.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1267,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session : Session.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1267,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session : Session.target -> unit Command.t","params":[{"name":"arg1","type":"Session.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_session"},{"id":"Libtmux.Operations.kill_window","publicId":"Libtmux.Operations.kill_window","qualifiedName":"Libtmux.Operations.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1271,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1271,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window : Window.target -> unit Command.t","params":[{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_window"},{"id":"Libtmux.Operations.link_window","publicId":"Libtmux.Operations.link_window","qualifiedName":"Libtmux.Operations.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1288,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-link_window"},{"id":"Libtmux.Operations.move_pane","publicId":"Libtmux.Operations.move_pane","qualifiedName":"Libtmux.Operations.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1328,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target -> direction:Geometry.direction -> unit Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"beside","type":"Pane.target","keywordOnly":true},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_pane"},{"id":"Libtmux.Operations.move_window_at","publicId":"Libtmux.Operations.move_window_at","qualifiedName":"Libtmux.Operations.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1293,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n Session.target ->\n from_index:int -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_window_at"},{"id":"Libtmux.Operations.read_hook","publicId":"Libtmux.Operations.read_hook","qualifiedName":"Libtmux.Operations.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1194,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_hook"},{"id":"Libtmux.Operations.read_option","publicId":"Libtmux.Operations.read_option","qualifiedName":"Libtmux.Operations.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1160,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_option"},{"id":"Libtmux.Operations.refresh_client_at","publicId":"Libtmux.Operations.refresh_client_at","qualifiedName":"Libtmux.Operations.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1111,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-refresh_client_at"},{"id":"Libtmux.Operations.remove_environment","publicId":"Libtmux.Operations.remove_environment","qualifiedName":"Libtmux.Operations.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1149,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_environment"},{"id":"Libtmux.Operations.remove_hook","publicId":"Libtmux.Operations.remove_hook","qualifiedName":"Libtmux.Operations.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1217,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_hook"},{"id":"Libtmux.Operations.rename_session","publicId":"Libtmux.Operations.rename_session","qualifiedName":"Libtmux.Operations.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1093,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session : Session.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1093,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session : Session.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_session"},{"id":"Libtmux.Operations.rename_window","publicId":"Libtmux.Operations.rename_window","qualifiedName":"Libtmux.Operations.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1089,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window : Window.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1089,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window : Window.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_window"},{"id":"Libtmux.Operations.request_detach_client_at","publicId":"Libtmux.Operations.request_detach_client_at","qualifiedName":"Libtmux.Operations.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1106,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at : Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at : Client_name.t -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-request_detach_client_at"},{"id":"Libtmux.Operations.resize_control_client_at","publicId":"Libtmux.Operations.resize_control_client_at","qualifiedName":"Libtmux.Operations.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1114,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_control_client_at"},{"id":"Libtmux.Operations.resize_pane","publicId":"Libtmux.Operations.resize_pane","qualifiedName":"Libtmux.Operations.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1310,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1310,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_pane"},{"id":"Libtmux.Operations.resize_window","publicId":"Libtmux.Operations.resize_window","qualifiedName":"Libtmux.Operations.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1315,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_window"},{"id":"Libtmux.Operations.respawn_pane","publicId":"Libtmux.Operations.respawn_pane","qualifiedName":"Libtmux.Operations.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1349,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1349,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Spawn.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-respawn_pane"},{"id":"Libtmux.Operations.rotate_panes","publicId":"Libtmux.Operations.rotate_panes","qualifiedName":"Libtmux.Operations.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1342,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1342,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n Window.target -> [ `Backward | `Forward ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Backward | `Forward ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rotate_panes"},{"id":"Libtmux.Operations.run_hook","publicId":"Libtmux.Operations.run_hook","qualifiedName":"Libtmux.Operations.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1221,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-run_hook"},{"id":"Libtmux.Operations.select_layout","publicId":"Libtmux.Operations.select_layout","qualifiedName":"Libtmux.Operations.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1321,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout : Window.target -> Layout.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1321,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout : Window.target -> Layout.t -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"Layout.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_layout"},{"id":"Libtmux.Operations.select_pane","publicId":"Libtmux.Operations.select_pane","qualifiedName":"Libtmux.Operations.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1302,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_pane"},{"id":"Libtmux.Operations.select_window_at","publicId":"Libtmux.Operations.select_window_at","qualifiedName":"Libtmux.Operations.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1279,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at : Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at : Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_window_at"},{"id":"Libtmux.Operations.send_keys","publicId":"Libtmux.Operations.send_keys","qualifiedName":"Libtmux.Operations.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1121,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys : Pane.target -> Key.t list -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys : Pane.target -> Key.t list -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Key.t list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_keys"},{"id":"Libtmux.Operations.send_text","publicId":"Libtmux.Operations.send_text","qualifiedName":"Libtmux.Operations.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1118,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text : Pane.target -> text:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1118,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text : Pane.target -> text:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_text"},{"id":"Libtmux.Operations.set_environment","publicId":"Libtmux.Operations.set_environment","qualifiedName":"Libtmux.Operations.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1139,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1139,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n Environment.scope -> name:string -> string -> unit Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_environment"},{"id":"Libtmux.Operations.set_hook","publicId":"Libtmux.Operations.set_hook","qualifiedName":"Libtmux.Operations.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1202,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Hook.command list -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Hook.command list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_hook"},{"id":"Libtmux.Operations.set_option","publicId":"Libtmux.Operations.set_option","qualifiedName":"Libtmux.Operations.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1170,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1170,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Options.scalar -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Options.scalar"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_option"},{"id":"Libtmux.Operations.set_pane_title","publicId":"Libtmux.Operations.set_pane_title","qualifiedName":"Libtmux.Operations.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1306,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title : Pane.target -> title:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title : Pane.target -> title:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_pane_title"},{"id":"Libtmux.Operations.signal","publicId":"Libtmux.Operations.signal","qualifiedName":"Libtmux.Operations.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1128,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-signal"},{"id":"Libtmux.Operations.split_pane","publicId":"Libtmux.Operations.split_pane","qualifiedName":"Libtmux.Operations.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1247,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1247,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target -> direction:Geometry.direction -> Created.t Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-split_pane"},{"id":"Libtmux.Operations.swap_panes","publicId":"Libtmux.Operations.swap_panes","qualifiedName":"Libtmux.Operations.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1338,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1338,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-swap_panes"},{"id":"Libtmux.Operations.switch_client_at","publicId":"Libtmux.Operations.switch_client_at","qualifiedName":"Libtmux.Operations.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1097,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1097,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t -> session:Session.target -> unit Command.t","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"},{"name":"session","type":"Session.target","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-switch_client_at"},{"id":"Libtmux.Operations.unlink_window_at","publicId":"Libtmux.Operations.unlink_window_at","qualifiedName":"Libtmux.Operations.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1283,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unlink_window_at"},{"id":"Libtmux.Operations.unset_environment","publicId":"Libtmux.Operations.unset_environment","qualifiedName":"Libtmux.Operations.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1145,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_environment"},{"id":"Libtmux.Operations.unset_option","publicId":"Libtmux.Operations.unset_option","qualifiedName":"Libtmux.Operations.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1183,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_option"},{"id":"Libtmux.Operations.wait_for","publicId":"Libtmux.Operations.wait_for","qualifiedName":"Libtmux.Operations.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1125,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-wait_for"},{"id":"Libtmux.Operations.zoom_pane","publicId":"Libtmux.Operations.zoom_pane","qualifiedName":"Libtmux.Operations.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1346,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-zoom_pane"},{"id":"Libtmux.Options","publicId":"Libtmux.Options","qualifiedName":"Libtmux.Options","name":"Options","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":818,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Version-aware option descriptors and captured scoped values. Sparse array\n indexes and inherited entries retain their tmux meaning. "],"declarations":[{"kind":"module","text":"module Options : sig\n module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }\n (** Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. *)\n\n type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target\n\n type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string\n\n type value = Scalar of scalar | Array of (int * scalar) Iarray.t\n type entry = { descriptor : descriptor; value : value; inherited : bool }\n\n type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor, Error.t) result\n\n val lookup : t -> string -> entry option\n (** [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. *)\nend","source":{"file":"lib/libtmux.mli","line":818,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Version-aware option descriptors and captured scoped values. Sparse array indexes and inherited entries retain their tmux meaning."},"slug":"libtmux-options"},{"id":"Libtmux.Options.Kind","publicId":"Libtmux.Options.Kind","qualifiedName":"Libtmux.Options.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":819,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end","source":{"file":"lib/libtmux.mli","line":819,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","slug":"libtmux-options-kind"},{"id":"Libtmux.Options.Kind.t","publicId":"Libtmux.Options.Kind.t","qualifiedName":"Libtmux.Options.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind","signatures":[{"raw":"type t =\n | Text \n | Number \n | Flag \n | Choice \n | Key \n | Colour \n | Commands ","params":[]}],"slug":"libtmux-options-kind-t"},{"id":"Libtmux.Options.Kind.t.Choice","publicId":"Libtmux.Options.Kind.t.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Choice","slug":"libtmux-options-kind-t-choice"},{"id":"Libtmux.Options.Kind.t.Colour","publicId":"Libtmux.Options.Kind.t.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Colour","slug":"libtmux-options-kind-t-colour"},{"id":"Libtmux.Options.Kind.t.Commands","publicId":"Libtmux.Options.Kind.t.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Commands","slug":"libtmux-options-kind-t-commands"},{"id":"Libtmux.Options.Kind.t.Flag","publicId":"Libtmux.Options.Kind.t.Flag","name":"Flag","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Flag","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Flag","slug":"libtmux-options-kind-t-flag"},{"id":"Libtmux.Options.Kind.t.Key","publicId":"Libtmux.Options.Kind.t.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Key","slug":"libtmux-options-kind-t-key"},{"id":"Libtmux.Options.Kind.t.Number","publicId":"Libtmux.Options.Kind.t.Number","name":"Number","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Number","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Number","slug":"libtmux-options-kind-t-number"},{"id":"Libtmux.Options.Kind.t.Text","publicId":"Libtmux.Options.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Text","slug":"libtmux-options-kind-t-text"},{"id":"Libtmux.Options.catalog","publicId":"Libtmux.Options.catalog","qualifiedName":"Libtmux.Options.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":865,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":865,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-options-catalog"},{"id":"Libtmux.Options.describe","publicId":"Libtmux.Options.describe","qualifiedName":"Libtmux.Options.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":866,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor, Error.t) result","source":{"file":"lib/libtmux.mli","line":866,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val describe : version:string -> string -> (descriptor, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor, Error.t) result"}],"slug":"libtmux-options-describe"},{"id":"Libtmux.Options.descriptor","publicId":"Libtmux.Options.descriptor","qualifiedName":"Libtmux.Options.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":823,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":823,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","doc":{"summary":"Generated upstream descriptors. `versions` lists qualified releases; user options have no built-in release history."},"signatures":[{"raw":"type descriptor =\n {\n name: string ;\n kind: Kind.t ;\n array: bool ;\n hook: bool ;\n scopes: [ `Server | `Session | `Window | `Pane ] list ;\n versions: string list }","params":[]}],"slug":"libtmux-options-descriptor"},{"id":"Libtmux.Options.descriptor.array","publicId":"Libtmux.Options.descriptor.array","name":"array","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":826,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"array : bool;","source":{"file":"lib/libtmux.mli","line":826,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.array","slug":"libtmux-options-descriptor-array"},{"id":"Libtmux.Options.descriptor.hook","publicId":"Libtmux.Options.descriptor.hook","name":"hook","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":827,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hook : bool;","source":{"file":"lib/libtmux.mli","line":827,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.hook","slug":"libtmux-options-descriptor-hook"},{"id":"Libtmux.Options.descriptor.kind","publicId":"Libtmux.Options.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":825,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":825,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Options.kind","slug":"libtmux-options-descriptor-kind"},{"id":"Libtmux.Options.descriptor.name","publicId":"Libtmux.Options.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":824,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":824,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.descriptor","type":"string","qualifiedName":"Libtmux.Options.name","slug":"libtmux-options-descriptor-name"},{"id":"Libtmux.Options.descriptor.scopes","publicId":"Libtmux.Options.descriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":828,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scopes : [ `Server | `Session | `Window | `Pane ] list;","source":{"file":"lib/libtmux.mli","line":828,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.descriptor","type":"[ `Pane | `Server | `Session | `Window ] list","qualifiedName":"Libtmux.Options.scopes","slug":"libtmux-options-descriptor-scopes"},{"id":"Libtmux.Options.descriptor.versions","publicId":"Libtmux.Options.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.descriptor","type":"string list","qualifiedName":"Libtmux.Options.versions","slug":"libtmux-options-descriptor-versions"},{"id":"Libtmux.Options.entry","publicId":"Libtmux.Options.entry","qualifiedName":"Libtmux.Options.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { descriptor : descriptor; value : value; inherited : bool }","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type entry = {\n descriptor: descriptor ;\n value: value ;\n inherited: bool }","params":[]}],"slug":"libtmux-options-entry"},{"id":"Libtmux.Options.entry.descriptor","publicId":"Libtmux.Options.entry.descriptor","name":"descriptor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"descriptor : descriptor;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.entry","type":"descriptor","qualifiedName":"Libtmux.Options.descriptor","slug":"libtmux-options-entry-descriptor"},{"id":"Libtmux.Options.entry.inherited","publicId":"Libtmux.Options.entry.inherited","name":"inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inherited : bool","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.entry","type":"bool","qualifiedName":"Libtmux.Options.inherited","slug":"libtmux-options-entry-inherited"},{"id":"Libtmux.Options.entry.value","publicId":"Libtmux.Options.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.entry","type":"value","qualifiedName":"Libtmux.Options.value","slug":"libtmux-options-entry-value"},{"id":"Libtmux.Options.lookup","publicId":"Libtmux.Options.lookup","qualifiedName":"Libtmux.Options.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":868,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> entry option","source":{"file":"lib/libtmux.mli","line":868,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","doc":{"summary":"`None` means absent from this capture's selected scope and inheritance policy. Use `describe` to distinguish an unsupported built-in name."},"signatures":[{"raw":"val lookup : t -> string -> entry option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"entry option"}],"slug":"libtmux-options-lookup"},{"id":"Libtmux.Options.scalar","publicId":"Libtmux.Options.scalar","qualifiedName":"Libtmux.Options.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":842,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","source":{"file":"lib/libtmux.mli","line":842,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scalar =\n | Text of string \n | Integer of int64 \n | Bool of bool \n | Choice of string \n | Key of string \n | Colour of string \n | Commands of string ","params":[]}],"slug":"libtmux-options-scalar"},{"id":"Libtmux.Options.scalar.Bool","publicId":"Libtmux.Options.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":845,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool of bool","source":{"file":"lib/libtmux.mli","line":845,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Bool","slug":"libtmux-options-scalar-bool"},{"id":"Libtmux.Options.scalar.Choice","publicId":"Libtmux.Options.scalar.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":846,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice of string","source":{"file":"lib/libtmux.mli","line":846,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Choice","slug":"libtmux-options-scalar-choice"},{"id":"Libtmux.Options.scalar.Colour","publicId":"Libtmux.Options.scalar.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":848,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour of string","source":{"file":"lib/libtmux.mli","line":848,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Colour","slug":"libtmux-options-scalar-colour"},{"id":"Libtmux.Options.scalar.Commands","publicId":"Libtmux.Options.scalar.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":849,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands of string","source":{"file":"lib/libtmux.mli","line":849,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Commands","slug":"libtmux-options-scalar-commands"},{"id":"Libtmux.Options.scalar.Integer","publicId":"Libtmux.Options.scalar.Integer","name":"Integer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":844,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Integer of int64","source":{"file":"lib/libtmux.mli","line":844,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Integer","slug":"libtmux-options-scalar-integer"},{"id":"Libtmux.Options.scalar.Key","publicId":"Libtmux.Options.scalar.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":847,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key of string","source":{"file":"lib/libtmux.mli","line":847,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Key","slug":"libtmux-options-scalar-key"},{"id":"Libtmux.Options.scalar.Text","publicId":"Libtmux.Options.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":843,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":843,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Text","slug":"libtmux-options-scalar-text"},{"id":"Libtmux.Options.scope","publicId":"Libtmux.Options.scope","qualifiedName":"Libtmux.Options.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":834,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":834,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scope =\n | Server \n | Global_sessions \n | Global_windows \n | Session of Session.target \n | Window of Window.target \n | Pane of Pane.target ","params":[]}],"slug":"libtmux-options-scope"},{"id":"Libtmux.Options.scope.Global_sessions","publicId":"Libtmux.Options.scope.Global_sessions","name":"Global_sessions","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":836,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_sessions","source":{"file":"lib/libtmux.mli","line":836,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_sessions","slug":"libtmux-options-scope-global_sessions"},{"id":"Libtmux.Options.scope.Global_windows","publicId":"Libtmux.Options.scope.Global_windows","name":"Global_windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":837,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_windows","source":{"file":"lib/libtmux.mli","line":837,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_windows","slug":"libtmux-options-scope-global_windows"},{"id":"Libtmux.Options.scope.Pane","publicId":"Libtmux.Options.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":840,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":840,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Pane","slug":"libtmux-options-scope-pane"},{"id":"Libtmux.Options.scope.Server","publicId":"Libtmux.Options.scope.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":835,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":835,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Server","slug":"libtmux-options-scope-server"},{"id":"Libtmux.Options.scope.Session","publicId":"Libtmux.Options.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":838,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":838,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Session","slug":"libtmux-options-scope-session"},{"id":"Libtmux.Options.scope.Window","publicId":"Libtmux.Options.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":839,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.target","source":{"file":"lib/libtmux.mli","line":839,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Window","slug":"libtmux-options-scope-window"},{"id":"Libtmux.Options.t","publicId":"Libtmux.Options.t","qualifiedName":"Libtmux.Options.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":854,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":854,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","doc":{"summary":"Captured options in tmux order, with original array indexes. An empty array differs from an absent local entry. No accessor performs I/O."},"signatures":[{"raw":"type t =\n {\n source: Source.t ;\n scope: scope ;\n include_inherited: bool ;\n entries: entry Iarray.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-options-t"},{"id":"Libtmux.Options.t.entries","publicId":"Libtmux.Options.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":858,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":858,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Options.entries","slug":"libtmux-options-t-entries"},{"id":"Libtmux.Options.t.finished_at_ns","publicId":"Libtmux.Options.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":860,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":860,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.finished_at_ns","slug":"libtmux-options-t-finished_at_ns"},{"id":"Libtmux.Options.t.include_inherited","publicId":"Libtmux.Options.t.include_inherited","name":"include_inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":857,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"include_inherited : bool;","source":{"file":"lib/libtmux.mli","line":857,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.t","type":"bool","qualifiedName":"Libtmux.Options.include_inherited","slug":"libtmux-options-t-include_inherited"},{"id":"Libtmux.Options.t.scope","publicId":"Libtmux.Options.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":856,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":856,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.t","type":"scope","qualifiedName":"Libtmux.Options.scope","slug":"libtmux-options-t-scope"},{"id":"Libtmux.Options.t.source","publicId":"Libtmux.Options.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":855,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":855,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.t","type":"Source.t","qualifiedName":"Libtmux.Options.source","slug":"libtmux-options-t-source"},{"id":"Libtmux.Options.t.started_at_ns","publicId":"Libtmux.Options.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":859,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":859,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.started_at_ns","slug":"libtmux-options-t-started_at_ns"},{"id":"Libtmux.Options.value","publicId":"Libtmux.Options.value","qualifiedName":"Libtmux.Options.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type value =\n | Scalar of scalar \n | Array of (int * scalar) Iarray.t ","params":[]}],"slug":"libtmux-options-value"},{"id":"Libtmux.Options.value.Array","publicId":"Libtmux.Options.value.Array","name":"Array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Array","slug":"libtmux-options-value-array"},{"id":"Libtmux.Options.value.Scalar","publicId":"Libtmux.Options.value.Scalar","name":"Scalar","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Scalar of scalar","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Scalar","slug":"libtmux-options-value-scalar"},{"id":"Libtmux.Output","publicId":"Libtmux.Output","qualifiedName":"Libtmux.Output","name":"Output","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1034,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Future observed pane bytes, local cursors and explicit continuity loss.\n Output cursors are unrelated to snapshot times or server-side history. "],"declarations":[{"kind":"module","text":"module Output : sig\n type cursor = { generation : Generation.t; offset : int64 }\n (** [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. *)\n\n type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t\n\n type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason\n (** Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. *)\n\n val reason_pp : Format.formatter -> reason -> unit\n\n type wait_error =\n | Ended of reason\n | Failure of Error.t\n (** A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. *)\nend","source":{"file":"lib/libtmux.mli","line":1034,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Future observed pane bytes, local cursors and explicit continuity loss. Output cursors are unrelated to snapshot times or server-side history."},"slug":"libtmux-output"},{"id":"Libtmux.Output.cursor","publicId":"Libtmux.Output.cursor","qualifiedName":"Libtmux.Output.cursor","name":"cursor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. "],"declarations":[{"kind":"struct","text":"type cursor = { generation : Generation.t; offset : int64 }","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output","doc":{"summary":"`offset` is the number of observed bytes through the end of a Data event. Cursors from different subscription generations are unrelated. No cursor identifies a snapshot instant or a server-side historical position."},"signatures":[{"raw":"type cursor = {\n generation: Generation.t ;\n offset: int64 }","params":[]}],"slug":"libtmux-output-cursor"},{"id":"Libtmux.Output.cursor.generation","publicId":"Libtmux.Output.cursor.generation","name":"generation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"generation : Generation.t;","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.cursor","type":"Generation.t","qualifiedName":"Libtmux.Output.generation","slug":"libtmux-output-cursor-generation"},{"id":"Libtmux.Output.cursor.offset","publicId":"Libtmux.Output.cursor.offset","name":"offset","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"offset : int64","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.cursor","type":"int64","qualifiedName":"Libtmux.Output.offset","slug":"libtmux-output-cursor-offset"},{"id":"Libtmux.Output.event","publicId":"Libtmux.Output.event","qualifiedName":"Libtmux.Output.event","name":"event","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1048,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason","source":{"file":"lib/libtmux.mli","line":1048,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type event =\n | Data of {\n cursor: cursor ;\n bytes: string } \n | Gap of {\n after: cursor option ;\n lost_bytes: int option ;\n reason: reason } \n | End of reason ","params":[]}],"slug":"libtmux-output-event"},{"id":"Libtmux.Output.event.Data","publicId":"Libtmux.Output.event.Data","name":"Data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Data of { cursor : cursor; bytes : string }","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Data","slug":"libtmux-output-event-data"},{"id":"Libtmux.Output.event.Data.bytes","publicId":"Libtmux.Output.event.Data.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event.Data","type":"string","qualifiedName":"Libtmux.Output.bytes","slug":"libtmux-output-event-data-bytes"},{"id":"Libtmux.Output.event.Data.cursor","publicId":"Libtmux.Output.event.Data.cursor","name":"cursor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cursor : cursor;","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event.Data","type":"cursor","qualifiedName":"Libtmux.Output.cursor","slug":"libtmux-output-event-data-cursor"},{"id":"Libtmux.Output.event.End","publicId":"Libtmux.Output.event.End","name":"End","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1051,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. "],"declarations":[{"kind":"constant","text":"| End of reason","source":{"file":"lib/libtmux.mli","line":1051,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event","doc":{"summary":"Immutable event values. `Gap.after` is the last cursor delivered to the caller. Unknown loss is `None`. A gap ends continuity and is followed by End; recover with a fresh capture and a new subscription. Data preserves bytes, including NUL and invalid UTF-8. It is future observed output, not rendered text or historical reconstruction."},"variant":"tuple","qualifiedName":"Libtmux.Output.End","slug":"libtmux-output-event-end"},{"id":"Libtmux.Output.event.Gap","publicId":"Libtmux.Output.event.Gap","name":"Gap","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Gap of { after : cursor option; lost_bytes : int option; reason : reason }","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Gap","slug":"libtmux-output-event-gap"},{"id":"Libtmux.Output.event.Gap.after","publicId":"Libtmux.Output.event.Gap.after","name":"after","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"after : cursor option;","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event.Gap","type":"cursor option","qualifiedName":"Libtmux.Output.after","slug":"libtmux-output-event-gap-after"},{"id":"Libtmux.Output.event.Gap.lost_bytes","publicId":"Libtmux.Output.event.Gap.lost_bytes","name":"lost_bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"lost_bytes : int option;","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event.Gap","type":"int option","qualifiedName":"Libtmux.Output.lost_bytes","slug":"libtmux-output-event-gap-lost_bytes"},{"id":"Libtmux.Output.event.Gap.reason","publicId":"Libtmux.Output.event.Gap.reason","name":"reason","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"reason : reason","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event.Gap","type":"reason","qualifiedName":"Libtmux.Output.reason","slug":"libtmux-output-event-gap-reason"},{"id":"Libtmux.Output.reason","publicId":"Libtmux.Output.reason","qualifiedName":"Libtmux.Output.reason","name":"reason","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1040,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1040,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type reason =\n | Overflow \n | Membership_changed \n | Server_paused \n | Cancelled \n | Client_closed \n | Transport_error of Error.t ","params":[]}],"slug":"libtmux-output-reason"},{"id":"Libtmux.Output.reason.Cancelled","publicId":"Libtmux.Output.reason.Cancelled","name":"Cancelled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1044,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancelled","source":{"file":"lib/libtmux.mli","line":1044,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Cancelled","slug":"libtmux-output-reason-cancelled"},{"id":"Libtmux.Output.reason.Client_closed","publicId":"Libtmux.Output.reason.Client_closed","name":"Client_closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1045,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client_closed","source":{"file":"lib/libtmux.mli","line":1045,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Client_closed","slug":"libtmux-output-reason-client_closed"},{"id":"Libtmux.Output.reason.Membership_changed","publicId":"Libtmux.Output.reason.Membership_changed","name":"Membership_changed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1042,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Membership_changed","source":{"file":"lib/libtmux.mli","line":1042,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Membership_changed","slug":"libtmux-output-reason-membership_changed"},{"id":"Libtmux.Output.reason.Overflow","publicId":"Libtmux.Output.reason.Overflow","name":"Overflow","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1041,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Overflow","source":{"file":"lib/libtmux.mli","line":1041,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Overflow","slug":"libtmux-output-reason-overflow"},{"id":"Libtmux.Output.reason.Server_paused","publicId":"Libtmux.Output.reason.Server_paused","name":"Server_paused","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1043,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server_paused","source":{"file":"lib/libtmux.mli","line":1043,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Server_paused","slug":"libtmux-output-reason-server_paused"},{"id":"Libtmux.Output.reason.Transport_error","publicId":"Libtmux.Output.reason.Transport_error","name":"Transport_error","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1046,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1046,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.reason","variant":"tuple","qualifiedName":"Libtmux.Output.Transport_error","slug":"libtmux-output-reason-transport_error"},{"id":"Libtmux.Output.reason_pp","publicId":"Libtmux.Output.reason_pp","qualifiedName":"Libtmux.Output.reason_pp","name":"reason_pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1059,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val reason_pp : Format.formatter -> reason -> unit","source":{"file":"lib/libtmux.mli","line":1059,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output","signatures":[{"raw":"val reason_pp : Format.formatter -> reason -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"reason"}],"returns":"unit"}],"slug":"libtmux-output-reason_pp"},{"id":"Libtmux.Output.wait_error","publicId":"Libtmux.Output.wait_error","qualifiedName":"Libtmux.Output.wait_error","name":"wait_error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1061,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type wait_error =\n | Ended of reason\n | Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1061,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type wait_error =\n | Ended of reason \n | Failure of Error.t ","params":[]}],"slug":"libtmux-output-wait_error"},{"id":"Libtmux.Output.wait_error.Ended","publicId":"Libtmux.Output.wait_error.Ended","name":"Ended","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1062,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Ended of reason","source":{"file":"lib/libtmux.mli","line":1062,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.wait_error","variant":"tuple","qualifiedName":"Libtmux.Output.Ended","slug":"libtmux-output-wait_error-ended"},{"id":"Libtmux.Output.wait_error.Failure","publicId":"Libtmux.Output.wait_error.Failure","name":"Failure","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1063,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. "],"declarations":[{"kind":"constant","text":"| Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1063,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.wait_error","doc":{"summary":"A future-byte wait either loses its subscription's continuity or fails an operation. Neither result establishes that the text was absent earlier."},"variant":"tuple","qualifiedName":"Libtmux.Output.Failure","slug":"libtmux-output-wait_error-failure"},{"id":"Libtmux.Pane","publicId":"Libtmux.Pane","qualifiedName":"Libtmux.Pane","name":"Pane","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A captured pane with local geometry, process metadata and a window\n relationship. Use {!Pane.val-target} for explicit actions; reading the\n observation never refreshes it. "],"declarations":[{"kind":"module","text":"and Pane : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end\n\n module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val index : t -> int\n val active : t -> bool\n val dead : t -> bool\n val title : t -> string\n val current_command : t -> string\n val current_path : t -> string\n\n val pid : t -> int option\n (** The captured process ID, absent when tmux reports no process. *)\n\n val width : t -> int\n val height : t -> int\n val left : t -> int\n val top : t -> int\n val window : t -> Window.t\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\nend","source":{"file":"lib/libtmux.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"A captured pane with local geometry, process metadata and a window relationship. Use {!Pane.val-target} for explicit actions; reading the observation never refreshes it."},"slug":"libtmux-pane"},{"id":"Libtmux.Pane.Fields","publicId":"Libtmux.Pane.Fields","qualifiedName":"Libtmux.Pane.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-fields"},{"id":"Libtmux.Pane.Fields.active","publicId":"Libtmux.Pane.Fields.active","qualifiedName":"Libtmux.Pane.Fields.active","name":"active","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":312,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val active : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":312,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val active : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-active"},{"id":"Libtmux.Pane.Fields.current_command","publicId":"Libtmux.Pane.Fields.current_command","qualifiedName":"Libtmux.Pane.Fields.current_command","name":"current_command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":315,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_command : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_command : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_command"},{"id":"Libtmux.Pane.Fields.current_path","publicId":"Libtmux.Pane.Fields.current_path","qualifiedName":"Libtmux.Pane.Fields.current_path","name":"current_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":316,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_path : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_path : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_path"},{"id":"Libtmux.Pane.Fields.dead","publicId":"Libtmux.Pane.Fields.dead","qualifiedName":"Libtmux.Pane.Fields.dead","name":"dead","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":313,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val dead : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":313,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val dead : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-dead"},{"id":"Libtmux.Pane.Fields.height","publicId":"Libtmux.Pane.Fields.height","qualifiedName":"Libtmux.Pane.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":318,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":318,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-height"},{"id":"Libtmux.Pane.Fields.id","publicId":"Libtmux.Pane.Fields.id","qualifiedName":"Libtmux.Pane.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":310,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":310,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-id"},{"id":"Libtmux.Pane.Fields.index","publicId":"Libtmux.Pane.Fields.index","qualifiedName":"Libtmux.Pane.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":311,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":311,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-index"},{"id":"Libtmux.Pane.Fields.left","publicId":"Libtmux.Pane.Fields.left","qualifiedName":"Libtmux.Pane.Fields.left","name":"left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val left : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val left : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-left"},{"id":"Libtmux.Pane.Fields.title","publicId":"Libtmux.Pane.Fields.title","qualifiedName":"Libtmux.Pane.Fields.title","name":"title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":314,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val title : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":314,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val title : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-title"},{"id":"Libtmux.Pane.Fields.top","publicId":"Libtmux.Pane.Fields.top","qualifiedName":"Libtmux.Pane.Fields.top","name":"top","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":320,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val top : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val top : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-top"},{"id":"Libtmux.Pane.Fields.width","publicId":"Libtmux.Pane.Fields.width","qualifiedName":"Libtmux.Pane.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":317,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":317,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-width"},{"id":"Libtmux.Pane.Id","publicId":"Libtmux.Pane.Id","qualifiedName":"Libtmux.Pane.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-id-16to"},{"id":"Libtmux.Pane.Id.compare","publicId":"Libtmux.Pane.Id.compare","qualifiedName":"Libtmux.Pane.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-id-compare"},{"id":"Libtmux.Pane.Id.equal","publicId":"Libtmux.Pane.Id.equal","qualifiedName":"Libtmux.Pane.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-id-equal"},{"id":"Libtmux.Pane.Id.of_string","publicId":"Libtmux.Pane.Id.of_string","qualifiedName":"Libtmux.Pane.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-pane-id-of_string"},{"id":"Libtmux.Pane.Id.pp","publicId":"Libtmux.Pane.Id.pp","qualifiedName":"Libtmux.Pane.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-pane-id-pp"},{"id":"Libtmux.Pane.Id.t","publicId":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux.Pane.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-id-t"},{"id":"Libtmux.Pane.Id.to_string","publicId":"Libtmux.Pane.Id.to_string","qualifiedName":"Libtmux.Pane.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-id-to_string"},{"id":"Libtmux.Pane.Relations","publicId":"Libtmux.Pane.Relations","qualifiedName":"Libtmux.Pane.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":323,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":323,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-relations"},{"id":"Libtmux.Pane.Relations.window","publicId":"Libtmux.Pane.Relations.window","qualifiedName":"Libtmux.Pane.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":324,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-pane-relations-window"},{"id":"Libtmux.Pane.Target","publicId":"Libtmux.Pane.Target","qualifiedName":"Libtmux.Pane.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":329,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":329,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-target-nx8w"},{"id":"Libtmux.Pane.Target.id","publicId":"Libtmux.Pane.Target.id","qualifiedName":"Libtmux.Pane.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":334,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":334,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-target-id"},{"id":"Libtmux.Pane.Target.of_id","publicId":"Libtmux.Pane.Target.of_id","qualifiedName":"Libtmux.Pane.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-pane-target-of_id"},{"id":"Libtmux.Pane.Target.source","publicId":"Libtmux.Pane.Target.source","qualifiedName":"Libtmux.Pane.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":333,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-target-source"},{"id":"Libtmux.Pane.Target.t","publicId":"Libtmux.Pane.Target.t","qualifiedName":"Libtmux.Pane.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":330,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":330,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-target-t"},{"id":"Libtmux.Pane.active","publicId":"Libtmux.Pane.active","qualifiedName":"Libtmux.Pane.active","name":"active","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":341,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val active : t -> bool","source":{"file":"lib/libtmux.mli","line":341,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val active : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-active"},{"id":"Libtmux.Pane.current_command","publicId":"Libtmux.Pane.current_command","qualifiedName":"Libtmux.Pane.current_command","name":"current_command","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_command : t -> string","source":{"file":"lib/libtmux.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_command : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_command"},{"id":"Libtmux.Pane.current_path","publicId":"Libtmux.Pane.current_path","qualifiedName":"Libtmux.Pane.current_path","name":"current_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":345,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_path : t -> string","source":{"file":"lib/libtmux.mli","line":345,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_path : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_path"},{"id":"Libtmux.Pane.dead","publicId":"Libtmux.Pane.dead","qualifiedName":"Libtmux.Pane.dead","name":"dead","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":342,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dead : t -> bool","source":{"file":"lib/libtmux.mli","line":342,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val dead : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-dead"},{"id":"Libtmux.Pane.height","publicId":"Libtmux.Pane.height","qualifiedName":"Libtmux.Pane.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":351,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":351,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-height"},{"id":"Libtmux.Pane.id","publicId":"Libtmux.Pane.id","qualifiedName":"Libtmux.Pane.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":339,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":339,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-id-19ve"},{"id":"Libtmux.Pane.index","publicId":"Libtmux.Pane.index","qualifiedName":"Libtmux.Pane.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-index"},{"id":"Libtmux.Pane.left","publicId":"Libtmux.Pane.left","qualifiedName":"Libtmux.Pane.left","name":"left","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":352,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val left : t -> int","source":{"file":"lib/libtmux.mli","line":352,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val left : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-left"},{"id":"Libtmux.Pane.pid","publicId":"Libtmux.Pane.pid","qualifiedName":"Libtmux.Pane.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":347,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" The captured process ID, absent when tmux reports no process. "],"declarations":[{"kind":"function","text":"val pid : t -> int option","source":{"file":"lib/libtmux.mli","line":347,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","doc":{"summary":"The captured process ID, absent when tmux reports no process."},"signatures":[{"raw":"val pid : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-pane-pid"},{"id":"Libtmux.Pane.same_entity","publicId":"Libtmux.Pane.same_entity","qualifiedName":"Libtmux.Pane.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_entity"},{"id":"Libtmux.Pane.same_observation","publicId":"Libtmux.Pane.same_observation","qualifiedName":"Libtmux.Pane.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_observation"},{"id":"Libtmux.Pane.source","publicId":"Libtmux.Pane.source","qualifiedName":"Libtmux.Pane.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":355,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":355,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-source"},{"id":"Libtmux.Pane.t","publicId":"Libtmux.Pane.t","qualifiedName":"Libtmux.Pane.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":307,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":307,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-t"},{"id":"Libtmux.Pane.target","publicId":"Libtmux.Pane.target","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":356,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":356,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-pane-target-t3h1"},{"id":"Libtmux.Pane.target:type","publicId":"Libtmux.Pane.target:type","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-pane-target-type"},{"id":"Libtmux.Pane.title","publicId":"Libtmux.Pane.title","qualifiedName":"Libtmux.Pane.title","name":"title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":343,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val title : t -> string","source":{"file":"lib/libtmux.mli","line":343,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val title : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-title"},{"id":"Libtmux.Pane.top","publicId":"Libtmux.Pane.top","qualifiedName":"Libtmux.Pane.top","name":"top","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":353,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val top : t -> int","source":{"file":"lib/libtmux.mli","line":353,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val top : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-top"},{"id":"Libtmux.Pane.width","publicId":"Libtmux.Pane.width","qualifiedName":"Libtmux.Pane.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":350,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":350,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-width"},{"id":"Libtmux.Pane.window","publicId":"Libtmux.Pane.window","qualifiedName":"Libtmux.Pane.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-pane-window"},{"id":"Libtmux.Plan","publicId":"Libtmux.Plan","qualifiedName":"Libtmux.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Explicit source-filter planning for a new acquisition. A plan separates\n supported tmux predicates from residual local evaluation; it never changes\n the I/O-free contract of {!Query.matching}. Backend capture operations\n acquire a complete graph and do not consume these plans. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type pushdown = Auto | Never | Require_exact\n type t\n\n val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result\n (** Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. *)\n\n val source_filter : t -> string option\n val residual : t -> Pane.t Expr.t\n val required_fields : t -> string list\n val required_relations : t -> string list\n val explanation : t -> string\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Explicit source-filter planning for a new acquisition. A plan separates supported tmux predicates from residual local evaluation; it never changes the I/O-free contract of {!Query.matching}. Backend capture operations acquire a complete graph and do not consume these plans."},"slug":"libtmux-plan"},{"id":"Libtmux.Plan.explanation","publicId":"Libtmux.Plan.explanation","qualifiedName":"Libtmux.Plan.explanation","name":"explanation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":681,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val explanation : t -> string","source":{"file":"lib/libtmux.mli","line":681,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val explanation : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-plan-explanation"},{"id":"Libtmux.Plan.panes","publicId":"Libtmux.Plan.panes","qualifiedName":"Libtmux.Plan.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":670,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. "],"declarations":[{"kind":"function","text":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":670,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","doc":{"summary":"Plan without I/O. Exact lowering covers pane active/dead flags and complete Boolean combinations. Unsupported children prevent lowering the whole expression, including under OR and NOT. Relationships always stay local. `Require_exact` rejects an unsupported expression before acquisition."},"signatures":[{"raw":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","params":[{"name":"pushdown","type":"pushdown","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t Expr.t"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-plan-panes"},{"id":"Libtmux.Plan.pp","publicId":"Libtmux.Plan.pp","qualifiedName":"Libtmux.Plan.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":682,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":682,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-plan-pp"},{"id":"Libtmux.Plan.pushdown","publicId":"Libtmux.Plan.pushdown","qualifiedName":"Libtmux.Plan.pushdown","name":"pushdown","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type pushdown = Auto | Never | Require_exact","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type pushdown =\n | Auto \n | Never \n | Require_exact ","params":[]}],"slug":"libtmux-plan-pushdown"},{"id":"Libtmux.Plan.pushdown.Auto","publicId":"Libtmux.Plan.pushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Auto","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Auto","slug":"libtmux-plan-pushdown-auto"},{"id":"Libtmux.Plan.pushdown.Never","publicId":"Libtmux.Plan.pushdown.Never","name":"Never","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Never","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Never","slug":"libtmux-plan-pushdown-never"},{"id":"Libtmux.Plan.pushdown.Require_exact","publicId":"Libtmux.Plan.pushdown.Require_exact","name":"Require_exact","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_exact","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Require_exact","slug":"libtmux-plan-pushdown-require_exact"},{"id":"Libtmux.Plan.required_fields","publicId":"Libtmux.Plan.required_fields","qualifiedName":"Libtmux.Plan.required_fields","name":"required_fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":679,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_fields : t -> string list","source":{"file":"lib/libtmux.mli","line":679,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_fields : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_fields"},{"id":"Libtmux.Plan.required_relations","publicId":"Libtmux.Plan.required_relations","qualifiedName":"Libtmux.Plan.required_relations","name":"required_relations","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":680,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_relations : t -> string list","source":{"file":"lib/libtmux.mli","line":680,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_relations : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_relations"},{"id":"Libtmux.Plan.residual","publicId":"Libtmux.Plan.residual","qualifiedName":"Libtmux.Plan.residual","name":"residual","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":678,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val residual : t -> Pane.t Expr.t","source":{"file":"lib/libtmux.mli","line":678,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val residual : t -> Pane.t Expr.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Expr.t"}],"slug":"libtmux-plan-residual"},{"id":"Libtmux.Plan.source_filter","publicId":"Libtmux.Plan.source_filter","qualifiedName":"Libtmux.Plan.source_filter","name":"source_filter","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":677,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source_filter : t -> string option","source":{"file":"lib/libtmux.mli","line":677,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val source_filter : t -> string option","params":[{"name":"arg1","type":"t"}],"returns":"string option"}],"slug":"libtmux-plan-source_filter"},{"id":"Libtmux.Plan.t","publicId":"Libtmux.Plan.t","qualifiedName":"Libtmux.Plan.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":668,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":668,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-plan-t"},{"id":"Libtmux.Query","publicId":"Libtmux.Query","qualifiedName":"Libtmux.Query","name":"Query","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":694,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Sequence adapters and bounded cardinality checks over captured values.\n Matching preserves order and duplicates. Expected absence and ambiguity\n remain ordinary result values. "],"declarations":[{"kind":"module","text":"module Query : sig\n val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t\n (** [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. *)\n\n val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result\n (** Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. *)\n\n val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result\n (** As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n *)\nend","source":{"file":"lib/libtmux.mli","line":694,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Sequence adapters and bounded cardinality checks over captured values. Matching preserves order and duplicates. Expected absence and ambiguity remain ordinary result values."},"slug":"libtmux-query"},{"id":"Libtmux.Query.exactly_one","publicId":"Libtmux.Query.exactly_one","qualifiedName":"Libtmux.Query.exactly_one","name":"exactly_one","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":701,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. "],"declarations":[{"kind":"function","text":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":701,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Query","doc":{"summary":"Return the unique value. Stop when a second value is found; proving uniqueness requires exhausting the remaining sequence. The input's effects and exceptions propagate. This does not execute a mutation."},"signatures":[{"raw":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a, Cardinality.error) result"}],"slug":"libtmux-query-exactly_one"},{"id":"Libtmux.Query.matching","publicId":"Libtmux.Query.matching","qualifiedName":"Libtmux.Query.matching","name":"matching","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":695,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. "],"declarations":[{"kind":"function","text":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","source":{"file":"lib/libtmux.mli","line":695,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Query","doc":{"summary":"`matching expression` compiles once when the adapter is constructed. Filtering preserves order and duplicates. Snapshot-derived sequences replay captured values; arbitrary input sequences retain their effects, exceptions and replay semantics. No tmux acquisition occurs."},"signatures":[{"raw":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","params":[{"name":"arg1","type":"'a Expr.t"},{"name":"arg2","type":"'a Seq.t"}],"returns":"'a Seq.t"}],"slug":"libtmux-query-matching"},{"id":"Libtmux.Query.one_or_none","publicId":"Libtmux.Query.one_or_none","qualifiedName":"Libtmux.Query.one_or_none","name":"one_or_none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":706,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n "],"declarations":[{"kind":"function","text":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":706,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Query","doc":{"summary":"As {!exactly_one}, with `Ok None` for an empty sequence. Order and duplicate entries count toward cardinality; values are not deduplicated."},"signatures":[{"raw":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a option, Cardinality.error) result"}],"slug":"libtmux-query-one_or_none"},{"id":"Libtmux.Relation","publicId":"Libtmux.Relation","qualifiedName":"Libtmux.Relation","name":"Relation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":159,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Typed edges in a captured graph. Many, one and optional relations are\n distinct; an unacquired relationship is never represented as an empty one.\n"],"declarations":[{"kind":"module","text":"module Relation : sig\n module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\nend","source":{"file":"lib/libtmux.mli","line":159,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Typed edges in a captured graph. Many, one and optional relations are distinct; an unacquired relationship is never represented as an empty one."},"slug":"libtmux-relation"},{"id":"Libtmux.Relation.Many","publicId":"Libtmux.Relation.Many","qualifiedName":"Libtmux.Relation.Many","name":"Many","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":160,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-many"},{"id":"Libtmux.Relation.Many.name","publicId":"Libtmux.Relation.Many.name","qualifiedName":"Libtmux.Relation.Many.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-many-name"},{"id":"Libtmux.Relation.Many.t","publicId":"Libtmux.Relation.Many.t","qualifiedName":"Libtmux.Relation.Many.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":161,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":161,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-many-t"},{"id":"Libtmux.Relation.One","publicId":"Libtmux.Relation.One","qualifiedName":"Libtmux.Relation.One","name":"One","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-one"},{"id":"Libtmux.Relation.One.name","publicId":"Libtmux.Relation.One.name","qualifiedName":"Libtmux.Relation.One.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-one-name"},{"id":"Libtmux.Relation.One.t","publicId":"Libtmux.Relation.One.t","qualifiedName":"Libtmux.Relation.One.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-one-t"},{"id":"Libtmux.Relation.Optional","publicId":"Libtmux.Relation.Optional","qualifiedName":"Libtmux.Relation.Optional","name":"Optional","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-optional"},{"id":"Libtmux.Relation.Optional.name","publicId":"Libtmux.Relation.Optional.name","qualifiedName":"Libtmux.Relation.Optional.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":175,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":175,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-optional-name"},{"id":"Libtmux.Relation.Optional.t","publicId":"Libtmux.Relation.Optional.t","qualifiedName":"Libtmux.Relation.Optional.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-optional-t"},{"id":"Libtmux.Session","publicId":"Libtmux.Session","qualifiedName":"Libtmux.Session","name":"Session","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A captured session and its ordered window-link contexts. A session can\n contain repeated links to the same global window. "],"declarations":[{"kind":"module","text":"module rec Session : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end\n\n module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val attached : t -> int\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\n\n val window_links : t -> Window_link.t Iarray.t\n (** All captured links, in capture order, including repeated windows. *)\n\n val windows : t -> Window.t Iarray.t\n (** Distinct windows in first-link order. All accesses are local. *)\nend","source":{"file":"lib/libtmux.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"A captured session and its ordered window-link contexts. A session can contain repeated links to the same global window."},"slug":"libtmux-session"},{"id":"Libtmux.Session.Fields","publicId":"Libtmux.Session.Fields","qualifiedName":"Libtmux.Session.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":184,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":184,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","slug":"libtmux-session-fields"},{"id":"Libtmux.Session.Fields.attached","publicId":"Libtmux.Session.Fields.attached","qualifiedName":"Libtmux.Session.Fields.attached","name":"attached","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val attached : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val attached : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-session-fields-attached"},{"id":"Libtmux.Session.Fields.id","publicId":"Libtmux.Session.Fields.id","qualifiedName":"Libtmux.Session.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-id"},{"id":"Libtmux.Session.Fields.name","publicId":"Libtmux.Session.Fields.name","qualifiedName":"Libtmux.Session.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-name"},{"id":"Libtmux.Session.Id","publicId":"Libtmux.Session.Id","qualifiedName":"Libtmux.Session.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":195,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","slug":"libtmux-session-id-12k2"},{"id":"Libtmux.Session.Id.compare","publicId":"Libtmux.Session.Id.compare","qualifiedName":"Libtmux.Session.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-session-id-compare"},{"id":"Libtmux.Session.Id.equal","publicId":"Libtmux.Session.Id.equal","qualifiedName":"Libtmux.Session.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-id-equal"},{"id":"Libtmux.Session.Id.of_string","publicId":"Libtmux.Session.Id.of_string","qualifiedName":"Libtmux.Session.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-session-id-of_string"},{"id":"Libtmux.Session.Id.pp","publicId":"Libtmux.Session.Id.pp","qualifiedName":"Libtmux.Session.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-session-id-pp"},{"id":"Libtmux.Session.Id.t","publicId":"Libtmux.Session.Id.t","qualifiedName":"Libtmux.Session.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-id-t"},{"id":"Libtmux.Session.Id.to_string","publicId":"Libtmux.Session.Id.to_string","qualifiedName":"Libtmux.Session.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-id-to_string"},{"id":"Libtmux.Session.Relations","publicId":"Libtmux.Session.Relations","qualifiedName":"Libtmux.Session.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":190,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","slug":"libtmux-session-relations"},{"id":"Libtmux.Session.Relations.window_links","publicId":"Libtmux.Session.Relations.window_links","qualifiedName":"Libtmux.Session.Relations.window_links","name":"window_links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val window_links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-session-relations-window_links"},{"id":"Libtmux.Session.Relations.windows","publicId":"Libtmux.Session.Relations.windows","qualifiedName":"Libtmux.Session.Relations.windows","name":"windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":192,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val windows : (t, Window.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":192,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val windows : (t, Window.t) Relation.Many.t","params":[],"returns":"(t, Window.t) Relation.Many.t"}],"slug":"libtmux-session-relations-windows"},{"id":"Libtmux.Session.Target","publicId":"Libtmux.Session.Target","qualifiedName":"Libtmux.Session.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":197,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":197,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","slug":"libtmux-session-target-5p2d"},{"id":"Libtmux.Session.Target.id","publicId":"Libtmux.Session.Target.id","qualifiedName":"Libtmux.Session.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-target-id"},{"id":"Libtmux.Session.Target.of_id","publicId":"Libtmux.Session.Target.of_id","qualifiedName":"Libtmux.Session.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Describe a target in an existing connection generation. No I/O. "],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Target","doc":{"summary":"Describe a target in an existing connection generation. No I/O."},"signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-session-target-of_id"},{"id":"Libtmux.Session.Target.source","publicId":"Libtmux.Session.Target.source","qualifiedName":"Libtmux.Session.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-target-source"},{"id":"Libtmux.Session.Target.t","publicId":"Libtmux.Session.Target.t","qualifiedName":"Libtmux.Session.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-target-t"},{"id":"Libtmux.Session.attached","publicId":"Libtmux.Session.attached","qualifiedName":"Libtmux.Session.attached","name":"attached","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val attached : t -> int","source":{"file":"lib/libtmux.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val attached : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-session-attached"},{"id":"Libtmux.Session.id","publicId":"Libtmux.Session.id","qualifiedName":"Libtmux.Session.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-id-12gy"},{"id":"Libtmux.Session.name","publicId":"Libtmux.Session.name","qualifiedName":"Libtmux.Session.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":210,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":210,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-name"},{"id":"Libtmux.Session.same_entity","publicId":"Libtmux.Session.same_entity","qualifiedName":"Libtmux.Session.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":215,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":215,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_entity"},{"id":"Libtmux.Session.same_observation","publicId":"Libtmux.Session.same_observation","qualifiedName":"Libtmux.Session.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_observation"},{"id":"Libtmux.Session.source","publicId":"Libtmux.Session.source","qualifiedName":"Libtmux.Session.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-source"},{"id":"Libtmux.Session.t","publicId":"Libtmux.Session.t","qualifiedName":"Libtmux.Session.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-t"},{"id":"Libtmux.Session.target","publicId":"Libtmux.Session.target","qualifiedName":"Libtmux.Session.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-session-target-iu8j"},{"id":"Libtmux.Session.target:type","publicId":"Libtmux.Session.target:type","qualifiedName":"Libtmux.Session.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-session-target-type"},{"id":"Libtmux.Session.window_links","publicId":"Libtmux.Session.window_links","qualifiedName":"Libtmux.Session.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" All captured links, in capture order, including repeated windows. "],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","doc":{"summary":"All captured links, in capture order, including repeated windows.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-session-window_links"},{"id":"Libtmux.Session.windows","publicId":"Libtmux.Session.windows","qualifiedName":"Libtmux.Session.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Distinct windows in first-link order. All accesses are local. "],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","doc":{"summary":"Distinct windows in first-link order. All accesses are local."},"signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-session-windows"},{"id":"Libtmux.Snapshot","publicId":"Libtmux.Snapshot","qualifiedName":"Libtmux.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A complete immutable graph captured over an acquisition interval.\n Collections are replayable immutable arrays. Capturing several tmux commands\n does not establish an atomic transaction. "],"declarations":[{"kind":"module","text":"module Snapshot : sig\n type t\n\n module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end\n\n module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end\n\n val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result\n (** Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. *)\n\n val id : t -> Id.t\n val source : t -> Source.t\n val started_at_ns : t -> int64\n val finished_at_ns : t -> int64\n val sessions : t -> Session.t Iarray.t\n val windows : t -> Window.t Iarray.t\n val window_links : t -> Window_link.t Iarray.t\n val panes : t -> Pane.t Iarray.t\n\n val clients : t -> Client_observation.t Iarray.t\n (** Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. *)\n\n val find_session : t -> Session.Id.t -> Session.t option\n val find_window : t -> Window.Id.t -> Window.t option\n val find_pane : t -> Pane.Id.t -> Pane.t option\nend","source":{"file":"lib/libtmux.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"A complete immutable graph captured over an acquisition interval. Collections are replayable immutable arrays. Capturing several tmux commands does not establish an atomic transaction."},"slug":"libtmux-snapshot"},{"id":"Libtmux.Snapshot.Id","publicId":"Libtmux.Snapshot.Id","qualifiedName":"Libtmux.Snapshot.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end","source":{"file":"lib/libtmux.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-id-1y9h"},{"id":"Libtmux.Snapshot.Id.equal","publicId":"Libtmux.Snapshot.Id.equal","qualifiedName":"Libtmux.Snapshot.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-snapshot-id-equal"},{"id":"Libtmux.Snapshot.Id.of_string","publicId":"Libtmux.Snapshot.Id.of_string","qualifiedName":"Libtmux.Snapshot.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":409,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":409,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-id-of_string"},{"id":"Libtmux.Snapshot.Id.t","publicId":"Libtmux.Snapshot.Id.t","qualifiedName":"Libtmux.Snapshot.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":407,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":407,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-id-t"},{"id":"Libtmux.Snapshot.Id.to_string","publicId":"Libtmux.Snapshot.Id.to_string","qualifiedName":"Libtmux.Snapshot.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-snapshot-id-to_string"},{"id":"Libtmux.Snapshot.Input","publicId":"Libtmux.Snapshot.Input","qualifiedName":"Libtmux.Snapshot.Input","name":"Input","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end","source":{"file":"lib/libtmux.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-input"},{"id":"Libtmux.Snapshot.Input.client","publicId":"Libtmux.Snapshot.Input.client","qualifiedName":"Libtmux.Snapshot.Input.client","name":"client","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":448,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }","source":{"file":"lib/libtmux.mli","line":448,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type client =\n {\n name: string ;\n session_id: Session.Id.t option ;\n pid: int ;\n width: int ;\n height: int option ;\n control_mode: bool }","params":[]}],"slug":"libtmux-snapshot-input-client"},{"id":"Libtmux.Snapshot.Input.client.control_mode","publicId":"Libtmux.Snapshot.Input.client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":454,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"control_mode : bool;","source":{"file":"lib/libtmux.mli","line":454,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.client","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.control_mode","slug":"libtmux-snapshot-input-client-control_mode"},{"id":"Libtmux.Snapshot.Input.client.height","publicId":"Libtmux.Snapshot.Input.client.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":453,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":453,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-client-height"},{"id":"Libtmux.Snapshot.Input.client.name","publicId":"Libtmux.Snapshot.Input.client.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.client","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-client-name"},{"id":"Libtmux.Snapshot.Input.client.pid","publicId":"Libtmux.Snapshot.Input.client.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":451,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int;","source":{"file":"lib/libtmux.mli","line":451,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-client-pid"},{"id":"Libtmux.Snapshot.Input.client.session_id","publicId":"Libtmux.Snapshot.Input.client.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t option;","source":{"file":"lib/libtmux.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.client","type":"Session.Id.t option","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-client-session_id"},{"id":"Libtmux.Snapshot.Input.client.width","publicId":"Libtmux.Snapshot.Input.client.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":452,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":452,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-client-width"},{"id":"Libtmux.Snapshot.Input.pane","publicId":"Libtmux.Snapshot.Input.pane","qualifiedName":"Libtmux.Snapshot.Input.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":432,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }","source":{"file":"lib/libtmux.mli","line":432,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type pane =\n {\n id: Pane.Id.t ;\n window_id: Window.Id.t ;\n index: int ;\n active: bool ;\n dead: bool ;\n title: string ;\n current_command: string ;\n current_path: string ;\n pid: int option ;\n width: int ;\n height: int ;\n left: int ;\n top: int }","params":[]}],"slug":"libtmux-snapshot-input-pane"},{"id":"Libtmux.Snapshot.Input.pane.active","publicId":"Libtmux.Snapshot.Input.pane.active","name":"active","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":436,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"active : bool;","source":{"file":"lib/libtmux.mli","line":436,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.active","slug":"libtmux-snapshot-input-pane-active"},{"id":"Libtmux.Snapshot.Input.pane.current_command","publicId":"Libtmux.Snapshot.Input.pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":439,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_command : string;","source":{"file":"lib/libtmux.mli","line":439,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_command","slug":"libtmux-snapshot-input-pane-current_command"},{"id":"Libtmux.Snapshot.Input.pane.current_path","publicId":"Libtmux.Snapshot.Input.pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_path : string;","source":{"file":"lib/libtmux.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_path","slug":"libtmux-snapshot-input-pane-current_path"},{"id":"Libtmux.Snapshot.Input.pane.dead","publicId":"Libtmux.Snapshot.Input.pane.dead","name":"dead","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":437,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"dead : bool;","source":{"file":"lib/libtmux.mli","line":437,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.dead","slug":"libtmux-snapshot-input-pane-dead"},{"id":"Libtmux.Snapshot.Input.pane.height","publicId":"Libtmux.Snapshot.Input.pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":443,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":443,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-pane-height"},{"id":"Libtmux.Snapshot.Input.pane.id","publicId":"Libtmux.Snapshot.Input.pane.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":433,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":433,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Pane.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-pane-id"},{"id":"Libtmux.Snapshot.Input.pane.index","publicId":"Libtmux.Snapshot.Input.pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":435,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":435,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-pane-index"},{"id":"Libtmux.Snapshot.Input.pane.left","publicId":"Libtmux.Snapshot.Input.pane.left","name":"left","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":444,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"left : int;","source":{"file":"lib/libtmux.mli","line":444,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.left","slug":"libtmux-snapshot-input-pane-left"},{"id":"Libtmux.Snapshot.Input.pane.pid","publicId":"Libtmux.Snapshot.Input.pane.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":441,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int option;","source":{"file":"lib/libtmux.mli","line":441,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-pane-pid"},{"id":"Libtmux.Snapshot.Input.pane.title","publicId":"Libtmux.Snapshot.Input.pane.title","name":"title","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":438,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"title : string;","source":{"file":"lib/libtmux.mli","line":438,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.title","slug":"libtmux-snapshot-input-pane-title"},{"id":"Libtmux.Snapshot.Input.pane.top","publicId":"Libtmux.Snapshot.Input.pane.top","name":"top","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":445,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"top : int;","source":{"file":"lib/libtmux.mli","line":445,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.top","slug":"libtmux-snapshot-input-pane-top"},{"id":"Libtmux.Snapshot.Input.pane.width","publicId":"Libtmux.Snapshot.Input.pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":442,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":442,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-pane-width"},{"id":"Libtmux.Snapshot.Input.pane.window_id","publicId":"Libtmux.Snapshot.Input.pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":434,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":434,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-pane-window_id"},{"id":"Libtmux.Snapshot.Input.session","publicId":"Libtmux.Snapshot.Input.session","qualifiedName":"Libtmux.Snapshot.Input.session","name":"session","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type session = { id : Session.Id.t; name : string; attached : int }","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type session = {\n id: Session.Id.t ;\n name: string ;\n attached: int }","params":[]}],"slug":"libtmux-snapshot-input-session"},{"id":"Libtmux.Snapshot.Input.session.attached","publicId":"Libtmux.Snapshot.Input.session.attached","name":"attached","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"attached : int","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.session","type":"int","qualifiedName":"Libtmux.Snapshot.Input.attached","slug":"libtmux-snapshot-input-session-attached"},{"id":"Libtmux.Snapshot.Input.session.id","publicId":"Libtmux.Snapshot.Input.session.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.session","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-session-id"},{"id":"Libtmux.Snapshot.Input.session.name","publicId":"Libtmux.Snapshot.Input.session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.session","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-session-name"},{"id":"Libtmux.Snapshot.Input.window","publicId":"Libtmux.Snapshot.Input.window","qualifiedName":"Libtmux.Snapshot.Input.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }","source":{"file":"lib/libtmux.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window =\n {\n id: Window.Id.t ;\n name: string ;\n width: int ;\n height: int ;\n layout: string }","params":[]}],"slug":"libtmux-snapshot-input-window"},{"id":"Libtmux.Snapshot.Input.window.height","publicId":"Libtmux.Snapshot.Input.window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":421,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":421,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-window-height"},{"id":"Libtmux.Snapshot.Input.window.id","publicId":"Libtmux.Snapshot.Input.window.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":418,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":418,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-window-id"},{"id":"Libtmux.Snapshot.Input.window.layout","publicId":"Libtmux.Snapshot.Input.window.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : string;","source":{"file":"lib/libtmux.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.layout","slug":"libtmux-snapshot-input-window-layout"},{"id":"Libtmux.Snapshot.Input.window.name","publicId":"Libtmux.Snapshot.Input.window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":419,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":419,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-window-name"},{"id":"Libtmux.Snapshot.Input.window.width","publicId":"Libtmux.Snapshot.Input.window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":420,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":420,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-window-width"},{"id":"Libtmux.Snapshot.Input.window_link","publicId":"Libtmux.Snapshot.Input.window_link","qualifiedName":"Libtmux.Snapshot.Input.window_link","name":"window_link","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":425,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }","source":{"file":"lib/libtmux.mli","line":425,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window_link =\n {\n session_id: Session.Id.t ;\n window_id: Window.Id.t ;\n index: int ;\n is_current: bool }","params":[]}],"slug":"libtmux-snapshot-input-window_link"},{"id":"Libtmux.Snapshot.Input.window_link.index","publicId":"Libtmux.Snapshot.Input.window_link.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":428,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":428,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-window_link-index"},{"id":"Libtmux.Snapshot.Input.window_link.is_current","publicId":"Libtmux.Snapshot.Input.window_link.is_current","name":"is_current","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":429,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"is_current : bool;","source":{"file":"lib/libtmux.mli","line":429,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.is_current","slug":"libtmux-snapshot-input-window_link-is_current"},{"id":"Libtmux.Snapshot.Input.window_link.session_id","publicId":"Libtmux.Snapshot.Input.window_link.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-window_link-session_id"},{"id":"Libtmux.Snapshot.Input.window_link.window_id","publicId":"Libtmux.Snapshot.Input.window_link.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-window_link-window_id"},{"id":"Libtmux.Snapshot.clients","publicId":"Libtmux.Snapshot.clients","qualifiedName":"Libtmux.Snapshot.clients","name":"clients","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":486,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. "],"declarations":[{"kind":"function","text":"val clients : t -> Client_observation.t Iarray.t","source":{"file":"lib/libtmux.mli","line":486,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Collections and their contents are immutable. They retain capture order, are replayable and remain readable after the acquiring client closes."},"signatures":[{"raw":"val clients : t -> Client_observation.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_observation.t Iarray.t"}],"slug":"libtmux-snapshot-clients"},{"id":"Libtmux.Snapshot.create","publicId":"Libtmux.Snapshot.create","qualifiedName":"Libtmux.Snapshot.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. "],"declarations":[{"kind":"function","text":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Validate and materialize a complete captured graph without I/O. Equal duplicate global rows collapse in first-occurrence order; conflicting rows and dangling references return {!Error.Capture_raced}. Links at different indexes remain distinct, including within one session. At most 10,000 input rows are admitted. Each session needs one current link and each window one active pane. Capture spans an interval, not an atomic instant. Input strings are bytes; no Unicode normalization is performed."},"signatures":[{"raw":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list -> clients:Input.client list -> (t, Error.t) result","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"id","type":"Id.t","keywordOnly":true},{"name":"started_at_ns","type":"int64","keywordOnly":true},{"name":"finished_at_ns","type":"int64","keywordOnly":true},{"name":"sessions","type":"Input.session list","keywordOnly":true},{"name":"windows","type":"Input.window list","keywordOnly":true},{"name":"window_links","type":"Input.window_link list","keywordOnly":true},{"name":"panes","type":"Input.pane list","keywordOnly":true},{"name":"clients","type":"Input.client list","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-create"},{"id":"Libtmux.Snapshot.find_pane","publicId":"Libtmux.Snapshot.find_pane","qualifiedName":"Libtmux.Snapshot.find_pane","name":"find_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":492,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_pane : t -> Pane.Id.t -> Pane.t option","source":{"file":"lib/libtmux.mli","line":492,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_pane : t -> Pane.Id.t -> Pane.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Pane.Id.t"}],"returns":"Pane.t option"}],"slug":"libtmux-snapshot-find_pane"},{"id":"Libtmux.Snapshot.find_session","publicId":"Libtmux.Snapshot.find_session","qualifiedName":"Libtmux.Snapshot.find_session","name":"find_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":490,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_session : t -> Session.Id.t -> Session.t option","source":{"file":"lib/libtmux.mli","line":490,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_session : t -> Session.Id.t -> Session.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Session.Id.t"}],"returns":"Session.t option"}],"slug":"libtmux-snapshot-find_session"},{"id":"Libtmux.Snapshot.find_window","publicId":"Libtmux.Snapshot.find_window","qualifiedName":"Libtmux.Snapshot.find_window","name":"find_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":491,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_window : t -> Window.Id.t -> Window.t option","source":{"file":"lib/libtmux.mli","line":491,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_window : t -> Window.Id.t -> Window.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Window.Id.t"}],"returns":"Window.t option"}],"slug":"libtmux-snapshot-find_window"},{"id":"Libtmux.Snapshot.finished_at_ns","publicId":"Libtmux.Snapshot.finished_at_ns","qualifiedName":"Libtmux.Snapshot.finished_at_ns","name":"finished_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":480,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val finished_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":480,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val finished_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-finished_at_ns"},{"id":"Libtmux.Snapshot.id","publicId":"Libtmux.Snapshot.id","qualifiedName":"Libtmux.Snapshot.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":477,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":477,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-snapshot-id-1y6d"},{"id":"Libtmux.Snapshot.panes","publicId":"Libtmux.Snapshot.panes","qualifiedName":"Libtmux.Snapshot.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"slug":"libtmux-snapshot-panes"},{"id":"Libtmux.Snapshot.sessions","publicId":"Libtmux.Snapshot.sessions","qualifiedName":"Libtmux.Snapshot.sessions","name":"sessions","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val sessions : t -> Session.t Iarray.t","source":{"file":"lib/libtmux.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val sessions : t -> Session.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-snapshot-sessions"},{"id":"Libtmux.Snapshot.source","publicId":"Libtmux.Snapshot.source","qualifiedName":"Libtmux.Snapshot.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":478,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":478,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-snapshot-source"},{"id":"Libtmux.Snapshot.started_at_ns","publicId":"Libtmux.Snapshot.started_at_ns","qualifiedName":"Libtmux.Snapshot.started_at_ns","name":"started_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":479,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val started_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":479,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val started_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-started_at_ns"},{"id":"Libtmux.Snapshot.t","publicId":"Libtmux.Snapshot.t","qualifiedName":"Libtmux.Snapshot.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":404,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":404,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-t"},{"id":"Libtmux.Snapshot.window_links","publicId":"Libtmux.Snapshot.window_links","qualifiedName":"Libtmux.Snapshot.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":483,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":483,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-snapshot-window_links"},{"id":"Libtmux.Snapshot.windows","publicId":"Libtmux.Snapshot.windows","qualifiedName":"Libtmux.Snapshot.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":482,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":482,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-snapshot-windows"},{"id":"Libtmux.Source","publicId":"Libtmux.Source","qualifiedName":"Libtmux.Source","name":"Source","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Endpoint and observed daemon identity for one connection generation.\n Constructing metadata alone does not establish a live binding. "],"declarations":[{"kind":"module","text":"module Source : sig\n type t\n\n val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result\n (** Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. *)\n\n val endpoint : t -> Endpoint.t\n val generation : t -> Generation.t\n val server_pid : t -> int\n\n val equal : t -> t -> bool\n (** Compare endpoint, observed daemon PID and connection generation.\n Independent connections compare unequal even when they observe the same\n PID. Equality establishes neither a live binding nor fresh observations.\n *)\nend","source":{"file":"lib/libtmux.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Endpoint and observed daemon identity for one connection generation. Constructing metadata alone does not establish a live binding."},"slug":"libtmux-source"},{"id":"Libtmux.Source.create","publicId":"Libtmux.Source.create","qualifiedName":"Libtmux.Source.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. "],"declarations":[{"kind":"function","text":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Source","doc":{"summary":"Pure metadata import for capture adapters. This neither establishes a connection nor verifies process identity. The backend must bind the generation to a live daemon before it admits operations."},"signatures":[{"raw":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t -> server_pid:int -> (t, Error.t) result","params":[{"name":"endpoint","type":"Endpoint.t","keywordOnly":true},{"name":"generation","type":"Generation.t","keywordOnly":true},{"name":"server_pid","type":"int","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-source-create"},{"id":"Libtmux.Source.endpoint","publicId":"Libtmux.Source.endpoint","qualifiedName":"Libtmux.Source.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Endpoint.t","source":{"file":"lib/libtmux.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val endpoint : t -> Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Endpoint.t"}],"slug":"libtmux-source-endpoint"},{"id":"Libtmux.Source.equal","publicId":"Libtmux.Source.equal","qualifiedName":"Libtmux.Source.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare endpoint, observed daemon PID and connection generation.\n Independent connections compare unequal even when they observe the same\n PID. Equality establishes neither a live binding nor fresh observations.\n "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Source","doc":{"summary":"Compare endpoint, observed daemon PID and connection generation. Independent connections compare unequal even when they observe the same PID. Equality establishes neither a live binding nor fresh observations."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-source-equal"},{"id":"Libtmux.Source.generation","publicId":"Libtmux.Source.generation","qualifiedName":"Libtmux.Source.generation","name":"generation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":109,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val generation : t -> Generation.t","source":{"file":"lib/libtmux.mli","line":109,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val generation : t -> Generation.t","params":[{"name":"arg1","type":"t"}],"returns":"Generation.t"}],"slug":"libtmux-source-generation"},{"id":"Libtmux.Source.server_pid","publicId":"Libtmux.Source.server_pid","qualifiedName":"Libtmux.Source.server_pid","name":"server_pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val server_pid : t -> int","source":{"file":"lib/libtmux.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val server_pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-source-server_pid"},{"id":"Libtmux.Source.t","publicId":"Libtmux.Source.t","qualifiedName":"Libtmux.Source.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Source","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-source-t"},{"id":"Libtmux.Spawn","publicId":"Libtmux.Spawn","qualifiedName":"Libtmux.Spawn","name":"Spawn","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":739,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A process description with explicit argv or shell semantics, working\n directory and environment. Describing a process performs no I/O. "],"declarations":[{"kind":"module","text":"module Spawn : sig\n type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string\n\n type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }\n\n val make : ?cwd:string -> ?environment:(string * string) list -> command -> t\n (** Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. *)\n\n val default : t\nend","source":{"file":"lib/libtmux.mli","line":739,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"A process description with explicit argv or shell semantics, working directory and environment. Describing a process performs no I/O."},"slug":"libtmux-spawn"},{"id":"Libtmux.Spawn.command","publicId":"Libtmux.Spawn.command","qualifiedName":"Libtmux.Spawn.command","name":"command","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":740,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string","source":{"file":"lib/libtmux.mli","line":740,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type command =\n | Default \n | Exec of {\n program: string ;\n args: string list } \n | Shell of string ","params":[]}],"slug":"libtmux-spawn-command"},{"id":"Libtmux.Spawn.command.Default","publicId":"Libtmux.Spawn.command.Default","name":"Default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Default","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.command","variant":"unit","qualifiedName":"Libtmux.Spawn.Default","slug":"libtmux-spawn-command-default"},{"id":"Libtmux.Spawn.command.Exec","publicId":"Libtmux.Spawn.command.Exec","name":"Exec","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Exec of { program : string; args : string list }","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.command","variant":"struct","qualifiedName":"Libtmux.Spawn.Exec","slug":"libtmux-spawn-command-exec"},{"id":"Libtmux.Spawn.command.Exec.args","publicId":"Libtmux.Spawn.command.Exec.args","name":"args","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"args : string list","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string list","qualifiedName":"Libtmux.Spawn.args","slug":"libtmux-spawn-command-exec-args"},{"id":"Libtmux.Spawn.command.Exec.program","publicId":"Libtmux.Spawn.command.Exec.program","name":"program","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"program : string;","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string","qualifiedName":"Libtmux.Spawn.program","slug":"libtmux-spawn-command-exec-program"},{"id":"Libtmux.Spawn.command.Shell","publicId":"Libtmux.Spawn.command.Shell","name":"Shell","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":743,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Shell of string","source":{"file":"lib/libtmux.mli","line":743,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.command","variant":"tuple","qualifiedName":"Libtmux.Spawn.Shell","slug":"libtmux-spawn-command-shell"},{"id":"Libtmux.Spawn.default","publicId":"Libtmux.Spawn.default","qualifiedName":"Libtmux.Spawn.default","name":"default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":759,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val default : t","source":{"file":"lib/libtmux.mli","line":759,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"val default : t","params":[],"returns":"t"}],"slug":"libtmux-spawn-default"},{"id":"Libtmux.Spawn.make","publicId":"Libtmux.Spawn.make","qualifiedName":"Libtmux.Spawn.make","name":"make","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":751,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. "],"declarations":[{"kind":"function","text":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","source":{"file":"lib/libtmux.mli","line":751,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn","doc":{"summary":"Describe a program without I/O. `Exec` preserves argv; `Shell` explicitly requests the daemon's configured shell. `cwd` must be absolute. Validation occurs at admission. With no arguments, `Exec` uses a fixed `/bin/sh` trampoline because tmux treats a single argument as shell code. `Default` follows tmux defaults on creation and reuses the previous command on respawn."},"signatures":[{"raw":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"arg1","type":"command"}],"returns":"t"}],"slug":"libtmux-spawn-make"},{"id":"Libtmux.Spawn.t","publicId":"Libtmux.Spawn.t","qualifiedName":"Libtmux.Spawn.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":745,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }","source":{"file":"lib/libtmux.mli","line":745,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type t =\n {\n command: command ;\n cwd: string option ;\n environment: (string * string) list }","params":[]}],"slug":"libtmux-spawn-t"},{"id":"Libtmux.Spawn.t.command","publicId":"Libtmux.Spawn.t.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":746,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : command;","source":{"file":"lib/libtmux.mli","line":746,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.t","type":"command","qualifiedName":"Libtmux.Spawn.command","slug":"libtmux-spawn-t-command"},{"id":"Libtmux.Spawn.t.cwd","publicId":"Libtmux.Spawn.t.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":747,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"lib/libtmux.mli","line":747,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.t","type":"string option","qualifiedName":"Libtmux.Spawn.cwd","slug":"libtmux-spawn-t-cwd"},{"id":"Libtmux.Spawn.t.environment","publicId":"Libtmux.Spawn.t.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":748,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"lib/libtmux.mli","line":748,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.t","type":"(string * string) list","qualifiedName":"Libtmux.Spawn.environment","slug":"libtmux-spawn-t-environment"},{"id":"Libtmux.Window","publicId":"Libtmux.Window","qualifiedName":"Libtmux.Window","name":"Window","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A global window shared by its session links. Window index and current state\n belong to a link, while panes and geometry belong to the window. "],"declarations":[{"kind":"module","text":"and Window : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end\n\n module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val width : t -> int\n val height : t -> int\n val layout : t -> string\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\n\n val panes : t -> Pane.t Iarray.t\n val links : t -> Window_link.t Iarray.t\nend","source":{"file":"lib/libtmux.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"A global window shared by its session links. Window index and current state belong to a link, while panes and geometry belong to the window."},"slug":"libtmux-window"},{"id":"Libtmux.Window.Fields","publicId":"Libtmux.Window.Fields","qualifiedName":"Libtmux.Window.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end","source":{"file":"lib/libtmux.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","slug":"libtmux-window-fields"},{"id":"Libtmux.Window.Fields.height","publicId":"Libtmux.Window.Fields.height","qualifiedName":"Libtmux.Window.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":237,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":237,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-height"},{"id":"Libtmux.Window.Fields.id","publicId":"Libtmux.Window.Fields.id","qualifiedName":"Libtmux.Window.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-id"},{"id":"Libtmux.Window.Fields.layout","publicId":"Libtmux.Window.Fields.layout","qualifiedName":"Libtmux.Window.Fields.layout","name":"layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val layout : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val layout : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-layout"},{"id":"Libtmux.Window.Fields.name","publicId":"Libtmux.Window.Fields.name","qualifiedName":"Libtmux.Window.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-name"},{"id":"Libtmux.Window.Fields.width","publicId":"Libtmux.Window.Fields.width","qualifiedName":"Libtmux.Window.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-width"},{"id":"Libtmux.Window.Id","publicId":"Libtmux.Window.Id","qualifiedName":"Libtmux.Window.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","slug":"libtmux-window-id-1sgu"},{"id":"Libtmux.Window.Id.compare","publicId":"Libtmux.Window.Id.compare","qualifiedName":"Libtmux.Window.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-window-id-compare"},{"id":"Libtmux.Window.Id.equal","publicId":"Libtmux.Window.Id.equal","qualifiedName":"Libtmux.Window.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-id-equal"},{"id":"Libtmux.Window.Id.of_string","publicId":"Libtmux.Window.Id.of_string","qualifiedName":"Libtmux.Window.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-window-id-of_string"},{"id":"Libtmux.Window.Id.pp","publicId":"Libtmux.Window.Id.pp","qualifiedName":"Libtmux.Window.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-window-id-pp"},{"id":"Libtmux.Window.Id.t","publicId":"Libtmux.Window.Id.t","qualifiedName":"Libtmux.Window.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-id-t"},{"id":"Libtmux.Window.Id.to_string","publicId":"Libtmux.Window.Id.to_string","qualifiedName":"Libtmux.Window.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-id-to_string"},{"id":"Libtmux.Window.Relations","publicId":"Libtmux.Window.Relations","qualifiedName":"Libtmux.Window.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":241,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":241,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","slug":"libtmux-window-relations"},{"id":"Libtmux.Window.Relations.links","publicId":"Libtmux.Window.Relations.links","qualifiedName":"Libtmux.Window.Relations.links","name":"links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":243,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":243,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-window-relations-links"},{"id":"Libtmux.Window.Relations.panes","publicId":"Libtmux.Window.Relations.panes","qualifiedName":"Libtmux.Window.Relations.panes","name":"panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":242,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val panes : (t, Pane.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":242,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val panes : (t, Pane.t) Relation.Many.t","params":[],"returns":"(t, Pane.t) Relation.Many.t"}],"slug":"libtmux-window-relations-panes"},{"id":"Libtmux.Window.Target","publicId":"Libtmux.Window.Target","qualifiedName":"Libtmux.Window.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","slug":"libtmux-window-target-6ecc"},{"id":"Libtmux.Window.Target.id","publicId":"Libtmux.Window.Target.id","qualifiedName":"Libtmux.Window.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-target-id"},{"id":"Libtmux.Window.Target.of_id","publicId":"Libtmux.Window.Target.of_id","qualifiedName":"Libtmux.Window.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-window-target-of_id"},{"id":"Libtmux.Window.Target.source","publicId":"Libtmux.Window.Target.source","qualifiedName":"Libtmux.Window.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-target-source"},{"id":"Libtmux.Window.Target.t","publicId":"Libtmux.Window.Target.t","qualifiedName":"Libtmux.Window.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-target-t"},{"id":"Libtmux.Window.height","publicId":"Libtmux.Window.height","qualifiedName":"Libtmux.Window.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-height"},{"id":"Libtmux.Window.id","publicId":"Libtmux.Window.id","qualifiedName":"Libtmux.Window.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":258,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":258,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-id-1sjw"},{"id":"Libtmux.Window.layout","publicId":"Libtmux.Window.layout","qualifiedName":"Libtmux.Window.layout","name":"layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":262,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val layout : t -> string","source":{"file":"lib/libtmux.mli","line":262,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val layout : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-layout"},{"id":"Libtmux.Window.links","publicId":"Libtmux.Window.links","qualifiedName":"Libtmux.Window.links","name":"links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-window-links"},{"id":"Libtmux.Window.name","publicId":"Libtmux.Window.name","qualifiedName":"Libtmux.Window.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":259,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":259,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-name"},{"id":"Libtmux.Window.panes","publicId":"Libtmux.Window.panes","qualifiedName":"Libtmux.Window.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":272,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":272,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-window-panes"},{"id":"Libtmux.Window.same_entity","publicId":"Libtmux.Window.same_entity","qualifiedName":"Libtmux.Window.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":266,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_entity"},{"id":"Libtmux.Window.same_observation","publicId":"Libtmux.Window.same_observation","qualifiedName":"Libtmux.Window.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_observation"},{"id":"Libtmux.Window.source","publicId":"Libtmux.Window.source","qualifiedName":"Libtmux.Window.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-source"},{"id":"Libtmux.Window.t","publicId":"Libtmux.Window.t","qualifiedName":"Libtmux.Window.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-t"},{"id":"Libtmux.Window.target","publicId":"Libtmux.Window.target","qualifiedName":"Libtmux.Window.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-window-target-1sbf"},{"id":"Libtmux.Window.target:type","publicId":"Libtmux.Window.target:type","qualifiedName":"Libtmux.Window.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":256,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":256,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-window-target-type"},{"id":"Libtmux.Window.width","publicId":"Libtmux.Window.width","qualifiedName":"Libtmux.Window.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-width"},{"id":"Libtmux.Window_link","publicId":"Libtmux.Window_link","qualifiedName":"Libtmux.Window_link","name":"Window_link","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":278,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" One captured session/index/window context. It is not a stable link\n incarnation across unlinking, movement or reindexing. "],"declarations":[{"kind":"module","text":"and Window_link : sig\n type t\n\n module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end\n\n val index : t -> int\n val is_current : t -> bool\n val session : t -> Session.t\n val window : t -> Window.t\n\n val same_context : t -> t -> bool\n (** Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. *)\n\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":278,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"One captured session/index/window context. It is not a stable link incarnation across unlinking, movement or reindexing."},"slug":"libtmux-window_link"},{"id":"Libtmux.Window_link.Fields","publicId":"Libtmux.Window_link.Fields","qualifiedName":"Libtmux.Window_link.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":281,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":281,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-fields"},{"id":"Libtmux.Window_link.Fields.index","publicId":"Libtmux.Window_link.Fields.index","qualifiedName":"Libtmux.Window_link.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window_link-fields-index"},{"id":"Libtmux.Window_link.Fields.is_current","publicId":"Libtmux.Window_link.Fields.is_current","qualifiedName":"Libtmux.Window_link.Fields.is_current","name":"is_current","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":283,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val is_current : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val is_current : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-window_link-fields-is_current"},{"id":"Libtmux.Window_link.Relations","publicId":"Libtmux.Window_link.Relations","qualifiedName":"Libtmux.Window_link.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":286,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":286,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-relations"},{"id":"Libtmux.Window_link.Relations.session","publicId":"Libtmux.Window_link.Relations.session","qualifiedName":"Libtmux.Window_link.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":287,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":287,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.One.t","params":[],"returns":"(t, Session.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-session"},{"id":"Libtmux.Window_link.Relations.window","publicId":"Libtmux.Window_link.Relations.window","qualifiedName":"Libtmux.Window_link.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":288,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-window"},{"id":"Libtmux.Window_link.index","publicId":"Libtmux.Window_link.index","qualifiedName":"Libtmux.Window_link.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":291,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":291,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window_link-index"},{"id":"Libtmux.Window_link.is_current","publicId":"Libtmux.Window_link.is_current","qualifiedName":"Libtmux.Window_link.is_current","name":"is_current","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":292,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_current : t -> bool","source":{"file":"lib/libtmux.mli","line":292,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val is_current : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-is_current"},{"id":"Libtmux.Window_link.same_context","publicId":"Libtmux.Window_link.same_context","qualifiedName":"Libtmux.Window_link.same_context","name":"same_context","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":296,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. "],"declarations":[{"kind":"function","text":"val same_context : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":296,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","doc":{"summary":"Compare source, session, index and window. An equal context does not certify a stable link incarnation across reindexing or unlink/relink."},"signatures":[{"raw":"val same_context : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_context"},{"id":"Libtmux.Window_link.same_observation","publicId":"Libtmux.Window_link.same_observation","qualifiedName":"Libtmux.Window_link.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_observation"},{"id":"Libtmux.Window_link.session","publicId":"Libtmux.Window_link.session","qualifiedName":"Libtmux.Window_link.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":293,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> Session.t","source":{"file":"lib/libtmux.mli","line":293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val session : t -> Session.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t"}],"slug":"libtmux-window_link-session"},{"id":"Libtmux.Window_link.t","publicId":"Libtmux.Window_link.t","qualifiedName":"Libtmux.Window_link.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window_link-t"},{"id":"Libtmux.Window_link.window","publicId":"Libtmux.Window_link.window","qualifiedName":"Libtmux.Window_link.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-window_link-window"},{"id":"Libtmux_eio","publicId":"Libtmux_eio","qualifiedName":"Libtmux_eio","name":"Libtmux_eio","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Concurrent Linux tmux clients using the application's Eio scheduler.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md}streaming\n guide} demonstrates application-owned switches, cancellation and continuity\n gaps. "],"declarations":[{"kind":"module","text":"","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"doc":{"summary":"Concurrent Linux tmux clients using the application's Eio scheduler.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [streaming guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md) demonstrates application-owned switches, cancellation and continuity gaps."},"slug":"libtmux_eio"},{"id":"Libtmux_eio.Cleanup","publicId":"Libtmux_eio.Cleanup","qualifiedName":"Libtmux_eio.Cleanup","name":"Cleanup","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Domain-owned cleanup diagnostics shared with the blocking backend. Supply a\n report before setup to inspect secondary failures after native cancellation.\n No scheduler is needed to inspect a report. "],"declarations":[{"kind":"module","text":"module Cleanup = Libtmux_unix.Cleanup","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","doc":{"summary":"Domain-owned cleanup diagnostics shared with the blocking backend. Supply a report before setup to inspect secondary failures after native cancellation. No scheduler is needed to inspect a report."},"exportedFrom":"Libtmux_unix.Cleanup","slug":"libtmux_eio-cleanup"},{"id":"Libtmux_eio.Client","publicId":"Libtmux_eio.Client","qualifiedName":"Libtmux_eio.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n *)\n\n val cleanup : t -> Cleanup.t\n (** Read the supplied report or the client's fresh default without I/O.\n {!Cleanup.inspect} remains available after close. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. New admission returns\n [Error Libtmux.Error.Closed] once {!close} starts. *)\n\n val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. A cleanup failure cannot replace\n an earlier error or cancellation; inspect {!cleanup} for secondary\n failures. Otherwise cleanup failure prevents success or renewed coverage.\n No history/barrier guarantee. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve bounded capacity without I/O. Return\n [Error Libtmux.Error.Closed] once {!close} starts. *)\n\n val await : 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. *)\n\n val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result\n (** Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. *)\n\n val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. *)\n\n val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Libtmux.Error.Unsupported}. *)\n\n val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Retire the generation and close owned control clients and descriptors.\n Reject new {!submit} and {!subscribe} calls as soon as closing starts.\n Concurrent calls await the same teardown result. Later calls retain a\n teardown failure instead of treating the closed flag as success. Each\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n Other fibers can run during that wait. The grace is per helper; it does\n not bound scheduling, filesystem or uninterruptible kernel work. No signal\n targets the daemon. tmux's [exit-unattached] and [exit-empty] policies can\n end the daemon after its clients or sessions disappear. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_eio-client"},{"id":"Libtmux_eio.Client.await","publicId":"Libtmux_eio.Client.await","qualifiedName":"Libtmux_eio.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":194,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. "],"declarations":[{"kind":"function","text":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Cancellation propagates as Eio cancellation. Store the handle outside the cancelled fiber: the client drains written work independently, and the eventual result remains inspectable."},"signatures":[{"raw":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-await"},{"id":"Libtmux_eio.Client.break_pane","publicId":"Libtmux_eio.Client.break_pane","qualifiedName":"Libtmux_eio.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":437,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":437,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-break_pane"},{"id":"Libtmux_eio.Client.capture","publicId":"Libtmux_eio.Client.capture","qualifiedName":"Libtmux_eio.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. "],"declarations":[{"kind":"function","text":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a complete immutable graph over an interval. Conflicting or disappearing entities fail capture; they do not become empty relations. The returned values remain readable after client closure."},"signatures":[{"raw":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture"},{"id":"Libtmux_eio.Client.capture_environment","publicId":"Libtmux_eio.Client.capture_environment","qualifiedName":"Libtmux_eio.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_environment"},{"id":"Libtmux_eio.Client.capture_hooks","publicId":"Libtmux_eio.Client.capture_hooks","qualifiedName":"Libtmux_eio.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_hooks"},{"id":"Libtmux_eio.Client.capture_options","publicId":"Libtmux_eio.Client.capture_options","qualifiedName":"Libtmux_eio.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Libtmux.Error.Unsupported}. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors cover every supported release from tmux 3.3a through 3.8; other versions return {!Libtmux.Error.Unsupported}."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_options"},{"id":"Libtmux_eio.Client.capture_text","publicId":"Libtmux_eio.Client.capture_text","qualifiedName":"Libtmux_eio.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Inclusive ordinary screen rows, using a bounded private file transfer. Qualified local scratch storage must be shared with the daemon."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_text"},{"id":"Libtmux_eio.Client.cleanup","publicId":"Libtmux_eio.Client.cleanup","qualifiedName":"Libtmux_eio.Client.cleanup","name":"cleanup","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":145,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read the supplied report or the client's fresh default without I/O.\n {!Cleanup.inspect} remains available after close. "],"declarations":[{"kind":"function","text":"val cleanup : t -> Cleanup.t","source":{"file":"eio/libtmux_eio.mli","line":145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the supplied report or the client's fresh default without I/O. {!Cleanup.inspect} remains available after close."},"signatures":[{"raw":"val cleanup : t -> Cleanup.t","params":[{"name":"arg1","type":"t"}],"returns":"Cleanup.t"}],"slug":"libtmux_eio-client-cleanup"},{"id":"Libtmux_eio.Client.clear_history","publicId":"Libtmux_eio.Client.clear_history","qualifiedName":"Libtmux_eio.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":578,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":578,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_history"},{"id":"Libtmux_eio.Client.clear_option_array","publicId":"Libtmux_eio.Client.clear_option_array","qualifiedName":"Libtmux_eio.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_option_array"},{"id":"Libtmux_eio.Client.close","publicId":"Libtmux_eio.Client.close","qualifiedName":"Libtmux_eio.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":584,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Retire the generation and close owned control clients and descriptors.\n Reject new {!submit} and {!subscribe} calls as soon as closing starts.\n Concurrent calls await the same teardown result. Later calls retain a\n teardown failure instead of treating the closed flag as success. Each\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n Other fibers can run during that wait. The grace is per helper; it does\n not bound scheduling, filesystem or uninterruptible kernel work. No signal\n targets the daemon. tmux's [exit-unattached] and [exit-empty] policies can\n end the daemon after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":584,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Retire the generation and close owned control clients and descriptors. Reject new {!submit} and {!subscribe} calls as soon as closing starts. Concurrent calls await the same teardown result. Later calls retain a teardown failure instead of treating the closed flag as success. Each helper gets 200 ms of TERM grace, followed by KILL if needed and reaping. Other fibers can run during that wait. The grace is per helper; it does not bound scheduling, filesystem or uninterruptible kernel work. No signal targets the daemon. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-close"},{"id":"Libtmux_eio.Client.connect","publicId":"Libtmux_eio.Client.connect","qualifiedName":"Libtmux_eio.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n "],"declarations":[{"kind":"function","text":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Attach to an existing local Linux daemon in the same PID namespace and shared filesystem. Requires pidfd support. Default exchange timeout: one second. All client calls belong to the connecting OCaml domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-connect"},{"id":"Libtmux_eio.Client.create_session","publicId":"Libtmux_eio.Client.create_session","qualifiedName":"Libtmux_eio.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_session"},{"id":"Libtmux_eio.Client.create_window","publicId":"Libtmux_eio.Client.create_window","qualifiedName":"Libtmux_eio.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_window"},{"id":"Libtmux_eio.Client.cycle_layout","publicId":"Libtmux_eio.Client.cycle_layout","qualifiedName":"Libtmux_eio.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-cycle_layout"},{"id":"Libtmux_eio.Client.kill_pane","publicId":"Libtmux_eio.Client.kill_pane","qualifiedName":"Libtmux_eio.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":457,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":457,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_pane"},{"id":"Libtmux_eio.Client.kill_session","publicId":"Libtmux_eio.Client.kill_session","qualifiedName":"Libtmux_eio.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":448,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":448,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_session"},{"id":"Libtmux_eio.Client.kill_window","publicId":"Libtmux_eio.Client.kill_window","qualifiedName":"Libtmux_eio.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":453,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":453,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_window"},{"id":"Libtmux_eio.Client.link_window","publicId":"Libtmux_eio.Client.link_window","qualifiedName":"Libtmux_eio.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-link_window"},{"id":"Libtmux_eio.Client.move_pane","publicId":"Libtmux_eio.Client.move_pane","qualifiedName":"Libtmux_eio.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":538,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":538,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_pane"},{"id":"Libtmux_eio.Client.move_window_at","publicId":"Libtmux_eio.Client.move_window_at","qualifiedName":"Libtmux_eio.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_window_at"},{"id":"Libtmux_eio.Client.read_hook","publicId":"Libtmux_eio.Client.read_hook","qualifiedName":"Libtmux_eio.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":363,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":363,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_hook"},{"id":"Libtmux_eio.Client.read_option","publicId":"Libtmux_eio.Client.read_option","qualifiedName":"Libtmux_eio.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":320,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_option"},{"id":"Libtmux_eio.Client.refresh_client_at","publicId":"Libtmux_eio.Client.refresh_client_at","qualifiedName":"Libtmux_eio.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-refresh_client_at"},{"id":"Libtmux_eio.Client.remove_environment","publicId":"Libtmux_eio.Client.remove_environment","qualifiedName":"Libtmux_eio.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_environment"},{"id":"Libtmux_eio.Client.remove_hook","publicId":"Libtmux_eio.Client.remove_hook","qualifiedName":"Libtmux_eio.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":388,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":388,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_hook"},{"id":"Libtmux_eio.Client.rename_session","publicId":"Libtmux_eio.Client.rename_session","qualifiedName":"Libtmux_eio.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_session"},{"id":"Libtmux_eio.Client.rename_window","publicId":"Libtmux_eio.Client.rename_window","qualifiedName":"Libtmux_eio.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_window"},{"id":"Libtmux_eio.Client.request_detach_client_at","publicId":"Libtmux_eio.Client.request_detach_client_at","qualifiedName":"Libtmux_eio.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":239,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-request_detach_client_at"},{"id":"Libtmux_eio.Client.resize_control_client_at","publicId":"Libtmux_eio.Client.resize_control_client_at","qualifiedName":"Libtmux_eio.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_control_client_at"},{"id":"Libtmux_eio.Client.resize_pane","publicId":"Libtmux_eio.Client.resize_pane","qualifiedName":"Libtmux_eio.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_pane"},{"id":"Libtmux_eio.Client.resize_window","publicId":"Libtmux_eio.Client.resize_window","qualifiedName":"Libtmux_eio.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":513,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":513,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_window"},{"id":"Libtmux_eio.Client.respawn_pane","publicId":"Libtmux_eio.Client.respawn_pane","qualifiedName":"Libtmux_eio.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-respawn_pane"},{"id":"Libtmux_eio.Client.rotate_panes","publicId":"Libtmux_eio.Client.rotate_panes","qualifiedName":"Libtmux_eio.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":557,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":557,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rotate_panes"},{"id":"Libtmux_eio.Client.run","publicId":"Libtmux_eio.Client.run","qualifiedName":"Libtmux_eio.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. "],"declarations":[{"kind":"function","text":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Submit and await an explicit command. Retain a separate submitted handle when the outcome must remain inspectable after caller cancellation."},"signatures":[{"raw":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run"},{"id":"Libtmux_eio.Client.run_hook","publicId":"Libtmux_eio.Client.run_hook","qualifiedName":"Libtmux_eio.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run_hook"},{"id":"Libtmux_eio.Client.select_layout","publicId":"Libtmux_eio.Client.select_layout","qualifiedName":"Libtmux_eio.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout :\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_layout"},{"id":"Libtmux_eio.Client.select_pane","publicId":"Libtmux_eio.Client.select_pane","qualifiedName":"Libtmux_eio.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":494,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":494,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_pane"},{"id":"Libtmux_eio.Client.select_window_at","publicId":"Libtmux_eio.Client.select_window_at","qualifiedName":"Libtmux_eio.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":461,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":461,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_window_at"},{"id":"Libtmux_eio.Client.send_keys","publicId":"Libtmux_eio.Client.send_keys","qualifiedName":"Libtmux_eio.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys :\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_keys"},{"id":"Libtmux_eio.Client.send_text","publicId":"Libtmux_eio.Client.send_text","qualifiedName":"Libtmux_eio.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_text"},{"id":"Libtmux_eio.Client.set_environment","publicId":"Libtmux_eio.Client.set_environment","qualifiedName":"Libtmux_eio.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":289,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":289,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_environment"},{"id":"Libtmux_eio.Client.set_hook","publicId":"Libtmux_eio.Client.set_hook","qualifiedName":"Libtmux_eio.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_hook"},{"id":"Libtmux_eio.Client.set_option","publicId":"Libtmux_eio.Client.set_option","qualifiedName":"Libtmux_eio.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":331,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":331,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_option"},{"id":"Libtmux_eio.Client.set_pane_title","publicId":"Libtmux_eio.Client.set_pane_title","qualifiedName":"Libtmux_eio.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":498,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":498,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_pane_title"},{"id":"Libtmux_eio.Client.signal","publicId":"Libtmux_eio.Client.signal","qualifiedName":"Libtmux_eio.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":275,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-signal"},{"id":"Libtmux_eio.Client.source","publicId":"Libtmux_eio.Client.source","qualifiedName":"Libtmux_eio.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"eio/libtmux_eio.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_eio-client-source"},{"id":"Libtmux_eio.Client.split_pane","publicId":"Libtmux_eio.Client.split_pane","qualifiedName":"Libtmux_eio.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-split_pane"},{"id":"Libtmux_eio.Client.submit","publicId":"Libtmux_eio.Client.submit","qualifiedName":"Libtmux_eio.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate and reserve bounded capacity without I/O. Return\n [Error Libtmux.Error.Closed] once {!close} starts. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate and reserve bounded capacity without I/O. Return `Error Libtmux.Error.Closed` once {!close} starts."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-submit"},{"id":"Libtmux_eio.Client.subscribe","publicId":"Libtmux_eio.Client.subscribe","qualifiedName":"Libtmux_eio.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":156,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. New admission returns\n [Error Libtmux.Error.Closed] once {!close} starts. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":156,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire verified coverage through one shared lane per session; choose the least observed session ID unless supplied. A client-owned reader delivers future bytes without application callbacks. Default queue bounds are 1 MiB/1024 events; max 16 subscribers and eight total client lanes, sharing the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap then End. Data starts after admission's marker, with no snapshot/history barrier, automatic reconnect or silent cursor reuse. New admission returns `Error Libtmux.Error.Closed` once {!close} starts.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-subscribe"},{"id":"Libtmux_eio.Client.swap_panes","publicId":"Libtmux_eio.Client.swap_panes","qualifiedName":"Libtmux_eio.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":549,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":549,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-swap_panes"},{"id":"Libtmux_eio.Client.switch_client_at","publicId":"Libtmux_eio.Client.switch_client_at","qualifiedName":"Libtmux_eio.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-switch_client_at"},{"id":"Libtmux_eio.Client.t","publicId":"Libtmux_eio.Client.t","qualifiedName":"Libtmux_eio.Client.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-client-t"},{"id":"Libtmux_eio.Client.unlink_window_at","publicId":"Libtmux_eio.Client.unlink_window_at","qualifiedName":"Libtmux_eio.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":466,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":466,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unlink_window_at"},{"id":"Libtmux_eio.Client.unset_environment","publicId":"Libtmux_eio.Client.unset_environment","qualifiedName":"Libtmux_eio.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_environment"},{"id":"Libtmux_eio.Client.unset_option","publicId":"Libtmux_eio.Client.unset_option","qualifiedName":"Libtmux_eio.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":345,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":345,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_option"},{"id":"Libtmux_eio.Client.version","publicId":"Libtmux_eio.Client.version","qualifiedName":"Libtmux_eio.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":153,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"eio/libtmux_eio.mli","line":153,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_eio-client-version"},{"id":"Libtmux_eio.Client.wait_for","publicId":"Libtmux_eio.Client.wait_for","qualifiedName":"Libtmux_eio.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":272,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":272,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for"},{"id":"Libtmux_eio.Client.wait_for_text","publicId":"Libtmux_eio.Client.wait_for_text","qualifiedName":"Libtmux_eio.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. A cleanup failure cannot replace\n an earlier error or cancellation; inspect {!cleanup} for secondary\n failures. Otherwise cleanup failure prevents success or renewed coverage.\n No history/barrier guarantee. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Subscribe and capture the screen immediately, then recapture on output. Membership/overflow gaps establish fresh coverage in the same binding. Maximum pattern: 64 KiB. Return captured rendered text containing it; transient text may be missed. Deadlines are checked between bounded acquisitions, whose I/O retains the client exchange timeout. Cancellation propagates and releases the subscription. A cleanup failure cannot replace an earlier error or cancellation; inspect {!cleanup} for secondary failures. Otherwise cleanup failure prevents success or renewed coverage. No history/barrier guarantee."},"signatures":[{"raw":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for_text"},{"id":"Libtmux_eio.Client.zoom_pane","publicId":"Libtmux_eio.Client.zoom_pane","qualifiedName":"Libtmux_eio.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-zoom_pane"},{"id":"Libtmux_eio.Operation","publicId":"Libtmux_eio.Operation","qualifiedName":"Libtmux_eio.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. When the\n daemon watcher retires an in-flight operation, [cause] retains\n {!Libtmux.Error.Disconnected}. Idle-reader failures also retain their\n library cause instead of becoming an explicit client-close reason. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** Read without I/O, including after client closure. Owning domain only. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove unsent work. A written request remains owned and drained by the\n client. *)\n\n val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result\n (** Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_eio-operation"},{"id":"Libtmux_eio.Operation.await_stage","publicId":"Libtmux_eio.Operation.await_stage","qualifiedName":"Libtmux_eio.Operation.await_stage","name":"await_stage","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n "],"declarations":[{"kind":"function","text":"val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Wait for the named stage or a terminal state. Acknowledgement does not establish completion. Cancelling this observer leaves the operation alone."},"signatures":[{"raw":"val await_stage :\n 'a t -> [ `Acknowledged | `Written ] -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"[ `Acknowledged | `Written ]"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-await_stage"},{"id":"Libtmux_eio.Operation.cancel","publicId":"Libtmux_eio.Operation.cancel","qualifiedName":"Libtmux_eio.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove unsent work. A written request remains owned and drained by the\n client. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Remove unsent work. A written request remains owned and drained by the client."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-cancel"},{"id":"Libtmux_eio.Operation.cleanup_receipt","publicId":"Libtmux_eio.Operation.cleanup_receipt","qualifiedName":"Libtmux_eio.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. When the\n daemon watcher retires an in-flight operation, [cause] retains\n {!Libtmux.Error.Disconnected}. Idle-reader failures also retain their\n library cause instead of becoming an explicit client-close reason. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry. When the daemon watcher retires an in-flight operation, `cause` retains {!Libtmux.Error.Disconnected}. Idle-reader failures also retain their library cause instead of becoming an explicit client-close reason."},"signatures":[{"raw":"type cleanup_receipt =\n {\n cause: Libtmux.Error.t ;\n owned_buffers: string list ;\n created: Libtmux.Created.t list }","params":[]}],"slug":"libtmux_eio-operation-cleanup_receipt"},{"id":"Libtmux_eio.Operation.cleanup_receipt.cause","publicId":"Libtmux_eio.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_eio.Operation.cause","slug":"libtmux_eio-operation-cleanup_receipt-cause"},{"id":"Libtmux_eio.Operation.cleanup_receipt.created","publicId":"Libtmux_eio.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_eio.Operation.created","slug":"libtmux_eio-operation-cleanup_receipt-created"},{"id":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_eio.Operation.owned_buffers","slug":"libtmux_eio-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_eio.Operation.id","publicId":"Libtmux_eio.Operation.id","qualifiedName":"Libtmux_eio.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":77,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"eio/libtmux_eio.mli","line":77,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_eio-operation-id"},{"id":"Libtmux_eio.Operation.inspect","publicId":"Libtmux_eio.Operation.inspect","qualifiedName":"Libtmux_eio.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read without I/O, including after client closure. Owning domain only. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Read without I/O, including after client closure. Owning domain only."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-inspect"},{"id":"Libtmux_eio.Operation.state","publicId":"Libtmux_eio.Operation.state","qualifiedName":"Libtmux_eio.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a state =\n | Queued \n | Not_started \n | Written \n | Acknowledged \n | Finished of ('a, Libtmux.Error.t) result \n | Outcome_unknown of cleanup_receipt ","params":[]}],"slug":"libtmux_eio-operation-state"},{"id":"Libtmux_eio.Operation.state.Acknowledged","publicId":"Libtmux_eio.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Acknowledged","slug":"libtmux_eio-operation-state-acknowledged"},{"id":"Libtmux_eio.Operation.state.Finished","publicId":"Libtmux_eio.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Finished","slug":"libtmux_eio-operation-state-finished"},{"id":"Libtmux_eio.Operation.state.Not_started","publicId":"Libtmux_eio.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"eio/libtmux_eio.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Not_started","slug":"libtmux_eio-operation-state-not_started"},{"id":"Libtmux_eio.Operation.state.Outcome_unknown","publicId":"Libtmux_eio.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Outcome_unknown","slug":"libtmux_eio-operation-state-outcome_unknown"},{"id":"Libtmux_eio.Operation.state.Queued","publicId":"Libtmux_eio.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"eio/libtmux_eio.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Queued","slug":"libtmux_eio-operation-state-queued"},{"id":"Libtmux_eio.Operation.state.Written","publicId":"Libtmux_eio.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"eio/libtmux_eio.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Written","slug":"libtmux_eio-operation-state-written"},{"id":"Libtmux_eio.Operation.t","publicId":"Libtmux_eio.Operation.t","qualifiedName":"Libtmux_eio.Operation.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-operation-t"},{"id":"Libtmux_eio.Rendered","publicId":"Libtmux_eio.Rendered","qualifiedName":"Libtmux_eio.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","exportedFrom":"Libtmux.Captured_text","slug":"libtmux_eio-rendered"},{"id":"Libtmux_eio.Subscription","publicId":"Libtmux_eio.Subscription","qualifiedName":"Libtmux_eio.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O, on the owning domain. *)\n\n val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Concurrent calls\n join the same cleanup, including reaping a lane when it becomes unused;\n later calls retain cleanup failures. Borrowed clients and the daemon\n remain alive. {!poll} can still read the terminal event. *)\n\n val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_eio-subscription"},{"id":"Libtmux_eio.Subscription.close","publicId":"Libtmux_eio.Subscription.close","qualifiedName":"Libtmux_eio.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":107,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Concurrent calls\n join the same cleanup, including reaping a lane when it becomes unused;\n later calls retain cleanup failures. Borrowed clients and the daemon\n remain alive. {!poll} can still read the terminal event. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":107,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"End an active subscription with Cancelled and discard pending data. Preserve an already ended subscription's terminal reason. Concurrent calls join the same cleanup, including reaping a lane when it becomes unused; later calls retain cleanup failures. Borrowed clients and the daemon remain alive. {!poll} can still read the terminal event."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-close"},{"id":"Libtmux_eio.Subscription.next","publicId":"Libtmux_eio.Subscription.next","qualifiedName":"Libtmux_eio.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. "],"declarations":[{"kind":"function","text":"val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Await one event, defaulting to a one-second deadline. `None` follows a consumed End. A deadline keeps the subscription active. Eio cancellation closes it, releases its lane when unused, and propagates."},"signatures":[{"raw":"val next :\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-next"},{"id":"Libtmux_eio.Subscription.poll","publicId":"Libtmux_eio.Subscription.poll","qualifiedName":"Libtmux_eio.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove a queued event without I/O, on the owning domain. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Remove a queued event without I/O, on the owning domain."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-poll"},{"id":"Libtmux_eio.Subscription.t","publicId":"Libtmux_eio.Subscription.t","qualifiedName":"Libtmux_eio.Subscription.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-subscription-t"},{"id":"Libtmux_eio.Subscription.wait_for_bytes","publicId":"Libtmux_eio.Subscription.wait_for_bytes","qualifiedName":"Libtmux_eio.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Consume future observed bytes through a match, with a maximum 64 KiB nonempty pattern. Match across Data boundaries and return its end cursor. Gaps end matching. This searches neither rendered text nor history. A deadline leaves the subscription active; cancellation closes it.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_eio-subscription-wait_for_bytes"},{"id":"Libtmux_eio.Terminal","publicId":"Libtmux_eio.Terminal","qualifiedName":"Libtmux_eio.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Cooperative TERM gets\n 200 ms of grace before forced termination, while other fibers can run.\n Scheduling and kernel completion can add time. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. Supply\n [cleanup] before the call to retain secondary failures after cancellation.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_eio-terminal"},{"id":"Libtmux_eio.Terminal.attach_current","publicId":"Libtmux_eio.Terminal.attach_current","qualifiedName":"Libtmux_eio.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Cooperative TERM gets\n 200 ms of grace before forced termination, while other fibers can run.\n Scheduling and kernel completion can add time. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. Supply\n [cleanup] before the call to retain secondary failures after cancellation.\n "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Terminal","doc":{"summary":"Run an interactive terminal client until exit, using the application's process manager and standard streams unless explicit flows are supplied. `stdin` must be backed by a terminal descriptor; a pipe-backed flow is rejected by tmux. Select the exact ID on the daemon currently listening at `endpoint`, without a captured target, binding, retry or daemon startup.","body":"Environment updates and read-only mode default to false. Clear inherited `TMUX` and `TMUX_PANE`. Cancellation propagates after terminating and reaping this client; it does not stop the daemon. Cooperative TERM gets 200 ms of grace before forced termination, while other fibers can run. Scheduling and kernel completion can add time. Success proves terminal client exit. Diagnostics go to `stderr`; borrowed flows stay open. Supply `cleanup` before the call to retain secondary failures after cancellation."},"signatures":[{"raw":"val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:[> Eio.Flow.source_ty ] Eio.Flow.source ->\n ?stdout:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n ?stderr:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"[> Eio.Flow.source_ty ] Eio.Flow.source","optional":true,"keywordOnly":true},{"name":"stdout","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"stderr","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-terminal-attach_current"},{"id":"Libtmux_eio.Workspace","publicId":"Libtmux_eio.Workspace","qualifiedName":"Libtmux_eio.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":599,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Apply workspace plans through Eio while retaining journals across caller\n cancellation. Handles belong to the creating domain; the application owns\n the scheduler and switch. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. *)\n\n val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. *)\n\n val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Read a journal copy without I/O, including any late retained outcome. *)\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":599,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","doc":{"summary":"Apply workspace plans through Eio while retaining journals across caller cancellation. Handles belong to the creating domain; the application owns the scheduler and switch."},"slug":"libtmux_eio-workspace"},{"id":"Libtmux_eio.Workspace.await","publicId":"Libtmux_eio.Workspace.await","qualifiedName":"Libtmux_eio.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. "],"declarations":[{"kind":"function","text":"val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Apply once. Expected failures return a retained journal. Eio cancellation propagates after progress is recorded and at most 500 ms of protected compensation. Admitted commands can still complete under client ownership; inspect the receipt before attempting manual recovery."},"signatures":[{"raw":"val await :\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-await"},{"id":"Libtmux_eio.Workspace.client","publicId":"Libtmux_eio.Workspace.client","qualifiedName":"Libtmux_eio.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"eio/libtmux_eio.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_eio-workspace-client"},{"id":"Libtmux_eio.Workspace.close","publicId":"Libtmux_eio.Workspace.close","qualifiedName":"Libtmux_eio.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":638,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":638,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Closing is idempotent; completed journals remain readable."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-close"},{"id":"Libtmux_eio.Workspace.inspect","publicId":"Libtmux_eio.Workspace.inspect","qualifiedName":"Libtmux_eio.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read a journal copy without I/O, including any late retained outcome. "],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Read a journal copy without I/O, including any late retained outcome."},"signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-inspect"},{"id":"Libtmux_eio.Workspace.submit","publicId":"Libtmux_eio.Workspace.submit","qualifiedName":"Libtmux_eio.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a generation-bound handle without I/O. The supplied client is borrowed; closing the handle leaves it open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit"},{"id":"Libtmux_eio.Workspace.submit_bootstrap","publicId":"Libtmux_eio.Workspace.submit_bootstrap","qualifiedName":"Libtmux_eio.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":607,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":607,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a missing-endpoint execution without I/O. Await starts control new-session and binds that same connection. The handle owns its new client within `sw`; it never owns the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit_bootstrap"},{"id":"Libtmux_eio.Workspace.t","publicId":"Libtmux_eio.Workspace.t","qualifiedName":"Libtmux_eio.Workspace.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-workspace-t"},{"id":"Libtmux_json","publicId":"Libtmux_json","qualifiedName":"Libtmux_json","name":"Libtmux_json","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Pure, bounded query and workspace JSON interchange.\n\n {!Expr} validates portable queries and {!Workspace} decodes configurations\n and encodes plans and receipts. Both return {!Decode_error.t} on invalid\n data. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} and\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for complete programs. "],"declarations":[{"kind":"module","text":"","source":{"file":"json/libtmux_json.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"doc":{"summary":"Pure, bounded query and workspace JSON interchange.","body":"{!Expr} validates portable queries and {!Workspace} decodes configurations and encodes plans and receipts. Both return {!Decode_error.t} on invalid data. See the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) and [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for complete programs."},"slug":"libtmux_json"},{"id":"Libtmux_json.Decode_error","publicId":"Libtmux_json.Decode_error","qualifiedName":"Libtmux_json.Decode_error","name":"Decode_error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Decode_error : sig\n type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported\n\n type t = { pointer : string; category : category; message : string }\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"json/libtmux_json.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json","slug":"libtmux_json-decode_error"},{"id":"Libtmux_json.Decode_error.category","publicId":"Libtmux_json.Decode_error.category","qualifiedName":"Libtmux_json.Decode_error.category","name":"category","kind":"enum","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":12,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","source":{"file":"json/libtmux_json.mli","line":12,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type category =\n | Syntax \n | Limit \n | Unknown \n | Wrong_type \n | Out_of_range \n | Unsupported ","params":[]}],"slug":"libtmux_json-decode_error-category"},{"id":"Libtmux_json.Decode_error.category.Limit","publicId":"Libtmux_json.Decode_error.category.Limit","name":"Limit","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Limit","source":{"file":"json/libtmux_json.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Limit","slug":"libtmux_json-decode_error-category-limit"},{"id":"Libtmux_json.Decode_error.category.Out_of_range","publicId":"Libtmux_json.Decode_error.category.Out_of_range","name":"Out_of_range","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Out_of_range","source":{"file":"json/libtmux_json.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Out_of_range","slug":"libtmux_json-decode_error-category-out_of_range"},{"id":"Libtmux_json.Decode_error.category.Syntax","publicId":"Libtmux_json.Decode_error.category.Syntax","name":"Syntax","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Syntax","source":{"file":"json/libtmux_json.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Syntax","slug":"libtmux_json-decode_error-category-syntax"},{"id":"Libtmux_json.Decode_error.category.Unknown","publicId":"Libtmux_json.Decode_error.category.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"json/libtmux_json.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unknown","slug":"libtmux_json-decode_error-category-unknown"},{"id":"Libtmux_json.Decode_error.category.Unsupported","publicId":"Libtmux_json.Decode_error.category.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"json/libtmux_json.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unsupported","slug":"libtmux_json-decode_error-category-unsupported"},{"id":"Libtmux_json.Decode_error.category.Wrong_type","publicId":"Libtmux_json.Decode_error.category.Wrong_type","name":"Wrong_type","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_type","source":{"file":"json/libtmux_json.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Wrong_type","slug":"libtmux_json-decode_error-category-wrong_type"},{"id":"Libtmux_json.Decode_error.pp","publicId":"Libtmux_json.Decode_error.pp","qualifiedName":"Libtmux_json.Decode_error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"json/libtmux_json.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux_json-decode_error-pp"},{"id":"Libtmux_json.Decode_error.t","publicId":"Libtmux_json.Decode_error.t","qualifiedName":"Libtmux_json.Decode_error.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = { pointer : string; category : category; message : string }","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type t = {\n pointer: string ;\n category: category ;\n message: string }","params":[]}],"slug":"libtmux_json-decode_error-t"},{"id":"Libtmux_json.Decode_error.t.category","publicId":"Libtmux_json.Decode_error.t.category","name":"category","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"category : category;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.t","type":"category","qualifiedName":"Libtmux_json.Decode_error.category","slug":"libtmux_json-decode_error-t-category"},{"id":"Libtmux_json.Decode_error.t.message","publicId":"Libtmux_json.Decode_error.t.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.message","slug":"libtmux_json-decode_error-t-message"},{"id":"Libtmux_json.Decode_error.t.pointer","publicId":"Libtmux_json.Decode_error.t.pointer","name":"pointer","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pointer : string;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.pointer","slug":"libtmux_json-decode_error-t-pointer"},{"id":"Libtmux_json.Error","publicId":"Libtmux_json.Error","qualifiedName":"Libtmux_json.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Structured native failures for JSON consumers. "],"declarations":[{"kind":"module","text":"module Error : sig\n val encode : Libtmux.Error.t -> Yojson.Safe.t\n (** Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json","doc":{"summary":"Structured native failures for JSON consumers."},"slug":"libtmux_json-error"},{"id":"Libtmux_json.Error.encode","publicId":"Libtmux_json.Error.encode","qualifiedName":"Libtmux_json.Error.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. "],"declarations":[{"kind":"function","text":"val encode : Libtmux.Error.t -> Yojson.Safe.t","source":{"file":"json/libtmux_json.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Error","doc":{"summary":"Return a stable `code`, bounded `message`, `message_truncated` flag and relevant operation, resource or target metadata. Messages and text attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex representation described by {!Workspace.encode_receipt}. No I/O."},"signatures":[{"raw":"val encode : Libtmux.Error.t -> Yojson.Safe.t","params":[{"name":"arg1","type":"Libtmux.Error.t"}],"returns":"Yojson.Safe.t"}],"slug":"libtmux_json-error-encode"},{"id":"Libtmux_json.Expr","publicId":"Libtmux_json.Expr","qualifiedName":"Libtmux_json.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Portable scalar pane expressions. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/query-interchange.md}wire\n subset} for canonical fields, operators and bounds. "],"declarations":[{"kind":"module","text":"module Expr : sig\n val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result\n (** Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. *)\n\n val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result\n (** Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. *)\n\n val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result\n\n val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result\n (** Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json","doc":{"summary":"Portable scalar pane expressions. See the [wire subset](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/query-interchange.md) for canonical fields, operators and bounds."},"slug":"libtmux_json-expr"},{"id":"Libtmux_json.Expr.decode","publicId":"Libtmux_json.Expr.decode","qualifiedName":"Libtmux_json.Expr.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. "],"declarations":[{"kind":"function","text":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Validate the supplied tree, including duplicate properties, before typed construction. Only the shared scalar pane registry and Boolean composition are accepted. Java regex, relationships and native extension fields return `Unsupported`. Numbers must fit signed 32-bit integers."},"signatures":[{"raw":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"Yojson.Safe.t"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-decode"},{"id":"Libtmux_json.Expr.encode","publicId":"Libtmux_json.Expr.encode","qualifiedName":"Libtmux_json.Expr.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Expr","signatures":[{"raw":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-encode"},{"id":"Libtmux_json.Expr.of_string","publicId":"Libtmux_json.Expr.of_string","qualifiedName":"Libtmux_json.Expr.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. "],"declarations":[{"kind":"function","text":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at most 256 values. Errors include a JSON pointer, never the whole input."},"signatures":[{"raw":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"string"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-of_string"},{"id":"Libtmux_json.Expr.to_string","publicId":"Libtmux_json.Expr.to_string","qualifiedName":"Libtmux_json.Expr.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. "],"declarations":[{"kind":"function","text":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Apply the same bounds and subset when encoding. Text with invalid UTF-8 has no representation in this schema. These functions perform no I/O."},"signatures":[{"raw":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(string, Decode_error.t) result"}],"slug":"libtmux_json-expr-to_string"},{"id":"Libtmux_json.Workspace","publicId":"Libtmux_json.Workspace","qualifiedName":"Libtmux_json.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Validate workspace documents and describe plans and retained execution.\n Preview output never supplies executable targets. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n\n val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n (** Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. *)\n\n val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. *)\n\n val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. *)\nend","source":{"file":"json/libtmux_json.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json","doc":{"summary":"Validate workspace documents and describe plans and retained execution. Preview output never supplies executable targets."},"slug":"libtmux_json-workspace"},{"id":"Libtmux_json.Workspace.decode","publicId":"Libtmux_json.Workspace.decode","qualifiedName":"Libtmux_json.Workspace.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Workspace","signatures":[{"raw":"val decode :\n directory:string ->\n Yojson.Safe.t -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"Yojson.Safe.t"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-decode"},{"id":"Libtmux_json.Workspace.encode_plan","publicId":"Libtmux_json.Workspace.encode_plan","qualifiedName":"Libtmux_json.Workspace.encode_plan","name":"encode_plan","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. "],"declarations":[{"kind":"function","text":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-plan/1` without I/O. The advisory preview contains command argv, cwd and environment names, excluding environment values, option values and startup text. It is not an execution script."},"signatures":[{"raw":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_plan"},{"id":"Libtmux_json.Workspace.encode_receipt","publicId":"Libtmux_json.Workspace.encode_receipt","qualifiedName":"Libtmux_json.Workspace.encode_receipt","name":"encode_receipt","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. "],"declarations":[{"kind":"function","text":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-receipt/1` with ordered steps, outcome index lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic messages are limited to 4096 bytes with an explicit truncation flag; command payloads are omitted.","body":"Both output schemas have a 4 MiB bound. Invalid UTF-8 values use `{\"encoding\":\"hex\",\"bytes\":\"...\"}` instead of losing bytes. Imported IDs and hints never establish a connection binding."},"signatures":[{"raw":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Execution.receipt"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_receipt"},{"id":"Libtmux_json.Workspace.of_string","publicId":"Libtmux_json.Workspace.of_string","qualifiedName":"Libtmux_json.Workspace.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":42,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. "],"declarations":[{"kind":"function","text":"val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":42,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Decode `libtmux.workspace/1` with the query codec's 64 KiB, UTF-8 and 32-level JSON bounds. Reject duplicate and unknown properties, invalid argv/shell combinations and configuration errors. `directory` is the absolute document directory; these functions perform no filesystem I/O."},"signatures":[{"raw":"val of_string :\n directory:string ->\n string -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-of_string"},{"id":"Libtmux_unix","publicId":"Libtmux_unix","qualifiedName":"Libtmux_unix","name":"Libtmux_unix","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Blocking Linux tmux clients with explicit scoped cancellation.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md}control\n guide} explains binding, completion and recovery. "],"declarations":[{"kind":"module","text":"","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"doc":{"summary":"Blocking Linux tmux clients with explicit scoped cancellation.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [control guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md) explains binding, completion and recovery."},"slug":"libtmux_unix"},{"id":"Libtmux_unix.Cancellation","publicId":"Libtmux_unix.Cancellation","qualifiedName":"Libtmux_unix.Cancellation","name":"Cancellation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cancellation : sig\n type t\n\n exception Cancelled\n\n val with_ : (t -> 'a) -> 'a\n (** Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. *)\n\n val cancel : t -> unit\n (** Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","slug":"libtmux_unix-cancellation"},{"id":"Libtmux_unix.Cancellation.Cancelled","publicId":"Libtmux_unix.Cancellation.Cancelled","qualifiedName":"Libtmux_unix.Cancellation.Cancelled","name":"Cancelled","kind":"exception","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"exception","text":"exception Cancelled","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type exn += Cancelled","params":[]}],"slug":"libtmux_unix-cancellation-cancelled"},{"id":"Libtmux_unix.Cancellation.cancel","publicId":"Libtmux_unix.Cancellation.cancel","qualifiedName":"Libtmux_unix.Cancellation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. "],"declarations":[{"kind":"function","text":"val cancel : t -> unit","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Wake waiters. Safe from another domain or systhread, but not from a signal handler. Repeated calls and calls after scope exit have no effect."},"signatures":[{"raw":"val cancel : t -> unit","params":[{"name":"arg1","type":"t"}],"returns":"unit"}],"slug":"libtmux_unix-cancellation-cancel"},{"id":"Libtmux_unix.Cancellation.t","publicId":"Libtmux_unix.Cancellation.t","qualifiedName":"Libtmux_unix.Cancellation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-cancellation-t"},{"id":"Libtmux_unix.Cancellation.with_","publicId":"Libtmux_unix.Cancellation.with_","qualifiedName":"Libtmux_unix.Cancellation.with_","name":"with_","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. "],"declarations":[{"kind":"function","text":"val with_ : (t -> 'a) -> 'a","source":{"file":"unix/libtmux_unix.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Own a cancellation token for the callback's lifetime. Leaving the scope cancels outstanding waiters and releases its descriptors after they finish. An escaped token is cancelled and cannot be reused."},"signatures":[{"raw":"val with_ : (t -> 'a) -> 'a","params":[{"name":"arg1","type":"t -> 'a"}],"returns":"'a"}],"slug":"libtmux_unix-cancellation-with_"},{"id":"Libtmux_unix.Cleanup","publicId":"Libtmux_unix.Cleanup","qualifiedName":"Libtmux_unix.Cleanup","name":"Cleanup","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Retained failures from releasing processes and descriptors. Reports belong\n to their creating domain and remain readable after client closure. They\n preserve secondary failures without replacing a primary exception or\n cancellation. "],"declarations":[{"kind":"module","text":"module Cleanup : sig\n type t = Cleanup.t\n\n type phase = Cleanup.phase =\n | Close_pipe\n | Open_pidfd\n | Close_pidfd\n | Terminate\n | Grace\n | Kill\n | Reap\n | Unreaped_child\n | Cancel_workers\n | Release_hook\n | Notify_waiters\n\n type issue = Cleanup.issue = {\n phase : phase;\n error : Libtmux.Error.t option;\n exception_ : exn;\n backtrace : Printexc.raw_backtrace;\n }\n (** One failed cleanup action. [error] retains a typed library cause when\n available; [exception_] and [backtrace] retain the original exception.\n [Unreaped_child] means exit was not established after a failed signal. It\n does not release ownership or authorize signalling a reused PID. *)\n\n type snapshot = Cleanup.snapshot = { issues : issue Iarray.t; omitted : int }\n (** Issues in occurrence order, with a count of additional omitted issues. A\n report retains at most 64 entries. This bounds entry count, not heap\n retention: exception payloads and backtraces may retain other values.\n These diagnostics are not immutable graph observations. *)\n\n val create : unit -> t\n (** Create an empty report without I/O. Supply it before {!Client.connect},\n {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain\n cleanup evidence even when setup fails or cancellation raises. *)\n\n val inspect : t -> (snapshot, Libtmux.Error.t) result\n (** Copy the current diagnostics without I/O. Returns\n {!Libtmux.Error.Wrong_domain} outside the creating domain. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"Retained failures from releasing processes and descriptors. Reports belong to their creating domain and remain readable after client closure. They preserve secondary failures without replacing a primary exception or cancellation."},"slug":"libtmux_unix-cleanup"},{"id":"Libtmux_unix.Cleanup.create","publicId":"Libtmux_unix.Cleanup.create","qualifiedName":"Libtmux_unix.Cleanup.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create an empty report without I/O. Supply it before {!Client.connect},\n {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain\n cleanup evidence even when setup fails or cancellation raises. "],"declarations":[{"kind":"function","text":"val create : unit -> t","source":{"file":"unix/libtmux_unix.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Create an empty report without I/O. Supply it before {!Client.connect}, {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain cleanup evidence even when setup fails or cancellation raises."},"signatures":[{"raw":"val create : unit -> t","params":[{"name":"arg1","type":"unit"}],"returns":"t"}],"slug":"libtmux_unix-cleanup-create"},{"id":"Libtmux_unix.Cleanup.inspect","publicId":"Libtmux_unix.Cleanup.inspect","qualifiedName":"Libtmux_unix.Cleanup.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Copy the current diagnostics without I/O. Returns\n {!Libtmux.Error.Wrong_domain} outside the creating domain. "],"declarations":[{"kind":"function","text":"val inspect : t -> (snapshot, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Copy the current diagnostics without I/O. Returns {!Libtmux.Error.Wrong_domain} outside the creating domain."},"signatures":[{"raw":"val inspect : t -> (snapshot, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(snapshot, Libtmux.Error.t) result"}],"slug":"libtmux_unix-cleanup-inspect"},{"id":"Libtmux_unix.Cleanup.issue","publicId":"Libtmux_unix.Cleanup.issue","qualifiedName":"Libtmux_unix.Cleanup.issue","name":"issue","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" One failed cleanup action. [error] retains a typed library cause when\n available; [exception_] and [backtrace] retain the original exception.\n [Unreaped_child] means exit was not established after a failed signal. It\n does not release ownership or authorize signalling a reused PID. "],"declarations":[{"kind":"struct","text":"type issue = Cleanup.issue = {\n phase : phase;\n error : Libtmux.Error.t option;\n exception_ : exn;\n backtrace : Printexc.raw_backtrace;\n }","source":{"file":"unix/libtmux_unix.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"One failed cleanup action. `error` retains a typed library cause when available; `exception_` and `backtrace` retain the original exception. `Unreaped_child` means exit was not established after a failed signal. It does not release ownership or authorize signalling a reused PID."},"type":"Cleanup.issue","signatures":[{"raw":"type issue = Cleanup.issue =\n {\n phase: phase ;\n error: Libtmux.Error.t option ;\n exception_: exn ;\n backtrace: Printexc.raw_backtrace }","params":[]}],"slug":"libtmux_unix-cleanup-issue"},{"id":"Libtmux_unix.Cleanup.issue.backtrace","publicId":"Libtmux_unix.Cleanup.issue.backtrace","name":"backtrace","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"backtrace : Printexc.raw_backtrace;","source":{"file":"unix/libtmux_unix.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"Printexc.raw_backtrace","qualifiedName":"Libtmux_unix.Cleanup.backtrace","slug":"libtmux_unix-cleanup-issue-backtrace"},{"id":"Libtmux_unix.Cleanup.issue.error","publicId":"Libtmux_unix.Cleanup.issue.error","name":"error","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"error : Libtmux.Error.t option;","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_unix.Cleanup.error","slug":"libtmux_unix-cleanup-issue-error"},{"id":"Libtmux_unix.Cleanup.issue.exception_","publicId":"Libtmux_unix.Cleanup.issue.exception_","name":"exception_","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"exception_ : exn;","source":{"file":"unix/libtmux_unix.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"exn","qualifiedName":"Libtmux_unix.Cleanup.exception_","slug":"libtmux_unix-cleanup-issue-exception_"},{"id":"Libtmux_unix.Cleanup.issue.phase","publicId":"Libtmux_unix.Cleanup.issue.phase","name":"phase","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"phase : phase;","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"phase","qualifiedName":"Libtmux_unix.Cleanup.phase","slug":"libtmux_unix-cleanup-issue-phase"},{"id":"Libtmux_unix.Cleanup.phase","publicId":"Libtmux_unix.Cleanup.phase","qualifiedName":"Libtmux_unix.Cleanup.phase","name":"phase","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type phase = Cleanup.phase =\n | Close_pipe\n | Open_pidfd\n | Close_pidfd\n | Terminate\n | Grace\n | Kill\n | Reap\n | Unreaped_child\n | Cancel_workers\n | Release_hook\n | Notify_waiters","source":{"file":"unix/libtmux_unix.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup","type":"Cleanup.phase","signatures":[{"raw":"type phase = Cleanup.phase =\n | Close_pipe \n | Open_pidfd \n | Close_pidfd \n | Terminate \n | Grace \n | Kill \n | Reap \n | Unreaped_child \n | Cancel_workers \n | Release_hook \n | Notify_waiters ","params":[]}],"slug":"libtmux_unix-cleanup-phase"},{"id":"Libtmux_unix.Cleanup.phase.Cancel_workers","publicId":"Libtmux_unix.Cleanup.phase.Cancel_workers","name":"Cancel_workers","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancel_workers","source":{"file":"unix/libtmux_unix.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Cancel_workers","slug":"libtmux_unix-cleanup-phase-cancel_workers"},{"id":"Libtmux_unix.Cleanup.phase.Close_pidfd","publicId":"Libtmux_unix.Cleanup.phase.Close_pidfd","name":"Close_pidfd","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Close_pidfd","source":{"file":"unix/libtmux_unix.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Close_pidfd","slug":"libtmux_unix-cleanup-phase-close_pidfd"},{"id":"Libtmux_unix.Cleanup.phase.Close_pipe","publicId":"Libtmux_unix.Cleanup.phase.Close_pipe","name":"Close_pipe","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Close_pipe","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Close_pipe","slug":"libtmux_unix-cleanup-phase-close_pipe"},{"id":"Libtmux_unix.Cleanup.phase.Grace","publicId":"Libtmux_unix.Cleanup.phase.Grace","name":"Grace","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Grace","source":{"file":"unix/libtmux_unix.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Grace","slug":"libtmux_unix-cleanup-phase-grace"},{"id":"Libtmux_unix.Cleanup.phase.Kill","publicId":"Libtmux_unix.Cleanup.phase.Kill","name":"Kill","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Kill","slug":"libtmux_unix-cleanup-phase-kill"},{"id":"Libtmux_unix.Cleanup.phase.Notify_waiters","publicId":"Libtmux_unix.Cleanup.phase.Notify_waiters","name":"Notify_waiters","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Notify_waiters","source":{"file":"unix/libtmux_unix.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Notify_waiters","slug":"libtmux_unix-cleanup-phase-notify_waiters"},{"id":"Libtmux_unix.Cleanup.phase.Open_pidfd","publicId":"Libtmux_unix.Cleanup.phase.Open_pidfd","name":"Open_pidfd","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Open_pidfd","source":{"file":"unix/libtmux_unix.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Open_pidfd","slug":"libtmux_unix-cleanup-phase-open_pidfd"},{"id":"Libtmux_unix.Cleanup.phase.Reap","publicId":"Libtmux_unix.Cleanup.phase.Reap","name":"Reap","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Reap","source":{"file":"unix/libtmux_unix.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Reap","slug":"libtmux_unix-cleanup-phase-reap"},{"id":"Libtmux_unix.Cleanup.phase.Release_hook","publicId":"Libtmux_unix.Cleanup.phase.Release_hook","name":"Release_hook","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Release_hook","source":{"file":"unix/libtmux_unix.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Release_hook","slug":"libtmux_unix-cleanup-phase-release_hook"},{"id":"Libtmux_unix.Cleanup.phase.Terminate","publicId":"Libtmux_unix.Cleanup.phase.Terminate","name":"Terminate","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Terminate","source":{"file":"unix/libtmux_unix.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Terminate","slug":"libtmux_unix-cleanup-phase-terminate"},{"id":"Libtmux_unix.Cleanup.phase.Unreaped_child","publicId":"Libtmux_unix.Cleanup.phase.Unreaped_child","name":"Unreaped_child","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":28,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unreaped_child","source":{"file":"unix/libtmux_unix.mli","line":28,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Unreaped_child","slug":"libtmux_unix-cleanup-phase-unreaped_child"},{"id":"Libtmux_unix.Cleanup.snapshot","publicId":"Libtmux_unix.Cleanup.snapshot","qualifiedName":"Libtmux_unix.Cleanup.snapshot","name":"snapshot","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Issues in occurrence order, with a count of additional omitted issues. A\n report retains at most 64 entries. This bounds entry count, not heap\n retention: exception payloads and backtraces may retain other values.\n These diagnostics are not immutable graph observations. "],"declarations":[{"kind":"struct","text":"type snapshot = Cleanup.snapshot = { issues : issue Iarray.t; omitted : int }","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Issues in occurrence order, with a count of additional omitted issues. A report retains at most 64 entries. This bounds entry count, not heap retention: exception payloads and backtraces may retain other values. These diagnostics are not immutable graph observations."},"type":"Cleanup.snapshot","signatures":[{"raw":"type snapshot = Cleanup.snapshot = {\n issues: issue Iarray.t ;\n omitted: int }","params":[]}],"slug":"libtmux_unix-cleanup-snapshot"},{"id":"Libtmux_unix.Cleanup.snapshot.issues","publicId":"Libtmux_unix.Cleanup.snapshot.issues","name":"issues","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"issues : issue Iarray.t;","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.snapshot","type":"issue Iarray.t","qualifiedName":"Libtmux_unix.Cleanup.issues","slug":"libtmux_unix-cleanup-snapshot-issues"},{"id":"Libtmux_unix.Cleanup.snapshot.omitted","publicId":"Libtmux_unix.Cleanup.snapshot.omitted","name":"omitted","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"omitted : int","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.snapshot","type":"int","qualifiedName":"Libtmux_unix.Cleanup.omitted","slug":"libtmux_unix-cleanup-snapshot-omitted"},{"id":"Libtmux_unix.Cleanup.t","publicId":"Libtmux_unix.Cleanup.t","qualifiedName":"Libtmux_unix.Cleanup.t","name":"t","kind":"typealias","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t = Cleanup.t","source":{"file":"unix/libtmux_unix.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup","type":"Cleanup.t","signatures":[{"raw":"type t = Cleanup.t","params":[]}],"slug":"libtmux_unix-cleanup-t"},{"id":"Libtmux_unix.Client","publicId":"Libtmux_unix.Client","qualifiedName":"Libtmux_unix.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. *)\n\n val cleanup : t -> Cleanup.t\n (** Read the report supplied at connection time, or its fresh default.\n {!Cleanup.inspect} remains available after close. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. *)\n\n val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. Release the temporary subscription\n without replacing an earlier error or cancellation; inspect {!cleanup} for\n secondary failures. Otherwise cleanup failure prevents success or renewed\n coverage. No capture/stream barrier exists. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve queue capacity without I/O. *)\n\n val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O and owned-child cleanup must also\n finish. Each owned child gets 200 ms of TERM grace before forced\n termination and reaping; scheduling and kernel completion can add time. No\n background scheduler or worker is started. *)\n\n val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result\n (** Submit and await. Use the two calls separately to retain an operation\n handle. *)\n\n val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. *)\n\n val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Libtmux.Error.Unsupported}. *)\n\n val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Close owned control clients and descriptors on the owning domain. Later\n calls retain the original cleanup result, including failure. Each owned\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n This is not a whole-client deadline or a bound on uninterruptible kernel\n work. No signal targets the daemon. tmux's [exit-unattached] and\n [exit-empty] policies can end the daemon after its clients or sessions\n disappear. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_unix-client"},{"id":"Libtmux_unix.Client.await","publicId":"Libtmux_unix.Client.await","qualifiedName":"Libtmux_unix.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O and owned-child cleanup must also\n finish. Each owned child gets 200 ms of TERM grace before forced\n termination and reaping; scheduling and kernel completion can add time. No\n background scheduler or worker is started. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Pump admitted work until this operation is finished. Only one blocking caller may own the client at a time. Cancellation removes queued work or drains admitted work before raising `Cancellation.Cancelled`. The handle retains its outcome. Draining has at most one exchange timeout from detection; local scratch filesystem I/O and owned-child cleanup must also finish. Each owned child gets 200 ms of TERM grace before forced termination and reaping; scheduling and kernel completion can add time. No background scheduler or worker is started."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-await"},{"id":"Libtmux_unix.Client.break_pane","publicId":"Libtmux_unix.Client.break_pane","qualifiedName":"Libtmux_unix.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":559,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":559,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-break_pane"},{"id":"Libtmux_unix.Client.capture","publicId":"Libtmux_unix.Client.capture","qualifiedName":"Libtmux_unix.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":268,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. "],"declarations":[{"kind":"function","text":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":268,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a complete graph over a recorded interval, with a fixed number of listing commands. Races fail validation. Access to returned values performs no I/O, including after closing the client.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture"},{"id":"Libtmux_unix.Client.capture_environment","publicId":"Libtmux_unix.Client.capture_environment","qualifiedName":"Libtmux_unix.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_environment"},{"id":"Libtmux_unix.Client.capture_hooks","publicId":"Libtmux_unix.Client.capture_hooks","qualifiedName":"Libtmux_unix.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":467,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":467,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_hooks"},{"id":"Libtmux_unix.Client.capture_options","publicId":"Libtmux_unix.Client.capture_options","qualifiedName":"Libtmux_unix.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Libtmux.Error.Unsupported}. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors cover every supported release from tmux 3.3a through 3.8; other versions return {!Libtmux.Error.Unsupported}."},"signatures":[{"raw":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_options"},{"id":"Libtmux_unix.Client.capture_text","publicId":"Libtmux_unix.Client.capture_text","qualifiedName":"Libtmux_unix.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture ordinary rendered screen rows, inclusively, via an owned paste buffer and private file. Reject applicable capture/save hooks. The scratch directory defaults to `/tmp` and must be local storage shared with the daemon. Pending and alternate-screen byte modes are unsupported. This observes an interval and establishes no stream continuity barrier."},"signatures":[{"raw":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_text"},{"id":"Libtmux_unix.Client.cleanup","publicId":"Libtmux_unix.Client.cleanup","qualifiedName":"Libtmux_unix.Client.cleanup","name":"cleanup","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read the report supplied at connection time, or its fresh default.\n {!Cleanup.inspect} remains available after close. "],"declarations":[{"kind":"function","text":"val cleanup : t -> Cleanup.t","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the report supplied at connection time, or its fresh default. {!Cleanup.inspect} remains available after close."},"signatures":[{"raw":"val cleanup : t -> Cleanup.t","params":[{"name":"arg1","type":"t"}],"returns":"Cleanup.t"}],"slug":"libtmux_unix-client-cleanup"},{"id":"Libtmux_unix.Client.clear_history","publicId":"Libtmux_unix.Client.clear_history","qualifiedName":"Libtmux_unix.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":739,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":739,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_history"},{"id":"Libtmux_unix.Client.clear_option_array","publicId":"Libtmux_unix.Client.clear_option_array","qualifiedName":"Libtmux_unix.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":459,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":459,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_option_array"},{"id":"Libtmux_unix.Client.close","publicId":"Libtmux_unix.Client.close","qualifiedName":"Libtmux_unix.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":749,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Close owned control clients and descriptors on the owning domain. Later\n calls retain the original cleanup result, including failure. Each owned\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n This is not a whole-client deadline or a bound on uninterruptible kernel\n work. No signal targets the daemon. tmux's [exit-unattached] and\n [exit-empty] policies can end the daemon after its clients or sessions\n disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":749,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Close owned control clients and descriptors on the owning domain. Later calls retain the original cleanup result, including failure. Each owned helper gets 200 ms of TERM grace, followed by KILL if needed and reaping. This is not a whole-client deadline or a bound on uninterruptible kernel work. No signal targets the daemon. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-close"},{"id":"Libtmux_unix.Client.connect","publicId":"Libtmux_unix.Client.connect","qualifiedName":"Libtmux_unix.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. "],"declarations":[{"kind":"function","text":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Attach to an existing local daemon with at least one session. The caller and daemon must share the PID namespace and filesystem. A local socket pathname alone does not establish these preconditions. `timeout` is the maximum seconds per control exchange, defaulting to one second. Requires Linux pidfd support. The client belongs to the current domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float -> Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-connect"},{"id":"Libtmux_unix.Client.create_session","publicId":"Libtmux_unix.Client.create_session","qualifiedName":"Libtmux_unix.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_session"},{"id":"Libtmux_unix.Client.create_window","publicId":"Libtmux_unix.Client.create_window","qualifiedName":"Libtmux_unix.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_create_window.ml","intro":"Create a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"created: logs\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_window"},{"id":"Libtmux_unix.Client.cycle_layout","publicId":"Libtmux_unix.Client.cycle_layout","qualifiedName":"Libtmux_unix.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":683,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":683,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-cycle_layout"},{"id":"Libtmux_unix.Client.kill_pane","publicId":"Libtmux_unix.Client.kill_pane","qualifiedName":"Libtmux_unix.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_pane"},{"id":"Libtmux_unix.Client.kill_session","publicId":"Libtmux_unix.Client.kill_session","qualifiedName":"Libtmux_unix.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":571,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":571,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_session"},{"id":"Libtmux_unix.Client.kill_window","publicId":"Libtmux_unix.Client.kill_window","qualifiedName":"Libtmux_unix.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":579,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":579,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_window"},{"id":"Libtmux_unix.Client.link_window","publicId":"Libtmux_unix.Client.link_window","qualifiedName":"Libtmux_unix.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":614,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":614,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-link_window"},{"id":"Libtmux_unix.Client.move_pane","publicId":"Libtmux_unix.Client.move_pane","qualifiedName":"Libtmux_unix.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":691,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":691,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_pane"},{"id":"Libtmux_unix.Client.move_window_at","publicId":"Libtmux_unix.Client.move_window_at","qualifiedName":"Libtmux_unix.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_move_window.ml","intro":"Move a window between sessions. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"moved: build at 7\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_window_at"},{"id":"Libtmux_unix.Client.read_hook","publicId":"Libtmux_unix.Client.read_hook","qualifiedName":"Libtmux_unix.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_hook"},{"id":"Libtmux_unix.Client.read_option","publicId":"Libtmux_unix.Client.read_option","qualifiedName":"Libtmux_unix.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_option"},{"id":"Libtmux_unix.Client.refresh_client_at","publicId":"Libtmux_unix.Client.refresh_client_at","qualifiedName":"Libtmux_unix.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-refresh_client_at"},{"id":"Libtmux_unix.Client.remove_environment","publicId":"Libtmux_unix.Client.remove_environment","qualifiedName":"Libtmux_unix.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":402,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":402,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_environment"},{"id":"Libtmux_unix.Client.remove_hook","publicId":"Libtmux_unix.Client.remove_hook","qualifiedName":"Libtmux_unix.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_hook"},{"id":"Libtmux_unix.Client.rename_session","publicId":"Libtmux_unix.Client.rename_session","qualifiedName":"Libtmux_unix.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":298,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":298,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_session"},{"id":"Libtmux_unix.Client.rename_window","publicId":"Libtmux_unix.Client.rename_window","qualifiedName":"Libtmux_unix.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":289,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":289,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_rename_window.ml","intro":"Rename a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"renamed: editor-main\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val rename_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_window"},{"id":"Libtmux_unix.Client.request_detach_client_at","publicId":"Libtmux_unix.Client.request_detach_client_at","qualifiedName":"Libtmux_unix.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":318,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":318,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-request_detach_client_at"},{"id":"Libtmux_unix.Client.resize_control_client_at","publicId":"Libtmux_unix.Client.resize_control_client_at","qualifiedName":"Libtmux_unix.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":335,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":335,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_control_client_at"},{"id":"Libtmux_unix.Client.resize_pane","publicId":"Libtmux_unix.Client.resize_pane","qualifiedName":"Libtmux_unix.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":652,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":652,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_pane"},{"id":"Libtmux_unix.Client.resize_window","publicId":"Libtmux_unix.Client.resize_window","qualifiedName":"Libtmux_unix.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":663,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":663,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_window"},{"id":"Libtmux_unix.Client.respawn_pane","publicId":"Libtmux_unix.Client.respawn_pane","qualifiedName":"Libtmux_unix.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":728,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":728,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-respawn_pane"},{"id":"Libtmux_unix.Client.rotate_panes","publicId":"Libtmux_unix.Client.rotate_panes","qualifiedName":"Libtmux_unix.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rotate_panes"},{"id":"Libtmux_unix.Client.run","publicId":"Libtmux_unix.Client.run","qualifiedName":"Libtmux_unix.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Submit and await. Use the two calls separately to retain an operation\n handle. "],"declarations":[{"kind":"function","text":"val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Submit and await. Use the two calls separately to retain an operation handle."},"signatures":[{"raw":"val run :\n ?cancel:Cancellation.t ->\n t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run"},{"id":"Libtmux_unix.Client.run_hook","publicId":"Libtmux_unix.Client.run_hook","qualifiedName":"Libtmux_unix.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run_hook"},{"id":"Libtmux_unix.Client.select_layout","publicId":"Libtmux_unix.Client.select_layout","qualifiedName":"Libtmux_unix.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":674,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":674,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_layout.ml","intro":"Apply a layout. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"layout: 3 horizontal panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_layout"},{"id":"Libtmux_unix.Client.select_pane","publicId":"Libtmux_unix.Client.select_pane","qualifiedName":"Libtmux_unix.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_pane"},{"id":"Libtmux_unix.Client.select_window_at","publicId":"Libtmux_unix.Client.select_window_at","qualifiedName":"Libtmux_unix.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":595,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":595,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_window_at"},{"id":"Libtmux_unix.Client.send_keys","publicId":"Libtmux_unix.Client.send_keys","qualifiedName":"Libtmux_unix.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":352,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":352,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_keys"},{"id":"Libtmux_unix.Client.send_text","publicId":"Libtmux_unix.Client.send_text","qualifiedName":"Libtmux_unix.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_text :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_text"},{"id":"Libtmux_unix.Client.set_environment","publicId":"Libtmux_unix.Client.set_environment","qualifiedName":"Libtmux_unix.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_environment"},{"id":"Libtmux_unix.Client.set_hook","publicId":"Libtmux_unix.Client.set_hook","qualifiedName":"Libtmux_unix.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_hook"},{"id":"Libtmux_unix.Client.set_option","publicId":"Libtmux_unix.Client.set_option","qualifiedName":"Libtmux_unix.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":434,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":434,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_option"},{"id":"Libtmux_unix.Client.set_pane_title","publicId":"Libtmux_unix.Client.set_pane_title","qualifiedName":"Libtmux_unix.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":643,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":643,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_pane_title"},{"id":"Libtmux_unix.Client.signal","publicId":"Libtmux_unix.Client.signal","qualifiedName":"Libtmux_unix.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-signal"},{"id":"Libtmux_unix.Client.source","publicId":"Libtmux_unix.Client.source","qualifiedName":"Libtmux_unix.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"unix/libtmux_unix.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_unix-client-source"},{"id":"Libtmux_unix.Client.split_pane","publicId":"Libtmux_unix.Client.split_pane","qualifiedName":"Libtmux_unix.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":547,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":547,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-split_pane"},{"id":"Libtmux_unix.Client.submit","publicId":"Libtmux_unix.Client.submit","qualifiedName":"Libtmux_unix.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate and reserve queue capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate and reserve queue capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-submit"},{"id":"Libtmux_unix.Client.subscribe","publicId":"Libtmux_unix.Client.subscribe","qualifiedName":"Libtmux_unix.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire verified coverage of the pane's observed session/window. Choose the least session ID unless explicitly supplied. Reuse one lane per session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16 subscribers and eight client lanes including commands. Reserve payload against the shared 32 MiB budget before admission.","body":"Data starts after admission's marker. Layout/membership changes end continuity conservatively. Overflow emits Gap then End, without blocking another subscriber. Blocking delivery advances during Subscription.next. There is no snapshot/history barrier or automatic recovery."},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-subscribe"},{"id":"Libtmux_unix.Client.swap_panes","publicId":"Libtmux_unix.Client.swap_panes","qualifiedName":"Libtmux_unix.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":703,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":703,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-swap_panes"},{"id":"Libtmux_unix.Client.switch_client_at","publicId":"Libtmux_unix.Client.switch_client_at","qualifiedName":"Libtmux_unix.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":307,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":307,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-switch_client_at"},{"id":"Libtmux_unix.Client.t","publicId":"Libtmux_unix.Client.t","qualifiedName":"Libtmux_unix.Client.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-client-t"},{"id":"Libtmux_unix.Client.unlink_window_at","publicId":"Libtmux_unix.Client.unlink_window_at","qualifiedName":"Libtmux_unix.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":604,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":604,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unlink_window_at"},{"id":"Libtmux_unix.Client.unset_environment","publicId":"Libtmux_unix.Client.unset_environment","qualifiedName":"Libtmux_unix.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_environment"},{"id":"Libtmux_unix.Client.unset_option","publicId":"Libtmux_unix.Client.unset_option","qualifiedName":"Libtmux_unix.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_option"},{"id":"Libtmux_unix.Client.version","publicId":"Libtmux_unix.Client.version","qualifiedName":"Libtmux_unix.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_unix-client-version"},{"id":"Libtmux_unix.Client.wait_for","publicId":"Libtmux_unix.Client.wait_for","qualifiedName":"Libtmux_unix.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for"},{"id":"Libtmux_unix.Client.wait_for_text","publicId":"Libtmux_unix.Client.wait_for_text","qualifiedName":"Libtmux_unix.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. Release the temporary subscription\n without replacing an earlier error or cancellation; inspect {!cleanup} for\n secondary failures. Otherwise cleanup failure prevents success or renewed\n coverage. No capture/stream barrier exists. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Subscribe, capture the ordinary screen immediately, and recapture after output. Membership/overflow gaps trigger explicit fresh capture and new coverage in the same binding. Maximum pattern: 64 KiB. Success returns a capture that contains the text. Transient text between captures may be missed. Check the deadline between bounded acquisitions; in-flight I/O retains the client's exchange timeout. Release the temporary subscription without replacing an earlier error or cancellation; inspect {!cleanup} for secondary failures. Otherwise cleanup failure prevents success or renewed coverage. No capture/stream barrier exists."},"signatures":[{"raw":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for_text"},{"id":"Libtmux_unix.Client.zoom_pane","publicId":"Libtmux_unix.Client.zoom_pane","qualifiedName":"Libtmux_unix.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-zoom_pane"},{"id":"Libtmux_unix.Operation","publicId":"Libtmux_unix.Operation","qualifiedName":"Libtmux_unix.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** No I/O. Results remain inspectable after client closure, on the owning\n domain. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_unix-operation"},{"id":"Libtmux_unix.Operation.cancel","publicId":"Libtmux_unix.Operation.cancel","qualifiedName":"Libtmux_unix.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"Remove queued work before it is written. Admitted commands retain their owner and are drained by {!Client.await}; cancellation does not undo effects. Returns `Busy` while another blocking caller owns the client; use a {!Cancellation.t} token to interrupt that caller."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-cancel"},{"id":"Libtmux_unix.Operation.cleanup_receipt","publicId":"Libtmux_unix.Operation.cleanup_receipt","qualifiedName":"Libtmux_unix.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt =\n {\n cause: Libtmux.Error.t ;\n owned_buffers: string list ;\n created: Libtmux.Created.t list }","params":[]}],"slug":"libtmux_unix-operation-cleanup_receipt"},{"id":"Libtmux_unix.Operation.cleanup_receipt.cause","publicId":"Libtmux_unix.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"unix/libtmux_unix.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_unix.Operation.cause","slug":"libtmux_unix-operation-cleanup_receipt-cause"},{"id":"Libtmux_unix.Operation.cleanup_receipt.created","publicId":"Libtmux_unix.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":118,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"unix/libtmux_unix.mli","line":118,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_unix.Operation.created","slug":"libtmux_unix-operation-cleanup_receipt-created"},{"id":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"unix/libtmux_unix.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_unix.Operation.owned_buffers","slug":"libtmux_unix-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_unix.Operation.id","publicId":"Libtmux_unix.Operation.id","qualifiedName":"Libtmux_unix.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"unix/libtmux_unix.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_unix-operation-id"},{"id":"Libtmux_unix.Operation.inspect","publicId":"Libtmux_unix.Operation.inspect","qualifiedName":"Libtmux_unix.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" No I/O. Results remain inspectable after client closure, on the owning\n domain. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"No I/O. Results remain inspectable after client closure, on the owning domain."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-inspect"},{"id":"Libtmux_unix.Operation.state","publicId":"Libtmux_unix.Operation.state","qualifiedName":"Libtmux_unix.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a state =\n | Queued \n | Not_started \n | Written \n | Acknowledged \n | Finished of ('a, Libtmux.Error.t) result \n | Outcome_unknown of cleanup_receipt ","params":[]}],"slug":"libtmux_unix-operation-state"},{"id":"Libtmux_unix.Operation.state.Acknowledged","publicId":"Libtmux_unix.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"unix/libtmux_unix.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Acknowledged","slug":"libtmux_unix-operation-state-acknowledged"},{"id":"Libtmux_unix.Operation.state.Finished","publicId":"Libtmux_unix.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Finished","slug":"libtmux_unix-operation-state-finished"},{"id":"Libtmux_unix.Operation.state.Not_started","publicId":"Libtmux_unix.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"unix/libtmux_unix.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Not_started","slug":"libtmux_unix-operation-state-not_started"},{"id":"Libtmux_unix.Operation.state.Outcome_unknown","publicId":"Libtmux_unix.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Outcome_unknown","slug":"libtmux_unix-operation-state-outcome_unknown"},{"id":"Libtmux_unix.Operation.state.Queued","publicId":"Libtmux_unix.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"unix/libtmux_unix.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Queued","slug":"libtmux_unix-operation-state-queued"},{"id":"Libtmux_unix.Operation.state.Written","publicId":"Libtmux_unix.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"unix/libtmux_unix.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Written","slug":"libtmux_unix-operation-state-written"},{"id":"Libtmux_unix.Operation.t","publicId":"Libtmux_unix.Operation.t","qualifiedName":"Libtmux_unix.Operation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"unix/libtmux_unix.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-operation-t"},{"id":"Libtmux_unix.Rendered","publicId":"Libtmux_unix.Rendered","qualifiedName":"Libtmux_unix.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Blocking native Linux transport. No Eio scheduler is started. "],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"unix/libtmux_unix.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"Blocking native Linux transport. No Eio scheduler is started."},"exportedFrom":"Libtmux.Captured_text","slug":"libtmux_unix-rendered"},{"id":"Libtmux_unix.Subscription","publicId":"Libtmux_unix.Subscription","qualifiedName":"Libtmux_unix.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. *)\n\n val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Release and reap\n an unused lane; later calls retain cleanup failures. Does not stop the\n daemon. {!poll} can still read the terminal event. *)\n\n val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_unix-subscription"},{"id":"Libtmux_unix.Subscription.close","publicId":"Libtmux_unix.Subscription.close","qualifiedName":"Libtmux_unix.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":162,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Release and reap\n an unused lane; later calls retain cleanup failures. Does not stop the\n daemon. {!poll} can still read the terminal event. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":162,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"End an active subscription with Cancelled and discard pending data. Preserve an already ended subscription's terminal reason. Release and reap an unused lane; later calls retain cleanup failures. Does not stop the daemon. {!poll} can still read the terminal event."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-close"},{"id":"Libtmux_unix.Subscription.next","publicId":"Libtmux_unix.Subscription.next","qualifiedName":"Libtmux_unix.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":153,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. "],"declarations":[{"kind":"function","text":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":153,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Pump all subscription lanes until one event is available. Default deadline is one second. `None` follows a consumed End. A deadline keeps the subscription active; cancellation closes it and raises Cancelled."},"signatures":[{"raw":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-next"},{"id":"Libtmux_unix.Subscription.poll","publicId":"Libtmux_unix.Subscription.poll","qualifiedName":"Libtmux_unix.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Remove a queued event without I/O. Owning domain only, including after client closure. `None` means no queued event, not proof of continuity."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-poll"},{"id":"Libtmux_unix.Subscription.t","publicId":"Libtmux_unix.Subscription.t","qualifiedName":"Libtmux_unix.Subscription.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":147,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":147,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-subscription-t"},{"id":"Libtmux_unix.Subscription.wait_for_bytes","publicId":"Libtmux_unix.Subscription.wait_for_bytes","qualifiedName":"Libtmux_unix.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"unix/libtmux_unix.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Consume future bytes until the nonempty pattern matches, including across Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's end within its consumed event. Gaps stop matching; no rendered or earlier output is searched. Timeout leaves the subscription active."},"signatures":[{"raw":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_unix-subscription-wait_for_bytes"},{"id":"Libtmux_unix.Terminal","publicId":"Libtmux_unix.Terminal","qualifiedName":"Libtmux_unix.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM\n gets 200 ms of cooperative grace before KILL and reaping. Scheduling and\n uninterruptible kernel work can add time. Supply [cleanup] before the call\n to retain secondary failures after cancellation. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_unix-terminal"},{"id":"Libtmux_unix.Terminal.attach_current","publicId":"Libtmux_unix.Terminal.attach_current","qualifiedName":"Libtmux_unix.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM\n gets 200 ms of cooperative grace before KILL and reaping. Scheduling and\n uninterruptible kernel work can add time. Supply [cleanup] before the call\n to retain secondary failures after cancellation. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Terminal","doc":{"summary":"Run an interactive terminal client until it exits. Select the exact session ID on the daemon currently listening at `endpoint`; this is explicitly unbound and accepts no captured target. No retry or daemon startup occurs. A successful result proves client exit, not continued attachment. Diagnostics go to `stderr`.","body":"Descriptors default to the application's standard streams and remain caller-owned. `stdin` must be a terminal. Environment updates and read-only mode are disabled by default; inherited `TMUX` and `TMUX_PANE` are removed. Cancellation terminates and reaps this terminal client, leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM gets 200 ms of cooperative grace before KILL and reaping. Scheduling and uninterruptible kernel work can add time. Supply `cleanup` before the call to retain secondary failures after cancellation."},"signatures":[{"raw":"val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stdout","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stderr","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-terminal-attach_current"},{"id":"Libtmux_unix.Workspace","publicId":"Libtmux_unix.Workspace","qualifiedName":"Libtmux_unix.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Apply validated plans with blocking I/O and scoped cancellation tokens.\n Execution handles retain journals and borrow existing clients; bootstrap\n handles own their newly bound clients without owning the daemon. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. *)\n\n val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. *)\n\n val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"Apply validated plans with blocking I/O and scoped cancellation tokens. Execution handles retain journals and borrow existing clients; bootstrap handles own their newly bound clients without owning the daemon."},"slug":"libtmux_unix-workspace"},{"id":"Libtmux_unix.Workspace.await","publicId":"Libtmux_unix.Workspace.await","qualifiedName":"Libtmux_unix.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Expected apply failures are retained receipts. Cancellation propagates after recording progress and at most 500 ms of protected compensation."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-await"},{"id":"Libtmux_unix.Workspace.client","publicId":"Libtmux_unix.Workspace.client","qualifiedName":"Libtmux_unix.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":791,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"unix/libtmux_unix.mli","line":791,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_unix-workspace-client"},{"id":"Libtmux_unix.Workspace.close","publicId":"Libtmux_unix.Workspace.close","qualifiedName":"Libtmux_unix.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Completed journals remain readable after close."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-close"},{"id":"Libtmux_unix.Workspace.inspect","publicId":"Libtmux_unix.Workspace.inspect","qualifiedName":"Libtmux_unix.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":788,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":788,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-inspect"},{"id":"Libtmux_unix.Workspace.submit","publicId":"Libtmux_unix.Workspace.submit","qualifiedName":"Libtmux_unix.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":765,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":765,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a generation-bound execution handle without I/O. The caller owns the supplied client; closing this handle leaves that client open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit"},{"id":"Libtmux_unix.Workspace.submit_bootstrap","publicId":"Libtmux_unix.Workspace.submit_bootstrap","qualifiedName":"Libtmux_unix.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":770,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":770,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a handle for a missing-endpoint plan. Awaiting it starts control new-session and binds the same connection. The handle owns its new client; it never acquires ownership of the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit_bootstrap"},{"id":"Libtmux_unix.Workspace.t","publicId":"Libtmux_unix.Workspace.t","qualifiedName":"Libtmux_unix.Workspace.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-workspace-t"},{"id":"Libtmux_workspace","publicId":"Libtmux_workspace","qualifiedName":"Libtmux_workspace","name":"Libtmux_workspace","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" {!Config} validates workspace descriptions and {!Plan} previews their\n actions without I/O. {!Execution} delegates effects to an explicit executor\n and retains a recovery journal. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for JSON loading, preview, apply and receipt inspection. "],"declarations":[{"kind":"module","text":"","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"doc":{"summary":"{!Config} validates workspace descriptions and {!Plan} previews their actions without I/O. {!Execution} delegates effects to an explicit executor and retains a recovery journal. See the [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for JSON loading, preview, apply and receipt inspection."},"slug":"libtmux_workspace"},{"id":"Libtmux_workspace.Config","publicId":"Libtmux_workspace.Config","qualifiedName":"Libtmux_workspace.Config","name":"Config","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Validate native workspace values without contacting tmux or reading the\n filesystem. Relative directories resolve against the document directory;\n only declared variables participate in expansion. "],"declarations":[{"kind":"module","text":"module Config : sig\n type error = { path : string; message : string }\n\n val pp_error : Format.formatter -> error -> unit\n\n type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }\n\n type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n\n type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }\n\n type t\n\n val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane\n\n val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window\n (** Builders are unchecked descriptions; {!make} validates the whole document.\n *)\n\n val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result\n (** Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. *)\n\n val session : t -> string\n val windows : t -> window Iarray.t\n val environment : t -> (string * string) list\n val options : t -> setting list\n val dimensions : t -> int * int\nend","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace","doc":{"summary":"Validate native workspace values without contacting tmux or reading the filesystem. Relative directories resolve against the document directory; only declared variables participate in expansion."},"slug":"libtmux_workspace-config"},{"id":"Libtmux_workspace.Config.dimensions","publicId":"Libtmux_workspace.Config.dimensions","qualifiedName":"Libtmux_workspace.Config.dimensions","name":"dimensions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dimensions : t -> int * int","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val dimensions : t -> int * int","params":[{"name":"arg1","type":"t"}],"returns":"int * int"}],"slug":"libtmux_workspace-config-dimensions"},{"id":"Libtmux_workspace.Config.environment","publicId":"Libtmux_workspace.Config.environment","qualifiedName":"Libtmux_workspace.Config.environment","name":"environment","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val environment : t -> (string * string) list","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val environment : t -> (string * string) list","params":[{"name":"arg1","type":"t"}],"returns":"(string * string) list"}],"slug":"libtmux_workspace-config-environment"},{"id":"Libtmux_workspace.Config.error","publicId":"Libtmux_workspace.Config.error","qualifiedName":"Libtmux_workspace.Config.error","name":"error","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type error = { path : string; message : string }","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type error = {\n path: string ;\n message: string }","params":[]}],"slug":"libtmux_workspace-config-error"},{"id":"Libtmux_workspace.Config.error.message","publicId":"Libtmux_workspace.Config.error.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.message","slug":"libtmux_workspace-config-error-message"},{"id":"Libtmux_workspace.Config.error.path","publicId":"Libtmux_workspace.Config.error.path","name":"path","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"path : string;","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.path","slug":"libtmux_workspace-config-error-path"},{"id":"Libtmux_workspace.Config.make","publicId":"Libtmux_workspace.Config.make","qualifiedName":"Libtmux_workspace.Config.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. "],"declarations":[{"kind":"function","text":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Resolve relative working directories against the absolute document directory. Explicit variables expand `${NAME}` in directories only; they never read the process environment. Cycles and unknown names fail. Command arguments, shell code, startup text and environment values remain literal.","body":"At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names and settings must be unique in their scope. No filesystem is consulted."},"signatures":[{"raw":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string -> session:string -> window list -> (t, error) result","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"variables","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"directory","type":"string","keywordOnly":true},{"name":"session","type":"string","keywordOnly":true},{"name":"arg1","type":"window list"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-config-make"},{"id":"Libtmux_workspace.Config.options","publicId":"Libtmux_workspace.Config.options","qualifiedName":"Libtmux_workspace.Config.options","name":"options","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val options : t -> setting list","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val options : t -> setting list","params":[{"name":"arg1","type":"t"}],"returns":"setting list"}],"slug":"libtmux_workspace-config-options"},{"id":"Libtmux_workspace.Config.pane","publicId":"Libtmux_workspace.Config.pane","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size -> unit -> pane","params":[{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"startup","type":"string list","optional":true,"keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"pane"}],"slug":"libtmux_workspace-config-pane"},{"id":"Libtmux_workspace.Config.pane:type","publicId":"Libtmux_workspace.Config.pane:type","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type pane =\n {\n spawn: Libtmux.Spawn.t ;\n options: setting list ;\n startup: string list ;\n direction: Libtmux.Geometry.direction ;\n size: Libtmux.Geometry.size option }","params":[]}],"slug":"libtmux_workspace-config-pane-type"},{"id":"Libtmux_workspace.Config.pane:type.direction","publicId":"Libtmux_workspace.Config.pane:type.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Config.direction","slug":"libtmux_workspace-config-pane-type-direction"},{"id":"Libtmux_workspace.Config.pane:type.options","publicId":"Libtmux_workspace.Config.pane:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-pane-type-options"},{"id":"Libtmux_workspace.Config.pane:type.size","publicId":"Libtmux_workspace.Config.pane:type.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Config.size","slug":"libtmux_workspace-config-pane-type-size"},{"id":"Libtmux_workspace.Config.pane:type.spawn","publicId":"Libtmux_workspace.Config.pane:type.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Config.spawn","slug":"libtmux_workspace-config-pane-type-spawn"},{"id":"Libtmux_workspace.Config.pane:type.startup","publicId":"Libtmux_workspace.Config.pane:type.startup","name":"startup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"startup : string list;","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"string list","qualifiedName":"Libtmux_workspace.Config.startup","slug":"libtmux_workspace-config-pane-type-startup"},{"id":"Libtmux_workspace.Config.pp_error","publicId":"Libtmux_workspace.Config.pp_error","qualifiedName":"Libtmux_workspace.Config.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-config-pp_error"},{"id":"Libtmux_workspace.Config.session","publicId":"Libtmux_workspace.Config.session","qualifiedName":"Libtmux_workspace.Config.session","name":"session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> string","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val session : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_workspace-config-session"},{"id":"Libtmux_workspace.Config.setting","publicId":"Libtmux_workspace.Config.setting","qualifiedName":"Libtmux_workspace.Config.setting","name":"setting","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type setting =\n {\n name: string ;\n index: int option ;\n value: Libtmux.Options.scalar }","params":[]}],"slug":"libtmux_workspace-config-setting"},{"id":"Libtmux_workspace.Config.setting.index","publicId":"Libtmux_workspace.Config.setting.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.setting","type":"int option","qualifiedName":"Libtmux_workspace.Config.index","slug":"libtmux_workspace-config-setting-index"},{"id":"Libtmux_workspace.Config.setting.name","publicId":"Libtmux_workspace.Config.setting.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.setting","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-setting-name"},{"id":"Libtmux_workspace.Config.setting.value","publicId":"Libtmux_workspace.Config.setting.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Libtmux.Options.scalar;","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.setting","type":"Libtmux.Options.scalar","qualifiedName":"Libtmux_workspace.Config.value","slug":"libtmux_workspace-config-setting-value"},{"id":"Libtmux_workspace.Config.t","publicId":"Libtmux_workspace.Config.t","qualifiedName":"Libtmux_workspace.Config.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-config-t"},{"id":"Libtmux_workspace.Config.window","publicId":"Libtmux_workspace.Config.window","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Builders are unchecked descriptions; {!make} validates the whole document.\n "],"declarations":[{"kind":"function","text":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Builders are unchecked descriptions; {!make} validates the whole document."},"signatures":[{"raw":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t -> name:string -> pane list -> window","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"layout","type":"Libtmux.Layout.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"pane list"}],"returns":"window"}],"slug":"libtmux_workspace-config-window"},{"id":"Libtmux_workspace.Config.window:type","publicId":"Libtmux_workspace.Config.window:type","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type window =\n {\n name: string ;\n cwd: string option ;\n environment: (string * string) list ;\n options: setting list ;\n panes: pane list ;\n layout: Libtmux.Layout.t option }","params":[]}],"slug":"libtmux_workspace-config-window-type"},{"id":"Libtmux_workspace.Config.window:type.cwd","publicId":"Libtmux_workspace.Config.window:type.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string option","qualifiedName":"Libtmux_workspace.Config.cwd","slug":"libtmux_workspace-config-window-type-cwd"},{"id":"Libtmux_workspace.Config.window:type.environment","publicId":"Libtmux_workspace.Config.window:type.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.window:type","type":"(string * string) list","qualifiedName":"Libtmux_workspace.Config.environment","slug":"libtmux_workspace-config-window-type-environment"},{"id":"Libtmux_workspace.Config.window:type.layout","publicId":"Libtmux_workspace.Config.window:type.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : Libtmux.Layout.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.window:type","type":"Libtmux.Layout.t option","qualifiedName":"Libtmux_workspace.Config.layout","slug":"libtmux_workspace-config-window-type-layout"},{"id":"Libtmux_workspace.Config.window:type.name","publicId":"Libtmux_workspace.Config.window:type.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-window-type-name"},{"id":"Libtmux_workspace.Config.window:type.options","publicId":"Libtmux_workspace.Config.window:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.window:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-window-type-options"},{"id":"Libtmux_workspace.Config.window:type.panes","publicId":"Libtmux_workspace.Config.window:type.panes","name":"panes","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"panes : pane list;","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.window:type","type":"pane list","qualifiedName":"Libtmux_workspace.Config.panes","slug":"libtmux_workspace-config-window-type-panes"},{"id":"Libtmux_workspace.Config.windows","publicId":"Libtmux_workspace.Config.windows","qualifiedName":"Libtmux_workspace.Config.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> window Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val windows : t -> window Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"window Iarray.t"}],"slug":"libtmux_workspace-config-windows"},{"id":"Libtmux_workspace.Execution","publicId":"Libtmux_workspace.Execution","qualifiedName":"Libtmux_workspace.Execution","name":"Execution","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Apply a plan once per handle and retain effects, uncertainty and cleanup.\n The journal lives in process memory while its execution handle is retained;\n {!Execution.val-inspect} returns immutable copies. It survives waiter\n cancellation and client closure, but supplies no crash-durable recovery or\n cross-invocation deduplication. Ordinary applications use their backend's\n Workspace module; executors below integrate another transport. "],"declarations":[{"kind":"module","text":"module Execution : sig\n type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }\n (** A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. *)\n\n type certainty = Not_started | Applied | Unknown\n\n type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }\n (** Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. *)\n\n type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t\n\n type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }\n\n type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t\n\n type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }\n\n type t\n\n val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. [operation_id] correlates receipts; it\n does not deduplicate handles. A new handle starts a new execution even if\n its ID matches an earlier one. *)\n\n val inspect : t -> receipt\n (** Return an immutable copy of the retained journal without I/O. *)\n\n val await : ?compensate_on_failure:bool -> t -> receipt\n (** Execute once per handle, rechecking generation and captured preconditions\n first. Expected failures return a partial journal. Exceptions, including\n native cancellation, propagate after recording progress and bounded\n compensation. Subsequent calls only return the retained receipt; mutations\n never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. Compensation cannot undo external effects of programs\n started inside the panes. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace","doc":{"summary":"Apply a plan once per handle and retain effects, uncertainty and cleanup. The journal lives in process memory while its execution handle is retained; {!Execution.val-inspect} returns immutable copies. It survives waiter cancellation and client closure, but supplies no crash-durable recovery or cross-invocation deduplication. Ordinary applications use their backend's Workspace module; executors below integrate another transport."},"slug":"libtmux_workspace-execution"},{"id":"Libtmux_workspace.Execution.await","publicId":"Libtmux_workspace.Execution.await","qualifiedName":"Libtmux_workspace.Execution.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Execute once per handle, rechecking generation and captured preconditions\n first. Expected failures return a partial journal. Exceptions, including\n native cancellation, propagate after recording progress and bounded\n compensation. Subsequent calls only return the retained receipt; mutations\n never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. Compensation cannot undo external effects of programs\n started inside the panes. "],"declarations":[{"kind":"function","text":"val await : ?compensate_on_failure:bool -> t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Execute once per handle, rechecking generation and captured preconditions first. Expected failures return a partial journal. Exceptions, including native cancellation, propagate after recording progress and bounded compensation. Subsequent calls only return the retained receipt; mutations never retry.","body":"Compensation kills only panes reported by completed creation commands, in reverse creation order. tmux removes windows and sessions that become empty. Containers with foreign panes or window links remain; adding a borrowed pane never makes it eligible for cleanup. Cleanup failures have separate outcomes. Compensation cannot undo external effects of programs started inside the panes."},"signatures":[{"raw":"val await : ?compensate_on_failure:bool -> t -> receipt","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-await"},{"id":"Libtmux_workspace.Execution.certainty","publicId":"Libtmux_workspace.Execution.certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","name":"certainty","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type certainty = Not_started | Applied | Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type certainty =\n | Not_started \n | Applied \n | Unknown ","params":[]}],"slug":"libtmux_workspace-execution-certainty"},{"id":"Libtmux_workspace.Execution.certainty.Applied","publicId":"Libtmux_workspace.Execution.certainty.Applied","name":"Applied","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applied","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applied","slug":"libtmux_workspace-execution-certainty-applied"},{"id":"Libtmux_workspace.Execution.certainty.Not_started","publicId":"Libtmux_workspace.Execution.certainty.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Not_started","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Not_started","slug":"libtmux_workspace-execution-certainty-not_started"},{"id":"Libtmux_workspace.Execution.certainty.Unknown","publicId":"Libtmux_workspace.Execution.certainty.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Unknown","slug":"libtmux_workspace-execution-certainty-unknown"},{"id":"Libtmux_workspace.Execution.cleanup","publicId":"Libtmux_workspace.Execution.cleanup","qualifiedName":"Libtmux_workspace.Execution.cleanup","name":"cleanup","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":215,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":215,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type cleanup =\n {\n pane: Libtmux.Pane.target ;\n outcome: (unit, Libtmux.Error.t) result }","params":[]}],"slug":"libtmux_workspace-execution-cleanup"},{"id":"Libtmux_workspace.Execution.cleanup.outcome","publicId":"Libtmux_workspace.Execution.cleanup.outcome","name":"outcome","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"outcome : (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"(unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.outcome","slug":"libtmux_workspace-execution-cleanup-outcome"},{"id":"Libtmux_workspace.Execution.cleanup.pane","publicId":"Libtmux_workspace.Execution.cleanup.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":216,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.target;","source":{"file":"workspace/libtmux_workspace.mli","line":216,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"Libtmux.Pane.target","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-cleanup-pane"},{"id":"Libtmux_workspace.Execution.create","publicId":"Libtmux_workspace.Execution.create","qualifiedName":"Libtmux_workspace.Execution.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":240,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. [operation_id] correlates receipts; it\n does not deduplicate handles. A new handle starts a new execution even if\n its ID matches an earlier one. "],"declarations":[{"kind":"function","text":"val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"workspace/libtmux_workspace.mli","line":240,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Allocate a retained handle without I/O. IDs have 1..64 ASCII letters, digits, underscores or hyphens. `operation_id` correlates receipts; it does not deduplicate handles. A new handle starts a new execution even if its ID matches an earlier one."},"signatures":[{"raw":"val create :\n operation_id:string ->\n executor:executor -> Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"operation_id","type":"string","keywordOnly":true},{"name":"executor","type":"executor","keywordOnly":true},{"name":"arg1","type":"Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_workspace-execution-create"},{"id":"Libtmux_workspace.Execution.executor","publicId":"Libtmux_workspace.Execution.executor","qualifiedName":"Libtmux_workspace.Execution.executor","name":"executor","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. "],"declarations":[{"kind":"struct","text":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Backend integration: `inspect` returns a callback tied to the latest operation, reading only its retained state even after later submissions. `protect` bounds compensation and shields it from caller cancellation, reporting expected failures as `Error`. Ordinary callers use their backend's Workspace API."},"signatures":[{"raw":"type executor =\n {\n source: unit -> Libtmux.Source.t option ;\n capture: unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result ;\n run: 'a . 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result ;\n bootstrap: Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result ;\n inspect: unit -> unit -> observation ;\n protect: (unit -> unit) -> (unit, Libtmux.Error.t) result }","params":[]}],"slug":"libtmux_workspace-execution-executor"},{"id":"Libtmux_workspace.Execution.executor.bootstrap","publicId":"Libtmux_workspace.Execution.executor.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.executor","type":"Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.bootstrap","slug":"libtmux_workspace-execution-executor-bootstrap"},{"id":"Libtmux_workspace.Execution.executor.capture","publicId":"Libtmux_workspace.Execution.executor.capture","name":"capture","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.capture","slug":"libtmux_workspace-execution-executor-capture"},{"id":"Libtmux_workspace.Execution.executor.inspect","publicId":"Libtmux_workspace.Execution.executor.inspect","name":"inspect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":190,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inspect : unit -> unit -> observation;","source":{"file":"workspace/libtmux_workspace.mli","line":190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> unit -> observation","qualifiedName":"Libtmux_workspace.Execution.inspect","slug":"libtmux_workspace-execution-executor-inspect"},{"id":"Libtmux_workspace.Execution.executor.protect","publicId":"Libtmux_workspace.Execution.executor.protect","name":"protect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.executor","type":"(unit -> unit) -> (unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.protect","slug":"libtmux_workspace-execution-executor-protect"},{"id":"Libtmux_workspace.Execution.executor.run","publicId":"Libtmux_workspace.Execution.executor.run","name":"run","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.executor","type":"'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.run","slug":"libtmux_workspace-execution-executor-run"},{"id":"Libtmux_workspace.Execution.executor.source","publicId":"Libtmux_workspace.Execution.executor.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : unit -> Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-executor-source"},{"id":"Libtmux_workspace.Execution.hint","publicId":"Libtmux_workspace.Execution.hint","qualifiedName":"Libtmux_workspace.Execution.hint","name":"hint","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. "],"declarations":[{"kind":"struct","text":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"A creation row received before daemon binding finished. Hints are not operational targets and are never eligible for automatic compensation."},"signatures":[{"raw":"type hint =\n {\n session: Libtmux.Session.Id.t ;\n window: Libtmux.Window.Id.t ;\n pane: Libtmux.Pane.Id.t ;\n window_index: int ;\n pane_index: int ;\n server_pid: int }","params":[]}],"slug":"libtmux_workspace-execution-hint"},{"id":"Libtmux_workspace.Execution.hint.pane","publicId":"Libtmux_workspace.Execution.hint.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-hint-pane"},{"id":"Libtmux_workspace.Execution.hint.pane_index","publicId":"Libtmux_workspace.Execution.hint.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":171,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":171,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.pane_index","slug":"libtmux_workspace-execution-hint-pane_index"},{"id":"Libtmux_workspace.Execution.hint.server_pid","publicId":"Libtmux_workspace.Execution.hint.server_pid","name":"server_pid","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"server_pid : int;","source":{"file":"workspace/libtmux_workspace.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.server_pid","slug":"libtmux_workspace-execution-hint-server_pid"},{"id":"Libtmux_workspace.Execution.hint.session","publicId":"Libtmux_workspace.Execution.hint.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Libtmux.Session.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Session.Id.t","qualifiedName":"Libtmux_workspace.Execution.session","slug":"libtmux_workspace-execution-hint-session"},{"id":"Libtmux_workspace.Execution.hint.window","publicId":"Libtmux_workspace.Execution.hint.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Libtmux.Window.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Window.Id.t","qualifiedName":"Libtmux_workspace.Execution.window","slug":"libtmux_workspace-execution-hint-window"},{"id":"Libtmux_workspace.Execution.hint.window_index","publicId":"Libtmux_workspace.Execution.hint.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":170,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":170,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.window_index","slug":"libtmux_workspace-execution-hint-window_index"},{"id":"Libtmux_workspace.Execution.inspect","publicId":"Libtmux_workspace.Execution.inspect","qualifiedName":"Libtmux_workspace.Execution.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":250,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Return an immutable copy of the retained journal without I/O. "],"declarations":[{"kind":"function","text":"val inspect : t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":250,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Return an immutable copy of the retained journal without I/O."},"signatures":[{"raw":"val inspect : t -> receipt","params":[{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-inspect"},{"id":"Libtmux_workspace.Execution.observation","publicId":"Libtmux_workspace.Execution.observation","qualifiedName":"Libtmux_workspace.Execution.observation","name":"observation","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type observation =\n {\n certainty: certainty ;\n created: Libtmux.Created.t list ;\n unbound: hint option }","params":[]}],"slug":"libtmux_workspace-execution-observation"},{"id":"Libtmux_workspace.Execution.observation.certainty","publicId":"Libtmux_workspace.Execution.observation.certainty","name":"certainty","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":180,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"certainty : certainty;","source":{"file":"workspace/libtmux_workspace.mli","line":180,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.observation","type":"certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","slug":"libtmux_workspace-execution-observation-certainty"},{"id":"Libtmux_workspace.Execution.observation.created","publicId":"Libtmux_workspace.Execution.observation.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.observation","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-observation-created"},{"id":"Libtmux_workspace.Execution.observation.unbound","publicId":"Libtmux_workspace.Execution.observation.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.observation","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-observation-unbound"},{"id":"Libtmux_workspace.Execution.receipt","publicId":"Libtmux_workspace.Execution.receipt","qualifiedName":"Libtmux_workspace.Execution.receipt","name":"receipt","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type receipt =\n {\n operation_id: string ;\n source: Libtmux.Source.t option ;\n status: status ;\n steps: step Iarray.t ;\n cleanup: cleanup Iarray.t ;\n cleanup_error: Libtmux.Error.t option }","params":[]}],"slug":"libtmux_workspace-execution-receipt"},{"id":"Libtmux_workspace.Execution.receipt.cleanup","publicId":"Libtmux_workspace.Execution.receipt.cleanup","name":"cleanup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup : cleanup Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"cleanup Iarray.t","qualifiedName":"Libtmux_workspace.Execution.cleanup","slug":"libtmux_workspace-execution-receipt-cleanup"},{"id":"Libtmux_workspace.Execution.receipt.cleanup_error","publicId":"Libtmux_workspace.Execution.receipt.cleanup_error","name":"cleanup_error","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup_error : Libtmux.Error.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_workspace.Execution.cleanup_error","slug":"libtmux_workspace-execution-receipt-cleanup_error"},{"id":"Libtmux_workspace.Execution.receipt.operation_id","publicId":"Libtmux_workspace.Execution.receipt.operation_id","name":"operation_id","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation_id : string;","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"string","qualifiedName":"Libtmux_workspace.Execution.operation_id","slug":"libtmux_workspace-execution-receipt-operation_id"},{"id":"Libtmux_workspace.Execution.receipt.source","publicId":"Libtmux_workspace.Execution.receipt.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-receipt-source"},{"id":"Libtmux_workspace.Execution.receipt.status","publicId":"Libtmux_workspace.Execution.receipt.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : status;","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-receipt-status"},{"id":"Libtmux_workspace.Execution.receipt.steps","publicId":"Libtmux_workspace.Execution.receipt.steps","name":"steps","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"steps : step Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"step Iarray.t","qualifiedName":"Libtmux_workspace.Execution.steps","slug":"libtmux_workspace-execution-receipt-steps"},{"id":"Libtmux_workspace.Execution.status","publicId":"Libtmux_workspace.Execution.status","qualifiedName":"Libtmux_workspace.Execution.status","name":"status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type status =\n | Queued \n | Applying \n | Succeeded \n | Partial \n | Interrupted \n | Rejected of Plan.error \n | Unavailable of Libtmux.Error.t ","params":[]}],"slug":"libtmux_workspace-execution-status"},{"id":"Libtmux_workspace.Execution.status.Applying","publicId":"Libtmux_workspace.Execution.status.Applying","name":"Applying","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applying","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applying","slug":"libtmux_workspace-execution-status-applying"},{"id":"Libtmux_workspace.Execution.status.Interrupted","publicId":"Libtmux_workspace.Execution.status.Interrupted","name":"Interrupted","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":225,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Interrupted","source":{"file":"workspace/libtmux_workspace.mli","line":225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Interrupted","slug":"libtmux_workspace-execution-status-interrupted"},{"id":"Libtmux_workspace.Execution.status.Partial","publicId":"Libtmux_workspace.Execution.status.Partial","name":"Partial","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Partial","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Partial","slug":"libtmux_workspace-execution-status-partial"},{"id":"Libtmux_workspace.Execution.status.Queued","publicId":"Libtmux_workspace.Execution.status.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Queued","slug":"libtmux_workspace-execution-status-queued"},{"id":"Libtmux_workspace.Execution.status.Rejected","publicId":"Libtmux_workspace.Execution.status.Rejected","name":"Rejected","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rejected of Plan.error","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Rejected","slug":"libtmux_workspace-execution-status-rejected"},{"id":"Libtmux_workspace.Execution.status.Succeeded","publicId":"Libtmux_workspace.Execution.status.Succeeded","name":"Succeeded","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Succeeded","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Succeeded","slug":"libtmux_workspace-execution-status-succeeded"},{"id":"Libtmux_workspace.Execution.status.Unavailable","publicId":"Libtmux_workspace.Execution.status.Unavailable","name":"Unavailable","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Unavailable","slug":"libtmux_workspace-execution-status-unavailable"},{"id":"Libtmux_workspace.Execution.step","publicId":"Libtmux_workspace.Execution.step","qualifiedName":"Libtmux_workspace.Execution.step","name":"step","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step =\n {\n index: int ;\n action: Plan.action ;\n status: step_status ;\n created: Libtmux.Created.t list ;\n unbound: hint option }","params":[]}],"slug":"libtmux_workspace-execution-step"},{"id":"Libtmux_workspace.Execution.step.action","publicId":"Libtmux_workspace.Execution.step.action","name":"action","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"action : Plan.action;","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step","type":"Plan.action","qualifiedName":"Libtmux_workspace.Execution.action","slug":"libtmux_workspace-execution-step-action"},{"id":"Libtmux_workspace.Execution.step.created","publicId":"Libtmux_workspace.Execution.step.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-step-created"},{"id":"Libtmux_workspace.Execution.step.index","publicId":"Libtmux_workspace.Execution.step.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step","type":"int","qualifiedName":"Libtmux_workspace.Execution.index","slug":"libtmux_workspace-execution-step-index"},{"id":"Libtmux_workspace.Execution.step.status","publicId":"Libtmux_workspace.Execution.step.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":210,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : step_status;","source":{"file":"workspace/libtmux_workspace.mli","line":210,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step","type":"step_status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-step-status"},{"id":"Libtmux_workspace.Execution.step.unbound","publicId":"Libtmux_workspace.Execution.step.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-step-unbound"},{"id":"Libtmux_workspace.Execution.step_status","publicId":"Libtmux_workspace.Execution.step_status","qualifiedName":"Libtmux_workspace.Execution.step_status","name":"step_status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step_status =\n | Pending \n | Running \n | Completed \n | Failed of Libtmux.Error.t \n | Skipped \n | Uncertain of Libtmux.Error.t ","params":[]}],"slug":"libtmux_workspace-execution-step_status"},{"id":"Libtmux_workspace.Execution.step_status.Completed","publicId":"Libtmux_workspace.Execution.step_status.Completed","name":"Completed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Completed","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Completed","slug":"libtmux_workspace-execution-step_status-completed"},{"id":"Libtmux_workspace.Execution.step_status.Failed","publicId":"Libtmux_workspace.Execution.step_status.Failed","name":"Failed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Failed of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Failed","slug":"libtmux_workspace-execution-step_status-failed"},{"id":"Libtmux_workspace.Execution.step_status.Pending","publicId":"Libtmux_workspace.Execution.step_status.Pending","name":"Pending","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pending","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Pending","slug":"libtmux_workspace-execution-step_status-pending"},{"id":"Libtmux_workspace.Execution.step_status.Running","publicId":"Libtmux_workspace.Execution.step_status.Running","name":"Running","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Running","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Running","slug":"libtmux_workspace-execution-step_status-running"},{"id":"Libtmux_workspace.Execution.step_status.Skipped","publicId":"Libtmux_workspace.Execution.step_status.Skipped","name":"Skipped","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Skipped","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Skipped","slug":"libtmux_workspace-execution-step_status-skipped"},{"id":"Libtmux_workspace.Execution.step_status.Uncertain","publicId":"Libtmux_workspace.Execution.step_status.Uncertain","name":"Uncertain","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Uncertain","slug":"libtmux_workspace-execution-step_status-uncertain"},{"id":"Libtmux_workspace.Execution.t","publicId":"Libtmux_workspace.Execution.t","qualifiedName":"Libtmux_workspace.Execution.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-execution-t"},{"id":"Libtmux_workspace.Plan","publicId":"Libtmux_workspace.Plan","qualifiedName":"Libtmux_workspace.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Preview ordered workspace actions against one observed daemon generation. A\n plan retains collision policy and bound targets; it is not a portable\n command script. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type server_policy = Create_if_missing | Require_existing_server\n type window_collision = Reject\n\n type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }\n\n type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale\n\n val pp_error : Format.formatter -> error -> unit\n\n type scope = Session | Window of int | Pane of { window : int; pane : int }\n\n type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t\n\n type t\n\n val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result\n (** [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. *)\n\n val endpoint : t -> Libtmux.Endpoint.t\n val source : t -> Libtmux.Source.t option\n val existing_session : t -> Libtmux.Session.target option\n val actions : t -> action Iarray.t\n val config : t -> Config.t\n\n val check_source : t -> Libtmux.Source.t option -> (unit, error) result\n (** Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace","doc":{"summary":"Preview ordered workspace actions against one observed daemon generation. A plan retains collision policy and bound targets; it is not a portable command script."},"slug":"libtmux_workspace-plan"},{"id":"Libtmux_workspace.Plan.action","publicId":"Libtmux_workspace.Plan.action","qualifiedName":"Libtmux_workspace.Plan.action","name":"action","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type action =\n | Create_session of\n {\n bootstrap: bool ;\n name: string ;\n window_name: string ;\n spawn: Libtmux.Spawn.t ;\n width: int ;\n height: int } \n | Create_window of {\n window: int ;\n name: string ;\n spawn: Libtmux.Spawn.t } \n | Split_pane of\n {\n window: int ;\n pane: int ;\n spawn: Libtmux.Spawn.t ;\n direction: Libtmux.Geometry.direction ;\n size: Libtmux.Geometry.size option } \n | Set_environment of string * string \n | Set_option of scope * Config.setting \n | Send_text of {\n window: int ;\n pane: int ;\n text: string } \n | Send_enter of {\n window: int ;\n pane: int } \n | Select_layout of int * Libtmux.Layout.t ","params":[]}],"slug":"libtmux_workspace-plan-action"},{"id":"Libtmux_workspace.Plan.action.Create_session","publicId":"Libtmux_workspace.Plan.action.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_session","slug":"libtmux_workspace-plan-action-create_session"},{"id":"Libtmux_workspace.Plan.action.Create_session.bootstrap","publicId":"Libtmux_workspace.Plan.action.Create_session.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : bool;","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"bool","qualifiedName":"Libtmux_workspace.Plan.bootstrap","slug":"libtmux_workspace-plan-action-create_session-bootstrap"},{"id":"Libtmux_workspace.Plan.action.Create_session.height","publicId":"Libtmux_workspace.Plan.action.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.height","slug":"libtmux_workspace-plan-action-create_session-height"},{"id":"Libtmux_workspace.Plan.action.Create_session.name","publicId":"Libtmux_workspace.Plan.action.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_session-name"},{"id":"Libtmux_workspace.Plan.action.Create_session.spawn","publicId":"Libtmux_workspace.Plan.action.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_session-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_session.width","publicId":"Libtmux_workspace.Plan.action.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.width","slug":"libtmux_workspace-plan-action-create_session-width"},{"id":"Libtmux_workspace.Plan.action.Create_session.window_name","publicId":"Libtmux_workspace.Plan.action.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.window_name","slug":"libtmux_workspace-plan-action-create_session-window_name"},{"id":"Libtmux_workspace.Plan.action.Create_window","publicId":"Libtmux_workspace.Plan.action.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_window","slug":"libtmux_workspace-plan-action-create_window"},{"id":"Libtmux_workspace.Plan.action.Create_window.name","publicId":"Libtmux_workspace.Plan.action.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_window-name"},{"id":"Libtmux_workspace.Plan.action.Create_window.spawn","publicId":"Libtmux_workspace.Plan.action.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_window-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_window.window","publicId":"Libtmux_workspace.Plan.action.Create_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-create_window-window"},{"id":"Libtmux_workspace.Plan.action.Select_layout","publicId":"Libtmux_workspace.Plan.action.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Select_layout","slug":"libtmux_workspace-plan-action-select_layout"},{"id":"Libtmux_workspace.Plan.action.Send_enter","publicId":"Libtmux_workspace.Plan.action.Send_enter","name":"Send_enter","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_enter of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_enter","slug":"libtmux_workspace-plan-action-send_enter"},{"id":"Libtmux_workspace.Plan.action.Send_enter.pane","publicId":"Libtmux_workspace.Plan.action.Send_enter.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_enter-pane"},{"id":"Libtmux_workspace.Plan.action.Send_enter.window","publicId":"Libtmux_workspace.Plan.action.Send_enter.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_enter-window"},{"id":"Libtmux_workspace.Plan.action.Send_text","publicId":"Libtmux_workspace.Plan.action.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text of { window : int; pane : int; text : string }","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_text","slug":"libtmux_workspace-plan-action-send_text"},{"id":"Libtmux_workspace.Plan.action.Send_text.pane","publicId":"Libtmux_workspace.Plan.action.Send_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_text-pane"},{"id":"Libtmux_workspace.Plan.action.Send_text.text","publicId":"Libtmux_workspace.Plan.action.Send_text.text","name":"text","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"text : string","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"string","qualifiedName":"Libtmux_workspace.Plan.text","slug":"libtmux_workspace-plan-action-send_text-text"},{"id":"Libtmux_workspace.Plan.action.Send_text.window","publicId":"Libtmux_workspace.Plan.action.Send_text.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_text-window"},{"id":"Libtmux_workspace.Plan.action.Set_environment","publicId":"Libtmux_workspace.Plan.action.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of string * string","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_environment","slug":"libtmux_workspace-plan-action-set_environment"},{"id":"Libtmux_workspace.Plan.action.Set_option","publicId":"Libtmux_workspace.Plan.action.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of scope * Config.setting","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_option","slug":"libtmux_workspace-plan-action-set_option"},{"id":"Libtmux_workspace.Plan.action.Split_pane","publicId":"Libtmux_workspace.Plan.action.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Split_pane","slug":"libtmux_workspace-plan-action-split_pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.direction","publicId":"Libtmux_workspace.Plan.action.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Plan.direction","slug":"libtmux_workspace-plan-action-split_pane-direction"},{"id":"Libtmux_workspace.Plan.action.Split_pane.pane","publicId":"Libtmux_workspace.Plan.action.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-split_pane-pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.size","publicId":"Libtmux_workspace.Plan.action.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Plan.size","slug":"libtmux_workspace-plan-action-split_pane-size"},{"id":"Libtmux_workspace.Plan.action.Split_pane.spawn","publicId":"Libtmux_workspace.Plan.action.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-split_pane-spawn"},{"id":"Libtmux_workspace.Plan.action.Split_pane.window","publicId":"Libtmux_workspace.Plan.action.Split_pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-split_pane-window"},{"id":"Libtmux_workspace.Plan.actions","publicId":"Libtmux_workspace.Plan.actions","qualifiedName":"Libtmux_workspace.Plan.actions","name":"actions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val actions : t -> action Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val actions : t -> action Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"action Iarray.t"}],"slug":"libtmux_workspace-plan-actions"},{"id":"Libtmux_workspace.Plan.check_source","publicId":"Libtmux_workspace.Plan.check_source","qualifiedName":"Libtmux_workspace.Plan.check_source","name":"check_source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. "],"declarations":[{"kind":"function","text":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"Operational plans are ephemeral and bound to one connection generation. A printed or serialized preview cannot supply operational targets."},"signatures":[{"raw":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Source.t option"}],"returns":"(unit, error) result"}],"slug":"libtmux_workspace-plan-check_source"},{"id":"Libtmux_workspace.Plan.collision_policy","publicId":"Libtmux_workspace.Plan.collision_policy","qualifiedName":"Libtmux_workspace.Plan.collision_policy","name":"collision_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type collision_policy =\n | Fail_if_session_exists \n | Append_new_windows of {\n window_collision: window_collision } ","params":[]}],"slug":"libtmux_workspace-plan-collision_policy"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","name":"Append_new_windows","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Append_new_windows","slug":"libtmux_workspace-plan-collision_policy-append_new_windows"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","name":"window_collision","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_collision : window_collision","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","type":"window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","slug":"libtmux_workspace-plan-collision_policy-append_new_windows-window_collision"},{"id":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","publicId":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","name":"Fail_if_session_exists","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Fail_if_session_exists","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Fail_if_session_exists","slug":"libtmux_workspace-plan-collision_policy-fail_if_session_exists"},{"id":"Libtmux_workspace.Plan.config","publicId":"Libtmux_workspace.Plan.config","qualifiedName":"Libtmux_workspace.Plan.config","name":"config","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val config : t -> Config.t","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val config : t -> Config.t","params":[{"name":"arg1","type":"t"}],"returns":"Config.t"}],"slug":"libtmux_workspace-plan-config"},{"id":"Libtmux_workspace.Plan.endpoint","publicId":"Libtmux_workspace.Plan.endpoint","qualifiedName":"Libtmux_workspace.Plan.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Libtmux.Endpoint.t","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val endpoint : t -> Libtmux.Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Endpoint.t"}],"slug":"libtmux_workspace-plan-endpoint"},{"id":"Libtmux_workspace.Plan.error","publicId":"Libtmux_workspace.Plan.error","qualifiedName":"Libtmux_workspace.Plan.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type error =\n | Missing_endpoint \n | Session_conflict of string \n | Window_conflict of string \n | Append_session_options \n | Too_many_steps \n | Unsupported_setting of Config.error \n | Stale ","params":[]}],"slug":"libtmux_workspace-plan-error"},{"id":"Libtmux_workspace.Plan.error.Append_session_options","publicId":"Libtmux_workspace.Plan.error.Append_session_options","name":"Append_session_options","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_session_options","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Append_session_options","slug":"libtmux_workspace-plan-error-append_session_options"},{"id":"Libtmux_workspace.Plan.error.Missing_endpoint","publicId":"Libtmux_workspace.Plan.error.Missing_endpoint","name":"Missing_endpoint","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing_endpoint","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Missing_endpoint","slug":"libtmux_workspace-plan-error-missing_endpoint"},{"id":"Libtmux_workspace.Plan.error.Session_conflict","publicId":"Libtmux_workspace.Plan.error.Session_conflict","name":"Session_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Session_conflict","slug":"libtmux_workspace-plan-error-session_conflict"},{"id":"Libtmux_workspace.Plan.error.Stale","publicId":"Libtmux_workspace.Plan.error.Stale","name":"Stale","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Stale","slug":"libtmux_workspace-plan-error-stale"},{"id":"Libtmux_workspace.Plan.error.Too_many_steps","publicId":"Libtmux_workspace.Plan.error.Too_many_steps","name":"Too_many_steps","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Too_many_steps","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Too_many_steps","slug":"libtmux_workspace-plan-error-too_many_steps"},{"id":"Libtmux_workspace.Plan.error.Unsupported_setting","publicId":"Libtmux_workspace.Plan.error.Unsupported_setting","name":"Unsupported_setting","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_setting of Config.error","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Unsupported_setting","slug":"libtmux_workspace-plan-error-unsupported_setting"},{"id":"Libtmux_workspace.Plan.error.Window_conflict","publicId":"Libtmux_workspace.Plan.error.Window_conflict","name":"Window_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window_conflict","slug":"libtmux_workspace-plan-error-window_conflict"},{"id":"Libtmux_workspace.Plan.existing_session","publicId":"Libtmux_workspace.Plan.existing_session","qualifiedName":"Libtmux_workspace.Plan.existing_session","name":"existing_session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val existing_session : t -> Libtmux.Session.target option","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val existing_session : t -> Libtmux.Session.target option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Session.target option"}],"slug":"libtmux_workspace-plan-existing_session"},{"id":"Libtmux_workspace.Plan.make","publicId":"Libtmux_workspace.Plan.make","qualifiedName":"Libtmux_workspace.Plan.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. "],"declarations":[{"kind":"function","text":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"`None` means an explicitly observed missing endpoint. It is not an empty successful snapshot. A plan does not start a server. Append rejects any existing requested window name and never changes session options. `version` selects the generated option catalog."},"signatures":[{"raw":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option -> Config.t -> (t, error) result","params":[{"name":"server_policy","type":"server_policy","optional":true,"keywordOnly":true},{"name":"collision_policy","type":"collision_policy","optional":true,"keywordOnly":true},{"name":"endpoint","type":"Libtmux.Endpoint.t","keywordOnly":true},{"name":"version","type":"string","keywordOnly":true},{"name":"observed","type":"Libtmux.Snapshot.t option","keywordOnly":true},{"name":"arg1","type":"Config.t"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-plan-make"},{"id":"Libtmux_workspace.Plan.pp_error","publicId":"Libtmux_workspace.Plan.pp_error","qualifiedName":"Libtmux_workspace.Plan.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-plan-pp_error"},{"id":"Libtmux_workspace.Plan.scope","publicId":"Libtmux_workspace.Plan.scope","qualifiedName":"Libtmux_workspace.Plan.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Session | Window of int | Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type scope =\n | Session \n | Window of int \n | Pane of {\n window: int ;\n pane: int } ","params":[]}],"slug":"libtmux_workspace-plan-scope"},{"id":"Libtmux_workspace.Plan.scope.Pane","publicId":"Libtmux_workspace.Plan.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Pane","slug":"libtmux_workspace-plan-scope-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.pane","publicId":"Libtmux_workspace.Plan.scope.Pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-scope-pane-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.window","publicId":"Libtmux_workspace.Plan.scope.Pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-scope-pane-window"},{"id":"Libtmux_workspace.Plan.scope.Session","publicId":"Libtmux_workspace.Plan.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Session","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Session","slug":"libtmux_workspace-plan-scope-session"},{"id":"Libtmux_workspace.Plan.scope.Window","publicId":"Libtmux_workspace.Plan.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window","slug":"libtmux_workspace-plan-scope-window"},{"id":"Libtmux_workspace.Plan.server_policy","publicId":"Libtmux_workspace.Plan.server_policy","qualifiedName":"Libtmux_workspace.Plan.server_policy","name":"server_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type server_policy = Create_if_missing | Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type server_policy =\n | Create_if_missing \n | Require_existing_server ","params":[]}],"slug":"libtmux_workspace-plan-server_policy"},{"id":"Libtmux_workspace.Plan.server_policy.Create_if_missing","publicId":"Libtmux_workspace.Plan.server_policy.Create_if_missing","name":"Create_if_missing","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Create_if_missing","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Create_if_missing","slug":"libtmux_workspace-plan-server_policy-create_if_missing"},{"id":"Libtmux_workspace.Plan.server_policy.Require_existing_server","publicId":"Libtmux_workspace.Plan.server_policy.Require_existing_server","name":"Require_existing_server","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Require_existing_server","slug":"libtmux_workspace-plan-server_policy-require_existing_server"},{"id":"Libtmux_workspace.Plan.source","publicId":"Libtmux_workspace.Plan.source","qualifiedName":"Libtmux_workspace.Plan.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t option","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val source : t -> Libtmux.Source.t option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t option"}],"slug":"libtmux_workspace-plan-source"},{"id":"Libtmux_workspace.Plan.t","publicId":"Libtmux_workspace.Plan.t","qualifiedName":"Libtmux_workspace.Plan.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-plan-t"},{"id":"Libtmux_workspace.Plan.window_collision","publicId":"Libtmux_workspace.Plan.window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","name":"window_collision","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type window_collision = Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type window_collision =\n | Reject ","params":[]}],"slug":"libtmux_workspace-plan-window_collision"},{"id":"Libtmux_workspace.Plan.window_collision.Reject","publicId":"Libtmux_workspace.Plan.window_collision.Reject","name":"Reject","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.window_collision","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Reject","slug":"libtmux_workspace-plan-window_collision-reject"}]} diff --git a/site/src/data/api/ocaml.paths.json b/site/src/data/api/ocaml.paths.json index 381cf07cc..cafa07af9 100644 --- a/site/src/data/api/ocaml.paths.json +++ b/site/src/data/api/ocaml.paths.json @@ -1 +1 @@ -{"port":"ocaml","repo":"libtmux/libtmux-ocaml","revision":"4d2203d04f74d03dc3f6df0660362fc17b771287","paths":[".github/CONTRIBUTING.md",".github/WRITING.md",".github/actions/build-tmux/action.yml",".github/scripts/tmux_build.py",".github/social-preview.png",".github/tmux-releases.toml",".github/workflows/docs.yml",".github/workflows/ocaml.yml",".gitignore",".ocamlformat",".tool-versions","AGENTS.md","CHANGELOG.md","CLAUDE.md","LICENSE","README.md","bench/capture.ml","bench/capture.py","bench/concurrency.ml","bench/concurrency.py","bench/dune","bench/mixed.ml","bench/mixed.py","bench/results/capture-3.3-4x4.json","bench/results/capture-3.3.json","bench/results/capture-3.3a-4x4.json","bench/results/capture-3.3a.json","bench/results/capture-3.4-4x4.json","bench/results/capture-3.4.json","bench/results/capture-3.8-16x16.json","bench/results/capture-3.8-1x1.json","bench/results/capture-3.8-4x4.json","bench/results/capture-3.8-8x8.json","bench/results/capture-3.8.json","bench/results/concurrency-3.3-c8.json","bench/results/concurrency-3.3a-c8.json","bench/results/concurrency-3.4-c8.json","bench/results/concurrency-3.8-c1.json","bench/results/concurrency-3.8-c16.json","bench/results/concurrency-3.8-c64.json","bench/results/concurrency-3.8-c8.json","bench/results/mixed-20261108.json","bench/results/mixed-3.3-current-20261108.json.gz","bench/results/mixed-3.3-qualified-20261108.json.gz","bench/results/mixed-3.3a-current-20261108.json.gz","bench/results/mixed-3.4-crash-analysis-20261108.json","bench/results/mixed-3.4-qualified-20261108.json.gz","bench/results/mixed-3.8-current-20261108.json.gz","bench/results/mixed-3.8-current-interrupted-20261108.json.gz","catalog/fields.json","catalog/formats.json","catalog/operations.json","catalog/options.json","cli/CHANGELOG.md","cli/dune","cli/main.ml","cli/runtime.ml","docs/README.md","docs/api.md","docs/assets/app-icon-1024-dark.png","docs/assets/app-icon-1024-light.png","docs/assets/apple-touch-icon-dark.png","docs/assets/apple-touch-icon-light.png","docs/assets/browserconfig-dark.xml","docs/assets/browserconfig.xml","docs/assets/favicon.ico","docs/assets/logo-1024.png","docs/assets/logo-128.png","docs/assets/logo-144.png","docs/assets/logo-152.png","docs/assets/logo-16.png","docs/assets/logo-167.png","docs/assets/logo-180.png","docs/assets/logo-192.png","docs/assets/logo-24.png","docs/assets/logo-256.png","docs/assets/logo-32.png","docs/assets/logo-384.png","docs/assets/logo-48.png","docs/assets/logo-512.png","docs/assets/logo-64.png","docs/assets/logo-96.png","docs/assets/logo.svg","docs/assets/maskable-192-dark.png","docs/assets/maskable-192-light.png","docs/assets/maskable-512-dark.png","docs/assets/maskable-512-light.png","docs/assets/mstile-150-dark.png","docs/assets/mstile-150-light.png","docs/assets/mstile-310-dark.png","docs/assets/mstile-310-light.png","docs/assets/opengraph-dark.jpg","docs/assets/opengraph-dark.png","docs/assets/opengraph-light.jpg","docs/assets/opengraph-light.png","docs/assets/safari-pinned-tab.svg","docs/assets/site-dark.webmanifest","docs/assets/site.webmanifest","docs/assets/social-square-dark.png","docs/assets/social-square-light.png","docs/assets/source.json","docs/assets/twitter-dark.png","docs/assets/twitter-light.png","docs/benchmarking.md","docs/branding.md","docs/compatibility.md","docs/control.md","docs/dev/adr/0001-native-ocaml-suite.md","docs/dev/adr/README.md","docs/fields.md","docs/formats.md","docs/getting-started.md","docs/graph.md","docs/operations.md","docs/options.md","docs/packages.md","docs/queries.md","docs/query-interchange.md","docs/recovery.md","docs/showcases.md","docs/status.md","docs/streaming.md","docs/testing.md","docs/workspaces.md","dune","dune-project","eio/CHANGELOG.md","eio/README.md","eio/dune","eio/generated_operations.ml","eio/index.mld","eio/libtmux_eio.ml","eio/libtmux_eio.mli","eio/owned_process.ml","eio/runtime.ml","examples/dune","examples/native_build.ml","examples/native_capture.ml","examples/native_graph.ml","examples/native_query.ml","examples/native_recovery.ml","examples/native_wait.ml","examples/native_watch.ml","examples/query_description.ml","examples/query_json.ml","examples/showcase.json","examples/showcase_create_window.ml","examples/showcase_graph.ml","examples/showcase_layout.ml","examples/showcase_move_window.ml","examples/showcase_rename_window.ml","examples/showcase_send_keys.ml","examples/showcase_watch.ml","examples/workspace/project.json","json/CHANGELOG.md","json/README.md","json/document.ml","json/dune","json/index.mld","json/libtmux_json.ml","json/libtmux_json.mli","json/workspace_json.ml","json/workspace_output.ml","lib/CHANGELOG.md","lib/README.md","lib/commands.ml","lib/dune","lib/endpoint.ml","lib/error.ml","lib/filter.ml","lib/format_catalog.ml","lib/formats.ml","lib/generated_fields.ml","lib/graph.ml","lib/index.mld","lib/libtmux.ml","lib/libtmux.mli","lib/option_catalog.ml","lib/options.ml","lib/output.ml","lib/planner.ml","lib/protocol.ml","libtmux-eio.opam","libtmux-json.opam","libtmux-unix.opam","libtmux-workspace-cli.opam","libtmux-workspace.opam","libtmux.opam","test/api_export_test.py","test/binding_peer.ml","test/binding_test.py","test/blocking_cancel_peer.ml","test/blocking_peer.ml","test/blocking_test.py","test/bootstrap_peer.ml","test/bootstrap_test.py","test/capture_cancel_peer.ml","test/capture_cancel_test.py","test/capture_peer.ml","test/capture_proxy.py","test/capture_test.py","test/cleanup_test.ml","test/client_operations_peer.ml","test/client_operations_test.py","test/codec_peer.ml","test/conformance/FilterPeer.java","test/conformance/README.md","test/conformance/artifacts.gradle","test/conformance/cases.json","test/conformance/dune","test/conformance/filter_peer.ml","test/conformance/prepare.py","test/conformance/run.py","test/conformance/runner_test.py","test/core_test.ml","test/diagnostics_expect.ml","test/dune","test/eio_peer.ml","test/eio_test.py","test/environment_peer.ml","test/environment_test.py","test/fixture_test.py","test/installed_consumer.py","test/json_test.ml","test/model_fixture.ml","test/model_test.ml","test/native_suite.py","test/operations_peer.ml","test/operations_test.py","test/options_peer.ml","test/options_test.py","test/ownership_peer.ml","test/pid_race_peer.ml","test/pid_race_test.py","test/pid_race_tmux.py","test/plan_peer.ml","test/plan_test.py","test/protocol_test.ml","test/protocol_test.py","test/query_test.ml","test/read_process_peer.ml","test/read_process_proxy.py","test/read_process_test.py","test/runtime_test.ml","test/showcase_test.py","test/shutdown_peer.ml","test/shutdown_test.py","test/stream_fault_peer.ml","test/stream_fault_test.py","test/streaming_peer.ml","test/streaming_test.py","test/support/readme_walkthrough.py","test/support/tmux_fixture.py","test/terminal_peer.ml","test/terminal_test.py","test/tmux_cache_test.py","test/type_test.py","test/workspace_cli_test.py","test/workspace_docs_test.py","test/workspace_document_test.py","test/workspace_eio_peer.ml","test/workspace_json_test.ml","test/workspace_pane_ready.ml","test/workspace_peer.ml","test/workspace_scenarios.ml","test/workspace_test.ml","test/workspace_test.py","tools/api_doc.ml","tools/api_export.ml","tools/api_modules.json","tools/check.py","tools/docs_snippets.py","tools/dune","tools/export_api.py","tools/generate_fields.py","tools/generate_formats.py","tools/generate_operations.py","tools/generate_options.py","tools/setup_tmux.py","unix/CHANGELOG.md","unix/README.md","unix/acquisition.ml","unix/bootstrap.ml","unix/byte_pattern.ml","unix/cancellation.ml","unix/capture_file.ml","unix/cleanup.ml","unix/cleanup.mli","unix/command_encoding.ml","unix/connection.ml","unix/dune","unix/engine.ml","unix/environment_io.ml","unix/generated_operations.ml","unix/index.mld","unix/libtmux_unix.ml","unix/libtmux_unix.mli","unix/linux.ml","unix/linux_stubs.c","unix/observation_wait.ml","unix/options_io.ml","unix/read_process.ml","unix/rendered.ml","unix/runtime_io.ml","unix/streaming.ml","unix/terminal.ml","unix/workspace_runner.ml","workspace/CHANGELOG.md","workspace/README.md","workspace/assets/app-icon-1024-dark.png","workspace/assets/app-icon-1024-light.png","workspace/assets/apple-touch-icon-dark.png","workspace/assets/apple-touch-icon-light.png","workspace/assets/browserconfig-dark.xml","workspace/assets/browserconfig.xml","workspace/assets/favicon.ico","workspace/assets/logo-1024.png","workspace/assets/logo-128.png","workspace/assets/logo-144.png","workspace/assets/logo-152.png","workspace/assets/logo-16.png","workspace/assets/logo-167.png","workspace/assets/logo-180.png","workspace/assets/logo-192.png","workspace/assets/logo-24.png","workspace/assets/logo-256.png","workspace/assets/logo-32.png","workspace/assets/logo-384.png","workspace/assets/logo-48.png","workspace/assets/logo-512.png","workspace/assets/logo-64.png","workspace/assets/logo-96.png","workspace/assets/logo.svg","workspace/assets/maskable-192-dark.png","workspace/assets/maskable-192-light.png","workspace/assets/maskable-512-dark.png","workspace/assets/maskable-512-light.png","workspace/assets/mstile-150-dark.png","workspace/assets/mstile-150-light.png","workspace/assets/mstile-310-dark.png","workspace/assets/mstile-310-light.png","workspace/assets/opengraph-dark.jpg","workspace/assets/opengraph-dark.png","workspace/assets/opengraph-light.jpg","workspace/assets/opengraph-light.png","workspace/assets/safari-pinned-tab.svg","workspace/assets/site-dark.webmanifest","workspace/assets/site.webmanifest","workspace/assets/social-square-dark.png","workspace/assets/social-square-light.png","workspace/assets/source.json","workspace/assets/twitter-dark.png","workspace/assets/twitter-light.png","workspace/config.ml","workspace/dune","workspace/execution.ml","workspace/index.mld","workspace/libtmux_workspace.ml","workspace/libtmux_workspace.mli","workspace/plan.ml"]} +{"port":"ocaml","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","paths":[".github/CONTRIBUTING.md",".github/WRITING.md",".github/actions/build-tmux/action.yml",".github/scripts/tmux_build.py",".github/social-preview.png",".github/tmux-releases.toml",".github/workflows/docs.yml",".github/workflows/ocaml.yml",".gitignore",".ocamlformat",".tool-versions","AGENTS.md","CHANGELOG.md","CLAUDE.md","LICENSE","README.md","bench/capture.ml","bench/capture.py","bench/concurrency.ml","bench/concurrency.py","bench/control.ml","bench/control.py","bench/dune","bench/mixed.ml","bench/mixed.py","bench/results/capture-3.3-4x4.json","bench/results/capture-3.3.json","bench/results/capture-3.3a-4x4.json","bench/results/capture-3.3a.json","bench/results/capture-3.4-4x4.json","bench/results/capture-3.4.json","bench/results/capture-3.8-16x16.json","bench/results/capture-3.8-1x1.json","bench/results/capture-3.8-4x4.json","bench/results/capture-3.8-8x8.json","bench/results/capture-3.8.json","bench/results/concurrency-3.3-c8.json","bench/results/concurrency-3.3a-c8.json","bench/results/concurrency-3.4-c8.json","bench/results/concurrency-3.8-c1.json","bench/results/concurrency-3.8-c16.json","bench/results/concurrency-3.8-c64.json","bench/results/concurrency-3.8-c8.json","bench/results/control-3.3a-128-1-8-32.json","bench/results/control-3.8-128-1-8-32.json","bench/results/mixed-20261108.json","bench/results/mixed-3.3-current-20261108.json.gz","bench/results/mixed-3.3-qualified-20261108.json.gz","bench/results/mixed-3.3a-current-20261108.json.gz","bench/results/mixed-3.4-crash-analysis-20261108.json","bench/results/mixed-3.4-qualified-20261108.json.gz","bench/results/mixed-3.8-current-20261108.json.gz","bench/results/mixed-3.8-current-interrupted-20261108.json.gz","bench/results/retention-3.8-16x1.json","bench/results/retention-3.8-1x1.json","bench/results/retention-3.8-64x1-25-captures.json","bench/results/retention-3.8-64x1.json","bench/retention.ml","bench/retention.py","catalog/fields.json","catalog/formats.json","catalog/operations.json","catalog/options.json","catalog/releases.json","cli/CHANGELOG.md","cli/dune","cli/main.ml","cli/runtime.ml","docs/README.md","docs/api.md","docs/assets/app-icon-1024-dark.png","docs/assets/app-icon-1024-light.png","docs/assets/apple-touch-icon-dark.png","docs/assets/apple-touch-icon-light.png","docs/assets/browserconfig-dark.xml","docs/assets/browserconfig.xml","docs/assets/favicon.ico","docs/assets/logo-1024.png","docs/assets/logo-128.png","docs/assets/logo-144.png","docs/assets/logo-152.png","docs/assets/logo-16.png","docs/assets/logo-167.png","docs/assets/logo-180.png","docs/assets/logo-192.png","docs/assets/logo-24.png","docs/assets/logo-256.png","docs/assets/logo-32.png","docs/assets/logo-384.png","docs/assets/logo-48.png","docs/assets/logo-512.png","docs/assets/logo-64.png","docs/assets/logo-96.png","docs/assets/logo.svg","docs/assets/maskable-192-dark.png","docs/assets/maskable-192-light.png","docs/assets/maskable-512-dark.png","docs/assets/maskable-512-light.png","docs/assets/mstile-150-dark.png","docs/assets/mstile-150-light.png","docs/assets/mstile-310-dark.png","docs/assets/mstile-310-light.png","docs/assets/opengraph-dark.jpg","docs/assets/opengraph-dark.png","docs/assets/opengraph-light.jpg","docs/assets/opengraph-light.png","docs/assets/safari-pinned-tab.svg","docs/assets/site-dark.webmanifest","docs/assets/site.webmanifest","docs/assets/social-square-dark.png","docs/assets/social-square-light.png","docs/assets/source.json","docs/assets/twitter-dark.png","docs/assets/twitter-light.png","docs/benchmarking.md","docs/branding.md","docs/compatibility.md","docs/control.md","docs/dev/adr/0001-native-ocaml-suite.md","docs/dev/adr/README.md","docs/fields.md","docs/formats.md","docs/getting-started.md","docs/graph.md","docs/operations.md","docs/options.md","docs/packages.md","docs/queries.md","docs/query-interchange.md","docs/recovery.md","docs/showcases.md","docs/status.md","docs/streaming.md","docs/testing.md","docs/workspaces.md","dune","dune-project","eio/CHANGELOG.md","eio/README.md","eio/dune","eio/generated_operations.ml","eio/index.mld","eio/libtmux_eio.ml","eio/libtmux_eio.mli","eio/owned_process.ml","eio/runtime.ml","examples/dune","examples/native_build.ml","examples/native_capture.ml","examples/native_graph.ml","examples/native_query.ml","examples/native_recovery.ml","examples/native_stream_recovery.ml","examples/native_wait.ml","examples/native_watch.ml","examples/query_description.ml","examples/query_json.ml","examples/showcase.json","examples/showcase_create_window.ml","examples/showcase_graph.ml","examples/showcase_layout.ml","examples/showcase_move_window.ml","examples/showcase_rename_window.ml","examples/showcase_send_keys.ml","examples/showcase_watch.ml","examples/workspace/project.json","json/CHANGELOG.md","json/README.md","json/document.ml","json/dune","json/index.mld","json/libtmux_json.ml","json/libtmux_json.mli","json/workspace_json.ml","json/workspace_output.ml","lib/CHANGELOG.md","lib/README.md","lib/commands.ml","lib/dune","lib/endpoint.ml","lib/error.ml","lib/filter.ml","lib/format_catalog.ml","lib/formats.ml","lib/generated_fields.ml","lib/graph.ml","lib/index.mld","lib/libtmux.ml","lib/libtmux.mli","lib/option_catalog.ml","lib/options.ml","lib/output.ml","lib/planner.ml","lib/protocol.ml","libtmux-eio.opam","libtmux-json.opam","libtmux-unix.opam","libtmux-workspace-cli.opam","libtmux-workspace.opam","libtmux.opam","test/api_export_test.py","test/binding_peer.ml","test/binding_test.py","test/blocking_cancel_peer.ml","test/blocking_peer.ml","test/blocking_test.py","test/bootstrap_peer.ml","test/bootstrap_test.py","test/capture_cancel_peer.ml","test/capture_cancel_test.py","test/capture_peer.ml","test/capture_proxy.py","test/capture_test.py","test/cleanup_test.ml","test/client_operations_peer.ml","test/client_operations_test.py","test/codec_peer.ml","test/conformance/FilterPeer.java","test/conformance/README.md","test/conformance/artifacts.gradle","test/conformance/cases.json","test/conformance/dune","test/conformance/filter_peer.ml","test/conformance/prepare.py","test/conformance/run.py","test/conformance/runner_test.py","test/core_test.ml","test/diagnostics_expect.ml","test/dune","test/eio_peer.ml","test/eio_test.py","test/environment_peer.ml","test/environment_test.py","test/fixture_test.py","test/installed_consumer.py","test/json_test.ml","test/model_fixture.ml","test/model_test.ml","test/native_suite.py","test/operations_peer.ml","test/operations_test.py","test/options_peer.ml","test/options_test.py","test/ownership_peer.ml","test/pid_race_peer.ml","test/pid_race_test.py","test/pid_race_tmux.py","test/plan_peer.ml","test/plan_test.py","test/protocol_test.ml","test/protocol_test.py","test/query_test.ml","test/read_process_peer.ml","test/read_process_proxy.py","test/read_process_test.py","test/runtime_test.ml","test/showcase_test.py","test/shutdown_peer.ml","test/shutdown_test.py","test/stream_fault_peer.ml","test/stream_fault_test.py","test/streaming_peer.ml","test/streaming_test.py","test/support/readme_walkthrough.py","test/support/tmux_fixture.py","test/terminal_peer.ml","test/terminal_test.py","test/tmux_cache_test.py","test/type_test.py","test/workspace_cli_test.py","test/workspace_docs_test.py","test/workspace_document_test.py","test/workspace_eio_peer.ml","test/workspace_json_test.ml","test/workspace_pane_ready.ml","test/workspace_peer.ml","test/workspace_scenarios.ml","test/workspace_test.ml","test/workspace_test.py","tools/api_doc.ml","tools/api_export.ml","tools/api_modules.json","tools/check.py","tools/docs_snippets.py","tools/dune","tools/export_api.py","tools/generate_fields.py","tools/generate_formats.py","tools/generate_operations.py","tools/generate_options.py","tools/setup_tmux.py","unix/CHANGELOG.md","unix/README.md","unix/acquisition.ml","unix/bootstrap.ml","unix/byte_pattern.ml","unix/cancellation.ml","unix/capture_file.ml","unix/cleanup.ml","unix/cleanup.mli","unix/command_encoding.ml","unix/connection.ml","unix/dune","unix/engine.ml","unix/environment_io.ml","unix/generated_operations.ml","unix/index.mld","unix/libtmux_unix.ml","unix/libtmux_unix.mli","unix/linux.ml","unix/linux_stubs.c","unix/observation_wait.ml","unix/options_io.ml","unix/read_process.ml","unix/rendered.ml","unix/runtime_io.ml","unix/streaming.ml","unix/terminal.ml","unix/workspace_runner.ml","workspace/CHANGELOG.md","workspace/README.md","workspace/assets/app-icon-1024-dark.png","workspace/assets/app-icon-1024-light.png","workspace/assets/apple-touch-icon-dark.png","workspace/assets/apple-touch-icon-light.png","workspace/assets/browserconfig-dark.xml","workspace/assets/browserconfig.xml","workspace/assets/favicon.ico","workspace/assets/logo-1024.png","workspace/assets/logo-128.png","workspace/assets/logo-144.png","workspace/assets/logo-152.png","workspace/assets/logo-16.png","workspace/assets/logo-167.png","workspace/assets/logo-180.png","workspace/assets/logo-192.png","workspace/assets/logo-24.png","workspace/assets/logo-256.png","workspace/assets/logo-32.png","workspace/assets/logo-384.png","workspace/assets/logo-48.png","workspace/assets/logo-512.png","workspace/assets/logo-64.png","workspace/assets/logo-96.png","workspace/assets/logo.svg","workspace/assets/maskable-192-dark.png","workspace/assets/maskable-192-light.png","workspace/assets/maskable-512-dark.png","workspace/assets/maskable-512-light.png","workspace/assets/mstile-150-dark.png","workspace/assets/mstile-150-light.png","workspace/assets/mstile-310-dark.png","workspace/assets/mstile-310-light.png","workspace/assets/opengraph-dark.jpg","workspace/assets/opengraph-dark.png","workspace/assets/opengraph-light.jpg","workspace/assets/opengraph-light.png","workspace/assets/safari-pinned-tab.svg","workspace/assets/site-dark.webmanifest","workspace/assets/site.webmanifest","workspace/assets/social-square-dark.png","workspace/assets/social-square-light.png","workspace/assets/source.json","workspace/assets/twitter-dark.png","workspace/assets/twitter-light.png","workspace/config.ml","workspace/dune","workspace/execution.ml","workspace/index.mld","workspace/libtmux_workspace.ml","workspace/libtmux_workspace.mli","workspace/plan.ml"]} diff --git a/site/src/data/example-sources.json b/site/src/data/example-sources.json index 25a81eaa0..53e9b45cf 100644 --- a/site/src/data/example-sources.json +++ b/site/src/data/example-sources.json @@ -151,61 +151,61 @@ }, "ocaml:examples/showcase_create_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", "sha256": "ea2d5ff182bb80b2f8115d4d2c43cf8e32f7989626fa9d6dfda666b76dc8217b", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n" }, "ocaml:examples/showcase_graph.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" }, "ocaml:examples/showcase_layout.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", "sha256": "dca905f7b9b91858ec642fa21c2bd7c544f3a7684223f7fafd5a46f2b997cfd0", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n" }, "ocaml:examples/showcase_move_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", "sha256": "da767e573f7188350a328c78b9417610a2bc62992e1892b501435a6328e21cc5", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n" }, "ocaml:examples/showcase_rename_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", "sha256": "8722c7cd933fa53a18b41b5fb2de7d6a99fcfa1f70e8c14164c85bebf9efc6d5", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n" }, "ocaml:examples/showcase_send_keys.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", "sha256": "680f6772040e12a16b93bd0c6d582d0a5e8f4e70de303372ba924be6e0237f09", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n" }, "ocaml:examples/showcase_watch.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", "sha256": "98fa6d843a98a4d98bbdd398108704805e852a262df0e54b43c08d3f2e299f8f", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n" }, "ocaml:examples/showcase.json": { "repository": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", - "sha256": "178ca9f8e940cd9d4d893940089c2e0212e58dfea54b22e2eb7fb44131d5c9ef", - "content": "{\n \"schema\": \"libtmux.showcase/1\",\n \"tmux_floor\": \"3.3\",\n \"ci\": {\n \"workflow\": \".github/workflows/ocaml.yml\",\n \"job\": \"native\",\n \"runner\": \"test/showcase_test.py\"\n },\n \"examples\": [\n {\n \"capability\": \"graph\",\n \"title\": \"Navigate the typed object graph\",\n \"file\": \"examples/showcase_graph.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_graph.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"graph: 2 sessions, 2 windows, 3 links, 2 panes\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"watch\",\n \"title\": \"Observe future output with Eio\",\n \"file\": \"examples/showcase_watch.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_watch.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"observed: changed\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"send-keys\",\n \"title\": \"Send literal input and keys\",\n \"file\": \"examples/showcase_send_keys.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_send_keys.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"sent: literal: $HOME; #{pane_id}\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"rename-window\",\n \"title\": \"Rename a window\",\n \"file\": \"examples/showcase_rename_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_rename_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"renamed: editor-main\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"create-window\",\n \"title\": \"Create a window\",\n \"file\": \"examples/showcase_create_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_create_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"created: logs\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"move-window\",\n \"title\": \"Move a window between sessions\",\n \"file\": \"examples/showcase_move_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_move_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"moved: build at 7\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"layout\",\n \"title\": \"Apply a layout\",\n \"file\": \"examples/showcase_layout.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_layout.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"layout: 3 horizontal panes\",\n \"success_exit_code\": 0\n }\n ]\n}\n" + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", + "sha256": "bfb397cde4df53163656fc69cd4837ca6c3a929fc17d59a5384c06efb6462a67", + "content": "{\n \"schema\": \"libtmux.showcase/1\",\n \"tmux_floor\": \"3.3a\",\n \"ci\": {\n \"workflow\": \".github/workflows/ocaml.yml\",\n \"job\": \"native\",\n \"runner\": \"test/showcase_test.py\"\n },\n \"examples\": [\n {\n \"capability\": \"graph\",\n \"title\": \"Navigate the typed object graph\",\n \"file\": \"examples/showcase_graph.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_graph.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"graph: 2 sessions, 2 windows, 3 links, 2 panes\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"watch\",\n \"title\": \"Observe future output with Eio\",\n \"file\": \"examples/showcase_watch.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_watch.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"observed: changed\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"send-keys\",\n \"title\": \"Send literal input and keys\",\n \"file\": \"examples/showcase_send_keys.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_send_keys.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"sent: literal: $HOME; #{pane_id}\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"rename-window\",\n \"title\": \"Rename a window\",\n \"file\": \"examples/showcase_rename_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_rename_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"renamed: editor-main\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"create-window\",\n \"title\": \"Create a window\",\n \"file\": \"examples/showcase_create_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_create_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"created: logs\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"move-window\",\n \"title\": \"Move a window between sessions\",\n \"file\": \"examples/showcase_move_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_move_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"moved: build at 7\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"layout\",\n \"title\": \"Apply a layout\",\n \"file\": \"examples/showcase_layout.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_layout.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"layout: 3 horizontal panes\",\n \"success_exit_code\": 0\n }\n ]\n}\n" }, "ocaml:test/showcase_test.py": { "repository": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", "sha256": "17ff54eaa950f1d9a2d64b7386b456bf2a01b20209c9c7e49bcd0b990c8b4f8a", "content": "\"\"\"Outer: compile whole showcase programs against installed packages and run their entry points.\"\"\"\nimport ctypes\nimport json\nimport os\nfrom pathlib import Path\nimport selectors\nimport shutil\nimport signal\nimport subprocess\nimport sys\nimport tempfile\n\nroot = Path(__file__).resolve().parents[1]\nmanifest = json.loads((root / \"examples/showcase.json\").read_text())\nprograms = {}\nfor entry in manifest[\"examples\"]:\n path = (root / entry[\"file\"]).resolve()\n assert path.parent == root / \"examples\" and path.suffix == \".ml\"\n assert entry[\"whole_file\"] and entry[\"success_exit_code\"] == 0\n executable = str(Path(entry[\"file\"]).with_suffix(\".exe\"))\n assert entry[\"command\"] == [\"opam\", \"exec\", \"--\", \"dune\", \"exec\", executable, \"--\", \"tmux\"], \\\n \"showcase command does not execute its recorded source\"\n assert path.stem not in programs, \"duplicate showcase program\"\n programs[path.stem] = entry\nlibc = ctypes.CDLL(None, use_errno=True)\nif libc.prctl(36, 1, 0, 0, 0):\n raise OSError(ctypes.get_errno(), \"PR_SET_CHILD_SUBREAPER\")\nchild_file = Path(f\"/proc/self/task/{os.getpid()}/children\")\n\n\ndef children():\n return set(map(int, child_file.read_text().split()))\n\n\nwith tempfile.TemporaryDirectory(prefix=\"libtmux-ocaml-showcase-consumer-\") as temporary:\n temporary = Path(temporary)\n prefix = temporary / \"installed\"\n packages = [\"libtmux\", \"libtmux-workspace\", \"libtmux-unix\", \"libtmux-eio\"]\n subprocess.run([\"dune\", \"install\", \"--sections=lib,stublibs\", \"--prefix\", str(prefix), *packages],\n cwd=root, check=True, capture_output=True)\n project = temporary / \"consumer\"\n project.mkdir()\n runtime_temp = temporary / \"runtime-temp\"\n runtime_temp.mkdir(mode=0o700)\n (project / \"dune-project\").write_text(\"(lang dune 3.24)\\n\")\n examples = project / \"examples\"\n examples.mkdir()\n blocking = \" \".join(name for name in programs if name != \"showcase_watch\")\n (examples / \"dune\").write_text(\"(executables (names \" + blocking + \") (modules \" + blocking +\n \") (libraries libtmux libtmux-workspace libtmux-unix unix))\\n\" +\n \"(executable (name showcase_watch) (modules showcase_watch) \" +\n \"(libraries libtmux libtmux-workspace libtmux-unix libtmux-eio eio_main unix))\\n\")\n for name in programs:\n source = root / \"examples\" / f\"{name}.ml\"\n assert source.is_file(), f\"missing standalone showcase: {name}\"\n (examples / source.name).write_bytes(source.read_bytes())\n environment = dict(os.environ, OCAMLPATH=str(prefix / \"lib\"), TMPDIR=str(runtime_temp),\n TMUX=\"/unrelated/server,99999,0\", TMUX_PANE=\"%99999\")\n for key in [\"DUNE_SOURCEROOT\", \"DUNE_WORKSPACE\"]:\n environment.pop(key, None)\n environment[\"OPAMSWITCH\"] = subprocess.check_output(\n [\"opam\", \"switch\", \"show\", \"--safe\"], cwd=root, env=environment, text=True).strip()\n resolved = subprocess.check_output([\"opam\", \"exec\", \"--\", \"ocamlfind\", \"query\", *packages],\n cwd=project, env=environment, text=True).splitlines()\n assert list(map(Path, resolved)) == [prefix / \"lib\" / package for package in packages]\n built = subprocess.run([\"dune\", \"build\", \"--root\", str(project)],\n cwd=project, env=environment, capture_output=True)\n assert built.returncode == 0, (built.stdout + built.stderr).decode(errors=\"replace\")\n for index, binary in enumerate(sys.argv[1:]):\n actual = str(Path(binary).resolve(strict=True))\n fault = temporary / f\"fault-tmux-{index}\"\n audit = temporary / f\"fault-directory-{index}\"\n fault.write_text(\"#!/usr/bin/env python3\\nimport os,sys\\nfrom pathlib import Path\\n\" +\n \"args=sys.argv[1:]\\nif '-C' in args and 'new-session' in args:\\n\" +\n \" p=Path(args[args.index('-f')+1])\\n\" +\n f\" Path({str(audit)!r}).write_text(str(p.parent))\\n\" +\n \" with p.open('a') as output:\\n\" +\n \" output.write('new-session -d -s showcase -- /bin/cat -u\\\\n')\\n\" +\n f\"os.execv({actual!r}, [{actual!r}, *args])\\n\")\n fault.chmod(0o700)\n cases = [(name, entry, actual, False) for name, entry in programs.items()]\n cases.append((\"showcase_create_window\", programs[\"showcase_create_window\"], str(fault), True))\n for name, entry, program, should_fail in cases:\n previous = children()\n command = [*entry[\"command\"][:-1], program]\n process = subprocess.Popen(command,\n cwd=project, env=environment, stdout=subprocess.PIPE,\n stderr=subprocess.PIPE)\n try:\n output, error = process.communicate(timeout=1)\n if should_fail:\n assert process.returncode == 2 and error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() not in output.splitlines()\n directory = Path(audit.read_text())\n else:\n assert process.returncode == 0 and not error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() in output.splitlines(), \\\n (name, \"missing expected outcome\", output)\n socket_line = next(line for line in output.splitlines() if line.startswith(b\"socket=\"))\n directory = Path(os.fsdecode(socket_line[len(b\"socket=\"):])).parent\n assert directory.name.startswith(\"libtmux-ocaml-showcase-\")\n assert not directory.exists(), \"showcase left its private directory\"\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), f\"{name} left owned child {pid} running\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n outcome = \"startup failure\" if should_fail else \"installed entry point\"\n print(f\"PASS {Path(binary).parent.name}: {name}, {outcome} and owned teardown\")\n finally:\n if process.poll() is None:\n process.kill()\n process.wait(timeout=1)\n while children() - previous:\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n try:\n signal.pidfd_send_signal(descriptor, signal.SIGTERM)\n except ProcessLookupError:\n pass\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), \"owned showcase child did not terminate\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n process.stdout.close()\n process.stderr.close()\n for path in runtime_temp.iterdir():\n if path.is_dir():\n shutil.rmtree(path)\n else:\n path.unlink()\n" }, "ocaml/workspace:examples/showcase_graph.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" }, diff --git a/site/src/data/home-examples.json b/site/src/data/home-examples.json index 949dfb413..34d59af1b 100644 --- a/site/src/data/home-examples.json +++ b/site/src/data/home-examples.json @@ -629,7 +629,7 @@ "code": "(executable\n (name showcase_graph)\n (libraries libtmux libtmux-workspace libtmux-unix unix))\n" } ], - "prerequisites": "OCaml 5.5.2, Dune 3.24.2, Linux and tmux 3.3 or newer. Install libtmux, libtmux-workspace and libtmux-unix in the active opam switch, then save these files at their shown paths.", + "prerequisites": "OCaml 5.5.2, Dune 3.24.2, Linux and tmux 3.3a through 3.8. Install libtmux, libtmux-workspace and libtmux-unix in the active opam switch, then save these files at their shown paths.", "commands": [ "opam exec -- dune exec examples/showcase_graph.exe" ], diff --git a/site/src/data/manifest-packages.json b/site/src/data/manifest-packages.json index 73cce1b42..6b4a9375a 100644 --- a/site/src/data/manifest-packages.json +++ b/site/src/data/manifest-packages.json @@ -738,43 +738,43 @@ }, "ocaml": { "repo": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", "distributions": [ { "name": "libtmux", "manifest": "libtmux.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" }, { "name": "libtmux-eio", "manifest": "libtmux-eio.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" }, { "name": "libtmux-json", "manifest": "libtmux-json.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" }, { "name": "libtmux-unix", "manifest": "libtmux-unix.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" }, { "name": "libtmux-workspace", "manifest": "libtmux-workspace.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" }, { "name": "libtmux-workspace-cli", "manifest": "libtmux-workspace-cli.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" } ], "units": [] diff --git a/site/src/data/mentions.json b/site/src/data/mentions.json index b0dcab480..80a026b45 100644 --- a/site/src/data/mentions.json +++ b/site/src/data/mentions.json @@ -8379,6 +8379,20 @@ "title": "Submit actions and retain their outcomes", "section": "guides" }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.await", + "page": "/ocaml/latest/guides/benchmarking/", + "title": "Measure capture, concurrency and output delivery", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux_eio.Client.submit", + "page": "/ocaml/latest/guides/benchmarking/", + "title": "Measure capture, concurrency and output delivery", + "section": "guides" + }, { "port": "ocaml", "symbol": "Libtmux_eio.Workspace", @@ -8582,6 +8596,20 @@ "title": "Submit actions and retain their outcomes", "section": "guides" }, + { + "port": "ocaml", + "symbol": "Libtmux.Error.t.Closed", + "page": "/ocaml/latest/guides/control/", + "title": "Submit actions and retain their outcomes", + "section": "guides" + }, + { + "port": "ocaml", + "symbol": "Libtmux.Error.t.Disconnected", + "page": "/ocaml/latest/guides/control/", + "title": "Submit actions and retain their outcomes", + "section": "guides" + }, { "port": "ocaml", "symbol": "Libtmux.Expr.compile", @@ -8617,6 +8645,13 @@ "title": "Share a scalar pane query", "section": "guides" }, + { + "port": "ocaml", + "symbol": "Libtmux.Operations.set_option", + "page": "/ocaml/latest/guides/benchmarking/", + "title": "Measure capture, concurrency and output delivery", + "section": "guides" + }, { "port": "ocaml", "symbol": "Libtmux.Output.event.End", diff --git a/site/src/data/port-guides/ocaml.json b/site/src/data/port-guides/ocaml.json index 959bcd0ce..a906cc04d 100644 --- a/site/src/data/port-guides/ocaml.json +++ b/site/src/data/port-guides/ocaml.json @@ -1,7 +1,7 @@ { "source": { "repository": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287" + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" }, "guides": [ { @@ -10,7 +10,7 @@ }, { "path": "docs/graph.md", - "content": "# Sessions, window links and panes\n\nA snapshot contains sessions, global windows, session-specific window links,\npanes and captured clients. Entity values are abstract immutable observations.\nThey remain readable after their client closes.\n\n```text\nSession ── Window_link ── Window ── Pane\n index │\n another link can share this window\n```\n\nA window can be linked to multiple sessions, or linked more than once within\none session. `Session.window_links` retains each context and index.\n`Session.windows` returns distinct global windows in first-link order.\n`Window.panes` contains that global window's captured panes. Local traversal\nperforms no I/O, lazy refresh or per-object subprocess calls. Captured client\nrows and attached-client counts include the library's control connection when\nit is present.\n\nThe [graph program](../examples/native_graph.ml) deliberately walks links. To\nsee the same window in two sessions, run the [README setup](../README.md#read-a-real-tmux-graph),\nthen create another session:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n new-session \\\n -d \\\n -s linked \\\n -- \"exec cat\"\n```\n\nLink the demo's window at index 7 in the other session:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n link-window \\\n -d \\\n -s @0 \\\n -t linked:7\n```\n\n```console\n$ opam exec -- dune exec examples/native_graph.exe -- \\\n tmux \"$LIBTMUX_DEMO_DIR/server\"\n```\n\nThe same window ID and pane ID appear under both sessions, at their respective\nlink indexes. The installed-example check asserts both appearances. Remove\nonly the additional session when finished:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n kill-session -t '=linked'\n```\n\nAn entity ID is scoped to a connection source. `same_entity` requires the same\nbound source generation as well as the same entity ID; separate connections\ncompare unequal even when they observe the same daemon. `same_observation`\nalso distinguishes captures. Use those operations or explicit `Id.equal`,\nrather than polymorphic equality over observations. A valid target does not\nmake captured names, geometry or membership current.\nA link context is an observed session/index/window tuple, not a stable link\nincarnation across unlinking or reindexing.\n\nCapture provenance records an acquisition interval. Several tmux commands do\nnot form an atomic server transaction. Disappearing or conflicting objects\nproduce a capture error rather than a fabricated empty relationship.\n\nEach entity retains the complete snapshot graph so its relationships remain\navailable. Retaining one pane from every refresh therefore retains every one\nof those captures. Keep scalar summaries when navigation is unnecessary.\n`Pane.target` omits the graph but remains bound to its original connection\ngeneration; it is not a durable target for a future connection. Relationship\ntraversal can allocate wrapper arrays even when a query stops testing early.\n\n[Queries](queries.md) · [Recovery](control.md) · [API](api.md)\n" + "content": "# Sessions, window links and panes\n\nA snapshot contains sessions, global windows, session-specific window links,\npanes and captured clients. Entity values are abstract immutable observations.\nThey remain readable after their client closes.\n\n```text\nSession ── Window_link ── Window ── Pane\n index │\n another link can share this window\n```\n\nA window can be linked to multiple sessions, or linked more than once within\none session. `Session.window_links` retains each context and index.\n`Session.windows` returns distinct global windows in first-link order.\n`Window.panes` contains that global window's captured panes. Local traversal\nperforms no I/O, lazy refresh or per-object subprocess calls. Captured client\nrows and attached-client counts include the library's control connection when\nit is present.\n\nThe [graph program](../examples/native_graph.ml) deliberately walks links. To\nsee the same window in two sessions, run the [README setup](../README.md#read-a-real-tmux-graph),\nthen create another session:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n new-session \\\n -d \\\n -s linked \\\n -- \"exec cat\"\n```\n\nLink the demo's window at index 7 in the other session:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n link-window \\\n -d \\\n -s @0 \\\n -t linked:7\n```\n\n```console\n$ opam exec -- dune exec examples/native_graph.exe -- \\\n tmux \"$LIBTMUX_DEMO_DIR/server\"\n```\n\nThe same window ID and pane ID appear under both sessions, at their respective\nlink indexes. The installed-example check asserts both appearances. Remove\nonly the additional session when finished:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n kill-session -t '=linked'\n```\n\nAn entity ID is scoped to a connection source. `same_entity` requires the same\nbound source generation as well as the same entity ID; separate connections\ncompare unequal even when they observe the same daemon. `same_observation`\nalso distinguishes captures. Use those operations or explicit `Id.equal`,\nrather than polymorphic equality over observations. A valid target does not\nmake captured names, geometry or membership current.\nA link context is an observed session/index/window tuple, not a stable link\nincarnation across unlinking or reindexing.\n\nCapture provenance records an acquisition interval. Several tmux commands do\nnot form an atomic server transaction. Disappearing or conflicting objects\nproduce a capture error rather than a fabricated empty relationship.\n\nEach entity retains the complete snapshot graph so its relationships remain\navailable. Retaining one pane from every refresh therefore retains every one\nof those captures. Keep scalar summaries when navigation is unnecessary.\n`Pane.target` omits the graph but remains bound to its original connection\ngeneration; it is not a durable target for a future connection. Relationship\ntraversal can allocate wrapper arrays even when a query stops testing early.\nThe [retained-heap measurements](benchmarking.md#heap-retained-across-captures)\ncompare these choices across repeated real captures.\n\n[Queries](queries.md) · [Recovery](control.md) · [API](api.md)\n" }, { "path": "docs/queries.md", @@ -22,7 +22,7 @@ }, { "path": "docs/control.md", - "content": "# Submit actions and retain their outcomes\n\nObservations are local values. Client calls perform explicit I/O, and mutations\nuse targets bound to the source that produced them. Closing a client releases\nits own transports. tmux then applies its configured lifetime: for example,\n[the standalone programs](showcases.md) enable `exit-unattached` on their\nprivate daemons so they exit after their final client detaches.\n\nThe [layout program](../examples/native_build.ml) creates a session, splits its\nfirst pane and adds a logs window. It passes argv through `Spawn.Exec`, a working\ndirectory and an environment value. `Spawn.Shell` explicitly requests shell\ncode. `send_text` is literal input; `send_keys [Key.Enter]` is a separate action.\n\nA creation response returns the reported session, window and pane IDs without\nan extra graph capture. Only the resource requested by that command is newly\ncreated. A split's returned session and window are pre-existing containers.\n\n## Choose a backend\n\nUse `Libtmux_unix.Client` in a blocking script. Use `Libtmux_eio.Client` inside\nan application-owned Eio switch, supplying the process manager and monotonic\nclock. Clients are affine to their connecting domain. Immutable captured values\ncan be read from other domains; live client handles cannot move between them.\n\nThe Eio backend has client-owned workers for command draining and stream\nreading. A cancelled waiter does not abandon a written request. Local scratch\nfilesystem work runs on a system thread. The blocking backend supports scoped\ncancellation tokens signalled from another domain or systhread.\n\n| Recovery concern | Eio | Blocking Unix |\n| --- | --- | --- |\n| Cancel one caller | Eio cancellation scope around `Client.await` | `Cancellation.with_` token passed to `Client.await` |\n| Return after cancellation | The waiter raises while a client-owned fiber drains admitted work | The call drains before raising; one exchange timeout after detection bounds transport work |\n| Inspect an outcome | `Operation.inspect`, on the connecting domain | `Operation.inspect`, on the connecting domain |\n| Release resources | Close the client inside its application-owned switch | Close the client after the call returns |\n\nThe blocking bound covers transport draining. Local scratch I/O must still\nfinish before the call returns.\n\nEio `Client.close` rejects new command and subscription admission as soon as\nclosing starts. Concurrent closes wait for the same teardown result. A later\nclose retains an earlier teardown failure; the closed state alone does not\nprove resources were released. Inspect the client's `Cleanup` report for\nsecondary failures. Internal connection teardown also retains one completion,\nso a concurrent failure path cannot skip cleanup already in progress.\n\nThe [complete recovery example](recovery.md) cancels an active waiter, awaits\nthe same retained operation and checks server state before its next mutation.\n\n## Distinguish acknowledgement from completion\n\n`submit` validates and reserves capacity without writing. Retain the operation\nhandle before awaiting it. `Operation.inspect` reads its state without I/O:\nqueued, not started, written, acknowledged, finished, or outcome unknown.\n\nA reply can acknowledge a command while hooks or its completion marker remain\noutstanding. Sending keys confirms tmux accepted input; it does not prove a\nterminal program consumed it or completed work. A detach request does not prove\nthe peer exited. Use the relevant postcondition, rendered wait or external exit\nsignal for the task.\n\nExpected failures use `result` and `Error.t`. Backend cancellation propagates\nas cancellation. An uncertain result retains reported creation IDs and unresolved\nowned buffers; it never becomes an instruction to retry the mutation.\n\n`Client.cleanup` retains process and descriptor cleanup diagnostics after\nclosure. Supply a `Cleanup.create ()` report through `~cleanup` before connecting\nwhen diagnostics must survive failed setup or cancellation. The same option is\navailable on terminal attachment and workspace bootstrap. `Cleanup.inspect`\nreturns the cleanup phase, typed library error when available, original\nexception and backtrace without I/O. The report retains at most 64 entries and\ncounts further issues; exception payloads can still retain substantial memory.\nReports and their diagnostics belong to the creating domain.\n\nCleanup attempts independent releases even when one fails. A primary exception\nkeeps its identity and backtrace; secondary failures go to the report. If there\nis no primary failure, the first unrecovered cleanup failure is returned or\nraised normally. A recovered fallback can still leave a diagnostic after a\nsuccessful return: failure to open a child pidfd skips TERM grace, forces\ntermination and reaps, while retaining the `Open_pidfd` issue.\nFailed forced termination produces an `Unreaped_child` issue when exit cannot\nbe established without blocking. That issue does not prove resource release.\nThe [recovery example](recovery.md) keeps its report outside connection lifetime.\n\n## Recover deliberately\n\nA replacement daemon retires the connection generation. Reconnect explicitly,\ncapture again and establish cardinality before choosing a fresh target.\nOld captured values remain readable, but their targets cannot silently move to\nthe new server.\n\nPartial effects can remain after a later hook or command failure. Inspect the\nretained receipt and current server state. Compensate only resources whose\ncreation is proven. A snapshot is an observation over an interval, and a\nselection followed by mutation is not an atomic transaction.\n\nUse the [recovery walkthrough](recovery.md) to follow this sequence through a\ncomplete installed program, including cleanup of its own pane.\n\nSee [streaming](streaming.md) for Data/Gap/End and bounded queues, and\n[compatibility](compatibility.md) for hook, PID-namespace and scratch-file\nconstraints. [Guide](README.md) · [API](api.md)\n" + "content": "# Submit actions and retain their outcomes\n\nObservations are local values. Client calls perform explicit I/O, and mutations\nuse targets bound to the source that produced them. Closing a client releases\nits own transports. tmux then applies its configured lifetime: for example,\n[the standalone programs](showcases.md) enable `exit-unattached` on their\nprivate daemons so they exit after their final client detaches.\n\nThe [layout program](../examples/native_build.ml) creates a session, splits its\nfirst pane and adds a logs window. It passes argv through `Spawn.Exec`, a working\ndirectory and an environment value. `Spawn.Shell` explicitly requests shell\ncode. `send_text` is literal input; `send_keys [Key.Enter]` is a separate action.\n\nA creation response returns the reported session, window and pane IDs without\nan extra graph capture. Only the resource requested by that command is newly\ncreated. A split's returned session and window are pre-existing containers.\n\n## Choose a backend\n\nUse `Libtmux_unix.Client` in a blocking script. Use `Libtmux_eio.Client` inside\nan application-owned Eio switch, supplying the process manager and monotonic\nclock. Clients are affine to their connecting domain. Immutable captured values\ncan be read from other domains; live client handles cannot move between them.\n\nThe Eio backend has client-owned workers for command draining and stream\nreading. A cancelled waiter does not abandon a written request. Local scratch\nfilesystem work runs on a system thread. The blocking backend supports scoped\ncancellation tokens signalled from another domain or systhread.\n\n| Recovery concern | Eio | Blocking Unix |\n| --- | --- | --- |\n| Cancel one caller | Eio cancellation scope around `Client.await` | `Cancellation.with_` token passed to `Client.await` |\n| Return after cancellation | The waiter raises while a client-owned fiber drains admitted work | The call drains before raising; one exchange timeout after detection bounds transport work |\n| Inspect an outcome | `Operation.inspect`, on the connecting domain | `Operation.inspect`, on the connecting domain |\n| Release resources | Close the client inside its application-owned switch | Close the client after the call returns |\n\nThe blocking bound covers transport draining. Local scratch I/O must still\nfinish before the call returns.\n\nEio `Client.close` rejects new command and subscription admission as soon as\nclosing starts. Concurrent closes wait for the same teardown result. A later\nclose retains an earlier teardown failure; the closed state alone does not\nprove resources were released. Inspect the client's `Cleanup` report for\nsecondary failures. Internal connection teardown also retains one completion,\nso a concurrent failure path cannot skip cleanup already in progress.\n\nThe [complete recovery example](recovery.md) cancels an active waiter, awaits\nthe same retained operation and checks server state before its next mutation.\n\n## Distinguish acknowledgement from completion\n\n`submit` validates and reserves capacity without writing. Retain the operation\nhandle before awaiting it. `Operation.inspect` reads its state without I/O:\nqueued, not started, written, acknowledged, finished, or outcome unknown.\n\nA reply can acknowledge a command while hooks or its completion marker remain\noutstanding. Sending keys confirms tmux accepted input; it does not prove a\nterminal program consumed it or completed work. A detach request does not prove\nthe peer exited. Use the relevant postcondition, rendered wait or external exit\nsignal for the task.\n\nExpected failures use `result` and `Error.t`. Backend cancellation propagates\nas cancellation. An uncertain result retains reported creation IDs and unresolved\nowned buffers; it never becomes an instruction to retry the mutation.\n\nWhen Eio's daemon watcher closes a connection, an in-flight operation retains\n`Error.Disconnected` as its cause. An idle-reader failure retains its library\nerror. Explicit client closure uses `Error.Closed`. Inspect the retained receipt\nto distinguish these reasons; each can leave an admitted mutation uncertain.\n\n`Client.cleanup` retains process and descriptor cleanup diagnostics after\nclosure. Supply a `Cleanup.create ()` report through `~cleanup` before connecting\nwhen diagnostics must survive failed setup or cancellation. The same option is\navailable on terminal attachment and workspace bootstrap. `Cleanup.inspect`\nreturns the cleanup phase, typed library error when available, original\nexception and backtrace without I/O. The report retains at most 64 entries and\ncounts further issues; exception payloads can still retain substantial memory.\nReports and their diagnostics belong to the creating domain.\n\nCleanup attempts independent releases even when one fails. A primary exception\nkeeps its identity and backtrace; secondary failures go to the report. If there\nis no primary failure, the first unrecovered cleanup failure is returned or\nraised normally. A recovered fallback can still leave a diagnostic after a\nsuccessful return: failure to open a child pidfd skips TERM grace, forces\ntermination and reaps, while retaining the `Open_pidfd` issue.\nFailed forced termination produces an `Unreaped_child` issue when exit cannot\nbe established without blocking. That issue does not prove resource release.\nThe [recovery example](recovery.md) keeps its report outside connection lifetime.\n\n## Recover deliberately\n\nA replacement daemon retires the connection generation. Reconnect explicitly,\ncapture again and establish cardinality before choosing a fresh target.\nOld captured values remain readable, but their targets cannot silently move to\nthe new server.\n\nPartial effects can remain after a later hook or command failure. Inspect the\nretained receipt and current server state. Compensate only resources whose\ncreation is proven. A snapshot is an observation over an interval, and a\nselection followed by mutation is not an atomic transaction.\n\nUse the [recovery walkthrough](recovery.md) to follow this sequence through a\ncomplete installed program, including cleanup of its own pane.\n\nSee [streaming](streaming.md) for Data/Gap/End and bounded queues, and\n[compatibility](compatibility.md) for hook, PID-namespace and scratch-file\nconstraints. [Guide](README.md) · [API](api.md)\n" }, { "path": "docs/recovery.md", @@ -30,11 +30,11 @@ }, { "path": "docs/streaming.md", - "content": "# Observe output and wait for rendered text\n\nUse [native_watch.ml](../examples/native_watch.ml) for a complete concurrent\nliteral-send, future-byte match and rendered-screen check. Its application owns\nthe Eio scheduler and switch. Use [native_wait.ml](../examples/native_wait.ml) to capture exactly one pane and\nwait until its ordinary screen contains the supplied text. The example imports\nthe installed Eio client, owns its switch, uses an explicit socket, closes its\nclient and prints the matched pane ID. It requires an existing daemon and one\npane; absence and ambiguity remain errors.\n\n`Client.wait_for_text` first subscribes, then captures the screen immediately.\nOutput invalidates that observation. Queued Data events are coalesced before\nthe next bounded capture; a queued Gap stops that coalescing. Membership and\noverflow gaps cause fresh graph acquisition and subscription in the same\nconnection binding. A disconnected daemon or stream fails the wait.\n\nSuccess returns a captured screen containing the text. Text that appears and\ndisappears between captures may be missed. Deadlines are checked between\nacquisitions, whose in-flight I/O keeps the client's exchange timeout. A timed\nout wait does not prove that text was absent in the past.\n\nThe wait releases its temporary subscription on every exit. An earlier error or\ncancellation remains the primary result; `Client.cleanup` retains secondary\ncleanup failures. If cleanup fails after a match or during gap recovery, the\nwait fails instead of reporting success or opening another subscription.\n\nUse `Client.subscribe` and `Subscription.next` for future output bytes. Data\nretains every byte, including NUL and invalid UTF-8. Its cursor records a local\nsubscription generation and an observed byte offset. A cursor is neither a\nsnapshot timestamp nor a server-side history position. `poll` only removes a\nqueued event and performs no I/O.\n\n`Subscription.wait_for_bytes` consumes those future events and matches across\nevent boundaries. Its nonempty pattern is limited to 64 KiB. It returns the\nmatch's end cursor, possibly inside the last consumed Data event. A deadline\nleaves the subscription active. A Gap returns `Output.Ended reason`; later\nmatching requires an explicit fresh capture and new subscription.\n\nThe defaults are 1 MiB and 1024 queued events per subscriber, at most 16 active\nsubscribers, and eight total client lanes including command/wait lanes. Reuse\none verified lane per covered session. Admission reserves bytes against the\nshared 32 MiB budget. A full queue produces Gap then End rather than blocking\nanother subscriber or an independent command. Unknown loss has no byte count.\n\nCoverage uses an observed session/window context and revalidates it during\nadmission. Layout or membership changes end continuity conservatively. Detaching\na stream leaves the primary client usable; a daemon replacement retires the\nwhole binding. New coverage always has a new subscription generation.\n\nEio readers belong to the client, use no application callbacks and keep running\nwhen a subscriber stalls. The blocking backend advances all stream lanes during\n`Subscription.next`. Cancellation closes the affected subscription and\npropagates through the backend's cancellation mechanism. Client close releases\nall owned lanes and retains terminal events; it leaves the daemon alive.\n\nWhen a subscription releases the last user of a lane, close waits for its\nowned helper to be reaped. Concurrent Eio subscription closes join that same\ncleanup. Repeated closes preserve the first terminal reason and any cleanup\nfailure; unconsumed terminal events remain readable through `Subscription.poll`.\n\nThe [recovery program](recovery.md) shows how to cancel one operation waiter\nwhile keeping its retained outcome available. Cancelling a subscription closes\nthat subscription; it does not cancel an already admitted command.\n\nNeither interface establishes an atomic capture/stream barrier or reconstructs\nterminal history. An immutable snapshot remains a separate captured value.\n\n[First use](getting-started.md) · [Control and recovery](control.md) ·\n[API](api.md) · [Guide](README.md)\n" + "content": "# Observe output and wait for rendered text\n\nUse [native_watch.ml](../examples/native_watch.ml) for a complete concurrent\nliteral-send, future-byte match and rendered-screen check. Its application owns\nthe Eio scheduler and switch. Use [native_wait.ml](../examples/native_wait.ml) to capture exactly one pane and\nwait until its ordinary screen contains the supplied text. The example imports\nthe installed Eio client, owns its switch, uses an explicit socket, closes its\nclient and prints the matched pane ID. It requires an existing daemon and one\npane; absence and ambiguity remain errors.\n\n`Client.wait_for_text` first subscribes, then captures the screen immediately.\nOutput invalidates that observation. Queued Data events are coalesced before\nthe next bounded capture; a queued Gap stops that coalescing. Membership and\noverflow gaps cause fresh graph acquisition and subscription in the same\nconnection binding. A disconnected daemon or stream fails the wait.\n\nSuccess returns a captured screen containing the text. Text that appears and\ndisappears between captures may be missed. Deadlines are checked between\nacquisitions, whose in-flight I/O keeps the client's exchange timeout. A timed\nout wait does not prove that text was absent in the past.\n\nThe wait releases its temporary subscription on every exit. An earlier error or\ncancellation remains the primary result; `Client.cleanup` retains secondary\ncleanup failures. If cleanup fails after a match or during gap recovery, the\nwait fails instead of reporting success or opening another subscription.\n\nUse `Client.subscribe` and `Subscription.next` for future output bytes. Data\nretains every byte, including NUL and invalid UTF-8. Its cursor records a local\nsubscription generation and an observed byte offset. A cursor is neither a\nsnapshot timestamp nor a server-side history position. `poll` only removes a\nqueued event and performs no I/O.\n\n`Subscription.wait_for_bytes` consumes those future events and matches across\nevent boundaries. Its nonempty pattern is limited to 64 KiB. It returns the\nmatch's end cursor, possibly inside the last consumed Data event. A deadline\nleaves the subscription active. A Gap returns `Output.Ended reason`; later\nmatching requires an explicit fresh capture and new subscription.\n\nThe defaults are 1 MiB and 1024 queued events per subscriber, at most 16 active\nsubscribers, and eight total client lanes including command/wait lanes. Reuse\none verified lane per covered session. Admission reserves bytes against the\nshared 32 MiB budget. A full queue produces Gap then End rather than blocking\nanother subscriber or an independent command. Unknown loss has no byte count.\n\nCoverage uses an observed session/window context and revalidates it during\nadmission. Layout or membership changes end continuity conservatively. Detaching\na stream leaves the primary client usable; a daemon replacement retires the\nwhole binding. New coverage always has a new subscription generation.\n\nEio readers belong to the client, use no application callbacks and keep running\nwhen a subscriber stalls. The blocking backend advances all stream lanes during\n`Subscription.next`. Cancellation closes the affected subscription and\npropagates through the backend's cancellation mechanism. Client close releases\nall owned lanes and retains terminal events; it leaves the daemon alive.\n\nWhen a subscription releases the last user of a lane, close waits for its\nowned helper to be reaped. Concurrent Eio subscription closes join that same\ncleanup. Repeated closes preserve the first terminal reason and any cleanup\nfailure; unconsumed terminal events remain readable through `Subscription.poll`.\n\nThe [recovery program](recovery.md) shows how to cancel one operation waiter\nwhile keeping its retained outcome available. Cancelling a subscription closes\nthat subscription; it does not cancel an already admitted command.\n\nNeither interface establishes an atomic capture/stream barrier or reconstructs\nterminal history. An immutable snapshot remains a separate captured value.\n\n## Recover after a gap\n\nClose the ended subscription, capture the graph again, and establish fresh\ncoverage for the observed pane. This recovers future observation. Bytes lost\nbefore the new subscription are still unavailable; a screen capture cannot\nreconstruct their history.\n\nThe [complete recovery program](../examples/native_stream_recovery.ml) creates\na window running `cat`, observes a reply, then splits the window to trigger a\nmembership gap. It handles that gap, removes the extra pane and closes the old\nsubscription. It captures the original pane again, subscribes, and observes\nnew input with a different cursor generation:\n\n\n\n```ocaml\nlet recover_coverage client id (previous : Output.cursor) =\n let fresh = capture_pane client id in\n let after =\n with_subscription client fresh (fun subscription ->\n echo client fresh subscription \"after-gap\")\n in\n if Generation.equal previous.generation after.generation then\n failwith \"new subscription reused the old cursor generation\";\n print_endline \"coverage=fresh; cursor-generation=new; future=after-gap\"\n```\n\nThe source contains the imports, scheduler, cleanup and matching helpers.\n`capture_pane` fails if the pane disappeared. `with_subscription` admits coverage\nbefore `echo` sends input and awaits its reply concurrently. The\nexample never reconnects, reuses an old cursor or retries an uncertain mutation.\nIt removes only panes whose creation returned successfully, leaving any foreign\npanes untouched. Primary exceptions survive secondary cleanup failures.\n\nCreation here uses convenience calls. Cancellation before one returns can leave\na creation whose ID the caller never received. For creation outcomes that must\nsurvive waiter cancellation, retain `Client.submit`'s handle before `Client.await`,\nas shown in [operation recovery](recovery.md). An uncertain outcome does not\nauthorize a retry or deletion of an unproven resource.\n\nAfter [installing from source](getting-started.md), run this walkthrough from\nthe clone. Create a private seed session:\n\n```console\n$ export LIBTMUX_STREAM_RECOVERY_DIR=\"$(mktemp -d -t libtmux-ocaml-stream-recovery.XXXXXX)\"\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_STREAM_RECOVERY_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s stream-demo \\\n -- \"exec cat\"\n```\n\nRun the program against the seed session's literal `$0` ID:\n\n```console\n$ opam exec -- dune exec examples/native_stream_recovery.exe -- \\\n tmux \"$LIBTMUX_STREAM_RECOVERY_DIR/server\" '$0'\n```\n\nExpected output is `gap=membership-changed; history=unavailable`, followed by\n`coverage=fresh; cursor-generation=new; future=after-gap`. The seed session\nremains, with no additional panes or clients. Remove that session and directory:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_STREAM_RECOVERY_DIR/server\" \\\n kill-session \\\n -t '=stream-demo'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_STREAM_RECOVERY_DIR/server\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_STREAM_RECOVERY_DIR\"\n```\n\nThis exercise uses a stable private daemon and a deliberate layout change.\nTransport loss, repeated membership changes or a missing pane can prevent fresh\ncoverage. Preserve those failures and choose the next action explicitly.\n\n[First use](getting-started.md) · [Control and recovery](control.md) ·\n[API](api.md) · [Guide](README.md)\n" }, { "path": "docs/showcases.md", - "content": "# Run a complete capability example\n\nEach program creates a private tmux workspace, performs one task, verifies the\nresult and closes its clients. Copy the whole file into a Dune project or run\nit from this checkout after [installation](getting-started.md).\n\nThe programs use a minimal tmux configuration that makes their private daemon\nexit when its last client detaches. They accept an optional tmux binary,\nnot a borrowed server socket. Their setup uses the public workspace API; the\ntask uses the client API. The Eio example starts its scheduler after setup and\nsubscribes before sending the bytes it observes.\n\nFor a separate project, save a program as `main.ml` and use these Dune libraries:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-workspace libtmux-unix unix))\n```\n\nThe watch program also needs `libtmux-eio` and `eio_main`. The\n[installation guide](getting-started.md) supplies the project and switch setup.\n\n| Task | Complete program | Expected outcome line |\n| --- | --- | --- |\n| Navigate sessions, shared windows and panes | [Graph](../examples/showcase_graph.ml) | `graph: 2 sessions, 2 windows, 3 links, 2 panes` |\n| Observe future bytes concurrently | [Watch](../examples/showcase_watch.ml) | `observed: changed` |\n| Send literal input and Enter | [Keys](../examples/showcase_send_keys.ml) | `sent: literal: $HOME; #{pane_id}` |\n| Rename a window and retain the old observation | [Rename](../examples/showcase_rename_window.ml) | `renamed: editor-main` |\n| Create a window and recapture its name | [Create](../examples/showcase_create_window.ml) | `created: logs` |\n| Move a window to another session's index | [Move](../examples/showcase_move_window.ml) | `moved: build at 7` |\n| Apply and verify horizontal pane geometry | [Layout](../examples/showcase_layout.ml) | `layout: 3 horizontal panes` |\n\nAll programs print their temporary socket path before the outcome. Run the\ngraph example; it traverses the snapshot after the client and daemon close:\n\n```console\n$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n```\n\nObserve future output with an application-owned Eio switch:\n\n```console\n$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n```\n\nSend a literal string containing shell and tmux format characters:\n\n```console\n$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n```\n\nRename the editor window:\n\n```console\n$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n```\n\nCreate a separate logs window:\n\n```console\n$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n```\n\nMove a build window to index 7 in another session:\n\n```console\n$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n```\n\nSplit a window and apply an even horizontal layout:\n\n```console\n$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n```\n\nThese examples require tmux 3.3 or newer on the qualified Linux environment.\nThe native CI job executes their real entry points on 3.3, 3.3a, 3.4 and 3.8,\nusing a separate installation and Dune project. A nonzero exit, missing exact\noutcome line, leftover directory or surviving owned process fails the run.\n[`showcase.json`](../examples/showcase.json) records the whole files, commands,\nexpected lines, tmux floor, workflow, job and runner.\n\nSending keys confirms tmux accepted input. The rendered-text example observes\nthe resulting screen; it does not wait for an arbitrary application's exit\ncode. A future-byte subscription has no historical capture barrier. See\n[control outcomes](control.md) and [streaming](streaming.md) for those contracts.\n" + "content": "# Run a complete capability example\n\nEach program creates a private tmux workspace, performs one task, verifies the\nresult and closes its clients. Copy the whole file into a Dune project or run\nit from this checkout after [installation](getting-started.md).\n\nThe programs use a minimal tmux configuration that makes their private daemon\nexit when its last client detaches. They accept an optional tmux binary,\nnot a borrowed server socket. Their setup uses the public workspace API; the\ntask uses the client API. The Eio example starts its scheduler after setup and\nsubscribes before sending the bytes it observes.\n\nFor a separate project, save a program as `main.ml` and use these Dune libraries:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-workspace libtmux-unix unix))\n```\n\nThe watch program also needs `libtmux-eio` and `eio_main`. The\n[installation guide](getting-started.md) supplies the project and switch setup.\n\n| Task | Complete program | Expected outcome line |\n| --- | --- | --- |\n| Navigate sessions, shared windows and panes | [Graph](../examples/showcase_graph.ml) | `graph: 2 sessions, 2 windows, 3 links, 2 panes` |\n| Observe future bytes concurrently | [Watch](../examples/showcase_watch.ml) | `observed: changed` |\n| Send literal input and Enter | [Keys](../examples/showcase_send_keys.ml) | `sent: literal: $HOME; #{pane_id}` |\n| Rename a window and retain the old observation | [Rename](../examples/showcase_rename_window.ml) | `renamed: editor-main` |\n| Create a window and recapture its name | [Create](../examples/showcase_create_window.ml) | `created: logs` |\n| Move a window to another session's index | [Move](../examples/showcase_move_window.ml) | `moved: build at 7` |\n| Apply and verify horizontal pane geometry | [Layout](../examples/showcase_layout.ml) | `layout: 3 horizontal panes` |\n\nAll programs print their temporary socket path before the outcome. Run the\ngraph example; it traverses the snapshot after the client and daemon close:\n\n```console\n$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n```\n\nObserve future output with an application-owned Eio switch:\n\n```console\n$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n```\n\nSend a literal string containing shell and tmux format characters:\n\n```console\n$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n```\n\nRename the editor window:\n\n```console\n$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n```\n\nCreate a separate logs window:\n\n```console\n$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n```\n\nMove a build window to index 7 in another session:\n\n```console\n$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n```\n\nSplit a window and apply an even horizontal layout:\n\n```console\n$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n```\n\nThese examples support tmux 3.3a–3.8 on the qualified Linux environment.\nThe native CI job executes their real entry points on 3.3a and 3.8,\nusing a separate installation and Dune project. A nonzero exit, missing exact\noutcome line, leftover directory or surviving owned process fails the run.\n[`showcase.json`](../examples/showcase.json) records the whole files, commands,\nexpected lines, tmux floor, workflow, job and runner.\n\nSending keys confirms tmux accepted input. The rendered-text example observes\nthe resulting screen; it does not wait for an arbitrary application's exit\ncode. A future-byte subscription has no historical capture barrier. See\n[control outcomes](control.md) and [streaming](streaming.md) for those contracts.\n" }, { "path": "docs/packages.md", @@ -42,19 +42,19 @@ }, { "path": "docs/compatibility.md", - "content": "# Compatibility\n\nThe compiler target is **OCaml 5.5.2**, exactly pinned. Older compilers are\noutside this implementation's scope. The development tools are Dune 3.24.2\nand opam 2.6.1.\n\nThe implementation targets Linux and tmux 3.3 or newer. Current evidence covers\nspecific components; final suite qualification has a separate acceptance gate.\nThe table records the exercised fixtures, not every possible cleanup path.\nThe additional lifecycle cases described below reopen that qualification.\n\n| Component | 3.3 | 3.3a | 3.4 | 3.8 |\n| --- | --- | --- | --- | --- |\n| Owned fixture teardown | PASS | PASS | PASS | PASS |\n| Exact Boolean pane filters | PASS | PASS | PASS | PASS |\n| Argument and metadata byte codecs | PASS | PASS | PASS | PASS |\n| Split control framing and command groups | PASS | PASS | PASS | PASS |\n| Bound graph capture and ordinary client teardown | PASS | PASS | PASS | PASS |\n| Replacement-daemon rejection | PASS | PASS | PASS | PASS |\n| Private-file capture and failed-save callbacks | PASS | PASS | PASS | PASS |\n| Eio waiter cancellation and retained outcomes | PASS | PASS | PASS | PASS |\n| Blocking cancellation and bounded drain | PASS | PASS | PASS | PASS |\n| Command and lane admission limits | PASS | PASS | PASS | PASS |\n| Environment bytes, scopes and read-process lifecycle | PASS | PASS | PASS | PASS |\n| Scoped options and built-in hook execution | PASS | PASS | PASS | PASS |\n| Current client names and detach-request semantics | PASS | PASS | PASS | PASS |\n| Interactive attachment, cancellation and child exit | PASS | PASS | PASS | PASS |\n| Versioned format availability and generated APIs | PASS | PASS | PASS | PASS |\n| Native operation inventory | PASS | PASS | PASS | PASS |\n| Data/Gap/End, stream limits and recovery | PASS | PASS | PASS | PASS |\n| Rendered waits and future-byte matching | PASS | PASS | PASS | PASS |\n| Blocking/Eio workspace preconditions and compensation | PASS | PASS | PASS | PASS |\n| Public workspace bootstrap on fresh/existing daemons | PASS | PASS | PASS | PASS |\n| Installed workspace CLI, receipts, interruption and output faults | PASS | PASS | PASS | PASS |\n| Literal workspace guide and owned teardown | PASS | PASS | PASS | PASS |\n| Final suite qualification | UNVERIFIED | UNVERIFIED | UNVERIFIED | UNVERIFIED |\n\nThe blocking client and workspace CLI reject 3.2a. Development tmux 3.8a does\nnot replace the published 3.8 cell. PID-acquisition races and malformed replies after writing\npass deterministic fault checks with real Linux child processes. Cancellation\nat each capture transfer step and unresolved-buffer receipts also pass on\nevery release. Ready I/O still checks its deadline; busy pipes cannot bypass\nthe timeout. These results remain evidence for those tested cases.\nMCP integration is outside this port's scope.\n\nOwned-child cleanup sends TERM, allows a 200 ms cooperative grace, then sends\nKILL if necessary and reaps the child. The policy covers control, read-process\nand terminal helpers; it never sends these signals to the daemon. Eio waits\nallow other fibers to progress. The grace applies per helper, not to the whole\nclient, and cannot bound uninterruptible kernel work or scratch-file completion.\nCaller-owned `Cleanup` reports retain secondary process and descriptor failures\nwithout replacing native cancellation or the primary exception. Independent\nreleases are still attempted. A failed KILL only permits a nonblocking exit\ncheck; an unconfirmed exit is reported as `Unreaped_child`. Concurrent Eio\nclient closes await one retained teardown result. The Eio runtime owns its pipe\nends explicitly and joins their readiness waiters before closing them. Process\nI/O rechecks closure after yielding, preventing access to reused descriptors.\nA private Eio process owner keeps its reaper alive through cancellation and\nswitch release; callers join its completed teardown. Shutdown regressions cover\nboth Eio's Linux and POSIX backends on Linux. This does not add platform support.\nNew commands and subscriptions are rejected as soon as client close starts.\nConnection and subscription teardown also retain one completion: overlapping\nEio callers join it, and later calls preserve its failure.\n\nThe shutdown regression checks stopped helpers and helpers that survive TERM\nand input closure, while keeping the parent and its Eio switch alive to verify\nreaping. These are injected helper failures, not naturally reproduced hangs in\na supported tmux daemon. Blocking readiness uses `poll`; ready reads, ready\nwrites and deadlines work above descriptor 1100. Terminal attachment and\ncancellation also exercise high-numbered descriptors on all four exact\nreleases. See the\n[architecture's cleanup boundary](dev/adr/0001-native-ocaml-suite.md#share-protocol-semantics-while-preserving-each-runtimes-cancellation).\n\nThe near-limit [mixed workload](benchmarking.md#mixed-commands-stream-pressure-and-membership-changes)\nreproduces a tmux 3.4 daemon crash in the control-client detach notification\npath. The exact 3.8 source includes the upstream null-state guard. An earlier\n3.3 observer-command failure remains unattributed. Passing ordinary client\nchecks does not close either mixed-workload failure.\n\nThe I/O packages require Linux pidfds, the same PID namespace as the daemon,\nand shared local scratch storage. A socket pathname does not prove those\nconditions. Each connection has its own generation; a replacement daemon never\ninherits old targets. Closing a client releases its own processes and leaves\nthe daemon running.\n\nThe blocking client accepts a scoped `Cancellation` token that another domain\nor systhread can cancel. It drains admitted work before raising\n`Cancellation.Cancelled`. The drain has at most one exchange timeout from\ndetection; subsequent owned-child cleanup has its separate cooperative grace.\nThe operation handle retains success, failure or uncertainty. Eio cancellation\nreleases the waiter immediately while a client-owned fiber drains the work.\nLocal scratch I/O must finish in either case; Eio performs it on a system\nthread. Filesystem failures have a distinct error from transport disconnects.\n\nPane PIDs and client terminal heights can be absent. The model exposes these as\noptions; a control client without a started terminal has no reported height.\ntmux itself sanitizes names on older releases and rejects some names on newer\nreleases. Captures preserve the observed value rather than reconstructing the\nargument originally submitted by another client.\n\nControl commands use ASCII escapes for non-ASCII bytes because tmux 3.3's\ncommand-string lexer can confuse a signed `0xff` byte with EOF. Metadata uses\ntmux's `q` format modifier and preserves physical newlines. A fixed read probe\ndetects the additional visual escaping used by tmux 3.4 before decoding it.\nControl clients must request UTF-8 mode so locale-dependent sanitization cannot\nalter captured bytes.\n\nAn end guard acknowledges a command. Completion requires the operation's\npostcondition or a following marker on its lane. A control client may exit\nwith status 1 after an earlier command failed, even when later commands and\nshutdown succeeded. Tests retain that distinction.\n\nThe optional JSON codec supports the scalar pane registry and Boolean nodes\nfrom Java's [`libtmux.filter/1`](query-interchange.md) at revision\n`e8a39689d8d60968ac978a1dd2a89c6112333896`. Both implementations agree on 66\ncaptured-value cases and read each other's encoded queries. Numeric operands\nuse signed 32-bit bounds. Regex, relationship documents, numeric membership\nand native extension fields remain unsupported in this wire schema.\nThe [conformance procedure](../test/conformance/README.md) rebuilds the peers\nfrom identified inputs and retains both codec directions and artifact digests.\nIt is a separate qualification command, not part of ordinary hosted OCaml CI.\n\nReproduce native checks with the commands in\n[CONTRIBUTING.md](../.github/CONTRIBUTING.md). The fixture builders use official\nrelease archives and retain archive and binary digests under `scratch/tmux/`.\n\nEnvironment reads use a bounded read-only process on the same daemon. The\nclient checks its reported PID and the original pidfd after collecting the\ncomplete response. Values may contain control-marker text without entering\nthe control parser. Replacement, malformed data, truncated output and capacity\nfailures never become a successful empty table. This route does not execute\nmutations or reconnect the primary lane.\n\nScoped options preserve scalar types, sparse array indexes and local versus\ninherited entries. Bulk inherited enumeration follows tmux and includes only\nbuilt-ins; `read_option` resolves a named inherited user option. Descriptors are\nqualified for the exact releases in the [option catalog](options.md). tmux fills\nthe lowest unused indexes when appending array elements.\n\nHook commands keep names and arguments separate. Built-in hook arrays report\nsynchronous failures; earlier effects remain after a later command fails. Named\n`@` hooks can be configured, read and removed, but `run_hook` rejects them because\ntmux may hide parse failures in the server log. Hooks that print arbitrary output\nremain outside the supported control transport contract.\n\nCaptured client names belong to a connection generation but may be reused within\nit. Operations address the client currently bearing that name. A detach request\nconfirms command processing, not peer exit; callers need separate exit evidence.\nSwitching an existing client does not create a new terminal.\n\n`Terminal.attach_current` opens an interactive terminal against an explicit\nendpoint and session ID. This separate utility is unbound: an ID can refer to a\ndifferent daemon if the endpoint changes. It accepts no captured target and\nnever retries or starts a daemon. Both backends wait for the terminal client to\nexit and reap it on cancellation. Supplied terminal streams remain caller-owned.\n\nThe generated [format catalog](formats.md) records exact-release availability\nand callback contexts. Local `Formats.lookup` distinguishes captured values,\nmissing values, unacquired fields and fields unsupported by that release.\nIt does not perform arbitrary format acquisition. Generated\n[operation conveniences](operations.md) share the same command constructors\nbetween Unix and Eio; the installed-consumer test exercises both adapters.\n" + "content": "# Compatibility\n\nThe compiler target is **OCaml 5.5.2**, exactly pinned. Older compilers are\noutside this implementation's scope. The development tools are Dune 3.24.2\nand opam 2.6.1.\n\nThe implementation supports Linux and **tmux 3.3a–3.8**, including every\nintermediate release. CI tests only the two endpoints, 3.3a and 3.8. Option and\nformat catalogs cover the entire range. Current evidence covers specific\ncomponents; final suite qualification has a separate acceptance gate. The table\nrecords the exercised fixtures, not every possible cleanup path.\n\n| Component | 3.3a | 3.8 |\n| --- | --- | --- |\n| Owned fixture teardown | PASS | PASS |\n| Exact Boolean pane filters | PASS | PASS |\n| Argument and metadata byte codecs | PASS | PASS |\n| Split control framing and command groups | PASS | PASS |\n| Bound graph capture and ordinary client teardown | PASS | PASS |\n| Replacement-daemon rejection | PASS | PASS |\n| Private-file capture and failed-save callbacks | PASS | PASS |\n| Eio waiter cancellation and retained outcomes | PASS | PASS |\n| Blocking cancellation and bounded drain | PASS | PASS |\n| Command and lane admission limits | PASS | PASS |\n| Environment bytes, scopes and read-process lifecycle | PASS | PASS |\n| Scoped options and built-in hook execution | PASS | PASS |\n| Current client names and detach-request semantics | PASS | PASS |\n| Interactive attachment, cancellation and child exit | PASS | PASS |\n| Versioned format availability and generated APIs | PASS | PASS |\n| Native operation inventory | PASS | PASS |\n| Data/Gap/End, stream limits and recovery | PASS | PASS |\n| Installed stream-gap walkthrough | FAIL | PASS |\n| Rendered waits and future-byte matching | PASS | PASS |\n| Blocking/Eio workspace preconditions and compensation | PASS | PASS |\n| Public workspace bootstrap on fresh/existing daemons | PASS | PASS |\n| Installed workspace CLI, receipts, interruption and output faults | PASS | PASS |\n| Literal workspace guide and owned teardown | PASS | PASS |\n| Final suite qualification | UNVERIFIED | UNVERIFIED |\n\nThe [stream-gap walkthrough](streaming.md#recover-after-a-gap) reported an\nunknown operation outcome after its recovery output on tmux 3.3a in\n[hosted run 42516374421](https://github.com/libtmux/libtmux-ocaml/actions/runs/42516374421).\nA bounded diagnostic reproduced the failure with the owned daemon no longer\nalive. Its exit cause remains unresolved. Earlier component passes do not\nestablish that the affected workload is safe.\n\nThe current matrix uses only OCaml 5.5.2 and tmux 3.3a/3.8. Pure assertions\ncheck version rejection and catalog availability across the supported range.\nIntermediate releases remain supported without separate runtime CI cells;\nearlier runtime results remain evidence for their tested workloads. Development\ntmux 3.8a does not replace the published 3.8 cell. PID-acquisition races and\nmalformed replies after writing pass deterministic fault checks with real Linux\nchild processes. Cancellation at each capture transfer step and unresolved-buffer\nreceipts also pass on the\nrecorded release fixtures. Ready I/O still checks its deadline; busy pipes\ncannot bypass the timeout. These results remain evidence for those tested cases.\nMCP integration is outside this port's scope.\n\nOwned-child cleanup sends TERM, allows a 200 ms cooperative grace, then sends\nKILL if necessary and reaps the child. The policy covers control, read-process\nand terminal helpers; it never sends these signals to the daemon. Eio waits\nallow other fibers to progress. The grace applies per helper, not to the whole\nclient, and cannot bound uninterruptible kernel work or scratch-file completion.\nCaller-owned `Cleanup` reports retain secondary process and descriptor failures\nwithout replacing native cancellation or the primary exception. Independent\nreleases are still attempted. A failed KILL only permits a nonblocking exit\ncheck; an unconfirmed exit is reported as `Unreaped_child`. Concurrent Eio\nclient closes await one retained teardown result. The Eio runtime owns its pipe\nends explicitly and joins their readiness waiters before closing them. Process\nI/O rechecks closure after yielding, preventing access to reused descriptors.\nA private Eio process owner keeps its reaper alive through cancellation and\nswitch release; callers join its completed teardown. Shutdown regressions cover\nboth Eio's Linux and POSIX backends on Linux. This does not add platform support.\nNew commands and subscriptions are rejected as soon as client close starts.\nConnection and subscription teardown also retain one completion: overlapping\nEio callers join it, and later calls preserve its failure.\n\nThe shutdown regression checks stopped helpers and helpers that survive TERM\nand input closure, while keeping the parent and its Eio switch alive to verify\nreaping. These are injected helper failures, not naturally reproduced hangs in\na supported tmux daemon. Blocking readiness uses `poll`; ready reads, ready\nwrites and deadlines work above descriptor 1100. Terminal attachment and\ncancellation also have high-descriptor evidence on the previously tested\n3.3/3.3a/3.4/3.8 fixtures. See the\n[architecture's cleanup boundary](dev/adr/0001-native-ocaml-suite.md#share-protocol-semantics-while-preserving-each-runtimes-cancellation).\n\nThe near-limit [mixed workload](benchmarking.md#mixed-commands-stream-pressure-and-membership-changes)\nreproduces a tmux 3.4 daemon crash in the control-client detach notification\npath. The exact 3.8 source includes the upstream null-state guard. An earlier\n3.3 observer-command failure remains unattributed. Passing ordinary client\nchecks does not close either mixed-workload failure.\n\nThe I/O packages require Linux pidfds, the same PID namespace as the daemon,\nand shared local scratch storage. A socket pathname does not prove those\nconditions. Each connection has its own generation; a replacement daemon never\ninherits old targets. Closing a client releases its own processes and leaves\nthe daemon running.\n\nThe blocking client accepts a scoped `Cancellation` token that another domain\nor systhread can cancel. It drains admitted work before raising\n`Cancellation.Cancelled`. The drain has at most one exchange timeout from\ndetection; subsequent owned-child cleanup has its separate cooperative grace.\nThe operation handle retains success, failure or uncertainty. Eio cancellation\nreleases the waiter immediately while a client-owned fiber drains the work.\nLocal scratch I/O must finish in either case; Eio performs it on a system\nthread. Filesystem failures have a distinct error from transport disconnects.\n\nPane PIDs and client terminal heights can be absent. The model exposes these as\noptions; a control client without a started terminal has no reported height.\ntmux itself sanitizes names on older releases and rejects some names on newer\nreleases. Captures preserve the observed value rather than reconstructing the\nargument originally submitted by another client.\n\nControl commands use ASCII escapes for non-ASCII bytes because tmux 3.3's\ncommand-string lexer can confuse a signed `0xff` byte with EOF. Metadata uses\ntmux's `q` format modifier and preserves physical newlines. A fixed read probe\ndetects the additional visual escaping used by tmux 3.4 before decoding it.\nControl clients must request UTF-8 mode so locale-dependent sanitization cannot\nalter captured bytes.\n\nAn end guard acknowledges a command. Completion requires the operation's\npostcondition or a following marker on its lane. A control client may exit\nwith status 1 after an earlier command failed, even when later commands and\nshutdown succeeded. Tests retain that distinction.\n\nThe optional JSON codec supports the scalar pane registry and Boolean nodes\nfrom Java's [`libtmux.filter/1`](query-interchange.md) at revision\n`e8a39689d8d60968ac978a1dd2a89c6112333896`. Both implementations agree on 66\ncaptured-value cases and read each other's encoded queries. Numeric operands\nuse signed 32-bit bounds. Regex, relationship documents, numeric membership\nand native extension fields remain unsupported in this wire schema.\nThe [conformance procedure](../test/conformance/README.md) rebuilds the peers\nfrom identified inputs and retains both codec directions and artifact digests.\nIt is a separate qualification command, not part of ordinary hosted OCaml CI.\n\nReproduce native checks with the commands in\n[CONTRIBUTING.md](../.github/CONTRIBUTING.md). The fixture builders use official\nrelease archives and retain archive and binary digests under `scratch/tmux/`.\n\nEnvironment reads use a bounded read-only process on the same daemon. The\nclient checks its reported PID and the original pidfd after collecting the\ncomplete response. Values may contain control-marker text without entering\nthe control parser. Replacement, malformed data, truncated output and capacity\nfailures never become a successful empty table. This route does not execute\nmutations or reconnect the primary lane.\n\nScoped options preserve scalar types, sparse array indexes and local versus\ninherited entries. Bulk inherited enumeration follows tmux and includes only\nbuilt-ins; `read_option` resolves a named inherited user option. Descriptors are\nrecorded for every supported release in the [option catalog](options.md). tmux\nfills the lowest unused indexes when appending array elements.\n\nHook commands keep names and arguments separate. Built-in hook arrays report\nsynchronous failures; earlier effects remain after a later command fails. Named\n`@` hooks can be configured, read and removed, but `run_hook` rejects them because\ntmux may hide parse failures in the server log. Hooks that print arbitrary output\nremain outside the supported control transport contract.\n\nCaptured client names belong to a connection generation but may be reused within\nit. Operations address the client currently bearing that name. A detach request\nconfirms command processing, not peer exit; callers need separate exit evidence.\nSwitching an existing client does not create a new terminal.\n\n`Terminal.attach_current` opens an interactive terminal against an explicit\nendpoint and session ID. This separate utility is unbound: an ID can refer to a\ndifferent daemon if the endpoint changes. It accepts no captured target and\nnever retries or starts a daemon. Both backends wait for the terminal client to\nexit and reap it on cancellation. Supplied terminal streams remain caller-owned.\n\nThe generated [format catalog](formats.md) records exact-release availability\nand callback contexts. Local `Formats.lookup` distinguishes captured values,\nmissing values, unacquired fields and fields unsupported by that release.\nIt does not perform arbitrary format acquisition. Generated\n[operation conveniences](operations.md) share the same command constructors\nbetween Unix and Eio; the installed-consumer test exercises both adapters.\n" }, { "path": "docs/testing.md", - "content": "# Testing and CI\n\nUse Alcotest for typed values and lifecycle invariants, `ppx_expect` for readable\noutput contracts, and QCheck for generated semantic cases. All three run through\nDune. The pure runtime library uses the standard library; the PPX is a test-only\ndependency.\n\nThe [cardinality tests](../test/core_test.ml) compare typed results using an\n[`Alcotest.testable`](https://mirage.github.io/alcotest/alcotest/Alcotest/index.html#type-testable)\nwith `Cardinality.pp_error`. A failure displays the expected\nand actual values, including the error variant's meaning. Comparing a Boolean\nexpression would only report `true` versus `false`. Keep testable printers small\nand show the values needed to understand the failure.\n\nThe [expect tests](../test/diagnostics_expect.ml) place expected diagnostic text\nbeside the code that prints it. A mismatch produces a diff and a `.corrected`\nfile. Inspect the changed meaning before promoting an expectation. Stable query\nexplanations, error messages and CLI output fit this style. Avoid snapshotting\ntimestamps, random IDs or whole server captures to test a small invariant.\n\n[QCheck cases](../test/query_test.ml) compare typed-expression evaluation against\nnative predicates with generated inputs. A fixed seed makes the current suite\nreproducible; shrinking helps explain counterexamples. Properties supplement the\nsmall authored edge cases and live tmux checks.\n\nRun the unit, expect, property and compile-failure suite:\n\n```console\n$ opam exec -- dune runtest --force\n```\n\nCold PPX driver compilation belongs to setup or an outer build. Time the warm\ntest command separately and retain the existing inner/mid budgets. Native and\ninstalled-consumer checks belong to the outer loop because they launch processes\nand own real tmux servers.\n\nRun the implemented native contract suite against one explicit release binary:\n\n```console\n$ opam exec -- python3 test/native_suite.py /path/to/tmux\n```\n\nThe [CI workflow](../.github/workflows/ocaml.yml) uses exactly OCaml 5.5.2,\nAlcotest 1.9.1, `ppx_expect` v0.17.3 and QCheck 0.91. It checks authored manifests,\nbuilds/odoc, generated files, formatting, unit/expect/property cases, four native\nrelease cells and separate 3.2a rejection. Each native cell installs the packages\ninto a temporary prefix and runs a consumer outside the checkout. Consumer\nfeatures still in development need their own later acceptance gates.\n\nThe [Java/OCaml conformance procedure](../test/conformance/README.md) prepares a\npinned Java peer separately, verifies artifact hashes and runs both evaluators\nand codec directions. Its fixtures and failure diagnostics are retained per\nrun. This qualification is outside ordinary OCaml CI and the fast test loops.\n\nThe CLI document check exercises regular files and piped input on both Eio\nbackends, including the inclusive 64 KiB boundary. Pass `--directory` to\nexercise a mounted filesystem using an owned temporary directory:\n\n```console\n$ opam exec -- python3 test/workspace_document_test.py\n```\n\n`ocaml/setup-ocaml` caches opam and the switch. The tmux composite action caches\nonly an installed prefix, keyed by source, runner image/version, architecture,\ncompiler, package versions and build/probe recipes. Dependencies are installed\nbefore validating either hits or misses. A restored binary must match its hash,\nreport the exact release and pass an owned-daemon probe with verified teardown.\nRejected caches rebuild; no broad restore key reuses a binary from another\nenvironment. Save a validated installation before running library tests.\n\nThe cache design adapts the [Go port's pinned implementation](https://github.com/libtmux/libtmux-go/blob/d8ea6f77ede9f75e96af78719c8c1707fc47bdfb/.github/scripts/tmux_build.py).\nThe APIs and testing styles follow the primary documentation for\n[setup-ocaml](https://github.com/ocaml/setup-ocaml/tree/ff66428f72b64472e749b22e0ad4dded4b2ddca6),\n[Alcotest](https://github.com/mirage/alcotest/tree/1.9.1),\n[ppx_expect](https://github.com/janestreet/ppx_expect/tree/v0.17.3), and\n[Dune tests](https://dune.readthedocs.io/en/stable/tests.html).\n\n## Executed documentation\n\nREADME and guide snippets name regions in the compiled programs under\n`examples/`; JSON includes use the complete shipped configuration. The source\nis authoritative; this check rejects drift:\n\n```console\n$ python3 tools/docs_snippets.py\n```\n\nThe installed-consumer test installs libraries into a separate prefix, builds\nevery shipped example in an independent Dune project and runs it against owned\ntmux servers. It checks linked-window contexts, typed/native query results,\ncreated layout geometry, options, pane titles, working directories, literal\ninput, future-byte matches, rendered-screen waits and zero remaining clients.\nOwned fixture teardown verifies pane and daemon exit.\n\nThe [standalone capability programs](showcases.md) include their own private\nserver setup. CI copies their whole source files into an independent Dune\nproject and executes the recorded `opam exec -- dune exec` commands against\ninstalled packages. Exact outcome lines and owned process/directory teardown\nare checked. The [inventory](../examples/showcase.json) records each source and\ncommand with its native workflow/job and tmux floor.\n\nEach native CI cell also runs the [workspace guide](workspaces.md) through real\n`opam exec` and an installed `tmux-workspace`. It executes the displayed setup,\nvalidation, plan, apply and cleanup commands, then checks receipt fields, pane\ndirectories, layout output, client closure and owned process exit. CLI fault\ntests pin their output pipe capacity so a larger host pipe cannot turn a\nstalled-consumer test into successful buffered delivery.\n\nThese are correctness checks and whole-command timings, not throughput\nbenchmarks. Do not derive performance comparisons from their durations.\n\n[Guide](README.md) · [API](api.md) · [Compatibility](compatibility.md)\n" + "content": "# Testing and CI\n\nUse Alcotest for typed values and lifecycle invariants, `ppx_expect` for readable\noutput contracts, and QCheck for generated semantic cases. All three run through\nDune. The pure runtime library uses the standard library; the PPX is a test-only\ndependency.\n\nThe [cardinality tests](../test/core_test.ml) compare typed results using an\n[`Alcotest.testable`](https://mirage.github.io/alcotest/alcotest/Alcotest/index.html#type-testable)\nwith `Cardinality.pp_error`. A failure displays the expected\nand actual values, including the error variant's meaning. Comparing a Boolean\nexpression would only report `true` versus `false`. Keep testable printers small\nand show the values needed to understand the failure.\n\nThe [expect tests](../test/diagnostics_expect.ml) place expected diagnostic text\nbeside the code that prints it. A mismatch produces a diff and a `.corrected`\nfile. Inspect the changed meaning before promoting an expectation. Stable query\nexplanations, error messages and CLI output fit this style. Avoid snapshotting\ntimestamps, random IDs or whole server captures to test a small invariant.\n\n[QCheck cases](../test/query_test.ml) compare typed-expression evaluation against\nnative predicates with generated inputs. A fixed seed makes the current suite\nreproducible; shrinking helps explain counterexamples. Properties supplement the\nsmall authored edge cases and live tmux checks.\n\nRun the unit, expect, property and compile-failure suite:\n\n```console\n$ opam exec -- dune runtest --force\n```\n\nCold PPX driver compilation belongs to setup or an outer build. Time the warm\ntest command separately and retain the existing inner/mid budgets. Native and\ninstalled-consumer checks belong to the outer loop because they launch processes\nand own real tmux servers.\n\nRun the implemented native contract suite against one explicit release binary:\n\n```console\n$ opam exec -- python3 test/native_suite.py /path/to/tmux\n```\n\nThe [CI workflow](../.github/workflows/ocaml.yml) uses exactly OCaml 5.5.2,\nAlcotest 1.9.1, `ppx_expect` v0.17.3 and QCheck 0.91. It checks authored manifests,\nbuilds/odoc, generated files, formatting, unit/expect/property cases, and two\nnative release cells: tmux 3.3a (oldest supported) and 3.8 (newest stable).\nEvery intermediate release remains supported. Pure assertions check version\nboundaries and catalog availability throughout the range. Each native cell\ninstalls the packages into a temporary prefix and runs a consumer outside the\ncheckout. Consumer features still in development need their own later\nacceptance gates.\n\nThe [Java/OCaml conformance procedure](../test/conformance/README.md) prepares a\npinned Java peer separately, verifies artifact hashes and runs both evaluators\nand codec directions. Its fixtures and failure diagnostics are retained per\nrun. This qualification is outside ordinary OCaml CI and the fast test loops.\n\nThe CLI document check exercises regular files and piped input on both Eio\nbackends, including the inclusive 64 KiB boundary. Pass `--directory` to\nexercise a mounted filesystem using an owned temporary directory:\n\n```console\n$ opam exec -- python3 test/workspace_document_test.py\n```\n\n`ocaml/setup-ocaml` caches opam and the switch. The tmux composite action caches\nonly an installed prefix, keyed by source, runner image/version, architecture,\ncompiler, package versions and build/probe recipes. Dependencies are installed\nbefore validating either hits or misses. A restored binary must match its hash,\nreport the exact release and pass an owned-daemon probe with verified teardown.\nRejected caches rebuild; no broad restore key reuses a binary from another\nenvironment. Save a validated installation before running library tests.\n\nThe cache design adapts the [Go port's pinned implementation](https://github.com/libtmux/libtmux-go/blob/d8ea6f77ede9f75e96af78719c8c1707fc47bdfb/.github/scripts/tmux_build.py).\nThe APIs and testing styles follow the primary documentation for\n[setup-ocaml](https://github.com/ocaml/setup-ocaml/tree/ff66428f72b64472e749b22e0ad4dded4b2ddca6),\n[Alcotest](https://github.com/mirage/alcotest/tree/1.9.1),\n[ppx_expect](https://github.com/janestreet/ppx_expect/tree/v0.17.3), and\n[Dune tests](https://dune.readthedocs.io/en/stable/tests.html).\n\n## Executed documentation\n\nREADME and guide snippets name regions in the compiled programs under\n`examples/`; JSON includes use the complete shipped configuration. The source\nis authoritative; this check rejects drift:\n\n```console\n$ python3 tools/docs_snippets.py\n```\n\nThe installed-consumer test installs libraries into a separate prefix, builds\nevery shipped example in an independent Dune project and runs it against owned\ntmux servers. It checks linked-window contexts, typed/native query results,\ncreated layout geometry, options, pane titles, working directories, literal\ninput, future-byte matches, rendered-screen waits and zero remaining clients.\nOwned fixture teardown verifies pane and daemon exit.\n\nThe [standalone capability programs](showcases.md) include their own private\nserver setup. CI copies their whole source files into an independent Dune\nproject and executes the recorded `opam exec -- dune exec` commands against\ninstalled packages. Exact outcome lines and owned process/directory teardown\nare checked. The [inventory](../examples/showcase.json) records each source and\ncommand with its native workflow/job and tmux floor.\n\nEach native CI cell also runs the [workspace guide](workspaces.md) through real\n`opam exec` and an installed `tmux-workspace`. It executes the displayed setup,\nvalidation, plan, apply and cleanup commands, then checks receipt fields, pane\ndirectories, layout output, client closure and owned process exit. CLI fault\ntests pin their output pipe capacity so a larger host pipe cannot turn a\nstalled-consumer test into successful buffered delivery.\n\nThese are correctness checks and whole-command timings, not throughput\nbenchmarks. Do not derive performance comparisons from their durations.\n\n[Guide](README.md) · [API](api.md) · [Compatibility](compatibility.md)\n" }, { "path": "docs/benchmarking.md", - "content": "# Measure capture, concurrency and output delivery\n\nThe [capture benchmark](../bench/capture.py) compares serial blocking and Eio\ncapture on one owned graph: one session, four windows and sixteen panes. Each\nsample captures the graph 100 times by default and selects active panes using both a\ncompiled expression and a native predicate over each same snapshot.\n\nThe harness checks exact ordered IDs across captures and modes, one observed\ntmux client and one child process per mode, and zero attached clients afterward.\nOwned fixture teardown verifies pane and daemon exit. Both modes reuse one\nbound connection for their captures; they perform no per-object acquisition.\n\n## Reproduce\n\nPrepare the [exact release fixture](../.github/CONTRIBUTING.md#owned-tmux-fixtures),\nthen build the benchmark outside normal test loops:\n\n```console\n$ opam exec -- dune build bench/capture.exe\n```\n\nRun it with Python 3.11 or newer. Choose a new output file each time:\n\n```console\n$ opam exec -- python3 bench/capture.py scratch/tmux/tmux-3.8/tmux \\\n --iterations 100 \\\n --repeat 5 \\\n --output scratch/capture-baseline.json\n```\n\nThe output records compiler and tmux versions, binary and behavior-source hashes,\nOS/architecture, CPU availability, starting load average, whole-command time,\nper-sample process time, client and daemon CPU usage, and OCaml heap allocation\nduring the capture loop. Samples include program startup, binding,\nthe capture loop and client closure. Fixture creation and compilation are\noutside the per-sample interval. Mode order alternates across repetitions.\n\n## Capture and graph size\n\nThese observations use OCaml 5.5.2 on one shared Linux host. Each table entry is\nmedian milliseconds for 50 captures, followed by its min–max across three\nsamples. The raw files retain the source commit, behavior hash and host load.\n\n| tmux | Blocking, ms | Eio, ms | Evidence |\n| --- | --- | --- | --- |\n| 3.3 | 49.7 (49.0–52.6) | 54.6 (53.9–55.2) | [Raw data](../bench/results/capture-3.3-4x4.json) |\n| 3.3a | 76.3 (76.3–76.3) | 86.6 (72.1–90.1) | [Raw data](../bench/results/capture-3.3a-4x4.json) |\n| 3.4 | 74.1 (72.6–76.0) | 75.8 (61.8–76.9) | [Raw data](../bench/results/capture-3.4-4x4.json) |\n| 3.8 | 52.0 (48.7–66.6) | 67.1 (52.4–69.0) | [Raw data](../bench/results/capture-3.8-4x4.json) |\n\nChange `--windows` and `--panes-per-window` to measure larger graphs. The same\ntmux 3.8 workload, with 50 captures and three samples per mode, produced:\n\n| Windows × panes per window | Blocking median, ms | Eio median, ms | Evidence |\n| --- | --- | --- | --- |\n| 1 × 1 | 28.5 | 28.0 | [Raw data](../bench/results/capture-3.8-1x1.json) |\n| 4 × 4 | 52.0 | 67.1 | [Raw data](../bench/results/capture-3.8-4x4.json) |\n| 8 × 8 | 113.8 | 114.9 | [Raw data](../bench/results/capture-3.8-8x8.json) |\n| 16 × 16 | 402.2 | 408.5 | [Raw data](../bench/results/capture-3.8-16x16.json) |\n\nThe largest graph has 256 panes. Each observation still uses batched graph\nacquisition. Allocation counters cover the OCaml heap during the capture loop;\nthey do not measure process RSS or tmux's allocations.\n\n## Concurrent requests, streaming and cancellation\n\nThe [Eio benchmark](../bench/concurrency.py) runs bounded concurrent option\nreads with distinct expected values. It checks response attribution and input\norder, then measures future output from an owned `cat` process with terminal\necho disabled. Output cursors must advance. Finally it cancels active byte\nwaits and checks subscription cleanup. One primary client becomes two while a\nstream lane is active; both observed client and child-process counts are\nchecked. No clients remain after closure, and owned pane/daemon exit is verified.\n\nBuild the executable outside normal test loops:\n\n```console\n$ opam exec -- dune build bench/concurrency.exe\n```\n\nRun the three phases against an owned release fixture:\n\n```console\n$ opam exec -- python3 bench/concurrency.py scratch/tmux/tmux-3.8/tmux \\\n --requests 128 \\\n --concurrency 8 \\\n --streams 10 \\\n --cancels 10 \\\n --repeat 3 \\\n --output scratch/concurrency-baseline.json\n```\n\nRequest time includes queueing until the attributed response. Stream time runs\nfrom sending literal input through observing the process's output. Cancellation\ntime runs from the cancellation request through the observer receiving it,\nincluding subscription cleanup. The p95 uses nearest rank across all samples.\n\nOn tmux 3.8, each row contains 384 requests, 30 stream samples and 30 cancellations:\n\n| Concurrent requests | Median requests/s | Request p95, ms | Stream p95, ms | Cancel p95, ms | Evidence |\n| --- | --- | --- | --- | --- | --- |\n| 1 | 556.6 | 2.517 | 0.598 | 0.258 | [Raw data](../bench/results/concurrency-3.8-c1.json) |\n| 8 | 487.9 | 19.955 | 0.863 | 0.368 | [Raw data](../bench/results/concurrency-3.8-c8.json) |\n| 16 | 561.5 | 29.746 | 0.569 | 0.220 | [Raw data](../bench/results/concurrency-3.8-c16.json) |\n| 64 | 423.5 | 159.039 | 0.667 | 0.406 | [Raw data](../bench/results/concurrency-3.8-c64.json) |\n\nThe eight-request workload also passes on\n[3.3](../bench/results/concurrency-3.3-c8.json),\n[3.3a](../bench/results/concurrency-3.3a-c8.json) and\n[3.4](../bench/results/concurrency-3.4-c8.json).\nHigher concurrency increases queueing on the retained connection. These\nmeasurements come from a shared host running other work; compare raw sample\nranges and load before choosing a workload or drawing performance conclusions.\n\n## Mixed commands, stream pressure and membership changes\n\nThe [mixed-load benchmark](../bench/mixed.py) overlaps retained command\nsubmissions, seven fast stream readers, seven deliberately stalled readers,\nmembership changes and cancellation. Its default runs three waves with eight\ncommand workers and four attributed output frames per stream lane. It adds no\nwork to the unit-test loops.\n\nBuild the executable separately:\n\n```console\n$ opam exec -- dune build bench/mixed.exe\n```\n\nRun the bounded workload against one owned release fixture:\n\n```console\n$ opam exec -- python3 bench/mixed.py scratch/tmux/tmux-3.8/tmux \\\n --output scratch/mixed-baseline.json\n```\n\nEach wave submits 64 commands without yielding and requires the 65th to reject\nwith the declared admission limit. Eight queued operations are cancelled before\nwriting; their handles retain `Not_started`. Sixteen subscribers occupy seven\nshared session lanes. Together with the load connection's primary lane this\nreaches its eight-lane limit; a separate controller connection sends output and\nchanges membership. The seventeenth subscriber and an additional session lane\nmust reject with their specific capacity errors. These expected rejections are\nrecorded separately from correctness failures.\n\nCommands set unique user-option names and values. The receipt retains operation\nIDs, worker IDs, submission indexes and the actual order in which awaiters\nobserve results. It verifies every resulting option value, including absence\nfor cancelled operations. Ordinary mutations use the retained control lane;\n`read_option` verification runs afterward through its temporary subprocess route\nand has a separate phase duration. Each verified option emits its operation ID,\ncompleted count and read duration before the observer handshake. The validation\nphase includes those handshakes; individual read durations exclude them.\nThe observer acknowledgements and resource queries add measured overhead, so\nthese are instrumented workload timings.\n\nFast streams must deliver exact ordered bytes with continuous generation and\nbyte offsets. Tiny unconsumed queues must report `Gap Overflow`, then `End`.\nSplitting and removing a temporary pane changes a watched window's membership;\naffected readers must report `Gap Membership_changed`, then `End`. Explicit\nreadmission uses a fresh observation and generation. Unchanged lanes continue independently; the receipt requires observed stream\nprogress while commands remain pending in each wave. Each wave also cancels an active observer after\nits retained wait reaches `Acknowledged`, releases the wait through the\ncontroller, and checks the eventual result before and after client closure.\n\nNative event callbacks synchronously sample owned Linux process trees before\nyielding to telemetry, retaining their occurrence-time pending-command counts.\nProgress handshakes separately sample process trees and attached tmux clients,\nincluding while the churn pane is alive. Emission timestamps and counts stay\nseparate from event occurrence; queued telemetry cannot manufacture overlap. Raw records distinguish\nthe Python harness, OCaml process, daemon, command-client children and pane\nchildren. RSS/FD/process/client maxima are maxima of these observations;\nper-process RSS high-water marks come from the kernel. They do not establish\ncontinuous aggregate resource peaks. The controller contributes a primary client\nand, during its retained wait, an auxiliary client in addition to the load\nconnection's eight clients. The sampler's own retained pidfds affect its FD count.\n\nPer-worker receipts report completed quotas, cancellation counts, latency samples\nand first/last observation times. They characterize this bounded workload rather\nthan proving scheduler fairness, a service-level objective or general capacity.\nThe 1 MiB queued-byte and 32 MiB payload limits are recorded source constraints;\nthis workload pressures admission counts, subscriber counts and lane counts,\nnot those byte maxima. No automatic retries or timeout increases hide a failure.\n\nExercise teardown after interruption with a new output file:\n\n```console\n$ opam exec -- python3 bench/mixed.py scratch/tmux/tmux-3.8/tmux \\\n --rounds 1 \\\n --frames 2 \\\n --inject-failure \\\n --output scratch/mixed-interrupted.json\n```\n\n`EXPECTED_FAILURE` means the harness intentionally interrupted the native\nprocess while a temporary pane was alive. It still requires owned daemon,\npane and command-client exit, reaping, zero remaining children and removal of\nthe private fixture directory. Unexpected errors or failed cleanup produce\n`FAIL`; an interruption is not a successful workload measurement.\n\nThe [summary](../bench/results/mixed-20261108.json) records each outcome and\nsource identity. The linked gzip archives contain the complete JSON receipts;\nthe summary includes their compressed and uncompressed SHA-256 digests.\n\nRaw results retain exact source and executable hashes, fixture-helper hash,\nversions, command arguments, workload bounds, host load, resource observations\nand cleanup receipts. Keep failed receipts beside passing measurements when\nassessing a release. Current collector qualification is **PARTIAL** across the supported releases:\n\n| tmux | Mixed workload disposition | Raw evidence |\n| --- | --- | --- |\n| 3.3 | Current workload passed; an earlier observer-command failure remains unattributed. | [Current](../bench/results/mixed-3.3-current-20261108.json.gz), [earlier failure](../bench/results/mixed-3.3-qualified-20261108.json.gz) |\n| 3.3a | Current workload passed. | [Current](../bench/results/mixed-3.3a-current-20261108.json.gz) |\n| 3.4 | Reproduced daemon SIGSEGV: a null control state is dereferenced while notifying control clients of a detach. | [Failure](../bench/results/mixed-3.4-qualified-20261108.json.gz), [core analysis](../bench/results/mixed-3.4-crash-analysis-20261108.json) |\n| 3.8 | Current default workload and intentional interruption cleanup passed. | [Default](../bench/results/mixed-3.8-current-20261108.json.gz), [interruption](../bench/results/mixed-3.8-current-interrupted-20261108.json.gz) |\n\nEarlier records predate collector corrections; use their recorded source hashes.\nA later passing sample does not resolve an unexplained failure. These outcomes\nqualify this mixed benchmark separately from the existing native runtime tests.\n\nThe three 3.4 cores identify the same upstream write path. A later\n[tmux correction](https://github.com/tmux/tmux/commit/93169e2e6231853c61c33432bceebf4ffc91015b)\nguards null control state; that guard is present in the exact 3.8 source.\nThe precise triggering sequence remains unproved. The required 3.3 floor stays\nin place, and the 3.4 mixed workload remains a failed qualification.\n\nBenchmarks are a separate tier. Correctness gates and test-loop timings are\nlisted in [testing](testing.md), not used as throughput measurements. Keep a\nsingle benchmark run under ten minutes and a complete sweep under one hour.\n\n[Compatibility](compatibility.md) · [Control](control.md) · [Guide](README.md)\n" + "content": "# Measure capture, concurrency and output delivery\n\nThe [capture benchmark](../bench/capture.py) compares serial blocking and Eio\ncapture on one owned graph: one session, four windows and sixteen panes. Each\nsample captures the graph 100 times by default and selects active panes using both a\ncompiled expression and a native predicate over each same snapshot.\n\nThe harness checks exact ordered IDs across captures and modes, one observed\ntmux client and one child process per mode, and zero attached clients afterward.\nOwned fixture teardown verifies pane and daemon exit. Both modes reuse one\nbound connection for their captures; they perform no per-object acquisition.\n\n## Reproduce\n\nPrepare the [exact release fixture](../.github/CONTRIBUTING.md#owned-tmux-fixtures),\nthen build the benchmark outside normal test loops:\n\n```console\n$ opam exec -- dune build bench/capture.exe\n```\n\nRun it with Python 3.11 or newer. Choose a new output file each time:\n\n```console\n$ opam exec -- python3 bench/capture.py scratch/tmux/tmux-3.8/tmux \\\n --iterations 100 \\\n --repeat 5 \\\n --output scratch/capture-baseline.json\n```\n\nThe output records compiler and tmux versions, binary and behavior-source hashes,\nOS/architecture, CPU availability, starting load average, whole-command time,\nper-sample process time, client and daemon CPU usage, and OCaml heap allocation\nduring the capture loop. Samples include program startup, binding,\nthe capture loop and client closure. Fixture creation and compilation are\noutside the per-sample interval. Mode order alternates across repetitions.\n\n## Capture and graph size\n\nThese observations use OCaml 5.5.2 on one shared Linux host. Each table entry is\nmedian milliseconds for 50 captures, followed by its min–max across three\nsamples. The raw files retain the source commit, behavior hash and host load.\n\n| tmux | Blocking, ms | Eio, ms | Evidence |\n| --- | --- | --- | --- |\n| 3.3 | 49.7 (49.0–52.6) | 54.6 (53.9–55.2) | [Raw data](../bench/results/capture-3.3-4x4.json) |\n| 3.3a | 76.3 (76.3–76.3) | 86.6 (72.1–90.1) | [Raw data](../bench/results/capture-3.3a-4x4.json) |\n| 3.4 | 74.1 (72.6–76.0) | 75.8 (61.8–76.9) | [Raw data](../bench/results/capture-3.4-4x4.json) |\n| 3.8 | 52.0 (48.7–66.6) | 67.1 (52.4–69.0) | [Raw data](../bench/results/capture-3.8-4x4.json) |\n\nChange `--windows` and `--panes-per-window` to measure larger graphs. The same\ntmux 3.8 workload, with 50 captures and three samples per mode, produced:\n\n| Windows × panes per window | Blocking median, ms | Eio median, ms | Evidence |\n| --- | --- | --- | --- |\n| 1 × 1 | 28.5 | 28.0 | [Raw data](../bench/results/capture-3.8-1x1.json) |\n| 4 × 4 | 52.0 | 67.1 | [Raw data](../bench/results/capture-3.8-4x4.json) |\n| 8 × 8 | 113.8 | 114.9 | [Raw data](../bench/results/capture-3.8-8x8.json) |\n| 16 × 16 | 402.2 | 408.5 | [Raw data](../bench/results/capture-3.8-16x16.json) |\n\nThe largest graph has 256 panes. Each observation still uses batched graph\nacquisition. Allocation counters cover the OCaml heap during the capture loop;\nthey do not measure process RSS or tmux's allocations.\n\n## Heap retained across captures\n\nKeeping one pane keeps its captured graph reachable. The\n[retention benchmark](../bench/retention.py) measures this with a blocking\nclient and one session containing one pane per window. Each sample runs in a\nfresh process, warms the connection, then captures the same graph 100 times.\nIt measures live OCaml heap after full major collection before capture, while\nretained values remain reachable, and after releasing them.\n\nOn OCaml 5.5.2 and tmux 3.8, six samples per mode produced these live-heap\nincreases in KiB. Every sample had the same retained-byte count:\n\n| Windows | Every snapshot | One pane per capture | Latest pane only | Evidence |\n| --- | --- | --- | --- | --- |\n| 1 | 115.6 | 117.9 | 1.1 | [Raw data](../bench/results/retention-3.8-1x1.json) |\n| 16 | 982.8 | 985.1 | 9.8 | [Raw data](../bench/results/retention-3.8-16x1.json) |\n| 64 | 3757.8 | 3760.1 | 37.6 | [Raw data](../bench/results/retention-3.8-64x1.json) |\n\nRetaining 100 detached `(id, command, path)` summaries used 13.2 KiB in each\ngraph shape; 100 `Pane.target` values used 6.2 KiB. With 64 windows and\n[25 captures](../bench/results/retention-3.8-64x1-25-captures.json), retaining\none pane per capture used 940.0 KiB, while retaining only the latest pane\nstill used 37.6 KiB. Targets remain connection-bound; retaining one does not\nauthorize a future connection.\n\nThese are total live-heap differences, including list cells and projected\nvalues, not exact arena sizes. The discard control and every release phase\nreturned 40 bytes below the warm baseline, a small baseline-overhead offset.\nThis measurement does not cover process RSS, tmux memory, relationship-array\nallocation or a general leak guarantee. Mode order rotates across samples.\nThe harness verifies topology, retained value counts, detached clients and\nowned daemon/pane teardown. Sample durations include the client-exit check;\nwhole-command duration includes fixture setup and teardown.\n\nBuild the benchmark:\n\n```console\n$ opam exec -- dune build bench/retention.exe\n```\n\nRun the 64-window case with a new output path:\n\n```console\n$ opam exec -- python3 bench/retention.py scratch/tmux/tmux-3.8/tmux \\\n --windows 64 \\\n --captures 100 \\\n --repeat 6 \\\n --output scratch/retention.json\n```\n\n## Completed control-lane mutations\n\nThe [control benchmark](../bench/control.py) measures typed\n`Libtmux.Operations.set_option` mutations through one persistent Eio control\nclient. Each sample starts a fresh one-session, one-window, one-pane daemon,\nwarms the connection, then\ncompletes 128 distinct option writes with 1, 8 or 32 concurrent callers.\nSix samples per cell rotate the order of those caller counts.\n\nEvery handle must finish successfully. After the measured phase, an independent\nread checks every option name and value. Launch logs and process/client counts\nverify one persistent helper, with no subprocess per mutation. Owned teardown\nchecks helper, client, pane and daemon exit.\n\nBuild the executable outside normal test loops:\n\n```console\n$ opam exec -- dune build bench/control.exe\n```\n\nRun the complete matrix on one endpoint fixture:\n\n```console\n$ opam exec -- python3 bench/control.py scratch/tmux/tmux-3.8/tmux \\\n --requests 128 \\\n --concurrency 1 8 32 \\\n --repeat 6 \\\n --output scratch/control-baseline.json\n```\n\nOCaml 5.5.2 results on the two supported endpoints:\n\n| tmux | Callers | Median ops/s (min–max) | Submit-to-await p95, ms | Loop allocation, MiB |\n| --- | --- | --- | --- | --- |\n| 3.3a | 1 | 6068.2 (5016.1–7190.8) | 0.292 | 12.64 |\n| 3.3a | 8 | 6287.1 (4645.9–7017.5) | 2.020 | 13.30 |\n| 3.3a | 32 | 4961.3 (3640.1–7007.8) | 9.103 | 17.43 |\n| 3.8 | 1 | 3969.2 (3533.3–4966.2) | 0.435 | 12.64 |\n| 3.8 | 8 | 4100.4 (2949.3–5087.1) | 3.077 | 13.29 |\n| 3.8 | 32 | 3421.2 (2744.9–4300.8) | 13.175 | 17.42 |\n\nRaw [3.3a](../bench/results/control-3.3a-128-1-8-32.json) and\n[3.8](../bench/results/control-3.8-128-1-8-32.json) records retain all 768\noperation observations per cell, six sample durations, source/executable/binary\nhashes and platform details. One-minute host load started at 2.12 for 3.3a and\n9.14 for 3.8, with 12 available CPUs. Other host work was active. These samples\ndo not establish a release-speed comparison or a recommended caller count.\nIncreasing callers does not add lanes: the engine still serializes this client.\n\nThe native phase includes command construction, completion checks and result-row\nallocation. It excludes connection, warmup, observer probes, independent\nverification and teardown. Per-operation time starts immediately before\n`Libtmux_eio.Client.submit`, after a benchmark worker becomes available; it\nincludes admitted lane queueing and `Libtmux_eio.Client.await`, but excludes\nwaiting for that worker slot. The pooled p95 uses nearest rank over the 768\nobservations. Allocation includes the benchmark's\nown command and result values. The \"sample_seconds\" field includes setup and\nteardown; \"consumer_and_topology_cpu_seconds\" covers reaped children through\nconsumer exit, including the topology probe, rather than daemon or whole-sample\nCPU.\n\nThe raw \"whole_command_seconds\" field times the collector's entry point.\nTiming the outer command separately also includes Python and opam startup.\n\nThese results qualify this fixed mutation workload. They do not qualify the\nstream-gap or mixed-load failures in [compatibility](compatibility.md).\n\n## Concurrent reads, streaming and cancellation\n\nThe [Eio benchmark](../bench/concurrency.py) runs bounded concurrent option\nreads with distinct expected values. It checks response attribution and input\norder, then measures future output from an owned `cat` process with terminal\necho disabled. Output cursors must advance. Finally it cancels active byte\nwaits and checks subscription cleanup. One primary client becomes two while a\nstream lane is active; both observed client and child-process counts are\nchecked. No clients remain after closure, and owned pane/daemon exit is verified.\n\nEach option read starts a read-only tmux process inside the client's pump.\nThe request rates below include process launch and are separate from the\ncontrol-lane mutation measurements above.\n\nBuild the executable outside normal test loops:\n\n```console\n$ opam exec -- dune build bench/concurrency.exe\n```\n\nRun the three phases against an owned release fixture:\n\n```console\n$ opam exec -- python3 bench/concurrency.py scratch/tmux/tmux-3.8/tmux \\\n --requests 128 \\\n --concurrency 8 \\\n --streams 10 \\\n --cancels 10 \\\n --repeat 3 \\\n --output scratch/concurrency-baseline.json\n```\n\nRequest time includes queueing until the attributed response. Stream time runs\nfrom sending literal input through observing the process's output. Cancellation\ntime runs from the cancellation request through the observer receiving it,\nincluding subscription cleanup. The p95 uses nearest rank across all samples.\n\nOn tmux 3.8, each row contains 384 requests, 30 stream samples and 30 cancellations:\n\n| Concurrent requests | Median requests/s | Request p95, ms | Stream p95, ms | Cancel p95, ms | Evidence |\n| --- | --- | --- | --- | --- | --- |\n| 1 | 556.6 | 2.517 | 0.598 | 0.258 | [Raw data](../bench/results/concurrency-3.8-c1.json) |\n| 8 | 487.9 | 19.955 | 0.863 | 0.368 | [Raw data](../bench/results/concurrency-3.8-c8.json) |\n| 16 | 561.5 | 29.746 | 0.569 | 0.220 | [Raw data](../bench/results/concurrency-3.8-c16.json) |\n| 64 | 423.5 | 159.039 | 0.667 | 0.406 | [Raw data](../bench/results/concurrency-3.8-c64.json) |\n\nThe eight-request workload also passes on\n[3.3](../bench/results/concurrency-3.3-c8.json),\n[3.3a](../bench/results/concurrency-3.3a-c8.json) and\n[3.4](../bench/results/concurrency-3.4-c8.json).\nHigher concurrency increases queueing on the retained connection. These\nmeasurements come from a shared host running other work; compare raw sample\nranges and load before choosing a workload or drawing performance conclusions.\n\n## Mixed commands, stream pressure and membership changes\n\nThe [mixed-load benchmark](../bench/mixed.py) overlaps retained command\nsubmissions, seven fast stream readers, seven deliberately stalled readers,\nmembership changes and cancellation. Its default runs three waves with eight\ncommand workers and four attributed output frames per stream lane. It adds no\nwork to the unit-test loops.\n\nBuild the executable separately:\n\n```console\n$ opam exec -- dune build bench/mixed.exe\n```\n\nRun the bounded workload against one owned release fixture:\n\n```console\n$ opam exec -- python3 bench/mixed.py scratch/tmux/tmux-3.8/tmux \\\n --output scratch/mixed-baseline.json\n```\n\nEach wave submits 64 commands without yielding and requires the 65th to reject\nwith the declared admission limit. Eight queued operations are cancelled before\nwriting; their handles retain `Not_started`. Sixteen subscribers occupy seven\nshared session lanes. Together with the load connection's primary lane this\nreaches its eight-lane limit; a separate controller connection sends output and\nchanges membership. The seventeenth subscriber and an additional session lane\nmust reject with their specific capacity errors. These expected rejections are\nrecorded separately from correctness failures.\n\nCommands set unique user-option names and values. The receipt retains operation\nIDs, worker IDs, submission indexes and the actual order in which awaiters\nobserve results. It verifies every resulting option value, including absence\nfor cancelled operations. Ordinary mutations use the retained control lane;\n`read_option` verification runs afterward through its temporary subprocess route\nand has a separate phase duration. Each verified option emits its operation ID,\ncompleted count and read duration before the observer handshake. The validation\nphase includes those handshakes; individual read durations exclude them.\nThe observer acknowledgements and resource queries add measured overhead, so\nthese are instrumented workload timings.\n\nFast streams must deliver exact ordered bytes with continuous generation and\nbyte offsets. Tiny unconsumed queues must report `Gap Overflow`, then `End`.\nSplitting and removing a temporary pane changes a watched window's membership;\naffected readers must report `Gap Membership_changed`, then `End`. Explicit\nreadmission uses a fresh observation and generation. Unchanged lanes continue independently; the receipt requires observed stream\nprogress while commands remain pending in each wave. Each wave also cancels an active observer after\nits retained wait reaches `Acknowledged`, releases the wait through the\ncontroller, and checks the eventual result before and after client closure.\n\nNative event callbacks synchronously sample owned Linux process trees before\nyielding to telemetry, retaining their occurrence-time pending-command counts.\nProgress handshakes separately sample process trees and attached tmux clients,\nincluding while the churn pane is alive. Emission timestamps and counts stay\nseparate from event occurrence; queued telemetry cannot manufacture overlap. Raw records distinguish\nthe Python harness, OCaml process, daemon, command-client children and pane\nchildren. RSS/FD/process/client maxima are maxima of these observations;\nper-process RSS high-water marks come from the kernel. They do not establish\ncontinuous aggregate resource peaks. The controller contributes a primary client\nand, during its retained wait, an auxiliary client in addition to the load\nconnection's eight clients. The sampler's own retained pidfds affect its FD count.\n\nPer-worker receipts report completed quotas, cancellation counts, latency samples\nand first/last observation times. They characterize this bounded workload rather\nthan proving scheduler fairness, a service-level objective or general capacity.\nThe 1 MiB queued-byte and 32 MiB payload limits are recorded source constraints;\nthis workload pressures admission counts, subscriber counts and lane counts,\nnot those byte maxima. No automatic retries or timeout increases hide a failure.\n\nExercise teardown after interruption with a new output file:\n\n```console\n$ opam exec -- python3 bench/mixed.py scratch/tmux/tmux-3.8/tmux \\\n --rounds 1 \\\n --frames 2 \\\n --inject-failure \\\n --output scratch/mixed-interrupted.json\n```\n\n`EXPECTED_FAILURE` means the harness intentionally interrupted the native\nprocess while a temporary pane was alive. It still requires owned daemon,\npane and command-client exit, reaping, zero remaining children and removal of\nthe private fixture directory. Unexpected errors or failed cleanup produce\n`FAIL`; an interruption is not a successful workload measurement.\n\nThe [summary](../bench/results/mixed-20261108.json) records each outcome and\nsource identity. The linked gzip archives contain the complete JSON receipts;\nthe summary includes their compressed and uncompressed SHA-256 digests.\n\nRaw results retain exact source and executable hashes, fixture-helper hash,\nversions, command arguments, workload bounds, host load, resource observations\nand cleanup receipts. Keep failed receipts beside passing measurements when\nassessing a release. Current collector qualification is **PARTIAL** across the supported releases:\n\n| tmux | Mixed workload disposition | Raw evidence |\n| --- | --- | --- |\n| 3.3 | Current workload passed; an earlier observer-command failure remains unattributed. | [Current](../bench/results/mixed-3.3-current-20261108.json.gz), [earlier failure](../bench/results/mixed-3.3-qualified-20261108.json.gz) |\n| 3.3a | Current workload passed. | [Current](../bench/results/mixed-3.3a-current-20261108.json.gz) |\n| 3.4 | Reproduced daemon SIGSEGV: a null control state is dereferenced while notifying control clients of a detach. | [Failure](../bench/results/mixed-3.4-qualified-20261108.json.gz), [core analysis](../bench/results/mixed-3.4-crash-analysis-20261108.json) |\n| 3.8 | Current default workload and intentional interruption cleanup passed. | [Default](../bench/results/mixed-3.8-current-20261108.json.gz), [interruption](../bench/results/mixed-3.8-current-interrupted-20261108.json.gz) |\n\nEarlier records predate collector corrections; use their recorded source hashes.\nA later passing sample does not resolve an unexplained failure. These outcomes\nqualify this mixed benchmark separately from the existing native runtime tests.\n\nThe three 3.4 cores identify the same upstream write path. A later\n[tmux correction](https://github.com/tmux/tmux/commit/93169e2e6231853c61c33432bceebf4ffc91015b)\nguards null control state; that guard is present in the exact 3.8 source.\nThe precise triggering sequence remains unproved. The supported range is\n3.3a–3.8; the 3.3 measurements above are historical evidence. The 3.4 mixed\nworkload remains a failed qualification.\n\nBenchmarks are a separate tier. Correctness gates and test-loop timings are\nlisted in [testing](testing.md), not used as throughput measurements. Keep a\nsingle benchmark run under ten minutes and a complete sweep under one hour.\n\n[Compatibility](compatibility.md) · [Control](control.md) · [Guide](README.md)\n" }, { "path": "docs/status.md", - "content": "# Current capabilities and adoption gaps\n\nThe immutable model, typed queries, native Linux clients and output observation\nhave real-tmux evidence on 3.3, 3.3a, 3.4 and 3.8. The installed workspace CLI\nalso passes those cells. The final suite review remains unfinished.\nNo package or hosted-documentation release has been published.\n\n## What an application can use\n\nCapture a complete graph, retain it after closing the client, traverse shared\nwindows through session-specific links, filter with native predicates or typed\nexpressions, and establish cardinality before an explicit mutation. Native\noperations cover sessions, windows, panes, captured clients, layouts,\nenvironment, options and hooks. Both blocking and Eio transports retain\noperation outcomes and expose bounded subscriptions.\n\nThe [compatibility table](compatibility.md) identifies qualified components.\nThe [examples](README.md) are installed, compiled and executed against owned\nservers; they cover graph links, query results, created resources, literal\ninput, streaming, rendered waits and client teardown.\n\n## What is still missing\n\n| Area | Required evidence before complete-suite adoption |\n| --- | --- |\n| Documentation site | Qualify the final hosted reference and verify its deployed links; public `.cmti` export and local rendering are implemented |\n| Final qualification | Rerun every required component and exact release cell on the final source revision |\n| Package adoption | Obtain an independent caller-task review and resolve material findings |\n\n[Recorded benchmarks](benchmarking.md) cover blocking/Eio capture, graphs up to\n256 panes, concurrent requests, OCaml heap allocation, client/daemon CPU,\nfuture-output latency and cancellation cleanup. Their raw data preserves the\nworkload, source identities and host conditions.\n\nThe workspace model, JSON loader, blocking/Eio executors and installed CLI are\nimplemented. The [workspace guide](workspaces.md) executes the installed command\nthrough validation, planning, apply, receipt inspection and owned cleanup.\nLive tests cover partial effects, compensation, append isolation, stale plans,\ncancellation journals and bootstrap on fresh and existing daemons. Cleanup\ntargets only proven newly created panes; foreign panes moved into a new window\nremain. Versioned advisory plans and execution receipts preserve errors,\ncreation IDs and cleanup outcomes; output documents cannot be replayed as\noperational input. CLI checks also cover malformed input, collisions, missing\nendpoints, interrupted apply, changed documents and stalled or broken stdout.\n\n## Engineering assessment\n\nFor a Linux application needing immutable tmux observations and explicit native\ncontrol, the model and clients are candidates for adoption with the documented\nconstraints. Suite adoption still needs the documentation and qualification\nabove. Maintainer count and alpha status do not decide that\nassessment; observable behavior and recovery do.\n\nAn adopting engineer should expect explicit endpoint selection, client lifetime,\ncommand uncertainty and stream gaps. The package should keep these visible.\nImplicit reconnects, callback-driven property acquisition, a mandatory query\nwrapper or a required runtime for pure filtering would make the API harder to\nreason about.\n\nA 9.5/10 whole-package rating is not established. Hosted documentation and\nfinal qualification have open gates. Documentation\nquality cannot substitute for those results. [Testing](testing.md) describes\ncurrent evidence and how examples are kept in sync with source.\n\nMCP integration is excluded by project policy. Its SDK, conformance and host\nintegration are outside the adoption criteria. The supported automation\nsurfaces are native OCaml APIs and the workspace CLI; see\n[package boundaries](packages.md).\n" + "content": "# Current capabilities and adoption gaps\n\nThe immutable model, typed queries, native Linux clients and output observation\nhave real-tmux evidence at the active tmux endpoints, 3.3a and 3.8. Intermediate\nreleases remain supported throughout 3.3a–3.8. The installed\nworkspace CLI also passes those cells. The final suite review remains unfinished.\nNo package or hosted-documentation release has been published.\n\n## What an application can use\n\nCapture a complete graph, retain it after closing the client, traverse shared\nwindows through session-specific links, filter with native predicates or typed\nexpressions, and establish cardinality before an explicit mutation. Native\noperations cover sessions, windows, panes, captured clients, layouts,\nenvironment, options and hooks. Both blocking and Eio transports retain\noperation outcomes and expose bounded subscriptions.\n\nThe [compatibility table](compatibility.md) identifies qualified components.\nThe [examples](README.md) are installed, compiled and executed against owned\nservers; they cover graph links, query results, created resources, literal\ninput, streaming, rendered waits and client teardown.\n\n## What is still missing\n\n| Area | Required evidence before complete-suite adoption |\n| --- | --- |\n| Documentation site | Qualify the final hosted reference and verify its deployed links; public `.cmti` export and local rendering are implemented |\n| Known runtime findings | Account for the [recorded daemon-exit and observer failures](compatibility.md) when choosing a deployment workload |\n| Final qualification | Rerun every required component and exact release cell on the final source revision |\n| Package adoption | Obtain an independent caller-task review and resolve material findings |\n\n[Recorded benchmarks](benchmarking.md) cover blocking/Eio capture, graphs up to\n256 panes, concurrent requests, OCaml heap allocation, client/daemon CPU,\nfuture-output latency and cancellation cleanup. Their raw data preserves the\nworkload, source identities and host conditions.\n\nThe workspace model, JSON loader, blocking/Eio executors and installed CLI are\nimplemented. The [workspace guide](workspaces.md) executes the installed command\nthrough validation, planning, apply, receipt inspection and owned cleanup.\nLive tests cover partial effects, compensation, append isolation, stale plans,\ncancellation journals and bootstrap on fresh and existing daemons. Cleanup\ntargets only proven newly created panes; foreign panes moved into a new window\nremain. Versioned advisory plans and execution receipts preserve errors,\ncreation IDs and cleanup outcomes; output documents cannot be replayed as\noperational input. CLI checks also cover malformed input, collisions, missing\nendpoints, interrupted apply, changed documents and stalled or broken stdout.\n\n## Engineering assessment\n\nFor a Linux application needing immutable tmux observations and explicit native\ncontrol, the model and clients are candidates for adoption with the documented\nconstraints. Suite adoption still needs the documentation and qualification\nabove. Maintainer count and alpha status do not decide that\nassessment; observable behavior and recovery do.\n\nAn adopting engineer should expect explicit endpoint selection, client lifetime,\ncommand uncertainty and stream gaps. The package should keep these visible.\nImplicit reconnects, callback-driven property acquisition, a mandatory query\nwrapper or a required runtime for pure filtering would make the API harder to\nreason about.\n\nA 9.5/10 whole-package rating is not established. Hosted documentation and\nfinal qualification have open gates. Documentation\nquality cannot substitute for those results. [Testing](testing.md) describes\ncurrent evidence and how examples are kept in sync with source.\n\nMCP integration is excluded by project policy. Its SDK, conformance and host\nintegration are outside the adoption criteria. The supported automation\nsurfaces are native OCaml APIs and the workspace CLI; see\n[package boundaries](packages.md).\n" }, { "path": "docs/workspaces.md", diff --git a/site/src/data/tmux-usage/ocaml.json b/site/src/data/tmux-usage/ocaml.json index 31ed57495..1eff09caf 100644 --- a/site/src/data/tmux-usage/ocaml.json +++ b/site/src/data/tmux-usage/ocaml.json @@ -94,7 +94,7 @@ ], "port": "ocaml", "repo": "libtmux/libtmux-ocaml", - "revision": "4d2203d04f74d03dc3f6df0660362fc17b771287", + "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", "schemaVersion": 1, "symbols": { "Libtmux_eio.Client.break_pane": [ @@ -103,8 +103,8 @@ "evidence": [ "unix/engine.ml:288", "eio/generated_operations.ml:103", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:317", "lib/commands.ml:318", "unix/command_encoding.ml:389", @@ -119,8 +119,8 @@ "command": "list-clients", "evidence": [ "unix/acquisition.ml:118", - "eio/libtmux_eio.ml:363", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:373", + "eio/libtmux_eio.ml:362", "unix/engine.ml:294" ], "reviewed": true, @@ -130,8 +130,8 @@ "command": "list-panes", "evidence": [ "unix/acquisition.ml:65", - "eio/libtmux_eio.ml:363", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:373", + "eio/libtmux_eio.ml:362", "unix/engine.ml:294" ], "reviewed": true, @@ -141,8 +141,8 @@ "command": "list-sessions", "evidence": [ "unix/acquisition.ml:16", - "eio/libtmux_eio.ml:363", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:373", + "eio/libtmux_eio.ml:362", "unix/engine.ml:294" ], "reviewed": true, @@ -152,8 +152,8 @@ "command": "list-windows", "evidence": [ "unix/acquisition.ml:30", - "eio/libtmux_eio.ml:363", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:373", + "eio/libtmux_eio.ml:362", "unix/engine.ml:294" ], "reviewed": true, @@ -166,8 +166,8 @@ "evidence": [ "unix/environment_io.ml:103", "eio/generated_operations.ml:42", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:267", "lib/commands.ml:268", "unix/engine.ml:101", @@ -183,8 +183,8 @@ "evidence": [ "unix/options_io.ml:199", "eio/generated_operations.ml:73", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:294", "lib/commands.ml:294", "unix/engine.ml:120", @@ -200,8 +200,8 @@ "evidence": [ "unix/options_io.ml:199", "eio/generated_operations.ml:55", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:279", "lib/commands.ml:280", "unix/engine.ml:107", @@ -216,8 +216,8 @@ "command": "capture-pane", "evidence": [ "unix/rendered.ml:88", - "eio/libtmux_eio.ml:372", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:382", + "eio/libtmux_eio.ml:362", "unix/engine.ml:311" ], "reviewed": true, @@ -227,8 +227,8 @@ "command": "delete-buffer", "evidence": [ "unix/rendered.ml:81", - "eio/libtmux_eio.ml:372", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:382", + "eio/libtmux_eio.ml:362", "unix/engine.ml:311" ], "incidental": true, @@ -240,8 +240,8 @@ "command": "list-buffers", "evidence": [ "unix/rendered.ml:100", - "eio/libtmux_eio.ml:372", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:382", + "eio/libtmux_eio.ml:362", "unix/engine.ml:311" ], "incidental": true, @@ -252,8 +252,8 @@ "command": "save-buffer", "evidence": [ "unix/rendered.ml:125", - "eio/libtmux_eio.ml:372", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:382", + "eio/libtmux_eio.ml:362", "unix/engine.ml:311" ], "incidental": true, @@ -264,8 +264,8 @@ "command": "show-hooks", "evidence": [ "unix/rendered.ml:27", - "eio/libtmux_eio.ml:372", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:382", + "eio/libtmux_eio.ml:362", "unix/engine.ml:311" ], "incidental": true, @@ -279,8 +279,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:168", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:364", "lib/commands.ml:364", "unix/command_encoding.ml:285", @@ -296,8 +296,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:70", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:291", "lib/commands.ml:292", "unix/command_encoding.ml:315", @@ -313,8 +313,8 @@ "evidence": [ "unix/engine.ml:288", "eio/generated_operations.ml:90", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:307", "lib/commands.ml:309", "unix/command_encoding.ml:356", @@ -330,8 +330,8 @@ "evidence": [ "unix/engine.ml:288", "eio/generated_operations.ml:95", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:311", "lib/commands.ml:312", "unix/command_encoding.ml:372", @@ -347,8 +347,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:148", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:348", "lib/commands.ml:349", "unix/command_encoding.ml:263", @@ -363,8 +363,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:148", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:348", "lib/commands.ml:349", "unix/command_encoding.ml:263", @@ -381,8 +381,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:113", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:322", "lib/commands.ml:322", "unix/command_encoding.ml:242", @@ -398,8 +398,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:107", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:320", "lib/commands.ml:320", "unix/command_encoding.ml:240", @@ -415,8 +415,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:110", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:321", "lib/commands.ml:321", "unix/command_encoding.ml:241", @@ -432,8 +432,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:123", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:330", "lib/commands.ml:331", "unix/command_encoding.ml:248", @@ -449,8 +449,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:151", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:351", "lib/commands.ml:352", "unix/command_encoding.ml:268", @@ -466,8 +466,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:127", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:333", "lib/commands.ml:334", "unix/command_encoding.ml:250", @@ -483,8 +483,8 @@ "evidence": [ "unix/options_io.ml:223", "eio/generated_operations.ml:76", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:296", "lib/commands.ml:297", "unix/engine.ml:127", @@ -500,8 +500,8 @@ "evidence": [ "unix/options_io.ml:223", "eio/generated_operations.ml:59", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:282", "lib/commands.ml:283", "unix/engine.ml:113", @@ -517,8 +517,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:22", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:256", "lib/commands.ml:257", "unix/command_encoding.ml:229", @@ -534,8 +534,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:52", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:276", "lib/commands.ml:277", "unix/command_encoding.ml:295", @@ -551,8 +551,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:84", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:302", "lib/commands.ml:303", "unix/command_encoding.ml:329", @@ -568,8 +568,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:12", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:248", "lib/commands.ml:248", "unix/engine.ml:154", @@ -585,8 +585,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:9", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:247", "lib/commands.ml:247", "unix/engine.ml:145", @@ -602,8 +602,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:19", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:253", "lib/commands.ml:254", "unix/command_encoding.ml:227", @@ -619,8 +619,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:26", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:259", "lib/commands.ml:260", "unix/command_encoding.ml:232", @@ -636,8 +636,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:138", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:339", "lib/commands.ml:340", "unix/command_encoding.ml:257", @@ -653,8 +653,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:141", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:342", "lib/commands.ml:343", "unix/command_encoding.ml:259", @@ -670,8 +670,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:164", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:361", "lib/commands.ml:362", "unix/command_encoding.ml:279", @@ -687,8 +687,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:158", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:356", "lib/commands.ml:357", "unix/command_encoding.ml:274", @@ -704,8 +704,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:87", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:305", "lib/commands.ml:305", "unix/command_encoding.ml:333", @@ -721,8 +721,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:145", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:345", "lib/commands.ml:346", "unix/command_encoding.ml:261", @@ -738,8 +738,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:132", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:336", "lib/commands.ml:336", "unix/command_encoding.ml:254", @@ -755,8 +755,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:116", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:324", "lib/commands.ml:325", "unix/command_encoding.ml:243", @@ -772,8 +772,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:33", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:263", "lib/commands.ml:263", "unix/engine.ml:165", @@ -789,8 +789,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:30", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:262", "lib/commands.ml:262", "unix/engine.ml:163", @@ -806,8 +806,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:45", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:270", "lib/commands.ml:271", "unix/command_encoding.ml:286", @@ -823,8 +823,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:80", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:299", "lib/commands.ml:300", "unix/command_encoding.ml:320", @@ -840,8 +840,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:63", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:285", "lib/commands.ml:286", "unix/command_encoding.ml:298", @@ -857,8 +857,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:135", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:337", "lib/commands.ml:337", "unix/command_encoding.ml:255", @@ -874,8 +874,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:39", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:265", "lib/commands.ml:265", "unix/engine.ml:175", @@ -891,8 +891,8 @@ "evidence": [ "unix/engine.ml:288", "eio/generated_operations.ml:99", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:314", "lib/commands.ml:315", "unix/command_encoding.ml:381", @@ -907,7 +907,7 @@ "command": "display-message", "evidence": [ "unix/streaming.ml:374", - "eio/libtmux_eio.ml:358" + "eio/libtmux_eio.ml:368" ], "scope": null }, @@ -915,7 +915,7 @@ "command": "refresh-client", "evidence": [ "unix/streaming.ml:390", - "eio/libtmux_eio.ml:358" + "eio/libtmux_eio.ml:368" ], "scope": null, "when": "when opening a new stream lane" @@ -927,8 +927,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:155", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:354", "lib/commands.ml:354", "unix/command_encoding.ml:272", @@ -944,8 +944,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:15", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:250", "lib/commands.ml:251", "unix/command_encoding.ml:223", @@ -961,8 +961,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:119", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:327", "lib/commands.ml:328", "unix/command_encoding.ml:245", @@ -978,8 +978,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:49", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:273", "lib/commands.ml:274", "unix/command_encoding.ml:292", @@ -995,8 +995,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:67", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:288", "lib/commands.ml:289", "unix/command_encoding.ml:311", @@ -1012,8 +1012,8 @@ "evidence": [ "unix/engine.ml:315", "eio/generated_operations.ml:36", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:264", "lib/commands.ml:264", "unix/engine.ml:175", @@ -1029,8 +1029,8 @@ "evidence": [ "unix/engine.ml:283", "eio/generated_operations.ml:161", - "eio/libtmux_eio.ml:365", - "eio/libtmux_eio.ml:352", + "eio/libtmux_eio.ml:375", + "eio/libtmux_eio.ml:362", "lib/commands.ml:359", "lib/commands.ml:359", "unix/command_encoding.ml:278", diff --git a/site/src/lib/ports.ts b/site/src/lib/ports.ts index 3fa9269f4..d1d90f461 100644 --- a/site/src/lib/ports.ts +++ b/site/src/lib/ports.ts @@ -1273,7 +1273,7 @@ target_link_libraries(your_target PRIVATE libtmux::libtmux)`, note: 'Build the CLI from source, then use tmux-workspace apply with a validated JSON workspace.' }] }], installs: [{ label: 'opam (source)', lang: 'console', code: 'git clone https://github.com/libtmux/libtmux-ocaml.git && \\\n cd libtmux-ocaml && \\\n opam install .', - note: 'Source installation; no registry release. Requires OCaml 5.5.2, Linux and tmux 3.3 or newer.' }], + note: 'Source installation; no registry release. Requires OCaml 5.5.2, Linux and tmux 3.3a through 3.8.' }], initProject: { lang: 'console', code: 'dune init project my_tmux_app' }, installForms: { release: { lang: 'console', code: 'opam install .' }, diff --git a/site/test/tmux-minimum.test.ts b/site/test/tmux-minimum.test.ts index 3c4a17321..62afda9d1 100644 --- a/site/test/tmux-minimum.test.ts +++ b/site/test/tmux-minimum.test.ts @@ -45,24 +45,6 @@ export const PORT_FLOORS = [ * covers. */ export const OTHER_FLOORS = [ - { - path: 'packages/api-model/src/languages/ocaml-examples.ts', - version: '3.3', - near: /OCaml 5\.5\.2/, - why: 'The OCaml capability programs run on the native literal tmux 3.3 floor.', - }, - { - path: 'site/src/data/home-examples.json', - version: '3.3', - within: 'ocaml', - why: 'The OCaml quickstart is executed on the native 3.3 floor.', - }, - { - path: 'site/src/lib/ports.ts', - version: '3.3', - near: /OCaml 5\.5\.2/, - why: 'The OCaml source installation names its tested tmux 3.3 floor.', - }, { path: 'site/src/content/_workspace-shared/workspace/guides/installation.md', version: '3.2a', From 7d4f88f73693f907872252f1c5464bb9129057c9 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 8 Nov 2026 17:58:10 -0600 Subject: [PATCH 23/26] docs(ocaml[guides]) Refresh tested bootstrap and support evidence why: The integration must keep installed examples and workload evidence tied to one native source. what: - Attach the complete bootstrap program to its workspace operations - Refresh API, example, package and guide data from the native source - Document shared observer/service capacity and retain both endpoint stream-gap walkthrough failures source: libtmux/libtmux-ocaml revision: 6b814a3ae27b6a700b5d45ff1ef654565a1f1605 --- .../api-model/src/languages/ocaml-examples.ts | 1 + site/src/data/api/ocaml.json | 2 +- site/src/data/api/ocaml.paths.json | 2 +- site/src/data/example-sources.json | 28 +++++++++---------- site/src/data/manifest-packages.json | 14 +++++----- site/src/data/mentions.json | 21 ++++++++++++++ site/src/data/port-guides/ocaml.json | 16 +++++++---- site/src/data/tmux-usage/ocaml.json | 2 +- site/src/lib/port-documentation.ts | 2 +- site/test/ocaml.test.ts | 12 ++++++++ 10 files changed, 69 insertions(+), 31 deletions(-) diff --git a/packages/api-model/src/languages/ocaml-examples.ts b/packages/api-model/src/languages/ocaml-examples.ts index 67fa6a75c..682a31a09 100644 --- a/packages/api-model/src/languages/ocaml-examples.ts +++ b/packages/api-model/src/languages/ocaml-examples.ts @@ -11,6 +11,7 @@ interface Showcase { } const targets: Readonly> = { + bootstrap: ['Libtmux_unix.Workspace.submit_bootstrap', 'Libtmux_unix.Workspace.await', 'Libtmux_unix.Workspace.client'], graph: ['Libtmux.Snapshot.sessions', 'Libtmux.Session.window_links', 'Libtmux.Window.panes', 'Libtmux_unix.Client.capture'], watch: ['Libtmux_eio.Client.subscribe', 'Libtmux_eio.Subscription.wait_for_bytes'], 'send-keys': ['Libtmux_unix.Client.send_text', 'Libtmux_unix.Client.send_keys'], diff --git a/site/src/data/api/ocaml.json b/site/src/data/api/ocaml.json index ed3d04bba..c25256176 100644 --- a/site/src/data/api/ocaml.json +++ b/site/src/data/api/ocaml.json @@ -1 +1 @@ -{"port":"ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","repo":"libtmux/libtmux-ocaml","sources":[{"product":"core","package":"libtmux","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"core","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"workspace","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"core","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"workspace","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"core","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},{"product":"workspace","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}],"extractor":"OCaml 5.5.2 compiler-libs .cmti + odoc-parser 3.2.2","nativeProvenance":{"files":[{"path":"lib/libtmux.mli","sha256":"cde6d0a89aeb60e3bffe3df003ffba1115d3a0c1318c6361a874202580797bfb"},{"path":"_build/install/default/lib/libtmux/libtmux.cmti","sha256":"296786db1d801c4a2ed7071b942a9c785f120474a9479aafda0837e8fcb00c18"},{"path":"workspace/libtmux_workspace.mli","sha256":"7f828d52abc58665510de7cf87bc03479d85feaaca5f00e678fda58f47713a4d"},{"path":"_build/install/default/lib/libtmux-workspace/libtmux_workspace.cmti","sha256":"5a55a369dde40b8a1261089043218e0bbb245f5ea09088365b7fc3dd91b82b7f"},{"path":"json/libtmux_json.mli","sha256":"0df1e135b74307a8ef363bcd484e499c463172f6a0451a8ebbd511ec8adb57bc"},{"path":"_build/install/default/lib/libtmux-json/libtmux_json.cmti","sha256":"1a065de46eb27da42755e3bef53c4de6ca30fcdd587556a0daef9bf6a6afbd6d"},{"path":"unix/libtmux_unix.mli","sha256":"ce6a551ab8258ae4b01cf3c1c21ec8f6a0c76ca1cd4170e8799e59e25f18a4df"},{"path":"_build/install/default/lib/libtmux-unix/libtmux_unix.cmti","sha256":"258641a2be793576f46c493a582ca4c334a11c569a62725b1b9be985b68b564e"},{"path":"eio/libtmux_eio.mli","sha256":"ccd8fd3d603e82e5618af23e5ae82853361a9c3d88ef409ed6ea83cf1d2ee765"},{"path":"_build/install/default/lib/libtmux-eio/libtmux_eio.cmti","sha256":"788ca92dc96d1ec3ce868d8585f7cbfb9e19ce31b5a7472a41aaf2504205023d"}],"exporter":{"revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","baseRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","files":[{"path":"tools/api_export.ml","sha256":"34b59e728494aeed3595c5a88e1a1482d7dfa65ddcda725e43cd6c21ee131945"},{"path":"tools/api_doc.ml","sha256":"94d9b4dff3f86d570a31161019e06cea250926200b8cc4562f7d14f9f3cd0d59"},{"path":"tools/export_api.py","sha256":"5188348adc7e3ea577889e144de30da6204ec14ec6fc1577f86a732bc7625973"},{"path":"tools/api_modules.json","sha256":"233ef409440fa5015f522a11933e74f059a301aecbce5ab5126f14e8a35614cf"},{"path":"tools/dune","sha256":"777e122d729870f9f8dc6fc13485ce0eea29f0e741b9bb22cb0245d433ff9442"}],"compiler":"5.5.2","schema":"libtmux.ocaml-api/1","publicManifest":"tools/api_modules.json"}},"symbols":[{"id":"Libtmux","publicId":"Libtmux","qualifiedName":"Libtmux","name":"Libtmux","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Native captured values, typed queries and explicit command descriptions.\n\n A {!Snapshot.t} owns immutable observations. Entity accessors and query\n evaluation perform no I/O, preserve captured order and remain usable after\n client closure. Use [Libtmux_unix.Client] or [Libtmux_eio.Client] to acquire\n or mutate state.\n\n Retaining any entity retains its complete snapshot graph. Copy scalar\n summaries when captured relationships are no longer needed. Targets omit the\n graph but remain restricted to their original {!Source.t}.\n\n {1 Typical flow}\n\n Capture explicitly, traverse {!Session.window_links} and {!Window.panes},\n filter with [Seq.filter] or {!Query.matching}, establish cardinality with\n {!Query.exactly_one}, then submit a command with a bound target.\n\n The core depends only on the standard library. Its abstract observations are\n safe to share; live clients and subscriptions belong to their backend.\n\n See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md}graph\n guide} for window links and the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} for native predicates and typed expressions. "],"declarations":[{"kind":"module","text":"","source":{"file":"lib/libtmux.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"doc":{"summary":"Native captured values, typed queries and explicit command descriptions.","body":"A {!Snapshot.t} owns immutable observations. Entity accessors and query evaluation perform no I/O, preserve captured order and remain usable after client closure. Use `Libtmux_unix.Client` or `Libtmux_eio.Client` to acquire or mutate state.\n\nRetaining any entity retains its complete snapshot graph. Copy scalar summaries when captured relationships are no longer needed. Targets omit the graph but remain restricted to their original {!Source.t}.\n\n## Typical flow\n\nCapture explicitly, traverse {!Session.window_links} and {!Window.panes}, filter with `Seq.filter` or {!Query.matching}, establish cardinality with {!Query.exactly_one}, then submit a command with a bound target.\n\nThe core depends only on the standard library. Its abstract observations are safe to share; live clients and subscriptions belong to their backend.\n\nSee the [graph guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md) for window links and the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) for native predicates and typed expressions."},"slug":"libtmux"},{"id":"Libtmux.Captured_text","publicId":"Libtmux.Captured_text","qualifiedName":"Libtmux.Captured_text","name":"Captured_text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Captured_text : sig\n type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. *)\nend","source":{"file":"lib/libtmux.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-captured_text"},{"id":"Libtmux.Captured_text.t","publicId":"Libtmux.Captured_text.t","qualifiedName":"Libtmux.Captured_text.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":713,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. "],"declarations":[{"kind":"struct","text":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":713,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Captured_text","doc":{"summary":"Ordinary rendered rows captured over an interval. This value has no implied relationship to a subscription cursor."},"signatures":[{"raw":"type t =\n {\n bytes: string ;\n source: Source.t ;\n pane: Pane.Id.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-captured_text-t"},{"id":"Libtmux.Captured_text.t.bytes","publicId":"Libtmux.Captured_text.t.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":714,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string;","source":{"file":"lib/libtmux.mli","line":714,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Captured_text.t","type":"string","qualifiedName":"Libtmux.Captured_text.bytes","slug":"libtmux-captured_text-t-bytes"},{"id":"Libtmux.Captured_text.t.finished_at_ns","publicId":"Libtmux.Captured_text.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":718,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":718,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.finished_at_ns","slug":"libtmux-captured_text-t-finished_at_ns"},{"id":"Libtmux.Captured_text.t.pane","publicId":"Libtmux.Captured_text.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":716,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":716,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Captured_text.t","type":"Pane.Id.t","qualifiedName":"Libtmux.Captured_text.pane","slug":"libtmux-captured_text-t-pane"},{"id":"Libtmux.Captured_text.t.source","publicId":"Libtmux.Captured_text.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":715,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":715,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Captured_text.t","type":"Source.t","qualifiedName":"Libtmux.Captured_text.source","slug":"libtmux-captured_text-t-source"},{"id":"Libtmux.Captured_text.t.started_at_ns","publicId":"Libtmux.Captured_text.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":717,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":717,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.started_at_ns","slug":"libtmux-captured_text-t-started_at_ns"},{"id":"Libtmux.Cardinality","publicId":"Libtmux.Cardinality","qualifiedName":"Libtmux.Cardinality","name":"Cardinality","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":685,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cardinality : sig\n type error = No_match | Multiple_matches of { at_least : int }\n\n val pp_error : Format.formatter -> error -> unit\nend","source":{"file":"lib/libtmux.mli","line":685,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-cardinality"},{"id":"Libtmux.Cardinality.error","publicId":"Libtmux.Cardinality.error","qualifiedName":"Libtmux.Cardinality.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error = No_match | Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"type error =\n | No_match \n | Multiple_matches of {\n at_least: int } ","params":[]}],"slug":"libtmux-cardinality-error"},{"id":"Libtmux.Cardinality.error.Multiple_matches","publicId":"Libtmux.Cardinality.error.Multiple_matches","name":"Multiple_matches","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Cardinality.error","variant":"struct","qualifiedName":"Libtmux.Cardinality.Multiple_matches","slug":"libtmux-cardinality-error-multiple_matches"},{"id":"Libtmux.Cardinality.error.Multiple_matches.at_least","publicId":"Libtmux.Cardinality.error.Multiple_matches.at_least","name":"at_least","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"at_least : int","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Cardinality.error.Multiple_matches","type":"int","qualifiedName":"Libtmux.Cardinality.at_least","slug":"libtmux-cardinality-error-multiple_matches-at_least"},{"id":"Libtmux.Cardinality.error.No_match","publicId":"Libtmux.Cardinality.error.No_match","name":"No_match","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"No_match","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Cardinality.error","variant":"unit","qualifiedName":"Libtmux.Cardinality.No_match","slug":"libtmux-cardinality-error-no_match"},{"id":"Libtmux.Cardinality.pp_error","publicId":"Libtmux.Cardinality.pp_error","qualifiedName":"Libtmux.Cardinality.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":688,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"lib/libtmux.mli","line":688,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux-cardinality-pp_error"},{"id":"Libtmux.Client_name","publicId":"Libtmux.Client_name","qualifiedName":"Libtmux.Client_name","name":"Client_name","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Client_name : sig\n type t\n (** A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. *)\n\n val source : t -> Source.t\n val to_string : t -> string\nend","source":{"file":"lib/libtmux.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-client_name"},{"id":"Libtmux.Client_name.source","publicId":"Libtmux.Client_name.source","qualifiedName":"Libtmux.Client_name.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_name-source"},{"id":"Libtmux.Client_name.t","publicId":"Libtmux.Client_name.t","qualifiedName":"Libtmux.Client_name.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_name","doc":{"summary":"A name in one connection generation, with current-name semantics. It does not identify a stable client incarnation; tmux may reuse client names."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_name-t"},{"id":"Libtmux.Client_name.to_string","publicId":"Libtmux.Client_name.to_string","qualifiedName":"Libtmux.Client_name.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_name-to_string"},{"id":"Libtmux.Client_observation","publicId":"Libtmux.Client_observation","qualifiedName":"Libtmux.Client_observation","name":"Client_observation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"and Client_observation : sig\n type t\n\n module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end\n\n val name : t -> string\n val pid : t -> int\n val width : t -> int\n\n val height : t -> int option\n (** No height is reported until the client has a started terminal. *)\n\n val control_mode : t -> bool\n val source : t -> Source.t\n\n val current_name : t -> Client_name.t\n (** Address whichever client has this name when a command executes. *)\n\n val session : t -> Session.t option\n (** [None] means the captured client has no attached session. *)\n\n val same_observation : t -> t -> bool\n (** Client names may be reused. No cross-snapshot entity equality is offered.\n *)\nend","source":{"file":"lib/libtmux.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-client_observation"},{"id":"Libtmux.Client_observation.Fields","publicId":"Libtmux.Client_observation.Fields","qualifiedName":"Libtmux.Client_observation.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":368,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":368,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-fields"},{"id":"Libtmux.Client_observation.Fields.control_mode","publicId":"Libtmux.Client_observation.Fields.control_mode","qualifiedName":"Libtmux.Client_observation.Fields.control_mode","name":"control_mode","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val control_mode : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val control_mode : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-client_observation-fields-control_mode"},{"id":"Libtmux.Client_observation.Fields.name","publicId":"Libtmux.Client_observation.Fields.name","qualifiedName":"Libtmux.Client_observation.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":369,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":369,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-client_observation-fields-name"},{"id":"Libtmux.Client_observation.Fields.pid","publicId":"Libtmux.Client_observation.Fields.pid","qualifiedName":"Libtmux.Client_observation.Fields.pid","name":"pid","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pid : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val pid : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-pid"},{"id":"Libtmux.Client_observation.Fields.width","publicId":"Libtmux.Client_observation.Fields.width","qualifiedName":"Libtmux.Client_observation.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":371,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":371,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-width"},{"id":"Libtmux.Client_observation.Relations","publicId":"Libtmux.Client_observation.Relations","qualifiedName":"Libtmux.Client_observation.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":375,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end","source":{"file":"lib/libtmux.mli","line":375,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-relations"},{"id":"Libtmux.Client_observation.Relations.session","publicId":"Libtmux.Client_observation.Relations.session","qualifiedName":"Libtmux.Client_observation.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":376,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.Optional.t","source":{"file":"lib/libtmux.mli","line":376,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.Optional.t","params":[],"returns":"(t, Session.t) Relation.Optional.t"}],"slug":"libtmux-client_observation-relations-session"},{"id":"Libtmux.Client_observation.control_mode","publicId":"Libtmux.Client_observation.control_mode","qualifiedName":"Libtmux.Client_observation.control_mode","name":"control_mode","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":386,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val control_mode : t -> bool","source":{"file":"lib/libtmux.mli","line":386,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val control_mode : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-control_mode"},{"id":"Libtmux.Client_observation.current_name","publicId":"Libtmux.Client_observation.current_name","qualifiedName":"Libtmux.Client_observation.current_name","name":"current_name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":389,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Address whichever client has this name when a command executes. "],"declarations":[{"kind":"function","text":"val current_name : t -> Client_name.t","source":{"file":"lib/libtmux.mli","line":389,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Address whichever client has this name when a command executes."},"signatures":[{"raw":"val current_name : t -> Client_name.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_name.t"}],"slug":"libtmux-client_observation-current_name"},{"id":"Libtmux.Client_observation.height","publicId":"Libtmux.Client_observation.height","qualifiedName":"Libtmux.Client_observation.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":383,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" No height is reported until the client has a started terminal. "],"declarations":[{"kind":"function","text":"val height : t -> int option","source":{"file":"lib/libtmux.mli","line":383,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"No height is reported until the client has a started terminal."},"signatures":[{"raw":"val height : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-client_observation-height"},{"id":"Libtmux.Client_observation.name","publicId":"Libtmux.Client_observation.name","qualifiedName":"Libtmux.Client_observation.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":379,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":379,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_observation-name"},{"id":"Libtmux.Client_observation.pid","publicId":"Libtmux.Client_observation.pid","qualifiedName":"Libtmux.Client_observation.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":380,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pid : t -> int","source":{"file":"lib/libtmux.mli","line":380,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-pid"},{"id":"Libtmux.Client_observation.same_observation","publicId":"Libtmux.Client_observation.same_observation","qualifiedName":"Libtmux.Client_observation.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":395,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Client names may be reused. No cross-snapshot entity equality is offered.\n "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":395,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Client names may be reused. No cross-snapshot entity equality is offered."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-same_observation"},{"id":"Libtmux.Client_observation.session","publicId":"Libtmux.Client_observation.session","qualifiedName":"Libtmux.Client_observation.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":392,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [None] means the captured client has no attached session. "],"declarations":[{"kind":"function","text":"val session : t -> Session.t option","source":{"file":"lib/libtmux.mli","line":392,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"`None` means the captured client has no attached session."},"signatures":[{"raw":"val session : t -> Session.t option","params":[{"name":"arg1","type":"t"}],"returns":"Session.t option"}],"slug":"libtmux-client_observation-session"},{"id":"Libtmux.Client_observation.source","publicId":"Libtmux.Client_observation.source","qualifiedName":"Libtmux.Client_observation.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_observation-source"},{"id":"Libtmux.Client_observation.t","publicId":"Libtmux.Client_observation.t","qualifiedName":"Libtmux.Client_observation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":366,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":366,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_observation-t"},{"id":"Libtmux.Client_observation.width","publicId":"Libtmux.Client_observation.width","qualifiedName":"Libtmux.Client_observation.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-width"},{"id":"Libtmux.Command","publicId":"Libtmux.Command","qualifiedName":"Libtmux.Command","name":"Command","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":883,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Typed descriptions of explicit acquisition and mutation operations.\n Construction performs no I/O; a backend validates and admits the command. "],"declarations":[{"kind":"module","text":"module Command : sig\n type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }\n\n type 'a t\n (** An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. *)\n\n type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view\n\n val view : 'a t -> 'a view\n (** Read-only inspection for transport adapters. *)\nend","source":{"file":"lib/libtmux.mli","line":883,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Typed descriptions of explicit acquisition and mutation operations. Construction performs no I/O; a backend validates and admits the command."},"slug":"libtmux-command"},{"id":"Libtmux.Command.mutation","publicId":"Libtmux.Command.mutation","qualifiedName":"Libtmux.Command.mutation","name":"mutation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":884,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":884,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type mutation =\n | Kill_session of Session.target \n | Kill_window of Window.target \n | Kill_pane of Pane.target \n | Select_window_at of Session.target * int \n | Unlink_window_at of\n {\n session: Session.target ;\n index: int ;\n allow_kill: bool } \n | Link_window of\n {\n window: Window.target ;\n session: Session.target ;\n index: int } \n | Move_window_at of\n {\n from_session: Session.target ;\n from_index: int ;\n session: Session.target ;\n index: int } \n | Select_pane of Pane.target \n | Set_pane_title of Pane.target * string \n | Resize_pane of\n {\n pane: Pane.target ;\n width: int option ;\n height: int option } \n | Resize_window of\n {\n window: Window.target ;\n width: int option ;\n height: int option } \n | Select_layout of Window.target * Layout.t \n | Cycle_layout of Window.target * [ `Next | `Previous ] \n | Move_pane of\n {\n pane: Pane.target ;\n beside: Pane.target ;\n direction: Geometry.direction ;\n size: Geometry.size option } \n | Swap_panes of Pane.target * Pane.target \n | Rotate_panes of Window.target * [ `Forward | `Backward ] \n | Zoom_pane of Pane.target \n | Respawn_pane of {\n pane: Pane.target ;\n spawn: Spawn.t ;\n kill_running: bool } \n | Clear_history of Pane.target \n | Set_environment of\n {\n scope: Environment.scope ;\n name: string ;\n value: string ;\n hidden: bool } \n | Unset_environment of Environment.scope * string \n | Remove_environment of Environment.scope * string \n | Set_option of\n {\n scope: Options.scope ;\n name: string ;\n index: int option ;\n value: Options.scalar ;\n append: bool } \n | Unset_option of Options.scope * string * int option \n | Clear_option_array of Options.scope * string \n | Set_hook of\n {\n scope: Options.scope ;\n name: string ;\n index: int option ;\n commands: Hook.command list ;\n append: bool } \n | Remove_hook of Options.scope * string * int option \n | Run_hook of Options.scope * string \n | Switch_client_at of\n {\n client: Client_name.t ;\n session: Session.target ;\n update_environment: bool } \n | Request_detach_client_at of Client_name.t \n | Refresh_client_at of Client_name.t * bool \n | Resize_control_client_at of\n {\n client: Client_name.t ;\n width: int ;\n height: int } ","params":[]}],"slug":"libtmux-command-mutation"},{"id":"Libtmux.Command.mutation.Clear_history","publicId":"Libtmux.Command.mutation.Clear_history","name":"Clear_history","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":933,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_history of Pane.target","source":{"file":"lib/libtmux.mli","line":933,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_history","slug":"libtmux-command-mutation-clear_history"},{"id":"Libtmux.Command.mutation.Clear_option_array","publicId":"Libtmux.Command.mutation.Clear_option_array","name":"Clear_option_array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":950,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_option_array of Options.scope * string","source":{"file":"lib/libtmux.mli","line":950,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_option_array","slug":"libtmux-command-mutation-clear_option_array"},{"id":"Libtmux.Command.mutation.Cycle_layout","publicId":"Libtmux.Command.mutation.Cycle_layout","name":"Cycle_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":918,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cycle_layout of Window.target * [ `Next | `Previous ]","source":{"file":"lib/libtmux.mli","line":918,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Cycle_layout","slug":"libtmux-command-mutation-cycle_layout"},{"id":"Libtmux.Command.mutation.Kill_pane","publicId":"Libtmux.Command.mutation.Kill_pane","name":"Kill_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":887,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":887,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_pane","slug":"libtmux-command-mutation-kill_pane"},{"id":"Libtmux.Command.mutation.Kill_session","publicId":"Libtmux.Command.mutation.Kill_session","name":"Kill_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":885,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_session of Session.target","source":{"file":"lib/libtmux.mli","line":885,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_session","slug":"libtmux-command-mutation-kill_session"},{"id":"Libtmux.Command.mutation.Kill_window","publicId":"Libtmux.Command.mutation.Kill_window","name":"Kill_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":886,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_window of Window.target","source":{"file":"lib/libtmux.mli","line":886,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_window","slug":"libtmux-command-mutation-kill_window"},{"id":"Libtmux.Command.mutation.Link_window","publicId":"Libtmux.Command.mutation.Link_window","name":"Link_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":894,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":894,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Link_window","slug":"libtmux-command-mutation-link_window"},{"id":"Libtmux.Command.mutation.Link_window.index","publicId":"Libtmux.Command.mutation.Link_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":897,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":897,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-link_window-index"},{"id":"Libtmux.Command.mutation.Link_window.session","publicId":"Libtmux.Command.mutation.Link_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":896,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":896,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-link_window-session"},{"id":"Libtmux.Command.mutation.Link_window.window","publicId":"Libtmux.Command.mutation.Link_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":895,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":895,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-link_window-window"},{"id":"Libtmux.Command.mutation.Move_pane","publicId":"Libtmux.Command.mutation.Move_pane","name":"Move_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":919,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }","source":{"file":"lib/libtmux.mli","line":919,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_pane","slug":"libtmux-command-mutation-move_pane"},{"id":"Libtmux.Command.mutation.Move_pane.beside","publicId":"Libtmux.Command.mutation.Move_pane.beside","name":"beside","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":921,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"beside : Pane.target;","source":{"file":"lib/libtmux.mli","line":921,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.beside","slug":"libtmux-command-mutation-move_pane-beside"},{"id":"Libtmux.Command.mutation.Move_pane.direction","publicId":"Libtmux.Command.mutation.Move_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":922,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":922,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-mutation-move_pane-direction"},{"id":"Libtmux.Command.mutation.Move_pane.pane","publicId":"Libtmux.Command.mutation.Move_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":920,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":920,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-move_pane-pane"},{"id":"Libtmux.Command.mutation.Move_pane.size","publicId":"Libtmux.Command.mutation.Move_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":923,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":923,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-mutation-move_pane-size"},{"id":"Libtmux.Command.mutation.Move_window_at","publicId":"Libtmux.Command.mutation.Move_window_at","name":"Move_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":899,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":899,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_window_at","slug":"libtmux-command-mutation-move_window_at"},{"id":"Libtmux.Command.mutation.Move_window_at.from_index","publicId":"Libtmux.Command.mutation.Move_window_at.from_index","name":"from_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":901,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_index : int;","source":{"file":"lib/libtmux.mli","line":901,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.from_index","slug":"libtmux-command-mutation-move_window_at-from_index"},{"id":"Libtmux.Command.mutation.Move_window_at.from_session","publicId":"Libtmux.Command.mutation.Move_window_at.from_session","name":"from_session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":900,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_session : Session.target;","source":{"file":"lib/libtmux.mli","line":900,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.from_session","slug":"libtmux-command-mutation-move_window_at-from_session"},{"id":"Libtmux.Command.mutation.Move_window_at.index","publicId":"Libtmux.Command.mutation.Move_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":903,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":903,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-move_window_at-index"},{"id":"Libtmux.Command.mutation.Move_window_at.session","publicId":"Libtmux.Command.mutation.Move_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":902,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":902,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-move_window_at-session"},{"id":"Libtmux.Command.mutation.Refresh_client_at","publicId":"Libtmux.Command.mutation.Refresh_client_at","name":"Refresh_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":966,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Refresh_client_at of Client_name.t * bool","source":{"file":"lib/libtmux.mli","line":966,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Refresh_client_at","slug":"libtmux-command-mutation-refresh_client_at"},{"id":"Libtmux.Command.mutation.Remove_environment","publicId":"Libtmux.Command.mutation.Remove_environment","name":"Remove_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":941,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":941,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_environment","slug":"libtmux-command-mutation-remove_environment"},{"id":"Libtmux.Command.mutation.Remove_hook","publicId":"Libtmux.Command.mutation.Remove_hook","name":"Remove_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":958,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_hook of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":958,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_hook","slug":"libtmux-command-mutation-remove_hook"},{"id":"Libtmux.Command.mutation.Request_detach_client_at","publicId":"Libtmux.Command.mutation.Request_detach_client_at","name":"Request_detach_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":965,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Request_detach_client_at of Client_name.t","source":{"file":"lib/libtmux.mli","line":965,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Request_detach_client_at","slug":"libtmux-command-mutation-request_detach_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at","publicId":"Libtmux.Command.mutation.Resize_control_client_at","name":"Resize_control_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":967,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":967,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_control_client_at","slug":"libtmux-command-mutation-resize_control_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.client","publicId":"Libtmux.Command.mutation.Resize_control_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":968,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":968,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-resize_control_client_at-client"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.height","publicId":"Libtmux.Command.mutation.Resize_control_client_at.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":970,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":970,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_control_client_at-height"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.width","publicId":"Libtmux.Command.mutation.Resize_control_client_at.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":969,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":969,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_control_client_at-width"},{"id":"Libtmux.Command.mutation.Resize_pane","publicId":"Libtmux.Command.mutation.Resize_pane","name":"Resize_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":907,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":907,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_pane","slug":"libtmux-command-mutation-resize_pane"},{"id":"Libtmux.Command.mutation.Resize_pane.height","publicId":"Libtmux.Command.mutation.Resize_pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":910,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":910,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_pane-height"},{"id":"Libtmux.Command.mutation.Resize_pane.pane","publicId":"Libtmux.Command.mutation.Resize_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":908,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":908,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-resize_pane-pane"},{"id":"Libtmux.Command.mutation.Resize_pane.width","publicId":"Libtmux.Command.mutation.Resize_pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":909,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":909,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_pane-width"},{"id":"Libtmux.Command.mutation.Resize_window","publicId":"Libtmux.Command.mutation.Resize_window","name":"Resize_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":912,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":912,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_window","slug":"libtmux-command-mutation-resize_window"},{"id":"Libtmux.Command.mutation.Resize_window.height","publicId":"Libtmux.Command.mutation.Resize_window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":915,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":915,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_window-height"},{"id":"Libtmux.Command.mutation.Resize_window.width","publicId":"Libtmux.Command.mutation.Resize_window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":914,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":914,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_window-width"},{"id":"Libtmux.Command.mutation.Resize_window.window","publicId":"Libtmux.Command.mutation.Resize_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":913,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":913,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-resize_window-window"},{"id":"Libtmux.Command.mutation.Respawn_pane","publicId":"Libtmux.Command.mutation.Respawn_pane","name":"Respawn_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":928,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }","source":{"file":"lib/libtmux.mli","line":928,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Respawn_pane","slug":"libtmux-command-mutation-respawn_pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.kill_running","publicId":"Libtmux.Command.mutation.Respawn_pane.kill_running","name":"kill_running","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":931,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kill_running : bool;","source":{"file":"lib/libtmux.mli","line":931,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"bool","qualifiedName":"Libtmux.Command.kill_running","slug":"libtmux-command-mutation-respawn_pane-kill_running"},{"id":"Libtmux.Command.mutation.Respawn_pane.pane","publicId":"Libtmux.Command.mutation.Respawn_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":929,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":929,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-respawn_pane-pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.spawn","publicId":"Libtmux.Command.mutation.Respawn_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":930,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":930,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-mutation-respawn_pane-spawn"},{"id":"Libtmux.Command.mutation.Rotate_panes","publicId":"Libtmux.Command.mutation.Rotate_panes","name":"Rotate_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":926,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rotate_panes of Window.target * [ `Forward | `Backward ]","source":{"file":"lib/libtmux.mli","line":926,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Rotate_panes","slug":"libtmux-command-mutation-rotate_panes"},{"id":"Libtmux.Command.mutation.Run_hook","publicId":"Libtmux.Command.mutation.Run_hook","name":"Run_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":959,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Run_hook of Options.scope * string","source":{"file":"lib/libtmux.mli","line":959,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Run_hook","slug":"libtmux-command-mutation-run_hook"},{"id":"Libtmux.Command.mutation.Select_layout","publicId":"Libtmux.Command.mutation.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":917,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of Window.target * Layout.t","source":{"file":"lib/libtmux.mli","line":917,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_layout","slug":"libtmux-command-mutation-select_layout"},{"id":"Libtmux.Command.mutation.Select_pane","publicId":"Libtmux.Command.mutation.Select_pane","name":"Select_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":905,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":905,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_pane","slug":"libtmux-command-mutation-select_pane"},{"id":"Libtmux.Command.mutation.Select_window_at","publicId":"Libtmux.Command.mutation.Select_window_at","name":"Select_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":888,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_window_at of Session.target * int","source":{"file":"lib/libtmux.mli","line":888,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_window_at","slug":"libtmux-command-mutation-select_window_at"},{"id":"Libtmux.Command.mutation.Set_environment","publicId":"Libtmux.Command.mutation.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":934,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }","source":{"file":"lib/libtmux.mli","line":934,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_environment","slug":"libtmux-command-mutation-set_environment"},{"id":"Libtmux.Command.mutation.Set_environment.hidden","publicId":"Libtmux.Command.mutation.Set_environment.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":938,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":938,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"bool","qualifiedName":"Libtmux.Command.hidden","slug":"libtmux-command-mutation-set_environment-hidden"},{"id":"Libtmux.Command.mutation.Set_environment.name","publicId":"Libtmux.Command.mutation.Set_environment.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":936,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":936,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_environment-name"},{"id":"Libtmux.Command.mutation.Set_environment.scope","publicId":"Libtmux.Command.mutation.Set_environment.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":935,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Environment.scope;","source":{"file":"lib/libtmux.mli","line":935,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"Environment.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_environment-scope"},{"id":"Libtmux.Command.mutation.Set_environment.value","publicId":"Libtmux.Command.mutation.Set_environment.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":937,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : string;","source":{"file":"lib/libtmux.mli","line":937,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_environment-value"},{"id":"Libtmux.Command.mutation.Set_hook","publicId":"Libtmux.Command.mutation.Set_hook","name":"Set_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":951,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":951,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_hook","slug":"libtmux-command-mutation-set_hook"},{"id":"Libtmux.Command.mutation.Set_hook.append","publicId":"Libtmux.Command.mutation.Set_hook.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":956,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":956,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_hook-append"},{"id":"Libtmux.Command.mutation.Set_hook.commands","publicId":"Libtmux.Command.mutation.Set_hook.commands","name":"commands","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":955,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"commands : Hook.command list;","source":{"file":"lib/libtmux.mli","line":955,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Hook.command list","qualifiedName":"Libtmux.Command.commands","slug":"libtmux-command-mutation-set_hook-commands"},{"id":"Libtmux.Command.mutation.Set_hook.index","publicId":"Libtmux.Command.mutation.Set_hook.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":954,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":954,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_hook-index"},{"id":"Libtmux.Command.mutation.Set_hook.name","publicId":"Libtmux.Command.mutation.Set_hook.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":953,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":953,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_hook-name"},{"id":"Libtmux.Command.mutation.Set_hook.scope","publicId":"Libtmux.Command.mutation.Set_hook.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":952,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":952,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_hook-scope"},{"id":"Libtmux.Command.mutation.Set_option","publicId":"Libtmux.Command.mutation.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":942,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":942,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_option","slug":"libtmux-command-mutation-set_option"},{"id":"Libtmux.Command.mutation.Set_option.append","publicId":"Libtmux.Command.mutation.Set_option.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":947,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":947,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_option-append"},{"id":"Libtmux.Command.mutation.Set_option.index","publicId":"Libtmux.Command.mutation.Set_option.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":945,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":945,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_option-index"},{"id":"Libtmux.Command.mutation.Set_option.name","publicId":"Libtmux.Command.mutation.Set_option.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":944,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":944,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_option-name"},{"id":"Libtmux.Command.mutation.Set_option.scope","publicId":"Libtmux.Command.mutation.Set_option.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":943,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":943,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_option-scope"},{"id":"Libtmux.Command.mutation.Set_option.value","publicId":"Libtmux.Command.mutation.Set_option.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":946,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Options.scalar;","source":{"file":"lib/libtmux.mli","line":946,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scalar","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_option-value"},{"id":"Libtmux.Command.mutation.Set_pane_title","publicId":"Libtmux.Command.mutation.Set_pane_title","name":"Set_pane_title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":906,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_pane_title of Pane.target * string","source":{"file":"lib/libtmux.mli","line":906,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Set_pane_title","slug":"libtmux-command-mutation-set_pane_title"},{"id":"Libtmux.Command.mutation.Swap_panes","publicId":"Libtmux.Command.mutation.Swap_panes","name":"Swap_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":925,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Swap_panes of Pane.target * Pane.target","source":{"file":"lib/libtmux.mli","line":925,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Swap_panes","slug":"libtmux-command-mutation-swap_panes"},{"id":"Libtmux.Command.mutation.Switch_client_at","publicId":"Libtmux.Command.mutation.Switch_client_at","name":"Switch_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":960,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }","source":{"file":"lib/libtmux.mli","line":960,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Switch_client_at","slug":"libtmux-command-mutation-switch_client_at"},{"id":"Libtmux.Command.mutation.Switch_client_at.client","publicId":"Libtmux.Command.mutation.Switch_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":961,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":961,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-switch_client_at-client"},{"id":"Libtmux.Command.mutation.Switch_client_at.session","publicId":"Libtmux.Command.mutation.Switch_client_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":962,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":962,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-switch_client_at-session"},{"id":"Libtmux.Command.mutation.Switch_client_at.update_environment","publicId":"Libtmux.Command.mutation.Switch_client_at.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":963,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"update_environment : bool;","source":{"file":"lib/libtmux.mli","line":963,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"bool","qualifiedName":"Libtmux.Command.update_environment","slug":"libtmux-command-mutation-switch_client_at-update_environment"},{"id":"Libtmux.Command.mutation.Unlink_window_at","publicId":"Libtmux.Command.mutation.Unlink_window_at","name":"Unlink_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":889,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }","source":{"file":"lib/libtmux.mli","line":889,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Unlink_window_at","slug":"libtmux-command-mutation-unlink_window_at"},{"id":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","publicId":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","name":"allow_kill","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":892,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"allow_kill : bool;","source":{"file":"lib/libtmux.mli","line":892,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"bool","qualifiedName":"Libtmux.Command.allow_kill","slug":"libtmux-command-mutation-unlink_window_at-allow_kill"},{"id":"Libtmux.Command.mutation.Unlink_window_at.index","publicId":"Libtmux.Command.mutation.Unlink_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":891,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":891,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-unlink_window_at-index"},{"id":"Libtmux.Command.mutation.Unlink_window_at.session","publicId":"Libtmux.Command.mutation.Unlink_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":890,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":890,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-unlink_window_at-session"},{"id":"Libtmux.Command.mutation.Unset_environment","publicId":"Libtmux.Command.mutation.Unset_environment","name":"Unset_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":940,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":940,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_environment","slug":"libtmux-command-mutation-unset_environment"},{"id":"Libtmux.Command.mutation.Unset_option","publicId":"Libtmux.Command.mutation.Unset_option","name":"Unset_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":949,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_option of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":949,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_option","slug":"libtmux-command-mutation-unset_option"},{"id":"Libtmux.Command.mutation.Zoom_pane","publicId":"Libtmux.Command.mutation.Zoom_pane","name":"Zoom_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":927,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Zoom_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":927,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Zoom_pane","slug":"libtmux-command-mutation-zoom_pane"},{"id":"Libtmux.Command.t","publicId":"Libtmux.Command.t","qualifiedName":"Libtmux.Command.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":973,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. "],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":973,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command","doc":{"summary":"An immutable description, validated by a backend before admission. Constructing or inspecting it performs no I/O."},"signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-command-t"},{"id":"Libtmux.Command.view","publicId":"Libtmux.Command.view","qualifiedName":"Libtmux.Command.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read-only inspection for transport adapters. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command","doc":{"summary":"Read-only inspection for transport adapters."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-command-view"},{"id":"Libtmux.Command.view:type","publicId":"Libtmux.Command.view:type","qualifiedName":"Libtmux.Command.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":977,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":977,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type _ view =\n | Capture: Snapshot.t view \n | Capture_text: {\n pane: Pane.t ;\n start: int ;\n end_: int ;\n scratch_dir: string } -> Captured_text.t view \n | Rename_window: Window.target * string -> unit view \n | Rename_session: Session.target * string -> unit view \n | Send_text: Pane.target * string -> unit view \n | Send_keys: Pane.target * Key.t list -> unit view \n | Wait_for: string -> unit view \n | Signal: string -> unit view \n | Capture_environment: Environment.scope * bool -> Environment.t view \n | Capture_options: Options.scope * bool -> Options.t view \n | Read_option: Options.scope * string * bool -> Options.value option view \n | Capture_hooks: Options.scope -> Options.t view \n | Read_hook: Options.scope * string * bool -> Options.value option view \n | Mutate: mutation -> unit view \n | Create_session:\n {\n name: string ;\n window_name: string option ;\n width: int ;\n height: int ;\n spawn: Spawn.t } -> Created.t view \n | Create_window:\n {\n session: Session.target ;\n index: int option ;\n name: string option ;\n spawn: Spawn.t } -> Created.t view \n | Split_pane:\n {\n pane: Pane.target ;\n direction: Geometry.direction ;\n size: Geometry.size option ;\n spawn: Spawn.t } -> Created.t view \n | Break_pane:\n {\n pane: Pane.target ;\n session: Session.target ;\n index: int ;\n name: string option } -> Created.t view ","params":[]}],"slug":"libtmux-command-view-type"},{"id":"Libtmux.Command.view:type.Break_pane","publicId":"Libtmux.Command.view:type.Break_pane","name":"Break_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1020,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1020,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Break_pane","slug":"libtmux-command-view-type-break_pane"},{"id":"Libtmux.Command.view:type.Break_pane.index","publicId":"Libtmux.Command.view:type.Break_pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1023,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":1023,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-break_pane-index"},{"id":"Libtmux.Command.view:type.Break_pane.name","publicId":"Libtmux.Command.view:type.Break_pane.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1024,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1024,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-break_pane-name"},{"id":"Libtmux.Command.view:type.Break_pane.pane","publicId":"Libtmux.Command.view:type.Break_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1021,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":1021,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-break_pane-pane"},{"id":"Libtmux.Command.view:type.Break_pane.session","publicId":"Libtmux.Command.view:type.Break_pane.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1022,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1022,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-break_pane-session"},{"id":"Libtmux.Command.view:type.Capture","publicId":"Libtmux.Command.view:type.Capture","name":"Capture","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":978,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture : Snapshot.t view","source":{"file":"lib/libtmux.mli","line":978,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"unit","qualifiedName":"Libtmux.Command.Capture","slug":"libtmux-command-view-type-capture"},{"id":"Libtmux.Command.view:type.Capture_environment","publicId":"Libtmux.Command.view:type.Capture_environment","name":"Capture_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":992,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_environment : Environment.scope * bool -> Environment.t view","source":{"file":"lib/libtmux.mli","line":992,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_environment","slug":"libtmux-command-view-type-capture_environment"},{"id":"Libtmux.Command.view:type.Capture_hooks","publicId":"Libtmux.Command.view:type.Capture_hooks","name":"Capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":995,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_hooks : Options.scope -> Options.t view","source":{"file":"lib/libtmux.mli","line":995,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_hooks","slug":"libtmux-command-view-type-capture_hooks"},{"id":"Libtmux.Command.view:type.Capture_options","publicId":"Libtmux.Command.view:type.Capture_options","name":"Capture_options","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":993,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_options : Options.scope * bool -> Options.t view","source":{"file":"lib/libtmux.mli","line":993,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_options","slug":"libtmux-command-view-type-capture_options"},{"id":"Libtmux.Command.view:type.Capture_text","publicId":"Libtmux.Command.view:type.Capture_text","name":"Capture_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":979,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view","source":{"file":"lib/libtmux.mli","line":979,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Capture_text","slug":"libtmux-command-view-type-capture_text"},{"id":"Libtmux.Command.view:type.Capture_text.end_","publicId":"Libtmux.Command.view:type.Capture_text.end_","name":"end_","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":982,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"end_ : int;","source":{"file":"lib/libtmux.mli","line":982,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.end_","slug":"libtmux-command-view-type-capture_text-end_"},{"id":"Libtmux.Command.view:type.Capture_text.pane","publicId":"Libtmux.Command.view:type.Capture_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":980,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.t;","source":{"file":"lib/libtmux.mli","line":980,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"Pane.t","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-capture_text-pane"},{"id":"Libtmux.Command.view:type.Capture_text.scratch_dir","publicId":"Libtmux.Command.view:type.Capture_text.scratch_dir","name":"scratch_dir","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":983,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scratch_dir : string;","source":{"file":"lib/libtmux.mli","line":983,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"string","qualifiedName":"Libtmux.Command.scratch_dir","slug":"libtmux-command-view-type-capture_text-scratch_dir"},{"id":"Libtmux.Command.view:type.Capture_text.start","publicId":"Libtmux.Command.view:type.Capture_text.start","name":"start","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":981,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"start : int;","source":{"file":"lib/libtmux.mli","line":981,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.start","slug":"libtmux-command-view-type-capture_text-start"},{"id":"Libtmux.Command.view:type.Create_session","publicId":"Libtmux.Command.view:type.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":998,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":998,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_session","slug":"libtmux-command-view-type-create_session"},{"id":"Libtmux.Command.view:type.Create_session.height","publicId":"Libtmux.Command.view:type.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1002,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":1002,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-view-type-create_session-height"},{"id":"Libtmux.Command.view:type.Create_session.name","publicId":"Libtmux.Command.view:type.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":999,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":999,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_session-name"},{"id":"Libtmux.Command.view:type.Create_session.spawn","publicId":"Libtmux.Command.view:type.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1003,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1003,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_session-spawn"},{"id":"Libtmux.Command.view:type.Create_session.width","publicId":"Libtmux.Command.view:type.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1001,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":1001,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-view-type-create_session-width"},{"id":"Libtmux.Command.view:type.Create_session.window_name","publicId":"Libtmux.Command.view:type.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1000,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string option;","source":{"file":"lib/libtmux.mli","line":1000,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string option","qualifiedName":"Libtmux.Command.window_name","slug":"libtmux-command-view-type-create_session-window_name"},{"id":"Libtmux.Command.view:type.Create_window","publicId":"Libtmux.Command.view:type.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1006,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1006,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_window","slug":"libtmux-command-view-type-create_window"},{"id":"Libtmux.Command.view:type.Create_window.index","publicId":"Libtmux.Command.view:type.Create_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1008,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":1008,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-create_window-index"},{"id":"Libtmux.Command.view:type.Create_window.name","publicId":"Libtmux.Command.view:type.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1009,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1009,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_window-name"},{"id":"Libtmux.Command.view:type.Create_window.session","publicId":"Libtmux.Command.view:type.Create_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1007,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1007,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-create_window-session"},{"id":"Libtmux.Command.view:type.Create_window.spawn","publicId":"Libtmux.Command.view:type.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1010,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1010,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_window-spawn"},{"id":"Libtmux.Command.view:type.Mutate","publicId":"Libtmux.Command.view:type.Mutate","name":"Mutate","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":997,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mutate : mutation -> unit view","source":{"file":"lib/libtmux.mli","line":997,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Mutate","slug":"libtmux-command-view-type-mutate"},{"id":"Libtmux.Command.view:type.Read_hook","publicId":"Libtmux.Command.view:type.Read_hook","name":"Read_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":996,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_hook : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":996,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_hook","slug":"libtmux-command-view-type-read_hook"},{"id":"Libtmux.Command.view:type.Read_option","publicId":"Libtmux.Command.view:type.Read_option","name":"Read_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":994,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_option : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":994,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_option","slug":"libtmux-command-view-type-read_option"},{"id":"Libtmux.Command.view:type.Rename_session","publicId":"Libtmux.Command.view:type.Rename_session","name":"Rename_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":987,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_session : Session.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":987,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_session","slug":"libtmux-command-view-type-rename_session"},{"id":"Libtmux.Command.view:type.Rename_window","publicId":"Libtmux.Command.view:type.Rename_window","name":"Rename_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":986,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_window : Window.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":986,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_window","slug":"libtmux-command-view-type-rename_window"},{"id":"Libtmux.Command.view:type.Send_keys","publicId":"Libtmux.Command.view:type.Send_keys","name":"Send_keys","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":989,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_keys : Pane.target * Key.t list -> unit view","source":{"file":"lib/libtmux.mli","line":989,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_keys","slug":"libtmux-command-view-type-send_keys"},{"id":"Libtmux.Command.view:type.Send_text","publicId":"Libtmux.Command.view:type.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":988,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text : Pane.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":988,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_text","slug":"libtmux-command-view-type-send_text"},{"id":"Libtmux.Command.view:type.Signal","publicId":"Libtmux.Command.view:type.Signal","name":"Signal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":991,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Signal : string -> unit view","source":{"file":"lib/libtmux.mli","line":991,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Signal","slug":"libtmux-command-view-type-signal"},{"id":"Libtmux.Command.view:type.Split_pane","publicId":"Libtmux.Command.view:type.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Split_pane","slug":"libtmux-command-view-type-split_pane"},{"id":"Libtmux.Command.view:type.Split_pane.direction","publicId":"Libtmux.Command.view:type.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1015,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":1015,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-view-type-split_pane-direction"},{"id":"Libtmux.Command.view:type.Split_pane.pane","publicId":"Libtmux.Command.view:type.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1014,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":1014,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-split_pane-pane"},{"id":"Libtmux.Command.view:type.Split_pane.size","publicId":"Libtmux.Command.view:type.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1016,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":1016,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-view-type-split_pane-size"},{"id":"Libtmux.Command.view:type.Split_pane.spawn","publicId":"Libtmux.Command.view:type.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1017,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1017,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-split_pane-spawn"},{"id":"Libtmux.Command.view:type.Wait_for","publicId":"Libtmux.Command.view:type.Wait_for","name":"Wait_for","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":990,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wait_for : string -> unit view","source":{"file":"lib/libtmux.mli","line":990,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Wait_for","slug":"libtmux-command-view-type-wait_for"},{"id":"Libtmux.Created","publicId":"Libtmux.Created","qualifiedName":"Libtmux.Created","name":"Created","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":779,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" IDs reported by a successful creation reply. Only the requested kind is\n newly created; the other fields can describe existing containers. "],"declarations":[{"kind":"module","text":"module Created : sig\n type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }\n (** IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. *)\nend","source":{"file":"lib/libtmux.mli","line":779,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"IDs reported by a successful creation reply. Only the requested kind is newly created; the other fields can describe existing containers."},"slug":"libtmux-created"},{"id":"Libtmux.Created.t","publicId":"Libtmux.Created.t","qualifiedName":"Libtmux.Created.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. "],"declarations":[{"kind":"struct","text":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }","source":{"file":"lib/libtmux.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Created","doc":{"summary":"IDs returned by the creation command, without a second capture. Indexes describe the creation response and may change afterward. Only the resource requested by the command is newly created: splitting a pane does not create the reported session or window."},"signatures":[{"raw":"type t =\n {\n session: Session.target ;\n window: Window.target ;\n pane: Pane.target ;\n window_index: int ;\n pane_index: int }","params":[]}],"slug":"libtmux-created-t"},{"id":"Libtmux.Created.t.pane","publicId":"Libtmux.Created.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":783,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":783,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Created.t","type":"Pane.target","qualifiedName":"Libtmux.Created.pane","slug":"libtmux-created-t-pane"},{"id":"Libtmux.Created.t.pane_index","publicId":"Libtmux.Created.t.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":785,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"lib/libtmux.mli","line":785,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.pane_index","slug":"libtmux-created-t-pane_index"},{"id":"Libtmux.Created.t.session","publicId":"Libtmux.Created.t.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":781,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":781,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Created.t","type":"Session.target","qualifiedName":"Libtmux.Created.session","slug":"libtmux-created-t-session"},{"id":"Libtmux.Created.t.window","publicId":"Libtmux.Created.t.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":782,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":782,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Created.t","type":"Window.target","qualifiedName":"Libtmux.Created.window","slug":"libtmux-created-t-window"},{"id":"Libtmux.Created.t.window_index","publicId":"Libtmux.Created.t.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":784,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"lib/libtmux.mli","line":784,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.window_index","slug":"libtmux-created-t-window_index"},{"id":"Libtmux.Endpoint","publicId":"Libtmux.Endpoint","qualifiedName":"Libtmux.Endpoint","name":"Endpoint","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" An explicit socket description. Constructing an endpoint neither reads the\n environment nor starts a daemon. {!Source.t} adds the observed daemon and\n connection generation. "],"declarations":[{"kind":"module","text":"module Endpoint : sig\n type t\n (** An explicit socket description, independent of the environment. *)\n\n type kind = Named_socket of string | Socket_path of string\n\n val named_socket : string -> t\n (** [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. *)\n\n val socket_path : string -> t\n (** [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. *)\n\n val kind : t -> kind\n\n val equal : t -> t -> bool\n (** Equality compares descriptions, not server instances or resolved paths. *)\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"An explicit socket description. Constructing an endpoint neither reads the environment nor starts a daemon. {!Source.t} adds the observed daemon and connection generation."},"slug":"libtmux-endpoint"},{"id":"Libtmux.Endpoint.equal","publicId":"Libtmux.Endpoint.equal","qualifiedName":"Libtmux.Endpoint.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":47,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Equality compares descriptions, not server instances or resolved paths. "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":47,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"Equality compares descriptions, not server instances or resolved paths."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-endpoint-equal"},{"id":"Libtmux.Endpoint.kind","publicId":"Libtmux.Endpoint.kind","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":45,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : t -> kind","source":{"file":"lib/libtmux.mli","line":45,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val kind : t -> kind","params":[{"name":"arg1","type":"t"}],"returns":"kind"}],"slug":"libtmux-endpoint-kind"},{"id":"Libtmux.Endpoint.kind:type","publicId":"Libtmux.Endpoint.kind:type","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type kind = Named_socket of string | Socket_path of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"type kind =\n | Named_socket of string \n | Socket_path of string ","params":[]}],"slug":"libtmux-endpoint-kind-type"},{"id":"Libtmux.Endpoint.kind:type.Named_socket","publicId":"Libtmux.Endpoint.kind:type.Named_socket","name":"Named_socket","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Named_socket of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Named_socket","slug":"libtmux-endpoint-kind-type-named_socket"},{"id":"Libtmux.Endpoint.kind:type.Socket_path","publicId":"Libtmux.Endpoint.kind:type.Socket_path","name":"Socket_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Socket_path of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Socket_path","slug":"libtmux-endpoint-kind-type-socket_path"},{"id":"Libtmux.Endpoint.named_socket","publicId":"Libtmux.Endpoint.named_socket","qualifiedName":"Libtmux.Endpoint.named_socket","name":"named_socket","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. "],"declarations":[{"kind":"function","text":"val named_socket : string -> t","source":{"file":"lib/libtmux.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`named_socket name` describes tmux's `-L name` endpoint. Raises `Invalid_argument` if `name` is empty or contains NUL or `/`."},"signatures":[{"raw":"val named_socket : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-named_socket"},{"id":"Libtmux.Endpoint.pp","publicId":"Libtmux.Endpoint.pp","qualifiedName":"Libtmux.Endpoint.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-endpoint-pp"},{"id":"Libtmux.Endpoint.socket_path","publicId":"Libtmux.Endpoint.socket_path","qualifiedName":"Libtmux.Endpoint.socket_path","name":"socket_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. "],"declarations":[{"kind":"function","text":"val socket_path : string -> t","source":{"file":"lib/libtmux.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`socket_path path` describes an absolute `-S path` endpoint. It does not check existence or resolve symbolic links. Raises `Invalid_argument` if `path` is relative, empty or contains NUL."},"signatures":[{"raw":"val socket_path : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-socket_path"},{"id":"Libtmux.Endpoint.t","publicId":"Libtmux.Endpoint.t","qualifiedName":"Libtmux.Endpoint.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" An explicit socket description, independent of the environment. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"An explicit socket description, independent of the environment."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-endpoint-t"},{"id":"Libtmux.Environment","publicId":"Libtmux.Environment","qualifiedName":"Libtmux.Environment","name":"Environment","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":793,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Environment : sig\n type scope = Global | Session of Session.target\n type value = Value of string | Removed\n type entry = { name : string; value : value }\n\n type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. *)\n\n val lookup : t -> string -> value option\n (** No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. *)\nend","source":{"file":"lib/libtmux.mli","line":793,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-environment"},{"id":"Libtmux.Environment.entry","publicId":"Libtmux.Environment.entry","qualifiedName":"Libtmux.Environment.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { name : string; value : value }","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type entry = {\n name: string ;\n value: value }","params":[]}],"slug":"libtmux-environment-entry"},{"id":"Libtmux.Environment.entry.name","publicId":"Libtmux.Environment.entry.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.entry","type":"string","qualifiedName":"Libtmux.Environment.name","slug":"libtmux-environment-entry-name"},{"id":"Libtmux.Environment.entry.value","publicId":"Libtmux.Environment.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.entry","type":"value","qualifiedName":"Libtmux.Environment.value","slug":"libtmux-environment-entry-value"},{"id":"Libtmux.Environment.lookup","publicId":"Libtmux.Environment.lookup","qualifiedName":"Libtmux.Environment.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":810,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> value option","source":{"file":"lib/libtmux.mli","line":810,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment","doc":{"summary":"No I/O. `None` means absent from the selected table and visibility. `Removed` masks a global value; `Value \"\"` is an explicitly empty value. Names must be ASCII identifiers; values preserve non-NUL bytes."},"signatures":[{"raw":"val lookup : t -> string -> value option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"value option"}],"slug":"libtmux-environment-lookup"},{"id":"Libtmux.Environment.scope","publicId":"Libtmux.Environment.scope","qualifiedName":"Libtmux.Environment.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Global | Session of Session.target","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type scope =\n | Global \n | Session of Session.target ","params":[]}],"slug":"libtmux-environment-scope"},{"id":"Libtmux.Environment.scope.Global","publicId":"Libtmux.Environment.scope.Global","name":"Global","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Global","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.scope","variant":"unit","qualifiedName":"Libtmux.Environment.Global","slug":"libtmux-environment-scope-global"},{"id":"Libtmux.Environment.scope.Session","publicId":"Libtmux.Environment.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.scope","variant":"tuple","qualifiedName":"Libtmux.Environment.Session","slug":"libtmux-environment-scope-session"},{"id":"Libtmux.Environment.t","publicId":"Libtmux.Environment.t","qualifiedName":"Libtmux.Environment.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment","doc":{"summary":"One captured environment table, in tmux order. `hidden` selects hidden variables exclusively. Session tables contain local entries, including removal markers; they do not merge the global environment."},"signatures":[{"raw":"type t =\n {\n source: Source.t ;\n scope: scope ;\n hidden: bool ;\n entries: entry Iarray.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-environment-t"},{"id":"Libtmux.Environment.t.entries","publicId":"Libtmux.Environment.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":802,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":802,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Environment.entries","slug":"libtmux-environment-t-entries"},{"id":"Libtmux.Environment.t.finished_at_ns","publicId":"Libtmux.Environment.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":804,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":804,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.finished_at_ns","slug":"libtmux-environment-t-finished_at_ns"},{"id":"Libtmux.Environment.t.hidden","publicId":"Libtmux.Environment.t.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":801,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":801,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.t","type":"bool","qualifiedName":"Libtmux.Environment.hidden","slug":"libtmux-environment-t-hidden"},{"id":"Libtmux.Environment.t.scope","publicId":"Libtmux.Environment.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":800,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":800,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.t","type":"scope","qualifiedName":"Libtmux.Environment.scope","slug":"libtmux-environment-t-scope"},{"id":"Libtmux.Environment.t.source","publicId":"Libtmux.Environment.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":799,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":799,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.t","type":"Source.t","qualifiedName":"Libtmux.Environment.source","slug":"libtmux-environment-t-source"},{"id":"Libtmux.Environment.t.started_at_ns","publicId":"Libtmux.Environment.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":803,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":803,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.started_at_ns","slug":"libtmux-environment-t-started_at_ns"},{"id":"Libtmux.Environment.value","publicId":"Libtmux.Environment.value","qualifiedName":"Libtmux.Environment.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Value of string | Removed","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type value =\n | Value of string \n | Removed ","params":[]}],"slug":"libtmux-environment-value"},{"id":"Libtmux.Environment.value.Removed","publicId":"Libtmux.Environment.value.Removed","name":"Removed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Removed","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.value","variant":"unit","qualifiedName":"Libtmux.Environment.Removed","slug":"libtmux-environment-value-removed"},{"id":"Libtmux.Environment.value.Value","publicId":"Libtmux.Environment.value.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Value of string","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Environment.value","variant":"tuple","qualifiedName":"Libtmux.Environment.Value","slug":"libtmux-environment-value-value"},{"id":"Libtmux.Error","publicId":"Libtmux.Error","qualifiedName":"Libtmux.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Expected input, capture, capability and transport failures. Cancellation\n belongs to the chosen backend and is not converted into an ordinary error.\n"],"declarations":[{"kind":"module","text":"module Error : sig\n type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Expected input, capture, capability and transport failures. Cancellation belongs to the chosen backend and is not converted into an ordinary error."},"slug":"libtmux-error"},{"id":"Libtmux.Error.pp","publicId":"Libtmux.Error.pp","qualifiedName":"Libtmux.Error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":78,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":78,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-error-pp"},{"id":"Libtmux.Error.t","publicId":"Libtmux.Error.t","qualifiedName":"Libtmux.Error.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error","signatures":[{"raw":"type t =\n | Invalid_input of string \n | Malformed_data of string \n | Capture_raced of string \n | Unsupported_version of string \n | Unsupported_binding of string \n | Unsupported_capture_hooks \n | Unsupported of string \n | Closed \n | Disconnected of string \n | Filesystem of {\n operation: string ;\n message: string } \n | Wrong_domain \n | Busy \n | Capacity of {\n resource: string ;\n limit: int } \n | Stale_target \n | No_such_entity of {\n kind: string ;\n id: string } \n | Command_failed of {\n command: string ;\n message: string } \n | Deadline_exceeded \n | Not_started \n | Outcome_unknown of string ","params":[]}],"slug":"libtmux-error-t"},{"id":"Libtmux.Error.t.Busy","publicId":"Libtmux.Error.t.Busy","name":"Busy","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Busy","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Busy","slug":"libtmux-error-t-busy"},{"id":"Libtmux.Error.t.Capacity","publicId":"Libtmux.Error.t.Capacity","name":"Capacity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capacity of { resource : string; limit : int }","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Capacity","slug":"libtmux-error-t-capacity"},{"id":"Libtmux.Error.t.Capacity.limit","publicId":"Libtmux.Error.t.Capacity.limit","name":"limit","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"limit : int","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.Capacity","type":"int","qualifiedName":"Libtmux.Error.limit","slug":"libtmux-error-t-capacity-limit"},{"id":"Libtmux.Error.t.Capacity.resource","publicId":"Libtmux.Error.t.Capacity.resource","name":"resource","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"resource : string;","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.Capacity","type":"string","qualifiedName":"Libtmux.Error.resource","slug":"libtmux-error-t-capacity-resource"},{"id":"Libtmux.Error.t.Capture_raced","publicId":"Libtmux.Error.t.Capture_raced","name":"Capture_raced","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_raced of string","source":{"file":"lib/libtmux.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Capture_raced","slug":"libtmux-error-t-capture_raced"},{"id":"Libtmux.Error.t.Closed","publicId":"Libtmux.Error.t.Closed","name":"Closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Closed","source":{"file":"lib/libtmux.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Closed","slug":"libtmux-error-t-closed"},{"id":"Libtmux.Error.t.Command_failed","publicId":"Libtmux.Error.t.Command_failed","name":"Command_failed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command_failed of { command : string; message : string }","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Command_failed","slug":"libtmux-error-t-command_failed"},{"id":"Libtmux.Error.t.Command_failed.command","publicId":"Libtmux.Error.t.Command_failed.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : string;","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.command","slug":"libtmux-error-t-command_failed-command"},{"id":"Libtmux.Error.t.Command_failed.message","publicId":"Libtmux.Error.t.Command_failed.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-command_failed-message"},{"id":"Libtmux.Error.t.Deadline_exceeded","publicId":"Libtmux.Error.t.Deadline_exceeded","name":"Deadline_exceeded","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Deadline_exceeded","source":{"file":"lib/libtmux.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Deadline_exceeded","slug":"libtmux-error-t-deadline_exceeded"},{"id":"Libtmux.Error.t.Disconnected","publicId":"Libtmux.Error.t.Disconnected","name":"Disconnected","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Disconnected of string","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Disconnected","slug":"libtmux-error-t-disconnected"},{"id":"Libtmux.Error.t.Filesystem","publicId":"Libtmux.Error.t.Filesystem","name":"Filesystem","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Filesystem of { operation : string; message : string }","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Filesystem","slug":"libtmux-error-t-filesystem"},{"id":"Libtmux.Error.t.Filesystem.message","publicId":"Libtmux.Error.t.Filesystem.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-filesystem-message"},{"id":"Libtmux.Error.t.Filesystem.operation","publicId":"Libtmux.Error.t.Filesystem.operation","name":"operation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation : string;","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.operation","slug":"libtmux-error-t-filesystem-operation"},{"id":"Libtmux.Error.t.Invalid_input","publicId":"Libtmux.Error.t.Invalid_input","name":"Invalid_input","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Invalid_input of string","source":{"file":"lib/libtmux.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Invalid_input","slug":"libtmux-error-t-invalid_input"},{"id":"Libtmux.Error.t.Malformed_data","publicId":"Libtmux.Error.t.Malformed_data","name":"Malformed_data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Malformed_data of string","source":{"file":"lib/libtmux.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Malformed_data","slug":"libtmux-error-t-malformed_data"},{"id":"Libtmux.Error.t.No_such_entity","publicId":"Libtmux.Error.t.No_such_entity","name":"No_such_entity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| No_such_entity of { kind : string; id : string }","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.No_such_entity","slug":"libtmux-error-t-no_such_entity"},{"id":"Libtmux.Error.t.No_such_entity.id","publicId":"Libtmux.Error.t.No_such_entity.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : string","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.id","slug":"libtmux-error-t-no_such_entity-id"},{"id":"Libtmux.Error.t.No_such_entity.kind","publicId":"Libtmux.Error.t.No_such_entity.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : string;","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.kind","slug":"libtmux-error-t-no_such_entity-kind"},{"id":"Libtmux.Error.t.Not_started","publicId":"Libtmux.Error.t.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"lib/libtmux.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Not_started","slug":"libtmux-error-t-not_started"},{"id":"Libtmux.Error.t.Outcome_unknown","publicId":"Libtmux.Error.t.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Outcome_unknown","slug":"libtmux-error-t-outcome_unknown"},{"id":"Libtmux.Error.t.Stale_target","publicId":"Libtmux.Error.t.Stale_target","name":"Stale_target","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale_target","source":{"file":"lib/libtmux.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Stale_target","slug":"libtmux-error-t-stale_target"},{"id":"Libtmux.Error.t.Unsupported","publicId":"Libtmux.Error.t.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported of string","source":{"file":"lib/libtmux.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported","slug":"libtmux-error-t-unsupported"},{"id":"Libtmux.Error.t.Unsupported_binding","publicId":"Libtmux.Error.t.Unsupported_binding","name":"Unsupported_binding","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_binding of string","source":{"file":"lib/libtmux.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_binding","slug":"libtmux-error-t-unsupported_binding"},{"id":"Libtmux.Error.t.Unsupported_capture_hooks","publicId":"Libtmux.Error.t.Unsupported_capture_hooks","name":"Unsupported_capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_capture_hooks","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Unsupported_capture_hooks","slug":"libtmux-error-t-unsupported_capture_hooks"},{"id":"Libtmux.Error.t.Unsupported_version","publicId":"Libtmux.Error.t.Unsupported_version","name":"Unsupported_version","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_version of string","source":{"file":"lib/libtmux.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_version","slug":"libtmux-error-t-unsupported_version"},{"id":"Libtmux.Error.t.Wrong_domain","publicId":"Libtmux.Error.t.Wrong_domain","name":"Wrong_domain","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_domain","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Wrong_domain","slug":"libtmux-error-t-wrong_domain"},{"id":"Libtmux.Expr","publicId":"Libtmux.Expr","qualifiedName":"Libtmux.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":574,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Inspectable predicates whose entity and operand types are checked by the\n compiler. Combine native closures separately with [Seq.filter]. Evaluation\n follows captured relationships without acquisition or hidden caches. "],"declarations":[{"kind":"module","text":"module Expr : sig\n type 'entity t\n\n val all : 'a t list -> 'a t\n (** Boolean conjunction; the empty conjunction is true. *)\n\n val any : 'a t list -> 'a t\n (** Boolean disjunction; the empty disjunction is false. *)\n\n val not_ : 'a t -> 'a t\n\n module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end\n\n module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end\n\n module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end\n\n module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end\n\n val compile : 'a t -> 'a -> bool\n (** Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n *)\n\n val pp : Format.formatter -> 'a t -> unit\n val describe : 'a t -> string\n\n type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison\n\n type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view\n\n val view : 'a t -> 'a view\n (** Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. *)\nend","source":{"file":"lib/libtmux.mli","line":574,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Inspectable predicates whose entity and operand types are checked by the compiler. Combine native closures separately with `Seq.filter`. Evaluation follows captured relationships without acquisition or hidden caches."},"slug":"libtmux-expr"},{"id":"Libtmux.Expr.Bool","publicId":"Libtmux.Expr.Bool","qualifiedName":"Libtmux.Expr.Bool","name":"Bool","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":585,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":585,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-bool"},{"id":"Libtmux.Expr.Bool.equal","publicId":"Libtmux.Expr.Bool.equal","qualifiedName":"Libtmux.Expr.Bool.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":586,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, bool) Field.t -> bool -> 'a t","source":{"file":"lib/libtmux.mli","line":586,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val equal : ('a, bool) Field.t -> bool -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"},{"name":"arg2","type":"bool"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-equal"},{"id":"Libtmux.Expr.Bool.is_false","publicId":"Libtmux.Expr.Bool.is_false","qualifiedName":"Libtmux.Expr.Bool.is_false","name":"is_false","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":588,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_false : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":588,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_false : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_false"},{"id":"Libtmux.Expr.Bool.is_true","publicId":"Libtmux.Expr.Bool.is_true","qualifiedName":"Libtmux.Expr.Bool.is_true","name":"is_true","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_true : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_true : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_true"},{"id":"Libtmux.Expr.Int","publicId":"Libtmux.Expr.Int","qualifiedName":"Libtmux.Expr.Int","name":"Int","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":591,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":591,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-int"},{"id":"Libtmux.Expr.Int.equal","publicId":"Libtmux.Expr.Int.equal","qualifiedName":"Libtmux.Expr.Int.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":592,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":592,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val equal : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-equal"},{"id":"Libtmux.Expr.Int.ge","publicId":"Libtmux.Expr.Int.ge","qualifiedName":"Libtmux.Expr.Int.ge","name":"ge","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ge : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val ge : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-ge"},{"id":"Libtmux.Expr.Int.gt","publicId":"Libtmux.Expr.Int.gt","qualifiedName":"Libtmux.Expr.Int.gt","name":"gt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":595,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val gt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":595,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val gt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-gt"},{"id":"Libtmux.Expr.Int.is_in","publicId":"Libtmux.Expr.Int.is_in","qualifiedName":"Libtmux.Expr.Int.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_in : ('a, int) Field.t -> int list -> 'a t","source":{"file":"lib/libtmux.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val is_in : ('a, int) Field.t -> int list -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int list"}],"returns":"'a t"}],"slug":"libtmux-expr-int-is_in"},{"id":"Libtmux.Expr.Int.le","publicId":"Libtmux.Expr.Int.le","qualifiedName":"Libtmux.Expr.Int.le","name":"le","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":594,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val le : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":594,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val le : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-le"},{"id":"Libtmux.Expr.Int.lt","publicId":"Libtmux.Expr.Int.lt","qualifiedName":"Libtmux.Expr.Int.lt","name":"lt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":593,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val lt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":593,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val lt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-lt"},{"id":"Libtmux.Expr.Rel","publicId":"Libtmux.Expr.Rel","qualifiedName":"Libtmux.Expr.Rel","name":"Rel","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":611,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":611,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-rel"},{"id":"Libtmux.Expr.Rel.all","publicId":"Libtmux.Expr.Rel.all","qualifiedName":"Libtmux.Expr.Rel.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":613,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":613,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-all"},{"id":"Libtmux.Expr.Rel.any","publicId":"Libtmux.Expr.Rel.any","qualifiedName":"Libtmux.Expr.Rel.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-any"},{"id":"Libtmux.Expr.Rel.exists","publicId":"Libtmux.Expr.Rel.exists","qualifiedName":"Libtmux.Expr.Rel.exists","name":"exists","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-exists"},{"id":"Libtmux.Expr.Rel.is","publicId":"Libtmux.Expr.Rel.is","qualifiedName":"Libtmux.Expr.Rel.is","name":"is","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":619,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":619,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.One.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is"},{"id":"Libtmux.Expr.Rel.is_absent","publicId":"Libtmux.Expr.Rel.is_absent","qualifiedName":"Libtmux.Expr.Rel.is_absent","name":"is_absent","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","source":{"file":"lib/libtmux.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is_absent"},{"id":"Libtmux.Expr.Rel.none","publicId":"Libtmux.Expr.Rel.none","qualifiedName":"Libtmux.Expr.Rel.none","name":"none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":615,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. "],"declarations":[{"kind":"function","text":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":615,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Rel","doc":{"summary":"On empty relations, `any` is false; `all` and `none` are true. One child must satisfy the complete nested expression."},"signatures":[{"raw":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-none"},{"id":"Libtmux.Expr.Text","publicId":"Libtmux.Expr.Text","qualifiedName":"Libtmux.Expr.Text","name":"Text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end","source":{"file":"lib/libtmux.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-text"},{"id":"Libtmux.Expr.Text.contains","publicId":"Libtmux.Expr.Text.contains","qualifiedName":"Libtmux.Expr.Text.contains","name":"contains","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":604,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val contains : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":604,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val contains : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-contains"},{"id":"Libtmux.Expr.Text.ends_with","publicId":"Libtmux.Expr.Text.ends_with","qualifiedName":"Libtmux.Expr.Text.ends_with","name":"ends_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":603,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ends_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":603,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val ends_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-ends_with"},{"id":"Libtmux.Expr.Text.equal","publicId":"Libtmux.Expr.Text.equal","qualifiedName":"Libtmux.Expr.Text.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":601,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":601,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val equal : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-equal"},{"id":"Libtmux.Expr.Text.is_in","publicId":"Libtmux.Expr.Text.is_in","qualifiedName":"Libtmux.Expr.Text.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":606,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. "],"declarations":[{"kind":"function","text":"val is_in : ('a, string) Field.t -> string list -> 'a t","source":{"file":"lib/libtmux.mli","line":606,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Text","doc":{"summary":"Comparisons use exact bytes, without case folding or normalization. The empty substring matches every string."},"signatures":[{"raw":"val is_in : ('a, string) Field.t -> string list -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string list"}],"returns":"'a t"}],"slug":"libtmux-expr-text-is_in"},{"id":"Libtmux.Expr.Text.starts_with","publicId":"Libtmux.Expr.Text.starts_with","qualifiedName":"Libtmux.Expr.Text.starts_with","name":"starts_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val starts_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val starts_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-starts_with"},{"id":"Libtmux.Expr.all","publicId":"Libtmux.Expr.all","qualifiedName":"Libtmux.Expr.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":577,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Boolean conjunction; the empty conjunction is true. "],"declarations":[{"kind":"function","text":"val all : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":577,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean conjunction; the empty conjunction is true."},"signatures":[{"raw":"val all : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-all"},{"id":"Libtmux.Expr.any","publicId":"Libtmux.Expr.any","qualifiedName":"Libtmux.Expr.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":580,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Boolean disjunction; the empty disjunction is false. "],"declarations":[{"kind":"function","text":"val any : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":580,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean disjunction; the empty disjunction is false."},"signatures":[{"raw":"val any : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-any"},{"id":"Libtmux.Expr.comparison","publicId":"Libtmux.Expr.comparison","qualifiedName":"Libtmux.Expr.comparison","name":"comparison","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":631,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":631,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type _ comparison =\n | Bool_equal: bool -> bool comparison \n | Int_equal: int -> int comparison \n | Int_lt: int -> int comparison \n | Int_le: int -> int comparison \n | Int_gt: int -> int comparison \n | Int_ge: int -> int comparison \n | Int_in: int list -> int comparison \n | Text_equal: string -> string comparison \n | Text_starts_with: string -> string comparison \n | Text_ends_with: string -> string comparison \n | Text_contains: string -> string comparison \n | Text_in: string list -> string comparison ","params":[]}],"slug":"libtmux-expr-comparison"},{"id":"Libtmux.Expr.comparison.Bool_equal","publicId":"Libtmux.Expr.comparison.Bool_equal","name":"Bool_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":632,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool_equal : bool -> bool comparison","source":{"file":"lib/libtmux.mli","line":632,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Bool_equal","slug":"libtmux-expr-comparison-bool_equal"},{"id":"Libtmux.Expr.comparison.Int_equal","publicId":"Libtmux.Expr.comparison.Int_equal","name":"Int_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_equal : int -> int comparison","source":{"file":"lib/libtmux.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_equal","slug":"libtmux-expr-comparison-int_equal"},{"id":"Libtmux.Expr.comparison.Int_ge","publicId":"Libtmux.Expr.comparison.Int_ge","name":"Int_ge","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":637,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_ge : int -> int comparison","source":{"file":"lib/libtmux.mli","line":637,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_ge","slug":"libtmux-expr-comparison-int_ge"},{"id":"Libtmux.Expr.comparison.Int_gt","publicId":"Libtmux.Expr.comparison.Int_gt","name":"Int_gt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":636,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_gt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":636,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_gt","slug":"libtmux-expr-comparison-int_gt"},{"id":"Libtmux.Expr.comparison.Int_in","publicId":"Libtmux.Expr.comparison.Int_in","name":"Int_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":638,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_in : int list -> int comparison","source":{"file":"lib/libtmux.mli","line":638,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_in","slug":"libtmux-expr-comparison-int_in"},{"id":"Libtmux.Expr.comparison.Int_le","publicId":"Libtmux.Expr.comparison.Int_le","name":"Int_le","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_le : int -> int comparison","source":{"file":"lib/libtmux.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_le","slug":"libtmux-expr-comparison-int_le"},{"id":"Libtmux.Expr.comparison.Int_lt","publicId":"Libtmux.Expr.comparison.Int_lt","name":"Int_lt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":634,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_lt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":634,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_lt","slug":"libtmux-expr-comparison-int_lt"},{"id":"Libtmux.Expr.comparison.Text_contains","publicId":"Libtmux.Expr.comparison.Text_contains","name":"Text_contains","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":642,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_contains : string -> string comparison","source":{"file":"lib/libtmux.mli","line":642,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_contains","slug":"libtmux-expr-comparison-text_contains"},{"id":"Libtmux.Expr.comparison.Text_ends_with","publicId":"Libtmux.Expr.comparison.Text_ends_with","name":"Text_ends_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":641,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_ends_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":641,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_ends_with","slug":"libtmux-expr-comparison-text_ends_with"},{"id":"Libtmux.Expr.comparison.Text_equal","publicId":"Libtmux.Expr.comparison.Text_equal","name":"Text_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":639,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_equal : string -> string comparison","source":{"file":"lib/libtmux.mli","line":639,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_equal","slug":"libtmux-expr-comparison-text_equal"},{"id":"Libtmux.Expr.comparison.Text_in","publicId":"Libtmux.Expr.comparison.Text_in","name":"Text_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":643,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":643,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_in","slug":"libtmux-expr-comparison-text_in"},{"id":"Libtmux.Expr.comparison.Text_starts_with","publicId":"Libtmux.Expr.comparison.Text_starts_with","name":"Text_starts_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":640,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_starts_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":640,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_starts_with","slug":"libtmux-expr-comparison-text_starts_with"},{"id":"Libtmux.Expr.compile","publicId":"Libtmux.Expr.compile","qualifiedName":"Libtmux.Expr.compile","name":"compile","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n "],"declarations":[{"kind":"function","text":"val compile : 'a t -> 'a -> bool","source":{"file":"lib/libtmux.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","doc":{"summary":"Prepare a reusable predicate. Compilation and evaluation perform no I/O."},"signatures":[{"raw":"val compile : 'a t -> 'a -> bool","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"'a"}],"returns":"bool"}],"slug":"libtmux-expr-compile"},{"id":"Libtmux.Expr.describe","publicId":"Libtmux.Expr.describe","qualifiedName":"Libtmux.Expr.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : 'a t -> string","source":{"file":"lib/libtmux.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val describe : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-expr-describe"},{"id":"Libtmux.Expr.not_","publicId":"Libtmux.Expr.not_","qualifiedName":"Libtmux.Expr.not_","name":"not_","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":583,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val not_ : 'a t -> 'a t","source":{"file":"lib/libtmux.mli","line":583,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val not_ : 'a t -> 'a t","params":[{"name":"arg1","type":"'a t"}],"returns":"'a t"}],"slug":"libtmux-expr-not_"},{"id":"Libtmux.Expr.pp","publicId":"Libtmux.Expr.pp","qualifiedName":"Libtmux.Expr.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":628,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> 'a t -> unit","source":{"file":"lib/libtmux.mli","line":628,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val pp : Format.formatter -> 'a t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"'a t"}],"returns":"unit"}],"slug":"libtmux-expr-pp"},{"id":"Libtmux.Expr.t","publicId":"Libtmux.Expr.t","qualifiedName":"Libtmux.Expr.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'entity t","source":{"file":"lib/libtmux.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'entity t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-expr-t"},{"id":"Libtmux.Expr.view","publicId":"Libtmux.Expr.view","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":657,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":657,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","doc":{"summary":"Typed read-only inspection for codecs and planners. A view cannot add custom accessors or closures to an expression."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-expr-view"},{"id":"Libtmux.Expr.view:type","publicId":"Libtmux.Expr.view:type","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'a view =\n | Compare: ('a, 'v) Field.t * 'v comparison -> 'a view \n | All of 'a t list \n | Any of 'a t list \n | Not of 'a t \n | Related_any: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_all: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_none: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_one: ('a, 'b) Relation.One.t * 'b t -> 'a view \n | Related_optional: ('a, 'b) Relation.Optional.t * 'b t -> 'a view \n | Absent: ('a, 'b) Relation.Optional.t -> 'a view ","params":[]}],"slug":"libtmux-expr-view-type"},{"id":"Libtmux.Expr.view:type.Absent","publicId":"Libtmux.Expr.view:type.Absent","name":"Absent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":655,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":655,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Absent","slug":"libtmux-expr-view-type-absent"},{"id":"Libtmux.Expr.view:type.All","publicId":"Libtmux.Expr.view:type.All","name":"All","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":647,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| All of 'a t list","source":{"file":"lib/libtmux.mli","line":647,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.All","slug":"libtmux-expr-view-type-all"},{"id":"Libtmux.Expr.view:type.Any","publicId":"Libtmux.Expr.view:type.Any","name":"Any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":648,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Any of 'a t list","source":{"file":"lib/libtmux.mli","line":648,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Any","slug":"libtmux-expr-view-type-any"},{"id":"Libtmux.Expr.view:type.Compare","publicId":"Libtmux.Expr.view:type.Compare","name":"Compare","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":646,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Compare : ('a, 'v) Field.t * 'v comparison -> 'a view","source":{"file":"lib/libtmux.mli","line":646,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Compare","slug":"libtmux-expr-view-type-compare"},{"id":"Libtmux.Expr.view:type.Not","publicId":"Libtmux.Expr.view:type.Not","name":"Not","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":649,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not of 'a t","source":{"file":"lib/libtmux.mli","line":649,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Not","slug":"libtmux-expr-view-type-not"},{"id":"Libtmux.Expr.view:type.Related_all","publicId":"Libtmux.Expr.view:type.Related_all","name":"Related_all","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":651,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":651,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_all","slug":"libtmux-expr-view-type-related_all"},{"id":"Libtmux.Expr.view:type.Related_any","publicId":"Libtmux.Expr.view:type.Related_any","name":"Related_any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":650,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":650,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_any","slug":"libtmux-expr-view-type-related_any"},{"id":"Libtmux.Expr.view:type.Related_none","publicId":"Libtmux.Expr.view:type.Related_none","name":"Related_none","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":652,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":652,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_none","slug":"libtmux-expr-view-type-related_none"},{"id":"Libtmux.Expr.view:type.Related_one","publicId":"Libtmux.Expr.view:type.Related_one","name":"Related_one","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":653,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":653,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_one","slug":"libtmux-expr-view-type-related_one"},{"id":"Libtmux.Expr.view:type.Related_optional","publicId":"Libtmux.Expr.view:type.Related_optional","name":"Related_optional","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":654,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":654,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_optional","slug":"libtmux-expr-view-type-related_optional"},{"id":"Libtmux.Field","publicId":"Libtmux.Field","qualifiedName":"Libtmux.Field","name":"Field","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":143,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Sealed scalar descriptors carrying entity and value types. Descriptors read\n captured data and provide trusted identities for {!Expr} values. Use\n {!Relation} for graph edges. "],"declarations":[{"kind":"module","text":"module Field : sig\n type _ kind = Bool : bool kind | Int : int kind | Text : string kind\n type ('entity, 'value) t\n type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed\n\n val name : ('entity, 'value) t -> string\n val kind : ('entity, 'value) t -> 'value kind\n\n val get : ('entity, 'value) t -> 'entity -> 'value\n (** Canonical descriptors are sealed. Accessing a field reads captured data.\n *)\nend","source":{"file":"lib/libtmux.mli","line":143,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Sealed scalar descriptors carrying entity and value types. Descriptors read captured data and provide trusted identities for {!Expr} values. Use {!Relation} for graph edges."},"slug":"libtmux-field"},{"id":"Libtmux.Field.get","publicId":"Libtmux.Field.get","qualifiedName":"Libtmux.Field.get","name":"get","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Canonical descriptors are sealed. Accessing a field reads captured data.\n "],"declarations":[{"kind":"function","text":"val get : ('entity, 'value) t -> 'entity -> 'value","source":{"file":"lib/libtmux.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field","doc":{"summary":"Canonical descriptors are sealed. Accessing a field reads captured data."},"signatures":[{"raw":"val get : ('entity, 'value) t -> 'entity -> 'value","params":[{"name":"arg1","type":"('entity, 'value) t"},{"name":"arg2","type":"'entity"}],"returns":"'value"}],"slug":"libtmux-field-get"},{"id":"Libtmux.Field.kind","publicId":"Libtmux.Field.kind","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : ('entity, 'value) t -> 'value kind","source":{"file":"lib/libtmux.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val kind : ('entity, 'value) t -> 'value kind","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"'value kind"}],"slug":"libtmux-field-kind"},{"id":"Libtmux.Field.kind:type","publicId":"Libtmux.Field.kind:type","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type _ kind =\n | Bool: bool kind \n | Int: int kind \n | Text: string kind ","params":[]}],"slug":"libtmux-field-kind-type"},{"id":"Libtmux.Field.kind:type.Bool","publicId":"Libtmux.Field.kind:type.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool : bool kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Bool","slug":"libtmux-field-kind-type-bool"},{"id":"Libtmux.Field.kind:type.Int","publicId":"Libtmux.Field.kind:type.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int : int kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Int","slug":"libtmux-field-kind-type-int"},{"id":"Libtmux.Field.kind:type.Text","publicId":"Libtmux.Field.kind:type.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text : string kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Text","slug":"libtmux-field-kind-type-text"},{"id":"Libtmux.Field.name","publicId":"Libtmux.Field.name","qualifiedName":"Libtmux.Field.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('entity, 'value) t -> string","source":{"file":"lib/libtmux.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val name : ('entity, 'value) t -> string","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"string"}],"slug":"libtmux-field-name"},{"id":"Libtmux.Field.packed","publicId":"Libtmux.Field.packed","qualifiedName":"Libtmux.Field.packed","name":"packed","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type 'entity packed =\n | Pack: ('entity, 'value) t -> 'entity packed ","params":[]}],"slug":"libtmux-field-packed"},{"id":"Libtmux.Field.packed.Pack","publicId":"Libtmux.Field.packed.Pack","name":"Pack","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field.packed","variant":"tuple","qualifiedName":"Libtmux.Field.Pack","slug":"libtmux-field-packed-pack"},{"id":"Libtmux.Field.t","publicId":"Libtmux.Field.t","qualifiedName":"Libtmux.Field.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":145,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('entity, 'value) t","source":{"file":"lib/libtmux.mli","line":145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type ('entity, 'value) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-field-t"},{"id":"Libtmux.Formats","publicId":"Libtmux.Formats","qualifiedName":"Libtmux.Formats","name":"Formats","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Formats : sig\n module Kind : sig\n type t = Text | Timestamp\n end\n\n module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }\n (** Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. *)\n\n type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t\n\n type scalar = Bool of bool | Int of int | Text of string\n\n type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported\n (** [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor option, Error.t) result\n\n val lookup :\n version:string -> observation -> string -> (state, Error.t) result\n (** No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. *)\nend","source":{"file":"lib/libtmux.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-formats"},{"id":"Libtmux.Formats.Context","publicId":"Libtmux.Formats.Context","qualifiedName":"Libtmux.Formats.Context","name":"Context","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":500,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end","source":{"file":"lib/libtmux.mli","line":500,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-context"},{"id":"Libtmux.Formats.Context.t","publicId":"Libtmux.Formats.Context.t","qualifiedName":"Libtmux.Formats.Context.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":501,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","source":{"file":"lib/libtmux.mli","line":501,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context","signatures":[{"raw":"type t =\n | Server \n | Connection \n | Session \n | Window \n | Window_link \n | Pane \n | Client \n | Buffer \n | Mouse \n | Command ","params":[]}],"slug":"libtmux-formats-context-t"},{"id":"Libtmux.Formats.Context.t.Buffer","publicId":"Libtmux.Formats.Context.t.Buffer","name":"Buffer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":509,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Buffer","source":{"file":"lib/libtmux.mli","line":509,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Buffer","slug":"libtmux-formats-context-t-buffer"},{"id":"Libtmux.Formats.Context.t.Client","publicId":"Libtmux.Formats.Context.t.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":508,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client","source":{"file":"lib/libtmux.mli","line":508,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Client","slug":"libtmux-formats-context-t-client"},{"id":"Libtmux.Formats.Context.t.Command","publicId":"Libtmux.Formats.Context.t.Command","name":"Command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":511,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command","source":{"file":"lib/libtmux.mli","line":511,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Command","slug":"libtmux-formats-context-t-command"},{"id":"Libtmux.Formats.Context.t.Connection","publicId":"Libtmux.Formats.Context.t.Connection","name":"Connection","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Connection","source":{"file":"lib/libtmux.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Connection","slug":"libtmux-formats-context-t-connection"},{"id":"Libtmux.Formats.Context.t.Mouse","publicId":"Libtmux.Formats.Context.t.Mouse","name":"Mouse","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mouse","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Mouse","slug":"libtmux-formats-context-t-mouse"},{"id":"Libtmux.Formats.Context.t.Pane","publicId":"Libtmux.Formats.Context.t.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":507,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane","source":{"file":"lib/libtmux.mli","line":507,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Pane","slug":"libtmux-formats-context-t-pane"},{"id":"Libtmux.Formats.Context.t.Server","publicId":"Libtmux.Formats.Context.t.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Server","slug":"libtmux-formats-context-t-server"},{"id":"Libtmux.Formats.Context.t.Session","publicId":"Libtmux.Formats.Context.t.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":504,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session","source":{"file":"lib/libtmux.mli","line":504,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Session","slug":"libtmux-formats-context-t-session"},{"id":"Libtmux.Formats.Context.t.Window","publicId":"Libtmux.Formats.Context.t.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window","source":{"file":"lib/libtmux.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window","slug":"libtmux-formats-context-t-window"},{"id":"Libtmux.Formats.Context.t.Window_link","publicId":"Libtmux.Formats.Context.t.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":506,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link","source":{"file":"lib/libtmux.mli","line":506,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window_link","slug":"libtmux-formats-context-t-window_link"},{"id":"Libtmux.Formats.Kind","publicId":"Libtmux.Formats.Kind","qualifiedName":"Libtmux.Formats.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":496,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Timestamp\n end","source":{"file":"lib/libtmux.mli","line":496,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-kind"},{"id":"Libtmux.Formats.Kind.t","publicId":"Libtmux.Formats.Kind.t","qualifiedName":"Libtmux.Formats.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Timestamp","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Kind","signatures":[{"raw":"type t =\n | Text \n | Timestamp ","params":[]}],"slug":"libtmux-formats-kind-t"},{"id":"Libtmux.Formats.Kind.t.Text","publicId":"Libtmux.Formats.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Text","slug":"libtmux-formats-kind-t-text"},{"id":"Libtmux.Formats.Kind.t.Timestamp","publicId":"Libtmux.Formats.Kind.t.Timestamp","name":"Timestamp","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Timestamp","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Timestamp","slug":"libtmux-formats-kind-t-timestamp"},{"id":"Libtmux.Formats.catalog","publicId":"Libtmux.Formats.catalog","qualifiedName":"Libtmux.Formats.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-formats-catalog"},{"id":"Libtmux.Formats.describe","publicId":"Libtmux.Formats.describe","qualifiedName":"Libtmux.Formats.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":547,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor option, Error.t) result","source":{"file":"lib/libtmux.mli","line":547,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val describe :\n version:string -> string -> (descriptor option, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor option, Error.t) result"}],"slug":"libtmux-formats-describe"},{"id":"Libtmux.Formats.descriptor","publicId":"Libtmux.Formats.descriptor","qualifiedName":"Libtmux.Formats.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":514,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":514,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","doc":{"summary":"Metadata generated from pinned tmux format callbacks. `contexts` lists direct context dependencies, not a promise that a value exists. Caller variables from hooks and menus are outside this built-in catalog."},"signatures":[{"raw":"type descriptor =\n {\n name: string ;\n kind: Kind.t ;\n contexts: Context.t list ;\n versions: string list }","params":[]}],"slug":"libtmux-formats-descriptor"},{"id":"Libtmux.Formats.descriptor.contexts","publicId":"Libtmux.Formats.descriptor.contexts","name":"contexts","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":517,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"contexts : Context.t list;","source":{"file":"lib/libtmux.mli","line":517,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.descriptor","type":"Context.t list","qualifiedName":"Libtmux.Formats.contexts","slug":"libtmux-formats-descriptor-contexts"},{"id":"Libtmux.Formats.descriptor.kind","publicId":"Libtmux.Formats.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":516,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":516,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Formats.kind","slug":"libtmux-formats-descriptor-kind"},{"id":"Libtmux.Formats.descriptor.name","publicId":"Libtmux.Formats.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":515,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":515,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.descriptor","type":"string","qualifiedName":"Libtmux.Formats.name","slug":"libtmux-formats-descriptor-name"},{"id":"Libtmux.Formats.descriptor.versions","publicId":"Libtmux.Formats.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":518,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":518,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.descriptor","type":"string list","qualifiedName":"Libtmux.Formats.versions","slug":"libtmux-formats-descriptor-versions"},{"id":"Libtmux.Formats.lookup","publicId":"Libtmux.Formats.lookup","qualifiedName":"Libtmux.Formats.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":549,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. "],"declarations":[{"kind":"function","text":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","source":{"file":"lib/libtmux.mli","line":549,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","doc":{"summary":"No I/O. Supply the version recorded by the acquiring client's `version` accessor. Unsupported catalog versions return an error. Native typed accessors remain the primary API; lookup does not acquire extra fields."},"signatures":[{"raw":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"observation"},{"name":"arg2","type":"string"}],"returns":"(state, Error.t) result"}],"slug":"libtmux-formats-lookup"},{"id":"Libtmux.Formats.observation","publicId":"Libtmux.Formats.observation","qualifiedName":"Libtmux.Formats.observation","name":"observation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":524,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":524,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type observation =\n | Snapshot of Snapshot.t \n | Session of Session.t \n | Window of Window.t \n | Window_link of Window_link.t \n | Pane of Pane.t \n | Client of Client_observation.t ","params":[]}],"slug":"libtmux-formats-observation"},{"id":"Libtmux.Formats.observation.Client","publicId":"Libtmux.Formats.observation.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":530,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":530,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Client","slug":"libtmux-formats-observation-client"},{"id":"Libtmux.Formats.observation.Pane","publicId":"Libtmux.Formats.observation.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":529,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.t","source":{"file":"lib/libtmux.mli","line":529,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Pane","slug":"libtmux-formats-observation-pane"},{"id":"Libtmux.Formats.observation.Session","publicId":"Libtmux.Formats.observation.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":526,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.t","source":{"file":"lib/libtmux.mli","line":526,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Session","slug":"libtmux-formats-observation-session"},{"id":"Libtmux.Formats.observation.Snapshot","publicId":"Libtmux.Formats.observation.Snapshot","name":"Snapshot","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Snapshot of Snapshot.t","source":{"file":"lib/libtmux.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Snapshot","slug":"libtmux-formats-observation-snapshot"},{"id":"Libtmux.Formats.observation.Window","publicId":"Libtmux.Formats.observation.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":527,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.t","source":{"file":"lib/libtmux.mli","line":527,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window","slug":"libtmux-formats-observation-window"},{"id":"Libtmux.Formats.observation.Window_link","publicId":"Libtmux.Formats.observation.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":528,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link of Window_link.t","source":{"file":"lib/libtmux.mli","line":528,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window_link","slug":"libtmux-formats-observation-window_link"},{"id":"Libtmux.Formats.scalar","publicId":"Libtmux.Formats.scalar","qualifiedName":"Libtmux.Formats.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar = Bool of bool | Int of int | Text of string","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type scalar =\n | Bool of bool \n | Int of int \n | Text of string ","params":[]}],"slug":"libtmux-formats-scalar"},{"id":"Libtmux.Formats.scalar.Bool","publicId":"Libtmux.Formats.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool of bool","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Bool","slug":"libtmux-formats-scalar-bool"},{"id":"Libtmux.Formats.scalar.Int","publicId":"Libtmux.Formats.scalar.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int of int","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Int","slug":"libtmux-formats-scalar-int"},{"id":"Libtmux.Formats.scalar.Text","publicId":"Libtmux.Formats.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Text","slug":"libtmux-formats-scalar-text"},{"id":"Libtmux.Formats.state","publicId":"Libtmux.Formats.state","qualifiedName":"Libtmux.Formats.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":534,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported","source":{"file":"lib/libtmux.mli","line":534,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type state =\n | Value of scalar \n | Missing \n | Unacquired \n | Unsupported ","params":[]}],"slug":"libtmux-formats-state"},{"id":"Libtmux.Formats.state.Missing","publicId":"Libtmux.Formats.state.Missing","name":"Missing","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":536,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing","source":{"file":"lib/libtmux.mli","line":536,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Missing","slug":"libtmux-formats-state-missing"},{"id":"Libtmux.Formats.state.Unacquired","publicId":"Libtmux.Formats.state.Unacquired","name":"Unacquired","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unacquired","source":{"file":"lib/libtmux.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Unacquired","slug":"libtmux-formats-state-unacquired"},{"id":"Libtmux.Formats.state.Unsupported","publicId":"Libtmux.Formats.state.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":538,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. "],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"lib/libtmux.mli","line":538,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.state","doc":{"summary":"`Missing` is an absence explicitly recorded in the observation, such as a client without terminal height. `Unacquired` means no captured value for this observation, including ambiguous session context for a pane. `Unsupported` means the name is outside the selected release's catalog. `Value (Text \"\")` is a captured empty string, never inferred absence."},"variant":"unit","qualifiedName":"Libtmux.Formats.Unsupported","slug":"libtmux-formats-state-unsupported"},{"id":"Libtmux.Formats.state.Value","publicId":"Libtmux.Formats.state.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":535,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Value of scalar","source":{"file":"lib/libtmux.mli","line":535,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Formats.state","variant":"tuple","qualifiedName":"Libtmux.Formats.Value","slug":"libtmux-formats-state-value"},{"id":"Libtmux.Generation","publicId":"Libtmux.Generation","qualifiedName":"Libtmux.Generation","name":"Generation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A random connection-generation identifier. Reconnecting creates a new\n generation even when the socket and server PID are unchanged. "],"declarations":[{"kind":"module","text":"module Generation : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"A random connection-generation identifier. Reconnecting creates a new generation even when the socket and server PID are unchanged."},"slug":"libtmux-generation"},{"id":"Libtmux.Generation.equal","publicId":"Libtmux.Generation.equal","qualifiedName":"Libtmux.Generation.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-generation-equal"},{"id":"Libtmux.Generation.of_string","publicId":"Libtmux.Generation.of_string","qualifiedName":"Libtmux.Generation.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Generation","doc":{"summary":"Import a 256-bit connection nonce as 64 lowercase hexadecimal characters. Backends generate a fresh random nonce for each connection."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-generation-of_string"},{"id":"Libtmux.Generation.t","publicId":"Libtmux.Generation.t","qualifiedName":"Libtmux.Generation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":84,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":84,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-generation-t"},{"id":"Libtmux.Generation.to_string","publicId":"Libtmux.Generation.to_string","qualifiedName":"Libtmux.Generation.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-generation-to_string"},{"id":"Libtmux.Geometry","publicId":"Libtmux.Geometry","qualifiedName":"Libtmux.Geometry","name":"Geometry","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Geometry : sig\n type direction = Left | Right | Above | Below\n type size = Cells of int | Percent of int\nend","source":{"file":"lib/libtmux.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-geometry"},{"id":"Libtmux.Geometry.direction","publicId":"Libtmux.Geometry.direction","qualifiedName":"Libtmux.Geometry.direction","name":"direction","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type direction = Left | Right | Above | Below","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type direction =\n | Left \n | Right \n | Above \n | Below ","params":[]}],"slug":"libtmux-geometry-direction"},{"id":"Libtmux.Geometry.direction.Above","publicId":"Libtmux.Geometry.direction.Above","name":"Above","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Above","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Above","slug":"libtmux-geometry-direction-above"},{"id":"Libtmux.Geometry.direction.Below","publicId":"Libtmux.Geometry.direction.Below","name":"Below","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Below","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Below","slug":"libtmux-geometry-direction-below"},{"id":"Libtmux.Geometry.direction.Left","publicId":"Libtmux.Geometry.direction.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Left","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Left","slug":"libtmux-geometry-direction-left"},{"id":"Libtmux.Geometry.direction.Right","publicId":"Libtmux.Geometry.direction.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Right","slug":"libtmux-geometry-direction-right"},{"id":"Libtmux.Geometry.size","publicId":"Libtmux.Geometry.size","qualifiedName":"Libtmux.Geometry.size","name":"size","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type size = Cells of int | Percent of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type size =\n | Cells of int \n | Percent of int ","params":[]}],"slug":"libtmux-geometry-size"},{"id":"Libtmux.Geometry.size.Cells","publicId":"Libtmux.Geometry.size.Cells","name":"Cells","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Cells of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Cells","slug":"libtmux-geometry-size-cells"},{"id":"Libtmux.Geometry.size.Percent","publicId":"Libtmux.Geometry.size.Percent","name":"Percent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Percent of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Percent","slug":"libtmux-geometry-size-percent"},{"id":"Libtmux.Hook","publicId":"Libtmux.Hook","qualifiedName":"Libtmux.Hook","name":"Hook","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":873,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Hook : sig\n type command = { name : string; arguments : string list }\n (** A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. *)\nend","source":{"file":"lib/libtmux.mli","line":873,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-hook"},{"id":"Libtmux.Hook.command","publicId":"Libtmux.Hook.command","qualifiedName":"Libtmux.Hook.command","name":"command","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. "],"declarations":[{"kind":"struct","text":"type command = { name : string; arguments : string list }","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Hook","doc":{"summary":"A tmux command and its distinct arguments. Setting a hook encodes these as command data; it does not concatenate arguments into shell code. Argument-specific tmux behavior, including format expansion, still applies when the hook runs."},"signatures":[{"raw":"type command = {\n name: string ;\n arguments: string list }","params":[]}],"slug":"libtmux-hook-command"},{"id":"Libtmux.Hook.command.arguments","publicId":"Libtmux.Hook.command.arguments","name":"arguments","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"arguments : string list","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Hook.command","type":"string list","qualifiedName":"Libtmux.Hook.arguments","slug":"libtmux-hook-command-arguments"},{"id":"Libtmux.Hook.command.name","publicId":"Libtmux.Hook.command.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Hook.command","type":"string","qualifiedName":"Libtmux.Hook.name","slug":"libtmux-hook-command-name"},{"id":"Libtmux.ID","publicId":"Libtmux.ID","qualifiedName":"Libtmux.ID","name":"ID","kind":"interface","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"interface","text":"module type ID = sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Accept a canonical prefixed decimal tmux ID in the uint32 range. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\n val compare : t -> t -> int\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-id"},{"id":"Libtmux.ID.compare","publicId":"Libtmux.ID.compare","qualifiedName":"Libtmux.ID.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-id-compare"},{"id":"Libtmux.ID.equal","publicId":"Libtmux.ID.equal","qualifiedName":"Libtmux.ID.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-id-equal"},{"id":"Libtmux.ID.of_string","publicId":"Libtmux.ID.of_string","qualifiedName":"Libtmux.ID.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.ID","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-id-of_string"},{"id":"Libtmux.ID.pp","publicId":"Libtmux.ID.pp","qualifiedName":"Libtmux.ID.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-id-pp"},{"id":"Libtmux.ID.t","publicId":"Libtmux.ID.t","qualifiedName":"Libtmux.ID.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.ID","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-id-t"},{"id":"Libtmux.ID.to_string","publicId":"Libtmux.ID.to_string","qualifiedName":"Libtmux.ID.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-id-to_string"},{"id":"Libtmux.Key","publicId":"Libtmux.Key","qualifiedName":"Libtmux.Key","name":"Key","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Key : sig\n type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char\nend","source":{"file":"lib/libtmux.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-key"},{"id":"Libtmux.Key.t","publicId":"Libtmux.Key.t","qualifiedName":"Libtmux.Key.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":725,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","source":{"file":"lib/libtmux.mli","line":725,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key","signatures":[{"raw":"type t =\n | Enter \n | Tab \n | Escape \n | Backspace \n | Up \n | Down \n | Left \n | Right \n | Control of char ","params":[]}],"slug":"libtmux-key-t"},{"id":"Libtmux.Key.t.Backspace","publicId":"Libtmux.Key.t.Backspace","name":"Backspace","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Backspace","source":{"file":"lib/libtmux.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Backspace","slug":"libtmux-key-t-backspace"},{"id":"Libtmux.Key.t.Control","publicId":"Libtmux.Key.t.Control","name":"Control","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":734,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Control of char","source":{"file":"lib/libtmux.mli","line":734,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"tuple","qualifiedName":"Libtmux.Key.Control","slug":"libtmux-key-t-control"},{"id":"Libtmux.Key.t.Down","publicId":"Libtmux.Key.t.Down","name":"Down","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":731,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Down","source":{"file":"lib/libtmux.mli","line":731,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Down","slug":"libtmux-key-t-down"},{"id":"Libtmux.Key.t.Enter","publicId":"Libtmux.Key.t.Enter","name":"Enter","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":726,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Enter","source":{"file":"lib/libtmux.mli","line":726,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Enter","slug":"libtmux-key-t-enter"},{"id":"Libtmux.Key.t.Escape","publicId":"Libtmux.Key.t.Escape","name":"Escape","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":728,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Escape","source":{"file":"lib/libtmux.mli","line":728,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Escape","slug":"libtmux-key-t-escape"},{"id":"Libtmux.Key.t.Left","publicId":"Libtmux.Key.t.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":732,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Left","source":{"file":"lib/libtmux.mli","line":732,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Left","slug":"libtmux-key-t-left"},{"id":"Libtmux.Key.t.Right","publicId":"Libtmux.Key.t.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":733,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":733,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Right","slug":"libtmux-key-t-right"},{"id":"Libtmux.Key.t.Tab","publicId":"Libtmux.Key.t.Tab","name":"Tab","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":727,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tab","source":{"file":"lib/libtmux.mli","line":727,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Tab","slug":"libtmux-key-t-tab"},{"id":"Libtmux.Key.t.Up","publicId":"Libtmux.Key.t.Up","name":"Up","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":730,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Up","source":{"file":"lib/libtmux.mli","line":730,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Up","slug":"libtmux-key-t-up"},{"id":"Libtmux.Layout","publicId":"Libtmux.Layout","qualifiedName":"Libtmux.Layout","name":"Layout","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":767,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Layout : sig\n type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string\nend","source":{"file":"lib/libtmux.mli","line":767,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","slug":"libtmux-layout"},{"id":"Libtmux.Layout.t","publicId":"Libtmux.Layout.t","qualifiedName":"Libtmux.Layout.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":768,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","source":{"file":"lib/libtmux.mli","line":768,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout","signatures":[{"raw":"type t =\n | Even_horizontal \n | Even_vertical \n | Main_horizontal \n | Main_vertical \n | Tiled \n | Custom of string ","params":[]}],"slug":"libtmux-layout-t"},{"id":"Libtmux.Layout.t.Custom","publicId":"Libtmux.Layout.t.Custom","name":"Custom","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Custom of string","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout.t","variant":"tuple","qualifiedName":"Libtmux.Layout.Custom","slug":"libtmux-layout-t-custom"},{"id":"Libtmux.Layout.t.Even_horizontal","publicId":"Libtmux.Layout.t.Even_horizontal","name":"Even_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":769,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_horizontal","source":{"file":"lib/libtmux.mli","line":769,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_horizontal","slug":"libtmux-layout-t-even_horizontal"},{"id":"Libtmux.Layout.t.Even_vertical","publicId":"Libtmux.Layout.t.Even_vertical","name":"Even_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":770,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_vertical","source":{"file":"lib/libtmux.mli","line":770,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_vertical","slug":"libtmux-layout-t-even_vertical"},{"id":"Libtmux.Layout.t.Main_horizontal","publicId":"Libtmux.Layout.t.Main_horizontal","name":"Main_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":771,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_horizontal","source":{"file":"lib/libtmux.mli","line":771,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_horizontal","slug":"libtmux-layout-t-main_horizontal"},{"id":"Libtmux.Layout.t.Main_vertical","publicId":"Libtmux.Layout.t.Main_vertical","name":"Main_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_vertical","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_vertical","slug":"libtmux-layout-t-main_vertical"},{"id":"Libtmux.Layout.t.Tiled","publicId":"Libtmux.Layout.t.Tiled","name":"Tiled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tiled","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Tiled","slug":"libtmux-layout-t-tiled"},{"id":"Libtmux.Model","publicId":"Libtmux.Model","qualifiedName":"Libtmux.Model","name":"Model","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Built-in model witnesses and canonical field lookup for typed codecs.\n Untrusted field names must resolve against the selected model. "],"declarations":[{"kind":"module","text":"module Model : sig\n type 'a t\n\n val session : Session.t t\n val window : Window.t t\n val window_link : Window_link.t t\n val pane : Pane.t t\n val client : Client_observation.t t\n val name : 'a t -> string\n val fields : 'a t -> 'a Field.packed list\n val find_field : 'a t -> string -> 'a Field.packed option\nend","source":{"file":"lib/libtmux.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Built-in model witnesses and canonical field lookup for typed codecs. Untrusted field names must resolve against the selected model."},"slug":"libtmux-model"},{"id":"Libtmux.Model.client","publicId":"Libtmux.Model.client","qualifiedName":"Libtmux.Model.client","name":"client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val client : Client_observation.t t","source":{"file":"lib/libtmux.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val client : Client_observation.t t","params":[],"returns":"Client_observation.t t"}],"slug":"libtmux-model-client"},{"id":"Libtmux.Model.fields","publicId":"Libtmux.Model.fields","qualifiedName":"Libtmux.Model.fields","name":"fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":567,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val fields : 'a t -> 'a Field.packed list","source":{"file":"lib/libtmux.mli","line":567,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val fields : 'a t -> 'a Field.packed list","params":[{"name":"arg1","type":"'a t"}],"returns":"'a Field.packed list"}],"slug":"libtmux-model-fields"},{"id":"Libtmux.Model.find_field","publicId":"Libtmux.Model.find_field","qualifiedName":"Libtmux.Model.find_field","name":"find_field","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_field : 'a t -> string -> 'a Field.packed option","source":{"file":"lib/libtmux.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val find_field : 'a t -> string -> 'a Field.packed option","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"string"}],"returns":"'a Field.packed option"}],"slug":"libtmux-model-find_field"},{"id":"Libtmux.Model.name","publicId":"Libtmux.Model.name","qualifiedName":"Libtmux.Model.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":566,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : 'a t -> string","source":{"file":"lib/libtmux.mli","line":566,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val name : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-model-name"},{"id":"Libtmux.Model.pane","publicId":"Libtmux.Model.pane","qualifiedName":"Libtmux.Model.pane","name":"pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":564,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pane : Pane.t t","source":{"file":"lib/libtmux.mli","line":564,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val pane : Pane.t t","params":[],"returns":"Pane.t t"}],"slug":"libtmux-model-pane"},{"id":"Libtmux.Model.session","publicId":"Libtmux.Model.session","qualifiedName":"Libtmux.Model.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":561,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : Session.t t","source":{"file":"lib/libtmux.mli","line":561,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val session : Session.t t","params":[],"returns":"Session.t t"}],"slug":"libtmux-model-session"},{"id":"Libtmux.Model.t","publicId":"Libtmux.Model.t","qualifiedName":"Libtmux.Model.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":559,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":559,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-model-t"},{"id":"Libtmux.Model.window","publicId":"Libtmux.Model.window","qualifiedName":"Libtmux.Model.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : Window.t t","source":{"file":"lib/libtmux.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window : Window.t t","params":[],"returns":"Window.t t"}],"slug":"libtmux-model-window"},{"id":"Libtmux.Model.window_link","publicId":"Libtmux.Model.window_link","qualifiedName":"Libtmux.Model.window_link","name":"window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":563,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_link : Window_link.t t","source":{"file":"lib/libtmux.mli","line":563,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window_link : Window_link.t t","params":[],"returns":"Window_link.t t"}],"slug":"libtmux-model-window_link"},{"id":"Libtmux.Operations","publicId":"Libtmux.Operations","qualifiedName":"Libtmux.Operations","name":"Operations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1073,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Construct typed tmux operations for a backend client. Observations are\n immutable, mutations use explicit targets, and no command retries a mutation\n against another connection generation. Construction performs no I/O; the\n descriptions below state what execution does. "],"declarations":[{"kind":"module","text":"module Operations : sig\n val capture : unit -> Snapshot.t Command.t\n (** Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. *)\n\n val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t\n (** Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. *)\n\n val rename_window : Window.target -> name:string -> unit Command.t\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session : Session.target -> name:string -> unit Command.t\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at : Client_name.t -> unit Command.t\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text : Pane.target -> text:string -> unit Command.t\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys : Pane.target -> Key.t list -> unit Command.t\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : string -> unit Command.t\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : string -> unit Command.t\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment : Environment.scope -> string -> unit Command.t\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment : Environment.scope -> string -> unit Command.t\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Error.Unsupported}. *)\n\n val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array : Options.scope -> string -> unit Command.t\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks : Options.scope -> Options.t Command.t\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. *)\n\n val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook : Options.scope -> string -> unit Command.t\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session : Session.target -> unit Command.t\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : Window.target -> unit Command.t\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : Pane.target -> unit Command.t\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at : Session.target -> index:int -> unit Command.t\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : Pane.target -> unit Command.t\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title : Pane.target -> title:string -> unit Command.t\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout : Window.target -> Layout.t -> unit Command.t\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes : Pane.target -> Pane.target -> unit Command.t\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : Pane.target -> unit Command.t\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : Pane.target -> unit Command.t\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\nend","source":{"file":"lib/libtmux.mli","line":1073,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Construct typed tmux operations for a backend client. Observations are immutable, mutations use explicit targets, and no command retries a mutation against another connection generation. Construction performs no I/O; the descriptions below state what execution does."},"slug":"libtmux-operations"},{"id":"Libtmux.Operations.break_pane","publicId":"Libtmux.Operations.break_pane","qualifiedName":"Libtmux.Operations.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1257,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n Pane.target -> session:Session.target -> index:int -> Created.t Command.t","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-break_pane"},{"id":"Libtmux.Operations.capture","publicId":"Libtmux.Operations.capture","qualifiedName":"Libtmux.Operations.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1074,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. "],"declarations":[{"kind":"function","text":"val capture : unit -> Snapshot.t Command.t","source":{"file":"lib/libtmux.mli","line":1074,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture and validate the complete session/window-link/pane graph. The result records an acquisition interval, not an atomic server instant."},"signatures":[{"raw":"val capture : unit -> Snapshot.t Command.t","params":[{"name":"arg1","type":"unit"}],"returns":"Snapshot.t Command.t"}],"slug":"libtmux-operations-capture"},{"id":"Libtmux.Operations.capture_environment","publicId":"Libtmux.Operations.capture_environment","qualifiedName":"Libtmux.Operations.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1132,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","source":{"file":"lib/libtmux.mli","line":1132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"}],"returns":"Environment.t Command.t"}],"slug":"libtmux-operations-capture_environment"},{"id":"Libtmux.Operations.capture_hooks","publicId":"Libtmux.Operations.capture_hooks","qualifiedName":"Libtmux.Operations.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1190,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks : Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks : Options.scope -> Options.t Command.t","params":[{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_hooks"},{"id":"Libtmux.Operations.capture_options","publicId":"Libtmux.Operations.capture_options","qualifiedName":"Libtmux.Operations.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1152,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Error.Unsupported}. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors cover every supported release from tmux 3.3a through 3.8; other versions return {!Error.Unsupported}."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_options"},{"id":"Libtmux.Operations.capture_text","publicId":"Libtmux.Operations.capture_text","qualifiedName":"Libtmux.Operations.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1078,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t","source":{"file":"lib/libtmux.mli","line":1078,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture inclusive visible rows through an operation-owned temporary file. Require `0 <= start <= end_ < Pane.height pane`; scrollback is excluded. Retained bytes survive client close. The scratch directory must share the daemon filesystem."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n Pane.t -> start:int -> end_:int -> Captured_text.t Command.t","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"Captured_text.t Command.t"}],"slug":"libtmux-operations-capture_text"},{"id":"Libtmux.Operations.clear_history","publicId":"Libtmux.Operations.clear_history","qualifiedName":"Libtmux.Operations.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1355,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1355,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_history"},{"id":"Libtmux.Operations.clear_option_array","publicId":"Libtmux.Operations.clear_option_array","qualifiedName":"Libtmux.Operations.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1187,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_option_array"},{"id":"Libtmux.Operations.create_session","publicId":"Libtmux.Operations.create_session","qualifiedName":"Libtmux.Operations.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1229,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int -> ?spawn:Spawn.t -> name:string -> unit -> Created.t Command.t","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_session"},{"id":"Libtmux.Operations.create_window","publicId":"Libtmux.Operations.create_window","qualifiedName":"Libtmux.Operations.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1239,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string -> ?spawn:Spawn.t -> Session.target -> Created.t Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_window"},{"id":"Libtmux.Operations.cycle_layout","publicId":"Libtmux.Operations.cycle_layout","qualifiedName":"Libtmux.Operations.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1325,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1325,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Next | `Previous ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-cycle_layout"},{"id":"Libtmux.Operations.kill_pane","publicId":"Libtmux.Operations.kill_pane","qualifiedName":"Libtmux.Operations.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1275,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_pane"},{"id":"Libtmux.Operations.kill_session","publicId":"Libtmux.Operations.kill_session","qualifiedName":"Libtmux.Operations.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1267,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session : Session.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1267,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session : Session.target -> unit Command.t","params":[{"name":"arg1","type":"Session.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_session"},{"id":"Libtmux.Operations.kill_window","publicId":"Libtmux.Operations.kill_window","qualifiedName":"Libtmux.Operations.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1271,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1271,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window : Window.target -> unit Command.t","params":[{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_window"},{"id":"Libtmux.Operations.link_window","publicId":"Libtmux.Operations.link_window","qualifiedName":"Libtmux.Operations.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1288,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-link_window"},{"id":"Libtmux.Operations.move_pane","publicId":"Libtmux.Operations.move_pane","qualifiedName":"Libtmux.Operations.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1328,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target -> direction:Geometry.direction -> unit Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"beside","type":"Pane.target","keywordOnly":true},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_pane"},{"id":"Libtmux.Operations.move_window_at","publicId":"Libtmux.Operations.move_window_at","qualifiedName":"Libtmux.Operations.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1293,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n Session.target ->\n from_index:int -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_window_at"},{"id":"Libtmux.Operations.read_hook","publicId":"Libtmux.Operations.read_hook","qualifiedName":"Libtmux.Operations.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1194,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_hook"},{"id":"Libtmux.Operations.read_option","publicId":"Libtmux.Operations.read_option","qualifiedName":"Libtmux.Operations.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1160,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_option"},{"id":"Libtmux.Operations.refresh_client_at","publicId":"Libtmux.Operations.refresh_client_at","qualifiedName":"Libtmux.Operations.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1111,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-refresh_client_at"},{"id":"Libtmux.Operations.remove_environment","publicId":"Libtmux.Operations.remove_environment","qualifiedName":"Libtmux.Operations.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1149,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_environment"},{"id":"Libtmux.Operations.remove_hook","publicId":"Libtmux.Operations.remove_hook","qualifiedName":"Libtmux.Operations.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1217,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_hook"},{"id":"Libtmux.Operations.rename_session","publicId":"Libtmux.Operations.rename_session","qualifiedName":"Libtmux.Operations.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1093,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session : Session.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1093,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session : Session.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_session"},{"id":"Libtmux.Operations.rename_window","publicId":"Libtmux.Operations.rename_window","qualifiedName":"Libtmux.Operations.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1089,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window : Window.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1089,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window : Window.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_window"},{"id":"Libtmux.Operations.request_detach_client_at","publicId":"Libtmux.Operations.request_detach_client_at","qualifiedName":"Libtmux.Operations.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1106,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at : Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at : Client_name.t -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-request_detach_client_at"},{"id":"Libtmux.Operations.resize_control_client_at","publicId":"Libtmux.Operations.resize_control_client_at","qualifiedName":"Libtmux.Operations.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1114,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_control_client_at"},{"id":"Libtmux.Operations.resize_pane","publicId":"Libtmux.Operations.resize_pane","qualifiedName":"Libtmux.Operations.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1310,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1310,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_pane"},{"id":"Libtmux.Operations.resize_window","publicId":"Libtmux.Operations.resize_window","qualifiedName":"Libtmux.Operations.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1315,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_window"},{"id":"Libtmux.Operations.respawn_pane","publicId":"Libtmux.Operations.respawn_pane","qualifiedName":"Libtmux.Operations.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1349,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1349,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Spawn.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-respawn_pane"},{"id":"Libtmux.Operations.rotate_panes","publicId":"Libtmux.Operations.rotate_panes","qualifiedName":"Libtmux.Operations.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1342,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1342,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n Window.target -> [ `Backward | `Forward ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Backward | `Forward ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rotate_panes"},{"id":"Libtmux.Operations.run_hook","publicId":"Libtmux.Operations.run_hook","qualifiedName":"Libtmux.Operations.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1221,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-run_hook"},{"id":"Libtmux.Operations.select_layout","publicId":"Libtmux.Operations.select_layout","qualifiedName":"Libtmux.Operations.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1321,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout : Window.target -> Layout.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1321,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout : Window.target -> Layout.t -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"Layout.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_layout"},{"id":"Libtmux.Operations.select_pane","publicId":"Libtmux.Operations.select_pane","qualifiedName":"Libtmux.Operations.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1302,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_pane"},{"id":"Libtmux.Operations.select_window_at","publicId":"Libtmux.Operations.select_window_at","qualifiedName":"Libtmux.Operations.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1279,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at : Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at : Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_window_at"},{"id":"Libtmux.Operations.send_keys","publicId":"Libtmux.Operations.send_keys","qualifiedName":"Libtmux.Operations.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1121,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys : Pane.target -> Key.t list -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys : Pane.target -> Key.t list -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Key.t list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_keys"},{"id":"Libtmux.Operations.send_text","publicId":"Libtmux.Operations.send_text","qualifiedName":"Libtmux.Operations.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1118,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text : Pane.target -> text:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1118,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text : Pane.target -> text:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_text"},{"id":"Libtmux.Operations.set_environment","publicId":"Libtmux.Operations.set_environment","qualifiedName":"Libtmux.Operations.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1139,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1139,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n Environment.scope -> name:string -> string -> unit Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_environment"},{"id":"Libtmux.Operations.set_hook","publicId":"Libtmux.Operations.set_hook","qualifiedName":"Libtmux.Operations.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1202,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Hook.command list -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Hook.command list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_hook"},{"id":"Libtmux.Operations.set_option","publicId":"Libtmux.Operations.set_option","qualifiedName":"Libtmux.Operations.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1170,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1170,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Options.scalar -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Options.scalar"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_option"},{"id":"Libtmux.Operations.set_pane_title","publicId":"Libtmux.Operations.set_pane_title","qualifiedName":"Libtmux.Operations.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1306,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title : Pane.target -> title:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title : Pane.target -> title:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_pane_title"},{"id":"Libtmux.Operations.signal","publicId":"Libtmux.Operations.signal","qualifiedName":"Libtmux.Operations.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1128,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-signal"},{"id":"Libtmux.Operations.split_pane","publicId":"Libtmux.Operations.split_pane","qualifiedName":"Libtmux.Operations.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1247,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1247,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target -> direction:Geometry.direction -> Created.t Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-split_pane"},{"id":"Libtmux.Operations.swap_panes","publicId":"Libtmux.Operations.swap_panes","qualifiedName":"Libtmux.Operations.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1338,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1338,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-swap_panes"},{"id":"Libtmux.Operations.switch_client_at","publicId":"Libtmux.Operations.switch_client_at","qualifiedName":"Libtmux.Operations.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1097,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1097,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t -> session:Session.target -> unit Command.t","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"},{"name":"session","type":"Session.target","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-switch_client_at"},{"id":"Libtmux.Operations.unlink_window_at","publicId":"Libtmux.Operations.unlink_window_at","qualifiedName":"Libtmux.Operations.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1283,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unlink_window_at"},{"id":"Libtmux.Operations.unset_environment","publicId":"Libtmux.Operations.unset_environment","qualifiedName":"Libtmux.Operations.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1145,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_environment"},{"id":"Libtmux.Operations.unset_option","publicId":"Libtmux.Operations.unset_option","qualifiedName":"Libtmux.Operations.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1183,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_option"},{"id":"Libtmux.Operations.wait_for","publicId":"Libtmux.Operations.wait_for","qualifiedName":"Libtmux.Operations.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1125,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-wait_for"},{"id":"Libtmux.Operations.zoom_pane","publicId":"Libtmux.Operations.zoom_pane","qualifiedName":"Libtmux.Operations.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1346,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Operations","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-zoom_pane"},{"id":"Libtmux.Options","publicId":"Libtmux.Options","qualifiedName":"Libtmux.Options","name":"Options","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":818,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Version-aware option descriptors and captured scoped values. Sparse array\n indexes and inherited entries retain their tmux meaning. "],"declarations":[{"kind":"module","text":"module Options : sig\n module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }\n (** Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. *)\n\n type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target\n\n type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string\n\n type value = Scalar of scalar | Array of (int * scalar) Iarray.t\n type entry = { descriptor : descriptor; value : value; inherited : bool }\n\n type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor, Error.t) result\n\n val lookup : t -> string -> entry option\n (** [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. *)\nend","source":{"file":"lib/libtmux.mli","line":818,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Version-aware option descriptors and captured scoped values. Sparse array indexes and inherited entries retain their tmux meaning."},"slug":"libtmux-options"},{"id":"Libtmux.Options.Kind","publicId":"Libtmux.Options.Kind","qualifiedName":"Libtmux.Options.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":819,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end","source":{"file":"lib/libtmux.mli","line":819,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","slug":"libtmux-options-kind"},{"id":"Libtmux.Options.Kind.t","publicId":"Libtmux.Options.Kind.t","qualifiedName":"Libtmux.Options.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind","signatures":[{"raw":"type t =\n | Text \n | Number \n | Flag \n | Choice \n | Key \n | Colour \n | Commands ","params":[]}],"slug":"libtmux-options-kind-t"},{"id":"Libtmux.Options.Kind.t.Choice","publicId":"Libtmux.Options.Kind.t.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Choice","slug":"libtmux-options-kind-t-choice"},{"id":"Libtmux.Options.Kind.t.Colour","publicId":"Libtmux.Options.Kind.t.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Colour","slug":"libtmux-options-kind-t-colour"},{"id":"Libtmux.Options.Kind.t.Commands","publicId":"Libtmux.Options.Kind.t.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Commands","slug":"libtmux-options-kind-t-commands"},{"id":"Libtmux.Options.Kind.t.Flag","publicId":"Libtmux.Options.Kind.t.Flag","name":"Flag","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Flag","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Flag","slug":"libtmux-options-kind-t-flag"},{"id":"Libtmux.Options.Kind.t.Key","publicId":"Libtmux.Options.Kind.t.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Key","slug":"libtmux-options-kind-t-key"},{"id":"Libtmux.Options.Kind.t.Number","publicId":"Libtmux.Options.Kind.t.Number","name":"Number","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Number","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Number","slug":"libtmux-options-kind-t-number"},{"id":"Libtmux.Options.Kind.t.Text","publicId":"Libtmux.Options.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Text","slug":"libtmux-options-kind-t-text"},{"id":"Libtmux.Options.catalog","publicId":"Libtmux.Options.catalog","qualifiedName":"Libtmux.Options.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":865,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":865,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-options-catalog"},{"id":"Libtmux.Options.describe","publicId":"Libtmux.Options.describe","qualifiedName":"Libtmux.Options.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":866,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor, Error.t) result","source":{"file":"lib/libtmux.mli","line":866,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val describe : version:string -> string -> (descriptor, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor, Error.t) result"}],"slug":"libtmux-options-describe"},{"id":"Libtmux.Options.descriptor","publicId":"Libtmux.Options.descriptor","qualifiedName":"Libtmux.Options.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":823,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":823,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","doc":{"summary":"Generated upstream descriptors. `versions` lists qualified releases; user options have no built-in release history."},"signatures":[{"raw":"type descriptor =\n {\n name: string ;\n kind: Kind.t ;\n array: bool ;\n hook: bool ;\n scopes: [ `Server | `Session | `Window | `Pane ] list ;\n versions: string list }","params":[]}],"slug":"libtmux-options-descriptor"},{"id":"Libtmux.Options.descriptor.array","publicId":"Libtmux.Options.descriptor.array","name":"array","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":826,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"array : bool;","source":{"file":"lib/libtmux.mli","line":826,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.array","slug":"libtmux-options-descriptor-array"},{"id":"Libtmux.Options.descriptor.hook","publicId":"Libtmux.Options.descriptor.hook","name":"hook","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":827,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hook : bool;","source":{"file":"lib/libtmux.mli","line":827,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.hook","slug":"libtmux-options-descriptor-hook"},{"id":"Libtmux.Options.descriptor.kind","publicId":"Libtmux.Options.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":825,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":825,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Options.kind","slug":"libtmux-options-descriptor-kind"},{"id":"Libtmux.Options.descriptor.name","publicId":"Libtmux.Options.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":824,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":824,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.descriptor","type":"string","qualifiedName":"Libtmux.Options.name","slug":"libtmux-options-descriptor-name"},{"id":"Libtmux.Options.descriptor.scopes","publicId":"Libtmux.Options.descriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":828,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scopes : [ `Server | `Session | `Window | `Pane ] list;","source":{"file":"lib/libtmux.mli","line":828,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.descriptor","type":"[ `Pane | `Server | `Session | `Window ] list","qualifiedName":"Libtmux.Options.scopes","slug":"libtmux-options-descriptor-scopes"},{"id":"Libtmux.Options.descriptor.versions","publicId":"Libtmux.Options.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.descriptor","type":"string list","qualifiedName":"Libtmux.Options.versions","slug":"libtmux-options-descriptor-versions"},{"id":"Libtmux.Options.entry","publicId":"Libtmux.Options.entry","qualifiedName":"Libtmux.Options.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { descriptor : descriptor; value : value; inherited : bool }","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type entry = {\n descriptor: descriptor ;\n value: value ;\n inherited: bool }","params":[]}],"slug":"libtmux-options-entry"},{"id":"Libtmux.Options.entry.descriptor","publicId":"Libtmux.Options.entry.descriptor","name":"descriptor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"descriptor : descriptor;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.entry","type":"descriptor","qualifiedName":"Libtmux.Options.descriptor","slug":"libtmux-options-entry-descriptor"},{"id":"Libtmux.Options.entry.inherited","publicId":"Libtmux.Options.entry.inherited","name":"inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inherited : bool","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.entry","type":"bool","qualifiedName":"Libtmux.Options.inherited","slug":"libtmux-options-entry-inherited"},{"id":"Libtmux.Options.entry.value","publicId":"Libtmux.Options.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.entry","type":"value","qualifiedName":"Libtmux.Options.value","slug":"libtmux-options-entry-value"},{"id":"Libtmux.Options.lookup","publicId":"Libtmux.Options.lookup","qualifiedName":"Libtmux.Options.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":868,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> entry option","source":{"file":"lib/libtmux.mli","line":868,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","doc":{"summary":"`None` means absent from this capture's selected scope and inheritance policy. Use `describe` to distinguish an unsupported built-in name."},"signatures":[{"raw":"val lookup : t -> string -> entry option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"entry option"}],"slug":"libtmux-options-lookup"},{"id":"Libtmux.Options.scalar","publicId":"Libtmux.Options.scalar","qualifiedName":"Libtmux.Options.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":842,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","source":{"file":"lib/libtmux.mli","line":842,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scalar =\n | Text of string \n | Integer of int64 \n | Bool of bool \n | Choice of string \n | Key of string \n | Colour of string \n | Commands of string ","params":[]}],"slug":"libtmux-options-scalar"},{"id":"Libtmux.Options.scalar.Bool","publicId":"Libtmux.Options.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":845,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool of bool","source":{"file":"lib/libtmux.mli","line":845,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Bool","slug":"libtmux-options-scalar-bool"},{"id":"Libtmux.Options.scalar.Choice","publicId":"Libtmux.Options.scalar.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":846,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice of string","source":{"file":"lib/libtmux.mli","line":846,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Choice","slug":"libtmux-options-scalar-choice"},{"id":"Libtmux.Options.scalar.Colour","publicId":"Libtmux.Options.scalar.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":848,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour of string","source":{"file":"lib/libtmux.mli","line":848,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Colour","slug":"libtmux-options-scalar-colour"},{"id":"Libtmux.Options.scalar.Commands","publicId":"Libtmux.Options.scalar.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":849,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands of string","source":{"file":"lib/libtmux.mli","line":849,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Commands","slug":"libtmux-options-scalar-commands"},{"id":"Libtmux.Options.scalar.Integer","publicId":"Libtmux.Options.scalar.Integer","name":"Integer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":844,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Integer of int64","source":{"file":"lib/libtmux.mli","line":844,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Integer","slug":"libtmux-options-scalar-integer"},{"id":"Libtmux.Options.scalar.Key","publicId":"Libtmux.Options.scalar.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":847,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key of string","source":{"file":"lib/libtmux.mli","line":847,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Key","slug":"libtmux-options-scalar-key"},{"id":"Libtmux.Options.scalar.Text","publicId":"Libtmux.Options.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":843,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":843,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Text","slug":"libtmux-options-scalar-text"},{"id":"Libtmux.Options.scope","publicId":"Libtmux.Options.scope","qualifiedName":"Libtmux.Options.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":834,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":834,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scope =\n | Server \n | Global_sessions \n | Global_windows \n | Session of Session.target \n | Window of Window.target \n | Pane of Pane.target ","params":[]}],"slug":"libtmux-options-scope"},{"id":"Libtmux.Options.scope.Global_sessions","publicId":"Libtmux.Options.scope.Global_sessions","name":"Global_sessions","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":836,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_sessions","source":{"file":"lib/libtmux.mli","line":836,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_sessions","slug":"libtmux-options-scope-global_sessions"},{"id":"Libtmux.Options.scope.Global_windows","publicId":"Libtmux.Options.scope.Global_windows","name":"Global_windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":837,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_windows","source":{"file":"lib/libtmux.mli","line":837,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_windows","slug":"libtmux-options-scope-global_windows"},{"id":"Libtmux.Options.scope.Pane","publicId":"Libtmux.Options.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":840,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":840,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Pane","slug":"libtmux-options-scope-pane"},{"id":"Libtmux.Options.scope.Server","publicId":"Libtmux.Options.scope.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":835,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":835,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Server","slug":"libtmux-options-scope-server"},{"id":"Libtmux.Options.scope.Session","publicId":"Libtmux.Options.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":838,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":838,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Session","slug":"libtmux-options-scope-session"},{"id":"Libtmux.Options.scope.Window","publicId":"Libtmux.Options.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":839,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.target","source":{"file":"lib/libtmux.mli","line":839,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Window","slug":"libtmux-options-scope-window"},{"id":"Libtmux.Options.t","publicId":"Libtmux.Options.t","qualifiedName":"Libtmux.Options.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":854,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":854,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","doc":{"summary":"Captured options in tmux order, with original array indexes. An empty array differs from an absent local entry. No accessor performs I/O."},"signatures":[{"raw":"type t =\n {\n source: Source.t ;\n scope: scope ;\n include_inherited: bool ;\n entries: entry Iarray.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-options-t"},{"id":"Libtmux.Options.t.entries","publicId":"Libtmux.Options.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":858,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":858,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Options.entries","slug":"libtmux-options-t-entries"},{"id":"Libtmux.Options.t.finished_at_ns","publicId":"Libtmux.Options.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":860,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":860,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.finished_at_ns","slug":"libtmux-options-t-finished_at_ns"},{"id":"Libtmux.Options.t.include_inherited","publicId":"Libtmux.Options.t.include_inherited","name":"include_inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":857,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"include_inherited : bool;","source":{"file":"lib/libtmux.mli","line":857,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.t","type":"bool","qualifiedName":"Libtmux.Options.include_inherited","slug":"libtmux-options-t-include_inherited"},{"id":"Libtmux.Options.t.scope","publicId":"Libtmux.Options.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":856,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":856,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.t","type":"scope","qualifiedName":"Libtmux.Options.scope","slug":"libtmux-options-t-scope"},{"id":"Libtmux.Options.t.source","publicId":"Libtmux.Options.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":855,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":855,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.t","type":"Source.t","qualifiedName":"Libtmux.Options.source","slug":"libtmux-options-t-source"},{"id":"Libtmux.Options.t.started_at_ns","publicId":"Libtmux.Options.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":859,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":859,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.started_at_ns","slug":"libtmux-options-t-started_at_ns"},{"id":"Libtmux.Options.value","publicId":"Libtmux.Options.value","qualifiedName":"Libtmux.Options.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type value =\n | Scalar of scalar \n | Array of (int * scalar) Iarray.t ","params":[]}],"slug":"libtmux-options-value"},{"id":"Libtmux.Options.value.Array","publicId":"Libtmux.Options.value.Array","name":"Array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Array","slug":"libtmux-options-value-array"},{"id":"Libtmux.Options.value.Scalar","publicId":"Libtmux.Options.value.Scalar","name":"Scalar","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Scalar of scalar","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Scalar","slug":"libtmux-options-value-scalar"},{"id":"Libtmux.Output","publicId":"Libtmux.Output","qualifiedName":"Libtmux.Output","name":"Output","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1034,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Future observed pane bytes, local cursors and explicit continuity loss.\n Output cursors are unrelated to snapshot times or server-side history. "],"declarations":[{"kind":"module","text":"module Output : sig\n type cursor = { generation : Generation.t; offset : int64 }\n (** [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. *)\n\n type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t\n\n type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason\n (** Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. *)\n\n val reason_pp : Format.formatter -> reason -> unit\n\n type wait_error =\n | Ended of reason\n | Failure of Error.t\n (** A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. *)\nend","source":{"file":"lib/libtmux.mli","line":1034,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Future observed pane bytes, local cursors and explicit continuity loss. Output cursors are unrelated to snapshot times or server-side history."},"slug":"libtmux-output"},{"id":"Libtmux.Output.cursor","publicId":"Libtmux.Output.cursor","qualifiedName":"Libtmux.Output.cursor","name":"cursor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. "],"declarations":[{"kind":"struct","text":"type cursor = { generation : Generation.t; offset : int64 }","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output","doc":{"summary":"`offset` is the number of observed bytes through the end of a Data event. Cursors from different subscription generations are unrelated. No cursor identifies a snapshot instant or a server-side historical position."},"signatures":[{"raw":"type cursor = {\n generation: Generation.t ;\n offset: int64 }","params":[]}],"slug":"libtmux-output-cursor"},{"id":"Libtmux.Output.cursor.generation","publicId":"Libtmux.Output.cursor.generation","name":"generation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"generation : Generation.t;","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.cursor","type":"Generation.t","qualifiedName":"Libtmux.Output.generation","slug":"libtmux-output-cursor-generation"},{"id":"Libtmux.Output.cursor.offset","publicId":"Libtmux.Output.cursor.offset","name":"offset","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"offset : int64","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.cursor","type":"int64","qualifiedName":"Libtmux.Output.offset","slug":"libtmux-output-cursor-offset"},{"id":"Libtmux.Output.event","publicId":"Libtmux.Output.event","qualifiedName":"Libtmux.Output.event","name":"event","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1048,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason","source":{"file":"lib/libtmux.mli","line":1048,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type event =\n | Data of {\n cursor: cursor ;\n bytes: string } \n | Gap of {\n after: cursor option ;\n lost_bytes: int option ;\n reason: reason } \n | End of reason ","params":[]}],"slug":"libtmux-output-event"},{"id":"Libtmux.Output.event.Data","publicId":"Libtmux.Output.event.Data","name":"Data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Data of { cursor : cursor; bytes : string }","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Data","slug":"libtmux-output-event-data"},{"id":"Libtmux.Output.event.Data.bytes","publicId":"Libtmux.Output.event.Data.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event.Data","type":"string","qualifiedName":"Libtmux.Output.bytes","slug":"libtmux-output-event-data-bytes"},{"id":"Libtmux.Output.event.Data.cursor","publicId":"Libtmux.Output.event.Data.cursor","name":"cursor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cursor : cursor;","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event.Data","type":"cursor","qualifiedName":"Libtmux.Output.cursor","slug":"libtmux-output-event-data-cursor"},{"id":"Libtmux.Output.event.End","publicId":"Libtmux.Output.event.End","name":"End","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1051,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. "],"declarations":[{"kind":"constant","text":"| End of reason","source":{"file":"lib/libtmux.mli","line":1051,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event","doc":{"summary":"Immutable event values. `Gap.after` is the last cursor delivered to the caller. Unknown loss is `None`. A gap ends continuity and is followed by End; recover with a fresh capture and a new subscription. Data preserves bytes, including NUL and invalid UTF-8. It is future observed output, not rendered text or historical reconstruction."},"variant":"tuple","qualifiedName":"Libtmux.Output.End","slug":"libtmux-output-event-end"},{"id":"Libtmux.Output.event.Gap","publicId":"Libtmux.Output.event.Gap","name":"Gap","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Gap of { after : cursor option; lost_bytes : int option; reason : reason }","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Gap","slug":"libtmux-output-event-gap"},{"id":"Libtmux.Output.event.Gap.after","publicId":"Libtmux.Output.event.Gap.after","name":"after","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"after : cursor option;","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event.Gap","type":"cursor option","qualifiedName":"Libtmux.Output.after","slug":"libtmux-output-event-gap-after"},{"id":"Libtmux.Output.event.Gap.lost_bytes","publicId":"Libtmux.Output.event.Gap.lost_bytes","name":"lost_bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"lost_bytes : int option;","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event.Gap","type":"int option","qualifiedName":"Libtmux.Output.lost_bytes","slug":"libtmux-output-event-gap-lost_bytes"},{"id":"Libtmux.Output.event.Gap.reason","publicId":"Libtmux.Output.event.Gap.reason","name":"reason","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"reason : reason","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.event.Gap","type":"reason","qualifiedName":"Libtmux.Output.reason","slug":"libtmux-output-event-gap-reason"},{"id":"Libtmux.Output.reason","publicId":"Libtmux.Output.reason","qualifiedName":"Libtmux.Output.reason","name":"reason","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1040,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1040,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type reason =\n | Overflow \n | Membership_changed \n | Server_paused \n | Cancelled \n | Client_closed \n | Transport_error of Error.t ","params":[]}],"slug":"libtmux-output-reason"},{"id":"Libtmux.Output.reason.Cancelled","publicId":"Libtmux.Output.reason.Cancelled","name":"Cancelled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1044,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancelled","source":{"file":"lib/libtmux.mli","line":1044,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Cancelled","slug":"libtmux-output-reason-cancelled"},{"id":"Libtmux.Output.reason.Client_closed","publicId":"Libtmux.Output.reason.Client_closed","name":"Client_closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1045,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client_closed","source":{"file":"lib/libtmux.mli","line":1045,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Client_closed","slug":"libtmux-output-reason-client_closed"},{"id":"Libtmux.Output.reason.Membership_changed","publicId":"Libtmux.Output.reason.Membership_changed","name":"Membership_changed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1042,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Membership_changed","source":{"file":"lib/libtmux.mli","line":1042,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Membership_changed","slug":"libtmux-output-reason-membership_changed"},{"id":"Libtmux.Output.reason.Overflow","publicId":"Libtmux.Output.reason.Overflow","name":"Overflow","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1041,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Overflow","source":{"file":"lib/libtmux.mli","line":1041,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Overflow","slug":"libtmux-output-reason-overflow"},{"id":"Libtmux.Output.reason.Server_paused","publicId":"Libtmux.Output.reason.Server_paused","name":"Server_paused","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1043,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server_paused","source":{"file":"lib/libtmux.mli","line":1043,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Server_paused","slug":"libtmux-output-reason-server_paused"},{"id":"Libtmux.Output.reason.Transport_error","publicId":"Libtmux.Output.reason.Transport_error","name":"Transport_error","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1046,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1046,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.reason","variant":"tuple","qualifiedName":"Libtmux.Output.Transport_error","slug":"libtmux-output-reason-transport_error"},{"id":"Libtmux.Output.reason_pp","publicId":"Libtmux.Output.reason_pp","qualifiedName":"Libtmux.Output.reason_pp","name":"reason_pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1059,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val reason_pp : Format.formatter -> reason -> unit","source":{"file":"lib/libtmux.mli","line":1059,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output","signatures":[{"raw":"val reason_pp : Format.formatter -> reason -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"reason"}],"returns":"unit"}],"slug":"libtmux-output-reason_pp"},{"id":"Libtmux.Output.wait_error","publicId":"Libtmux.Output.wait_error","qualifiedName":"Libtmux.Output.wait_error","name":"wait_error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1061,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type wait_error =\n | Ended of reason\n | Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1061,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type wait_error =\n | Ended of reason \n | Failure of Error.t ","params":[]}],"slug":"libtmux-output-wait_error"},{"id":"Libtmux.Output.wait_error.Ended","publicId":"Libtmux.Output.wait_error.Ended","name":"Ended","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1062,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Ended of reason","source":{"file":"lib/libtmux.mli","line":1062,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.wait_error","variant":"tuple","qualifiedName":"Libtmux.Output.Ended","slug":"libtmux-output-wait_error-ended"},{"id":"Libtmux.Output.wait_error.Failure","publicId":"Libtmux.Output.wait_error.Failure","name":"Failure","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1063,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. "],"declarations":[{"kind":"constant","text":"| Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1063,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Output.wait_error","doc":{"summary":"A future-byte wait either loses its subscription's continuity or fails an operation. Neither result establishes that the text was absent earlier."},"variant":"tuple","qualifiedName":"Libtmux.Output.Failure","slug":"libtmux-output-wait_error-failure"},{"id":"Libtmux.Pane","publicId":"Libtmux.Pane","qualifiedName":"Libtmux.Pane","name":"Pane","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A captured pane with local geometry, process metadata and a window\n relationship. Use {!Pane.val-target} for explicit actions; reading the\n observation never refreshes it. "],"declarations":[{"kind":"module","text":"and Pane : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end\n\n module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val index : t -> int\n val active : t -> bool\n val dead : t -> bool\n val title : t -> string\n val current_command : t -> string\n val current_path : t -> string\n\n val pid : t -> int option\n (** The captured process ID, absent when tmux reports no process. *)\n\n val width : t -> int\n val height : t -> int\n val left : t -> int\n val top : t -> int\n val window : t -> Window.t\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\nend","source":{"file":"lib/libtmux.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"A captured pane with local geometry, process metadata and a window relationship. Use {!Pane.val-target} for explicit actions; reading the observation never refreshes it."},"slug":"libtmux-pane"},{"id":"Libtmux.Pane.Fields","publicId":"Libtmux.Pane.Fields","qualifiedName":"Libtmux.Pane.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-fields"},{"id":"Libtmux.Pane.Fields.active","publicId":"Libtmux.Pane.Fields.active","qualifiedName":"Libtmux.Pane.Fields.active","name":"active","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":312,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val active : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":312,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val active : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-active"},{"id":"Libtmux.Pane.Fields.current_command","publicId":"Libtmux.Pane.Fields.current_command","qualifiedName":"Libtmux.Pane.Fields.current_command","name":"current_command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":315,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_command : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_command : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_command"},{"id":"Libtmux.Pane.Fields.current_path","publicId":"Libtmux.Pane.Fields.current_path","qualifiedName":"Libtmux.Pane.Fields.current_path","name":"current_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":316,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_path : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_path : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_path"},{"id":"Libtmux.Pane.Fields.dead","publicId":"Libtmux.Pane.Fields.dead","qualifiedName":"Libtmux.Pane.Fields.dead","name":"dead","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":313,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val dead : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":313,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val dead : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-dead"},{"id":"Libtmux.Pane.Fields.height","publicId":"Libtmux.Pane.Fields.height","qualifiedName":"Libtmux.Pane.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":318,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":318,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-height"},{"id":"Libtmux.Pane.Fields.id","publicId":"Libtmux.Pane.Fields.id","qualifiedName":"Libtmux.Pane.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":310,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":310,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-id"},{"id":"Libtmux.Pane.Fields.index","publicId":"Libtmux.Pane.Fields.index","qualifiedName":"Libtmux.Pane.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":311,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":311,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-index"},{"id":"Libtmux.Pane.Fields.left","publicId":"Libtmux.Pane.Fields.left","qualifiedName":"Libtmux.Pane.Fields.left","name":"left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val left : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val left : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-left"},{"id":"Libtmux.Pane.Fields.title","publicId":"Libtmux.Pane.Fields.title","qualifiedName":"Libtmux.Pane.Fields.title","name":"title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":314,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val title : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":314,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val title : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-title"},{"id":"Libtmux.Pane.Fields.top","publicId":"Libtmux.Pane.Fields.top","qualifiedName":"Libtmux.Pane.Fields.top","name":"top","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":320,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val top : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val top : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-top"},{"id":"Libtmux.Pane.Fields.width","publicId":"Libtmux.Pane.Fields.width","qualifiedName":"Libtmux.Pane.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":317,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":317,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-width"},{"id":"Libtmux.Pane.Id","publicId":"Libtmux.Pane.Id","qualifiedName":"Libtmux.Pane.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-id-16to"},{"id":"Libtmux.Pane.Id.compare","publicId":"Libtmux.Pane.Id.compare","qualifiedName":"Libtmux.Pane.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-id-compare"},{"id":"Libtmux.Pane.Id.equal","publicId":"Libtmux.Pane.Id.equal","qualifiedName":"Libtmux.Pane.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-id-equal"},{"id":"Libtmux.Pane.Id.of_string","publicId":"Libtmux.Pane.Id.of_string","qualifiedName":"Libtmux.Pane.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-pane-id-of_string"},{"id":"Libtmux.Pane.Id.pp","publicId":"Libtmux.Pane.Id.pp","qualifiedName":"Libtmux.Pane.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-pane-id-pp"},{"id":"Libtmux.Pane.Id.t","publicId":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux.Pane.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-id-t"},{"id":"Libtmux.Pane.Id.to_string","publicId":"Libtmux.Pane.Id.to_string","qualifiedName":"Libtmux.Pane.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-id-to_string"},{"id":"Libtmux.Pane.Relations","publicId":"Libtmux.Pane.Relations","qualifiedName":"Libtmux.Pane.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":323,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":323,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-relations"},{"id":"Libtmux.Pane.Relations.window","publicId":"Libtmux.Pane.Relations.window","qualifiedName":"Libtmux.Pane.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":324,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-pane-relations-window"},{"id":"Libtmux.Pane.Target","publicId":"Libtmux.Pane.Target","qualifiedName":"Libtmux.Pane.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":329,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":329,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-target-nx8w"},{"id":"Libtmux.Pane.Target.id","publicId":"Libtmux.Pane.Target.id","qualifiedName":"Libtmux.Pane.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":334,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":334,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-target-id"},{"id":"Libtmux.Pane.Target.of_id","publicId":"Libtmux.Pane.Target.of_id","qualifiedName":"Libtmux.Pane.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-pane-target-of_id"},{"id":"Libtmux.Pane.Target.source","publicId":"Libtmux.Pane.Target.source","qualifiedName":"Libtmux.Pane.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":333,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-target-source"},{"id":"Libtmux.Pane.Target.t","publicId":"Libtmux.Pane.Target.t","qualifiedName":"Libtmux.Pane.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":330,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":330,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-target-t"},{"id":"Libtmux.Pane.active","publicId":"Libtmux.Pane.active","qualifiedName":"Libtmux.Pane.active","name":"active","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":341,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val active : t -> bool","source":{"file":"lib/libtmux.mli","line":341,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val active : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-active"},{"id":"Libtmux.Pane.current_command","publicId":"Libtmux.Pane.current_command","qualifiedName":"Libtmux.Pane.current_command","name":"current_command","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_command : t -> string","source":{"file":"lib/libtmux.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_command : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_command"},{"id":"Libtmux.Pane.current_path","publicId":"Libtmux.Pane.current_path","qualifiedName":"Libtmux.Pane.current_path","name":"current_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":345,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_path : t -> string","source":{"file":"lib/libtmux.mli","line":345,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_path : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_path"},{"id":"Libtmux.Pane.dead","publicId":"Libtmux.Pane.dead","qualifiedName":"Libtmux.Pane.dead","name":"dead","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":342,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dead : t -> bool","source":{"file":"lib/libtmux.mli","line":342,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val dead : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-dead"},{"id":"Libtmux.Pane.height","publicId":"Libtmux.Pane.height","qualifiedName":"Libtmux.Pane.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":351,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":351,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-height"},{"id":"Libtmux.Pane.id","publicId":"Libtmux.Pane.id","qualifiedName":"Libtmux.Pane.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":339,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":339,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-id-19ve"},{"id":"Libtmux.Pane.index","publicId":"Libtmux.Pane.index","qualifiedName":"Libtmux.Pane.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-index"},{"id":"Libtmux.Pane.left","publicId":"Libtmux.Pane.left","qualifiedName":"Libtmux.Pane.left","name":"left","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":352,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val left : t -> int","source":{"file":"lib/libtmux.mli","line":352,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val left : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-left"},{"id":"Libtmux.Pane.pid","publicId":"Libtmux.Pane.pid","qualifiedName":"Libtmux.Pane.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":347,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" The captured process ID, absent when tmux reports no process. "],"declarations":[{"kind":"function","text":"val pid : t -> int option","source":{"file":"lib/libtmux.mli","line":347,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","doc":{"summary":"The captured process ID, absent when tmux reports no process."},"signatures":[{"raw":"val pid : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-pane-pid"},{"id":"Libtmux.Pane.same_entity","publicId":"Libtmux.Pane.same_entity","qualifiedName":"Libtmux.Pane.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_entity"},{"id":"Libtmux.Pane.same_observation","publicId":"Libtmux.Pane.same_observation","qualifiedName":"Libtmux.Pane.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_observation"},{"id":"Libtmux.Pane.source","publicId":"Libtmux.Pane.source","qualifiedName":"Libtmux.Pane.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":355,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":355,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-source"},{"id":"Libtmux.Pane.t","publicId":"Libtmux.Pane.t","qualifiedName":"Libtmux.Pane.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":307,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":307,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-t"},{"id":"Libtmux.Pane.target","publicId":"Libtmux.Pane.target","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":356,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":356,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-pane-target-t3h1"},{"id":"Libtmux.Pane.target:type","publicId":"Libtmux.Pane.target:type","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-pane-target-type"},{"id":"Libtmux.Pane.title","publicId":"Libtmux.Pane.title","qualifiedName":"Libtmux.Pane.title","name":"title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":343,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val title : t -> string","source":{"file":"lib/libtmux.mli","line":343,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val title : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-title"},{"id":"Libtmux.Pane.top","publicId":"Libtmux.Pane.top","qualifiedName":"Libtmux.Pane.top","name":"top","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":353,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val top : t -> int","source":{"file":"lib/libtmux.mli","line":353,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val top : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-top"},{"id":"Libtmux.Pane.width","publicId":"Libtmux.Pane.width","qualifiedName":"Libtmux.Pane.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":350,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":350,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-width"},{"id":"Libtmux.Pane.window","publicId":"Libtmux.Pane.window","qualifiedName":"Libtmux.Pane.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-pane-window"},{"id":"Libtmux.Plan","publicId":"Libtmux.Plan","qualifiedName":"Libtmux.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Explicit source-filter planning for a new acquisition. A plan separates\n supported tmux predicates from residual local evaluation; it never changes\n the I/O-free contract of {!Query.matching}. Backend capture operations\n acquire a complete graph and do not consume these plans. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type pushdown = Auto | Never | Require_exact\n type t\n\n val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result\n (** Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. *)\n\n val source_filter : t -> string option\n val residual : t -> Pane.t Expr.t\n val required_fields : t -> string list\n val required_relations : t -> string list\n val explanation : t -> string\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Explicit source-filter planning for a new acquisition. A plan separates supported tmux predicates from residual local evaluation; it never changes the I/O-free contract of {!Query.matching}. Backend capture operations acquire a complete graph and do not consume these plans."},"slug":"libtmux-plan"},{"id":"Libtmux.Plan.explanation","publicId":"Libtmux.Plan.explanation","qualifiedName":"Libtmux.Plan.explanation","name":"explanation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":681,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val explanation : t -> string","source":{"file":"lib/libtmux.mli","line":681,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val explanation : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-plan-explanation"},{"id":"Libtmux.Plan.panes","publicId":"Libtmux.Plan.panes","qualifiedName":"Libtmux.Plan.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":670,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. "],"declarations":[{"kind":"function","text":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":670,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","doc":{"summary":"Plan without I/O. Exact lowering covers pane active/dead flags and complete Boolean combinations. Unsupported children prevent lowering the whole expression, including under OR and NOT. Relationships always stay local. `Require_exact` rejects an unsupported expression before acquisition."},"signatures":[{"raw":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","params":[{"name":"pushdown","type":"pushdown","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t Expr.t"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-plan-panes"},{"id":"Libtmux.Plan.pp","publicId":"Libtmux.Plan.pp","qualifiedName":"Libtmux.Plan.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":682,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":682,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-plan-pp"},{"id":"Libtmux.Plan.pushdown","publicId":"Libtmux.Plan.pushdown","qualifiedName":"Libtmux.Plan.pushdown","name":"pushdown","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type pushdown = Auto | Never | Require_exact","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type pushdown =\n | Auto \n | Never \n | Require_exact ","params":[]}],"slug":"libtmux-plan-pushdown"},{"id":"Libtmux.Plan.pushdown.Auto","publicId":"Libtmux.Plan.pushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Auto","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Auto","slug":"libtmux-plan-pushdown-auto"},{"id":"Libtmux.Plan.pushdown.Never","publicId":"Libtmux.Plan.pushdown.Never","name":"Never","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Never","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Never","slug":"libtmux-plan-pushdown-never"},{"id":"Libtmux.Plan.pushdown.Require_exact","publicId":"Libtmux.Plan.pushdown.Require_exact","name":"Require_exact","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_exact","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Require_exact","slug":"libtmux-plan-pushdown-require_exact"},{"id":"Libtmux.Plan.required_fields","publicId":"Libtmux.Plan.required_fields","qualifiedName":"Libtmux.Plan.required_fields","name":"required_fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":679,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_fields : t -> string list","source":{"file":"lib/libtmux.mli","line":679,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_fields : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_fields"},{"id":"Libtmux.Plan.required_relations","publicId":"Libtmux.Plan.required_relations","qualifiedName":"Libtmux.Plan.required_relations","name":"required_relations","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":680,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_relations : t -> string list","source":{"file":"lib/libtmux.mli","line":680,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_relations : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_relations"},{"id":"Libtmux.Plan.residual","publicId":"Libtmux.Plan.residual","qualifiedName":"Libtmux.Plan.residual","name":"residual","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":678,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val residual : t -> Pane.t Expr.t","source":{"file":"lib/libtmux.mli","line":678,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val residual : t -> Pane.t Expr.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Expr.t"}],"slug":"libtmux-plan-residual"},{"id":"Libtmux.Plan.source_filter","publicId":"Libtmux.Plan.source_filter","qualifiedName":"Libtmux.Plan.source_filter","name":"source_filter","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":677,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source_filter : t -> string option","source":{"file":"lib/libtmux.mli","line":677,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val source_filter : t -> string option","params":[{"name":"arg1","type":"t"}],"returns":"string option"}],"slug":"libtmux-plan-source_filter"},{"id":"Libtmux.Plan.t","publicId":"Libtmux.Plan.t","qualifiedName":"Libtmux.Plan.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":668,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":668,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-plan-t"},{"id":"Libtmux.Query","publicId":"Libtmux.Query","qualifiedName":"Libtmux.Query","name":"Query","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":694,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Sequence adapters and bounded cardinality checks over captured values.\n Matching preserves order and duplicates. Expected absence and ambiguity\n remain ordinary result values. "],"declarations":[{"kind":"module","text":"module Query : sig\n val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t\n (** [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. *)\n\n val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result\n (** Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. *)\n\n val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result\n (** As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n *)\nend","source":{"file":"lib/libtmux.mli","line":694,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Sequence adapters and bounded cardinality checks over captured values. Matching preserves order and duplicates. Expected absence and ambiguity remain ordinary result values."},"slug":"libtmux-query"},{"id":"Libtmux.Query.exactly_one","publicId":"Libtmux.Query.exactly_one","qualifiedName":"Libtmux.Query.exactly_one","name":"exactly_one","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":701,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. "],"declarations":[{"kind":"function","text":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":701,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Query","doc":{"summary":"Return the unique value. Stop when a second value is found; proving uniqueness requires exhausting the remaining sequence. The input's effects and exceptions propagate. This does not execute a mutation."},"signatures":[{"raw":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a, Cardinality.error) result"}],"slug":"libtmux-query-exactly_one"},{"id":"Libtmux.Query.matching","publicId":"Libtmux.Query.matching","qualifiedName":"Libtmux.Query.matching","name":"matching","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":695,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. "],"declarations":[{"kind":"function","text":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","source":{"file":"lib/libtmux.mli","line":695,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Query","doc":{"summary":"`matching expression` compiles once when the adapter is constructed. Filtering preserves order and duplicates. Snapshot-derived sequences replay captured values; arbitrary input sequences retain their effects, exceptions and replay semantics. No tmux acquisition occurs."},"signatures":[{"raw":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","params":[{"name":"arg1","type":"'a Expr.t"},{"name":"arg2","type":"'a Seq.t"}],"returns":"'a Seq.t"}],"slug":"libtmux-query-matching"},{"id":"Libtmux.Query.one_or_none","publicId":"Libtmux.Query.one_or_none","qualifiedName":"Libtmux.Query.one_or_none","name":"one_or_none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":706,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n "],"declarations":[{"kind":"function","text":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":706,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Query","doc":{"summary":"As {!exactly_one}, with `Ok None` for an empty sequence. Order and duplicate entries count toward cardinality; values are not deduplicated."},"signatures":[{"raw":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a option, Cardinality.error) result"}],"slug":"libtmux-query-one_or_none"},{"id":"Libtmux.Relation","publicId":"Libtmux.Relation","qualifiedName":"Libtmux.Relation","name":"Relation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":159,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Typed edges in a captured graph. Many, one and optional relations are\n distinct; an unacquired relationship is never represented as an empty one.\n"],"declarations":[{"kind":"module","text":"module Relation : sig\n module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\nend","source":{"file":"lib/libtmux.mli","line":159,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Typed edges in a captured graph. Many, one and optional relations are distinct; an unacquired relationship is never represented as an empty one."},"slug":"libtmux-relation"},{"id":"Libtmux.Relation.Many","publicId":"Libtmux.Relation.Many","qualifiedName":"Libtmux.Relation.Many","name":"Many","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":160,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-many"},{"id":"Libtmux.Relation.Many.name","publicId":"Libtmux.Relation.Many.name","qualifiedName":"Libtmux.Relation.Many.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-many-name"},{"id":"Libtmux.Relation.Many.t","publicId":"Libtmux.Relation.Many.t","qualifiedName":"Libtmux.Relation.Many.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":161,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":161,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-many-t"},{"id":"Libtmux.Relation.One","publicId":"Libtmux.Relation.One","qualifiedName":"Libtmux.Relation.One","name":"One","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-one"},{"id":"Libtmux.Relation.One.name","publicId":"Libtmux.Relation.One.name","qualifiedName":"Libtmux.Relation.One.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-one-name"},{"id":"Libtmux.Relation.One.t","publicId":"Libtmux.Relation.One.t","qualifiedName":"Libtmux.Relation.One.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-one-t"},{"id":"Libtmux.Relation.Optional","publicId":"Libtmux.Relation.Optional","qualifiedName":"Libtmux.Relation.Optional","name":"Optional","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-optional"},{"id":"Libtmux.Relation.Optional.name","publicId":"Libtmux.Relation.Optional.name","qualifiedName":"Libtmux.Relation.Optional.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":175,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":175,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-optional-name"},{"id":"Libtmux.Relation.Optional.t","publicId":"Libtmux.Relation.Optional.t","qualifiedName":"Libtmux.Relation.Optional.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-optional-t"},{"id":"Libtmux.Session","publicId":"Libtmux.Session","qualifiedName":"Libtmux.Session","name":"Session","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A captured session and its ordered window-link contexts. A session can\n contain repeated links to the same global window. "],"declarations":[{"kind":"module","text":"module rec Session : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end\n\n module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val attached : t -> int\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\n\n val window_links : t -> Window_link.t Iarray.t\n (** All captured links, in capture order, including repeated windows. *)\n\n val windows : t -> Window.t Iarray.t\n (** Distinct windows in first-link order. All accesses are local. *)\nend","source":{"file":"lib/libtmux.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"A captured session and its ordered window-link contexts. A session can contain repeated links to the same global window."},"slug":"libtmux-session"},{"id":"Libtmux.Session.Fields","publicId":"Libtmux.Session.Fields","qualifiedName":"Libtmux.Session.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":184,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":184,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","slug":"libtmux-session-fields"},{"id":"Libtmux.Session.Fields.attached","publicId":"Libtmux.Session.Fields.attached","qualifiedName":"Libtmux.Session.Fields.attached","name":"attached","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val attached : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val attached : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-session-fields-attached"},{"id":"Libtmux.Session.Fields.id","publicId":"Libtmux.Session.Fields.id","qualifiedName":"Libtmux.Session.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-id"},{"id":"Libtmux.Session.Fields.name","publicId":"Libtmux.Session.Fields.name","qualifiedName":"Libtmux.Session.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-name"},{"id":"Libtmux.Session.Id","publicId":"Libtmux.Session.Id","qualifiedName":"Libtmux.Session.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":195,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","slug":"libtmux-session-id-12k2"},{"id":"Libtmux.Session.Id.compare","publicId":"Libtmux.Session.Id.compare","qualifiedName":"Libtmux.Session.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-session-id-compare"},{"id":"Libtmux.Session.Id.equal","publicId":"Libtmux.Session.Id.equal","qualifiedName":"Libtmux.Session.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-id-equal"},{"id":"Libtmux.Session.Id.of_string","publicId":"Libtmux.Session.Id.of_string","qualifiedName":"Libtmux.Session.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-session-id-of_string"},{"id":"Libtmux.Session.Id.pp","publicId":"Libtmux.Session.Id.pp","qualifiedName":"Libtmux.Session.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-session-id-pp"},{"id":"Libtmux.Session.Id.t","publicId":"Libtmux.Session.Id.t","qualifiedName":"Libtmux.Session.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-id-t"},{"id":"Libtmux.Session.Id.to_string","publicId":"Libtmux.Session.Id.to_string","qualifiedName":"Libtmux.Session.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-id-to_string"},{"id":"Libtmux.Session.Relations","publicId":"Libtmux.Session.Relations","qualifiedName":"Libtmux.Session.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":190,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","slug":"libtmux-session-relations"},{"id":"Libtmux.Session.Relations.window_links","publicId":"Libtmux.Session.Relations.window_links","qualifiedName":"Libtmux.Session.Relations.window_links","name":"window_links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val window_links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-session-relations-window_links"},{"id":"Libtmux.Session.Relations.windows","publicId":"Libtmux.Session.Relations.windows","qualifiedName":"Libtmux.Session.Relations.windows","name":"windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":192,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val windows : (t, Window.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":192,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val windows : (t, Window.t) Relation.Many.t","params":[],"returns":"(t, Window.t) Relation.Many.t"}],"slug":"libtmux-session-relations-windows"},{"id":"Libtmux.Session.Target","publicId":"Libtmux.Session.Target","qualifiedName":"Libtmux.Session.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":197,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":197,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","slug":"libtmux-session-target-5p2d"},{"id":"Libtmux.Session.Target.id","publicId":"Libtmux.Session.Target.id","qualifiedName":"Libtmux.Session.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-target-id"},{"id":"Libtmux.Session.Target.of_id","publicId":"Libtmux.Session.Target.of_id","qualifiedName":"Libtmux.Session.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Describe a target in an existing connection generation. No I/O. "],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Target","doc":{"summary":"Describe a target in an existing connection generation. No I/O."},"signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-session-target-of_id"},{"id":"Libtmux.Session.Target.source","publicId":"Libtmux.Session.Target.source","qualifiedName":"Libtmux.Session.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-target-source"},{"id":"Libtmux.Session.Target.t","publicId":"Libtmux.Session.Target.t","qualifiedName":"Libtmux.Session.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-target-t"},{"id":"Libtmux.Session.attached","publicId":"Libtmux.Session.attached","qualifiedName":"Libtmux.Session.attached","name":"attached","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val attached : t -> int","source":{"file":"lib/libtmux.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val attached : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-session-attached"},{"id":"Libtmux.Session.id","publicId":"Libtmux.Session.id","qualifiedName":"Libtmux.Session.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-id-12gy"},{"id":"Libtmux.Session.name","publicId":"Libtmux.Session.name","qualifiedName":"Libtmux.Session.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":210,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":210,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-name"},{"id":"Libtmux.Session.same_entity","publicId":"Libtmux.Session.same_entity","qualifiedName":"Libtmux.Session.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":215,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":215,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_entity"},{"id":"Libtmux.Session.same_observation","publicId":"Libtmux.Session.same_observation","qualifiedName":"Libtmux.Session.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_observation"},{"id":"Libtmux.Session.source","publicId":"Libtmux.Session.source","qualifiedName":"Libtmux.Session.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-source"},{"id":"Libtmux.Session.t","publicId":"Libtmux.Session.t","qualifiedName":"Libtmux.Session.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-t"},{"id":"Libtmux.Session.target","publicId":"Libtmux.Session.target","qualifiedName":"Libtmux.Session.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-session-target-iu8j"},{"id":"Libtmux.Session.target:type","publicId":"Libtmux.Session.target:type","qualifiedName":"Libtmux.Session.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-session-target-type"},{"id":"Libtmux.Session.window_links","publicId":"Libtmux.Session.window_links","qualifiedName":"Libtmux.Session.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" All captured links, in capture order, including repeated windows. "],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","doc":{"summary":"All captured links, in capture order, including repeated windows.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-session-window_links"},{"id":"Libtmux.Session.windows","publicId":"Libtmux.Session.windows","qualifiedName":"Libtmux.Session.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Distinct windows in first-link order. All accesses are local. "],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Session","doc":{"summary":"Distinct windows in first-link order. All accesses are local."},"signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-session-windows"},{"id":"Libtmux.Snapshot","publicId":"Libtmux.Snapshot","qualifiedName":"Libtmux.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A complete immutable graph captured over an acquisition interval.\n Collections are replayable immutable arrays. Capturing several tmux commands\n does not establish an atomic transaction. "],"declarations":[{"kind":"module","text":"module Snapshot : sig\n type t\n\n module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end\n\n module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end\n\n val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result\n (** Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. *)\n\n val id : t -> Id.t\n val source : t -> Source.t\n val started_at_ns : t -> int64\n val finished_at_ns : t -> int64\n val sessions : t -> Session.t Iarray.t\n val windows : t -> Window.t Iarray.t\n val window_links : t -> Window_link.t Iarray.t\n val panes : t -> Pane.t Iarray.t\n\n val clients : t -> Client_observation.t Iarray.t\n (** Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. *)\n\n val find_session : t -> Session.Id.t -> Session.t option\n val find_window : t -> Window.Id.t -> Window.t option\n val find_pane : t -> Pane.Id.t -> Pane.t option\nend","source":{"file":"lib/libtmux.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"A complete immutable graph captured over an acquisition interval. Collections are replayable immutable arrays. Capturing several tmux commands does not establish an atomic transaction."},"slug":"libtmux-snapshot"},{"id":"Libtmux.Snapshot.Id","publicId":"Libtmux.Snapshot.Id","qualifiedName":"Libtmux.Snapshot.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end","source":{"file":"lib/libtmux.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-id-1y9h"},{"id":"Libtmux.Snapshot.Id.equal","publicId":"Libtmux.Snapshot.Id.equal","qualifiedName":"Libtmux.Snapshot.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-snapshot-id-equal"},{"id":"Libtmux.Snapshot.Id.of_string","publicId":"Libtmux.Snapshot.Id.of_string","qualifiedName":"Libtmux.Snapshot.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":409,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":409,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-id-of_string"},{"id":"Libtmux.Snapshot.Id.t","publicId":"Libtmux.Snapshot.Id.t","qualifiedName":"Libtmux.Snapshot.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":407,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":407,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-id-t"},{"id":"Libtmux.Snapshot.Id.to_string","publicId":"Libtmux.Snapshot.Id.to_string","qualifiedName":"Libtmux.Snapshot.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-snapshot-id-to_string"},{"id":"Libtmux.Snapshot.Input","publicId":"Libtmux.Snapshot.Input","qualifiedName":"Libtmux.Snapshot.Input","name":"Input","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end","source":{"file":"lib/libtmux.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-input"},{"id":"Libtmux.Snapshot.Input.client","publicId":"Libtmux.Snapshot.Input.client","qualifiedName":"Libtmux.Snapshot.Input.client","name":"client","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":448,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }","source":{"file":"lib/libtmux.mli","line":448,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type client =\n {\n name: string ;\n session_id: Session.Id.t option ;\n pid: int ;\n width: int ;\n height: int option ;\n control_mode: bool }","params":[]}],"slug":"libtmux-snapshot-input-client"},{"id":"Libtmux.Snapshot.Input.client.control_mode","publicId":"Libtmux.Snapshot.Input.client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":454,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"control_mode : bool;","source":{"file":"lib/libtmux.mli","line":454,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.client","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.control_mode","slug":"libtmux-snapshot-input-client-control_mode"},{"id":"Libtmux.Snapshot.Input.client.height","publicId":"Libtmux.Snapshot.Input.client.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":453,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":453,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-client-height"},{"id":"Libtmux.Snapshot.Input.client.name","publicId":"Libtmux.Snapshot.Input.client.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.client","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-client-name"},{"id":"Libtmux.Snapshot.Input.client.pid","publicId":"Libtmux.Snapshot.Input.client.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":451,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int;","source":{"file":"lib/libtmux.mli","line":451,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-client-pid"},{"id":"Libtmux.Snapshot.Input.client.session_id","publicId":"Libtmux.Snapshot.Input.client.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t option;","source":{"file":"lib/libtmux.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.client","type":"Session.Id.t option","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-client-session_id"},{"id":"Libtmux.Snapshot.Input.client.width","publicId":"Libtmux.Snapshot.Input.client.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":452,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":452,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-client-width"},{"id":"Libtmux.Snapshot.Input.pane","publicId":"Libtmux.Snapshot.Input.pane","qualifiedName":"Libtmux.Snapshot.Input.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":432,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }","source":{"file":"lib/libtmux.mli","line":432,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type pane =\n {\n id: Pane.Id.t ;\n window_id: Window.Id.t ;\n index: int ;\n active: bool ;\n dead: bool ;\n title: string ;\n current_command: string ;\n current_path: string ;\n pid: int option ;\n width: int ;\n height: int ;\n left: int ;\n top: int }","params":[]}],"slug":"libtmux-snapshot-input-pane"},{"id":"Libtmux.Snapshot.Input.pane.active","publicId":"Libtmux.Snapshot.Input.pane.active","name":"active","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":436,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"active : bool;","source":{"file":"lib/libtmux.mli","line":436,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.active","slug":"libtmux-snapshot-input-pane-active"},{"id":"Libtmux.Snapshot.Input.pane.current_command","publicId":"Libtmux.Snapshot.Input.pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":439,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_command : string;","source":{"file":"lib/libtmux.mli","line":439,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_command","slug":"libtmux-snapshot-input-pane-current_command"},{"id":"Libtmux.Snapshot.Input.pane.current_path","publicId":"Libtmux.Snapshot.Input.pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_path : string;","source":{"file":"lib/libtmux.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_path","slug":"libtmux-snapshot-input-pane-current_path"},{"id":"Libtmux.Snapshot.Input.pane.dead","publicId":"Libtmux.Snapshot.Input.pane.dead","name":"dead","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":437,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"dead : bool;","source":{"file":"lib/libtmux.mli","line":437,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.dead","slug":"libtmux-snapshot-input-pane-dead"},{"id":"Libtmux.Snapshot.Input.pane.height","publicId":"Libtmux.Snapshot.Input.pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":443,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":443,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-pane-height"},{"id":"Libtmux.Snapshot.Input.pane.id","publicId":"Libtmux.Snapshot.Input.pane.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":433,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":433,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Pane.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-pane-id"},{"id":"Libtmux.Snapshot.Input.pane.index","publicId":"Libtmux.Snapshot.Input.pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":435,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":435,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-pane-index"},{"id":"Libtmux.Snapshot.Input.pane.left","publicId":"Libtmux.Snapshot.Input.pane.left","name":"left","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":444,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"left : int;","source":{"file":"lib/libtmux.mli","line":444,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.left","slug":"libtmux-snapshot-input-pane-left"},{"id":"Libtmux.Snapshot.Input.pane.pid","publicId":"Libtmux.Snapshot.Input.pane.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":441,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int option;","source":{"file":"lib/libtmux.mli","line":441,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-pane-pid"},{"id":"Libtmux.Snapshot.Input.pane.title","publicId":"Libtmux.Snapshot.Input.pane.title","name":"title","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":438,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"title : string;","source":{"file":"lib/libtmux.mli","line":438,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.title","slug":"libtmux-snapshot-input-pane-title"},{"id":"Libtmux.Snapshot.Input.pane.top","publicId":"Libtmux.Snapshot.Input.pane.top","name":"top","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":445,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"top : int;","source":{"file":"lib/libtmux.mli","line":445,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.top","slug":"libtmux-snapshot-input-pane-top"},{"id":"Libtmux.Snapshot.Input.pane.width","publicId":"Libtmux.Snapshot.Input.pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":442,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":442,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-pane-width"},{"id":"Libtmux.Snapshot.Input.pane.window_id","publicId":"Libtmux.Snapshot.Input.pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":434,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":434,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-pane-window_id"},{"id":"Libtmux.Snapshot.Input.session","publicId":"Libtmux.Snapshot.Input.session","qualifiedName":"Libtmux.Snapshot.Input.session","name":"session","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type session = { id : Session.Id.t; name : string; attached : int }","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type session = {\n id: Session.Id.t ;\n name: string ;\n attached: int }","params":[]}],"slug":"libtmux-snapshot-input-session"},{"id":"Libtmux.Snapshot.Input.session.attached","publicId":"Libtmux.Snapshot.Input.session.attached","name":"attached","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"attached : int","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.session","type":"int","qualifiedName":"Libtmux.Snapshot.Input.attached","slug":"libtmux-snapshot-input-session-attached"},{"id":"Libtmux.Snapshot.Input.session.id","publicId":"Libtmux.Snapshot.Input.session.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.session","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-session-id"},{"id":"Libtmux.Snapshot.Input.session.name","publicId":"Libtmux.Snapshot.Input.session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.session","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-session-name"},{"id":"Libtmux.Snapshot.Input.window","publicId":"Libtmux.Snapshot.Input.window","qualifiedName":"Libtmux.Snapshot.Input.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }","source":{"file":"lib/libtmux.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window =\n {\n id: Window.Id.t ;\n name: string ;\n width: int ;\n height: int ;\n layout: string }","params":[]}],"slug":"libtmux-snapshot-input-window"},{"id":"Libtmux.Snapshot.Input.window.height","publicId":"Libtmux.Snapshot.Input.window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":421,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":421,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-window-height"},{"id":"Libtmux.Snapshot.Input.window.id","publicId":"Libtmux.Snapshot.Input.window.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":418,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":418,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-window-id"},{"id":"Libtmux.Snapshot.Input.window.layout","publicId":"Libtmux.Snapshot.Input.window.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : string;","source":{"file":"lib/libtmux.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.layout","slug":"libtmux-snapshot-input-window-layout"},{"id":"Libtmux.Snapshot.Input.window.name","publicId":"Libtmux.Snapshot.Input.window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":419,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":419,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-window-name"},{"id":"Libtmux.Snapshot.Input.window.width","publicId":"Libtmux.Snapshot.Input.window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":420,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":420,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-window-width"},{"id":"Libtmux.Snapshot.Input.window_link","publicId":"Libtmux.Snapshot.Input.window_link","qualifiedName":"Libtmux.Snapshot.Input.window_link","name":"window_link","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":425,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }","source":{"file":"lib/libtmux.mli","line":425,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window_link =\n {\n session_id: Session.Id.t ;\n window_id: Window.Id.t ;\n index: int ;\n is_current: bool }","params":[]}],"slug":"libtmux-snapshot-input-window_link"},{"id":"Libtmux.Snapshot.Input.window_link.index","publicId":"Libtmux.Snapshot.Input.window_link.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":428,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":428,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-window_link-index"},{"id":"Libtmux.Snapshot.Input.window_link.is_current","publicId":"Libtmux.Snapshot.Input.window_link.is_current","name":"is_current","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":429,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"is_current : bool;","source":{"file":"lib/libtmux.mli","line":429,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.is_current","slug":"libtmux-snapshot-input-window_link-is_current"},{"id":"Libtmux.Snapshot.Input.window_link.session_id","publicId":"Libtmux.Snapshot.Input.window_link.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-window_link-session_id"},{"id":"Libtmux.Snapshot.Input.window_link.window_id","publicId":"Libtmux.Snapshot.Input.window_link.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-window_link-window_id"},{"id":"Libtmux.Snapshot.clients","publicId":"Libtmux.Snapshot.clients","qualifiedName":"Libtmux.Snapshot.clients","name":"clients","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":486,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. "],"declarations":[{"kind":"function","text":"val clients : t -> Client_observation.t Iarray.t","source":{"file":"lib/libtmux.mli","line":486,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Collections and their contents are immutable. They retain capture order, are replayable and remain readable after the acquiring client closes."},"signatures":[{"raw":"val clients : t -> Client_observation.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_observation.t Iarray.t"}],"slug":"libtmux-snapshot-clients"},{"id":"Libtmux.Snapshot.create","publicId":"Libtmux.Snapshot.create","qualifiedName":"Libtmux.Snapshot.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. "],"declarations":[{"kind":"function","text":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Validate and materialize a complete captured graph without I/O. Equal duplicate global rows collapse in first-occurrence order; conflicting rows and dangling references return {!Error.Capture_raced}. Links at different indexes remain distinct, including within one session. At most 10,000 input rows are admitted. Each session needs one current link and each window one active pane. Capture spans an interval, not an atomic instant. Input strings are bytes; no Unicode normalization is performed."},"signatures":[{"raw":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list -> clients:Input.client list -> (t, Error.t) result","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"id","type":"Id.t","keywordOnly":true},{"name":"started_at_ns","type":"int64","keywordOnly":true},{"name":"finished_at_ns","type":"int64","keywordOnly":true},{"name":"sessions","type":"Input.session list","keywordOnly":true},{"name":"windows","type":"Input.window list","keywordOnly":true},{"name":"window_links","type":"Input.window_link list","keywordOnly":true},{"name":"panes","type":"Input.pane list","keywordOnly":true},{"name":"clients","type":"Input.client list","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-create"},{"id":"Libtmux.Snapshot.find_pane","publicId":"Libtmux.Snapshot.find_pane","qualifiedName":"Libtmux.Snapshot.find_pane","name":"find_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":492,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_pane : t -> Pane.Id.t -> Pane.t option","source":{"file":"lib/libtmux.mli","line":492,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_pane : t -> Pane.Id.t -> Pane.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Pane.Id.t"}],"returns":"Pane.t option"}],"slug":"libtmux-snapshot-find_pane"},{"id":"Libtmux.Snapshot.find_session","publicId":"Libtmux.Snapshot.find_session","qualifiedName":"Libtmux.Snapshot.find_session","name":"find_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":490,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_session : t -> Session.Id.t -> Session.t option","source":{"file":"lib/libtmux.mli","line":490,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_session : t -> Session.Id.t -> Session.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Session.Id.t"}],"returns":"Session.t option"}],"slug":"libtmux-snapshot-find_session"},{"id":"Libtmux.Snapshot.find_window","publicId":"Libtmux.Snapshot.find_window","qualifiedName":"Libtmux.Snapshot.find_window","name":"find_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":491,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_window : t -> Window.Id.t -> Window.t option","source":{"file":"lib/libtmux.mli","line":491,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_window : t -> Window.Id.t -> Window.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Window.Id.t"}],"returns":"Window.t option"}],"slug":"libtmux-snapshot-find_window"},{"id":"Libtmux.Snapshot.finished_at_ns","publicId":"Libtmux.Snapshot.finished_at_ns","qualifiedName":"Libtmux.Snapshot.finished_at_ns","name":"finished_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":480,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val finished_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":480,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val finished_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-finished_at_ns"},{"id":"Libtmux.Snapshot.id","publicId":"Libtmux.Snapshot.id","qualifiedName":"Libtmux.Snapshot.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":477,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":477,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-snapshot-id-1y6d"},{"id":"Libtmux.Snapshot.panes","publicId":"Libtmux.Snapshot.panes","qualifiedName":"Libtmux.Snapshot.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"slug":"libtmux-snapshot-panes"},{"id":"Libtmux.Snapshot.sessions","publicId":"Libtmux.Snapshot.sessions","qualifiedName":"Libtmux.Snapshot.sessions","name":"sessions","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val sessions : t -> Session.t Iarray.t","source":{"file":"lib/libtmux.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val sessions : t -> Session.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-snapshot-sessions"},{"id":"Libtmux.Snapshot.source","publicId":"Libtmux.Snapshot.source","qualifiedName":"Libtmux.Snapshot.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":478,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":478,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-snapshot-source"},{"id":"Libtmux.Snapshot.started_at_ns","publicId":"Libtmux.Snapshot.started_at_ns","qualifiedName":"Libtmux.Snapshot.started_at_ns","name":"started_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":479,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val started_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":479,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val started_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-started_at_ns"},{"id":"Libtmux.Snapshot.t","publicId":"Libtmux.Snapshot.t","qualifiedName":"Libtmux.Snapshot.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":404,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":404,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-t"},{"id":"Libtmux.Snapshot.window_links","publicId":"Libtmux.Snapshot.window_links","qualifiedName":"Libtmux.Snapshot.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":483,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":483,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-snapshot-window_links"},{"id":"Libtmux.Snapshot.windows","publicId":"Libtmux.Snapshot.windows","qualifiedName":"Libtmux.Snapshot.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":482,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":482,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-snapshot-windows"},{"id":"Libtmux.Source","publicId":"Libtmux.Source","qualifiedName":"Libtmux.Source","name":"Source","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Endpoint and observed daemon identity for one connection generation.\n Constructing metadata alone does not establish a live binding. "],"declarations":[{"kind":"module","text":"module Source : sig\n type t\n\n val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result\n (** Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. *)\n\n val endpoint : t -> Endpoint.t\n val generation : t -> Generation.t\n val server_pid : t -> int\n\n val equal : t -> t -> bool\n (** Compare endpoint, observed daemon PID and connection generation.\n Independent connections compare unequal even when they observe the same\n PID. Equality establishes neither a live binding nor fresh observations.\n *)\nend","source":{"file":"lib/libtmux.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"Endpoint and observed daemon identity for one connection generation. Constructing metadata alone does not establish a live binding."},"slug":"libtmux-source"},{"id":"Libtmux.Source.create","publicId":"Libtmux.Source.create","qualifiedName":"Libtmux.Source.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. "],"declarations":[{"kind":"function","text":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Source","doc":{"summary":"Pure metadata import for capture adapters. This neither establishes a connection nor verifies process identity. The backend must bind the generation to a live daemon before it admits operations."},"signatures":[{"raw":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t -> server_pid:int -> (t, Error.t) result","params":[{"name":"endpoint","type":"Endpoint.t","keywordOnly":true},{"name":"generation","type":"Generation.t","keywordOnly":true},{"name":"server_pid","type":"int","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-source-create"},{"id":"Libtmux.Source.endpoint","publicId":"Libtmux.Source.endpoint","qualifiedName":"Libtmux.Source.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Endpoint.t","source":{"file":"lib/libtmux.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val endpoint : t -> Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Endpoint.t"}],"slug":"libtmux-source-endpoint"},{"id":"Libtmux.Source.equal","publicId":"Libtmux.Source.equal","qualifiedName":"Libtmux.Source.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare endpoint, observed daemon PID and connection generation.\n Independent connections compare unequal even when they observe the same\n PID. Equality establishes neither a live binding nor fresh observations.\n "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Source","doc":{"summary":"Compare endpoint, observed daemon PID and connection generation. Independent connections compare unequal even when they observe the same PID. Equality establishes neither a live binding nor fresh observations."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-source-equal"},{"id":"Libtmux.Source.generation","publicId":"Libtmux.Source.generation","qualifiedName":"Libtmux.Source.generation","name":"generation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":109,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val generation : t -> Generation.t","source":{"file":"lib/libtmux.mli","line":109,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val generation : t -> Generation.t","params":[{"name":"arg1","type":"t"}],"returns":"Generation.t"}],"slug":"libtmux-source-generation"},{"id":"Libtmux.Source.server_pid","publicId":"Libtmux.Source.server_pid","qualifiedName":"Libtmux.Source.server_pid","name":"server_pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val server_pid : t -> int","source":{"file":"lib/libtmux.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val server_pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-source-server_pid"},{"id":"Libtmux.Source.t","publicId":"Libtmux.Source.t","qualifiedName":"Libtmux.Source.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Source","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-source-t"},{"id":"Libtmux.Spawn","publicId":"Libtmux.Spawn","qualifiedName":"Libtmux.Spawn","name":"Spawn","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":739,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A process description with explicit argv or shell semantics, working\n directory and environment. Describing a process performs no I/O. "],"declarations":[{"kind":"module","text":"module Spawn : sig\n type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string\n\n type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }\n\n val make : ?cwd:string -> ?environment:(string * string) list -> command -> t\n (** Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. *)\n\n val default : t\nend","source":{"file":"lib/libtmux.mli","line":739,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"A process description with explicit argv or shell semantics, working directory and environment. Describing a process performs no I/O."},"slug":"libtmux-spawn"},{"id":"Libtmux.Spawn.command","publicId":"Libtmux.Spawn.command","qualifiedName":"Libtmux.Spawn.command","name":"command","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":740,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string","source":{"file":"lib/libtmux.mli","line":740,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type command =\n | Default \n | Exec of {\n program: string ;\n args: string list } \n | Shell of string ","params":[]}],"slug":"libtmux-spawn-command"},{"id":"Libtmux.Spawn.command.Default","publicId":"Libtmux.Spawn.command.Default","name":"Default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Default","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.command","variant":"unit","qualifiedName":"Libtmux.Spawn.Default","slug":"libtmux-spawn-command-default"},{"id":"Libtmux.Spawn.command.Exec","publicId":"Libtmux.Spawn.command.Exec","name":"Exec","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Exec of { program : string; args : string list }","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.command","variant":"struct","qualifiedName":"Libtmux.Spawn.Exec","slug":"libtmux-spawn-command-exec"},{"id":"Libtmux.Spawn.command.Exec.args","publicId":"Libtmux.Spawn.command.Exec.args","name":"args","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"args : string list","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string list","qualifiedName":"Libtmux.Spawn.args","slug":"libtmux-spawn-command-exec-args"},{"id":"Libtmux.Spawn.command.Exec.program","publicId":"Libtmux.Spawn.command.Exec.program","name":"program","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"program : string;","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string","qualifiedName":"Libtmux.Spawn.program","slug":"libtmux-spawn-command-exec-program"},{"id":"Libtmux.Spawn.command.Shell","publicId":"Libtmux.Spawn.command.Shell","name":"Shell","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":743,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Shell of string","source":{"file":"lib/libtmux.mli","line":743,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.command","variant":"tuple","qualifiedName":"Libtmux.Spawn.Shell","slug":"libtmux-spawn-command-shell"},{"id":"Libtmux.Spawn.default","publicId":"Libtmux.Spawn.default","qualifiedName":"Libtmux.Spawn.default","name":"default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":759,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val default : t","source":{"file":"lib/libtmux.mli","line":759,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"val default : t","params":[],"returns":"t"}],"slug":"libtmux-spawn-default"},{"id":"Libtmux.Spawn.make","publicId":"Libtmux.Spawn.make","qualifiedName":"Libtmux.Spawn.make","name":"make","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":751,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. "],"declarations":[{"kind":"function","text":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","source":{"file":"lib/libtmux.mli","line":751,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn","doc":{"summary":"Describe a program without I/O. `Exec` preserves argv; `Shell` explicitly requests the daemon's configured shell. `cwd` must be absolute. Validation occurs at admission. With no arguments, `Exec` uses a fixed `/bin/sh` trampoline because tmux treats a single argument as shell code. `Default` follows tmux defaults on creation and reuses the previous command on respawn."},"signatures":[{"raw":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"arg1","type":"command"}],"returns":"t"}],"slug":"libtmux-spawn-make"},{"id":"Libtmux.Spawn.t","publicId":"Libtmux.Spawn.t","qualifiedName":"Libtmux.Spawn.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":745,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }","source":{"file":"lib/libtmux.mli","line":745,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type t =\n {\n command: command ;\n cwd: string option ;\n environment: (string * string) list }","params":[]}],"slug":"libtmux-spawn-t"},{"id":"Libtmux.Spawn.t.command","publicId":"Libtmux.Spawn.t.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":746,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : command;","source":{"file":"lib/libtmux.mli","line":746,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.t","type":"command","qualifiedName":"Libtmux.Spawn.command","slug":"libtmux-spawn-t-command"},{"id":"Libtmux.Spawn.t.cwd","publicId":"Libtmux.Spawn.t.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":747,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"lib/libtmux.mli","line":747,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.t","type":"string option","qualifiedName":"Libtmux.Spawn.cwd","slug":"libtmux-spawn-t-cwd"},{"id":"Libtmux.Spawn.t.environment","publicId":"Libtmux.Spawn.t.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":748,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"lib/libtmux.mli","line":748,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Spawn.t","type":"(string * string) list","qualifiedName":"Libtmux.Spawn.environment","slug":"libtmux-spawn-t-environment"},{"id":"Libtmux.Window","publicId":"Libtmux.Window","qualifiedName":"Libtmux.Window","name":"Window","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A global window shared by its session links. Window index and current state\n belong to a link, while panes and geometry belong to the window. "],"declarations":[{"kind":"module","text":"and Window : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end\n\n module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val width : t -> int\n val height : t -> int\n val layout : t -> string\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\n\n val panes : t -> Pane.t Iarray.t\n val links : t -> Window_link.t Iarray.t\nend","source":{"file":"lib/libtmux.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"A global window shared by its session links. Window index and current state belong to a link, while panes and geometry belong to the window."},"slug":"libtmux-window"},{"id":"Libtmux.Window.Fields","publicId":"Libtmux.Window.Fields","qualifiedName":"Libtmux.Window.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end","source":{"file":"lib/libtmux.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","slug":"libtmux-window-fields"},{"id":"Libtmux.Window.Fields.height","publicId":"Libtmux.Window.Fields.height","qualifiedName":"Libtmux.Window.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":237,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":237,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-height"},{"id":"Libtmux.Window.Fields.id","publicId":"Libtmux.Window.Fields.id","qualifiedName":"Libtmux.Window.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-id"},{"id":"Libtmux.Window.Fields.layout","publicId":"Libtmux.Window.Fields.layout","qualifiedName":"Libtmux.Window.Fields.layout","name":"layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val layout : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val layout : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-layout"},{"id":"Libtmux.Window.Fields.name","publicId":"Libtmux.Window.Fields.name","qualifiedName":"Libtmux.Window.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-name"},{"id":"Libtmux.Window.Fields.width","publicId":"Libtmux.Window.Fields.width","qualifiedName":"Libtmux.Window.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-width"},{"id":"Libtmux.Window.Id","publicId":"Libtmux.Window.Id","qualifiedName":"Libtmux.Window.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","slug":"libtmux-window-id-1sgu"},{"id":"Libtmux.Window.Id.compare","publicId":"Libtmux.Window.Id.compare","qualifiedName":"Libtmux.Window.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-window-id-compare"},{"id":"Libtmux.Window.Id.equal","publicId":"Libtmux.Window.Id.equal","qualifiedName":"Libtmux.Window.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-id-equal"},{"id":"Libtmux.Window.Id.of_string","publicId":"Libtmux.Window.Id.of_string","qualifiedName":"Libtmux.Window.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-window-id-of_string"},{"id":"Libtmux.Window.Id.pp","publicId":"Libtmux.Window.Id.pp","qualifiedName":"Libtmux.Window.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-window-id-pp"},{"id":"Libtmux.Window.Id.t","publicId":"Libtmux.Window.Id.t","qualifiedName":"Libtmux.Window.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-id-t"},{"id":"Libtmux.Window.Id.to_string","publicId":"Libtmux.Window.Id.to_string","qualifiedName":"Libtmux.Window.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-id-to_string"},{"id":"Libtmux.Window.Relations","publicId":"Libtmux.Window.Relations","qualifiedName":"Libtmux.Window.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":241,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":241,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","slug":"libtmux-window-relations"},{"id":"Libtmux.Window.Relations.links","publicId":"Libtmux.Window.Relations.links","qualifiedName":"Libtmux.Window.Relations.links","name":"links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":243,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":243,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-window-relations-links"},{"id":"Libtmux.Window.Relations.panes","publicId":"Libtmux.Window.Relations.panes","qualifiedName":"Libtmux.Window.Relations.panes","name":"panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":242,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val panes : (t, Pane.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":242,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val panes : (t, Pane.t) Relation.Many.t","params":[],"returns":"(t, Pane.t) Relation.Many.t"}],"slug":"libtmux-window-relations-panes"},{"id":"Libtmux.Window.Target","publicId":"Libtmux.Window.Target","qualifiedName":"Libtmux.Window.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","slug":"libtmux-window-target-6ecc"},{"id":"Libtmux.Window.Target.id","publicId":"Libtmux.Window.Target.id","qualifiedName":"Libtmux.Window.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-target-id"},{"id":"Libtmux.Window.Target.of_id","publicId":"Libtmux.Window.Target.of_id","qualifiedName":"Libtmux.Window.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-window-target-of_id"},{"id":"Libtmux.Window.Target.source","publicId":"Libtmux.Window.Target.source","qualifiedName":"Libtmux.Window.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-target-source"},{"id":"Libtmux.Window.Target.t","publicId":"Libtmux.Window.Target.t","qualifiedName":"Libtmux.Window.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-target-t"},{"id":"Libtmux.Window.height","publicId":"Libtmux.Window.height","qualifiedName":"Libtmux.Window.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-height"},{"id":"Libtmux.Window.id","publicId":"Libtmux.Window.id","qualifiedName":"Libtmux.Window.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":258,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":258,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-id-1sjw"},{"id":"Libtmux.Window.layout","publicId":"Libtmux.Window.layout","qualifiedName":"Libtmux.Window.layout","name":"layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":262,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val layout : t -> string","source":{"file":"lib/libtmux.mli","line":262,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val layout : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-layout"},{"id":"Libtmux.Window.links","publicId":"Libtmux.Window.links","qualifiedName":"Libtmux.Window.links","name":"links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-window-links"},{"id":"Libtmux.Window.name","publicId":"Libtmux.Window.name","qualifiedName":"Libtmux.Window.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":259,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":259,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-name"},{"id":"Libtmux.Window.panes","publicId":"Libtmux.Window.panes","qualifiedName":"Libtmux.Window.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":272,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":272,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-window-panes"},{"id":"Libtmux.Window.same_entity","publicId":"Libtmux.Window.same_entity","qualifiedName":"Libtmux.Window.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":266,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_entity"},{"id":"Libtmux.Window.same_observation","publicId":"Libtmux.Window.same_observation","qualifiedName":"Libtmux.Window.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_observation"},{"id":"Libtmux.Window.source","publicId":"Libtmux.Window.source","qualifiedName":"Libtmux.Window.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-source"},{"id":"Libtmux.Window.t","publicId":"Libtmux.Window.t","qualifiedName":"Libtmux.Window.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-t"},{"id":"Libtmux.Window.target","publicId":"Libtmux.Window.target","qualifiedName":"Libtmux.Window.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-window-target-1sbf"},{"id":"Libtmux.Window.target:type","publicId":"Libtmux.Window.target:type","qualifiedName":"Libtmux.Window.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":256,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":256,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-window-target-type"},{"id":"Libtmux.Window.width","publicId":"Libtmux.Window.width","qualifiedName":"Libtmux.Window.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-width"},{"id":"Libtmux.Window_link","publicId":"Libtmux.Window_link","qualifiedName":"Libtmux.Window_link","name":"Window_link","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":278,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" One captured session/index/window context. It is not a stable link\n incarnation across unlinking, movement or reindexing. "],"declarations":[{"kind":"module","text":"and Window_link : sig\n type t\n\n module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end\n\n val index : t -> int\n val is_current : t -> bool\n val session : t -> Session.t\n val window : t -> Window.t\n\n val same_context : t -> t -> bool\n (** Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. *)\n\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":278,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux","doc":{"summary":"One captured session/index/window context. It is not a stable link incarnation across unlinking, movement or reindexing."},"slug":"libtmux-window_link"},{"id":"Libtmux.Window_link.Fields","publicId":"Libtmux.Window_link.Fields","qualifiedName":"Libtmux.Window_link.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":281,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":281,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-fields"},{"id":"Libtmux.Window_link.Fields.index","publicId":"Libtmux.Window_link.Fields.index","qualifiedName":"Libtmux.Window_link.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window_link-fields-index"},{"id":"Libtmux.Window_link.Fields.is_current","publicId":"Libtmux.Window_link.Fields.is_current","qualifiedName":"Libtmux.Window_link.Fields.is_current","name":"is_current","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":283,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val is_current : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val is_current : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-window_link-fields-is_current"},{"id":"Libtmux.Window_link.Relations","publicId":"Libtmux.Window_link.Relations","qualifiedName":"Libtmux.Window_link.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":286,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":286,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-relations"},{"id":"Libtmux.Window_link.Relations.session","publicId":"Libtmux.Window_link.Relations.session","qualifiedName":"Libtmux.Window_link.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":287,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":287,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.One.t","params":[],"returns":"(t, Session.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-session"},{"id":"Libtmux.Window_link.Relations.window","publicId":"Libtmux.Window_link.Relations.window","qualifiedName":"Libtmux.Window_link.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":288,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-window"},{"id":"Libtmux.Window_link.index","publicId":"Libtmux.Window_link.index","qualifiedName":"Libtmux.Window_link.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":291,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":291,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window_link-index"},{"id":"Libtmux.Window_link.is_current","publicId":"Libtmux.Window_link.is_current","qualifiedName":"Libtmux.Window_link.is_current","name":"is_current","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":292,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_current : t -> bool","source":{"file":"lib/libtmux.mli","line":292,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val is_current : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-is_current"},{"id":"Libtmux.Window_link.same_context","publicId":"Libtmux.Window_link.same_context","qualifiedName":"Libtmux.Window_link.same_context","name":"same_context","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":296,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. "],"declarations":[{"kind":"function","text":"val same_context : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":296,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","doc":{"summary":"Compare source, session, index and window. An equal context does not certify a stable link incarnation across reindexing or unlink/relink."},"signatures":[{"raw":"val same_context : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_context"},{"id":"Libtmux.Window_link.same_observation","publicId":"Libtmux.Window_link.same_observation","qualifiedName":"Libtmux.Window_link.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_observation"},{"id":"Libtmux.Window_link.session","publicId":"Libtmux.Window_link.session","qualifiedName":"Libtmux.Window_link.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":293,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> Session.t","source":{"file":"lib/libtmux.mli","line":293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val session : t -> Session.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t"}],"slug":"libtmux-window_link-session"},{"id":"Libtmux.Window_link.t","publicId":"Libtmux.Window_link.t","qualifiedName":"Libtmux.Window_link.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window_link-t"},{"id":"Libtmux.Window_link.window","publicId":"Libtmux.Window_link.window","qualifiedName":"Libtmux.Window_link.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-window_link-window"},{"id":"Libtmux_eio","publicId":"Libtmux_eio","qualifiedName":"Libtmux_eio","name":"Libtmux_eio","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Concurrent Linux tmux clients using the application's Eio scheduler.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md}streaming\n guide} demonstrates application-owned switches, cancellation and continuity\n gaps. "],"declarations":[{"kind":"module","text":"","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"doc":{"summary":"Concurrent Linux tmux clients using the application's Eio scheduler.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [streaming guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md) demonstrates application-owned switches, cancellation and continuity gaps."},"slug":"libtmux_eio"},{"id":"Libtmux_eio.Cleanup","publicId":"Libtmux_eio.Cleanup","qualifiedName":"Libtmux_eio.Cleanup","name":"Cleanup","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Domain-owned cleanup diagnostics shared with the blocking backend. Supply a\n report before setup to inspect secondary failures after native cancellation.\n No scheduler is needed to inspect a report. "],"declarations":[{"kind":"module","text":"module Cleanup = Libtmux_unix.Cleanup","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","doc":{"summary":"Domain-owned cleanup diagnostics shared with the blocking backend. Supply a report before setup to inspect secondary failures after native cancellation. No scheduler is needed to inspect a report."},"exportedFrom":"Libtmux_unix.Cleanup","slug":"libtmux_eio-cleanup"},{"id":"Libtmux_eio.Client","publicId":"Libtmux_eio.Client","qualifiedName":"Libtmux_eio.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n *)\n\n val cleanup : t -> Cleanup.t\n (** Read the supplied report or the client's fresh default without I/O.\n {!Cleanup.inspect} remains available after close. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. New admission returns\n [Error Libtmux.Error.Closed] once {!close} starts. *)\n\n val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. A cleanup failure cannot replace\n an earlier error or cancellation; inspect {!cleanup} for secondary\n failures. Otherwise cleanup failure prevents success or renewed coverage.\n No history/barrier guarantee. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve bounded capacity without I/O. Return\n [Error Libtmux.Error.Closed] once {!close} starts. *)\n\n val await : 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. *)\n\n val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result\n (** Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. *)\n\n val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. *)\n\n val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Libtmux.Error.Unsupported}. *)\n\n val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Retire the generation and close owned control clients and descriptors.\n Reject new {!submit} and {!subscribe} calls as soon as closing starts.\n Concurrent calls await the same teardown result. Later calls retain a\n teardown failure instead of treating the closed flag as success. Each\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n Other fibers can run during that wait. The grace is per helper; it does\n not bound scheduling, filesystem or uninterruptible kernel work. No signal\n targets the daemon. tmux's [exit-unattached] and [exit-empty] policies can\n end the daemon after its clients or sessions disappear. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_eio-client"},{"id":"Libtmux_eio.Client.await","publicId":"Libtmux_eio.Client.await","qualifiedName":"Libtmux_eio.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":194,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. "],"declarations":[{"kind":"function","text":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Cancellation propagates as Eio cancellation. Store the handle outside the cancelled fiber: the client drains written work independently, and the eventual result remains inspectable."},"signatures":[{"raw":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-await"},{"id":"Libtmux_eio.Client.break_pane","publicId":"Libtmux_eio.Client.break_pane","qualifiedName":"Libtmux_eio.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":437,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":437,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-break_pane"},{"id":"Libtmux_eio.Client.capture","publicId":"Libtmux_eio.Client.capture","qualifiedName":"Libtmux_eio.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. "],"declarations":[{"kind":"function","text":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a complete immutable graph over an interval. Conflicting or disappearing entities fail capture; they do not become empty relations. The returned values remain readable after client closure."},"signatures":[{"raw":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture"},{"id":"Libtmux_eio.Client.capture_environment","publicId":"Libtmux_eio.Client.capture_environment","qualifiedName":"Libtmux_eio.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_environment"},{"id":"Libtmux_eio.Client.capture_hooks","publicId":"Libtmux_eio.Client.capture_hooks","qualifiedName":"Libtmux_eio.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_hooks"},{"id":"Libtmux_eio.Client.capture_options","publicId":"Libtmux_eio.Client.capture_options","qualifiedName":"Libtmux_eio.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Libtmux.Error.Unsupported}. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors cover every supported release from tmux 3.3a through 3.8; other versions return {!Libtmux.Error.Unsupported}."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_options"},{"id":"Libtmux_eio.Client.capture_text","publicId":"Libtmux_eio.Client.capture_text","qualifiedName":"Libtmux_eio.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Inclusive ordinary screen rows, using a bounded private file transfer. Qualified local scratch storage must be shared with the daemon."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_text"},{"id":"Libtmux_eio.Client.cleanup","publicId":"Libtmux_eio.Client.cleanup","qualifiedName":"Libtmux_eio.Client.cleanup","name":"cleanup","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":145,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read the supplied report or the client's fresh default without I/O.\n {!Cleanup.inspect} remains available after close. "],"declarations":[{"kind":"function","text":"val cleanup : t -> Cleanup.t","source":{"file":"eio/libtmux_eio.mli","line":145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the supplied report or the client's fresh default without I/O. {!Cleanup.inspect} remains available after close."},"signatures":[{"raw":"val cleanup : t -> Cleanup.t","params":[{"name":"arg1","type":"t"}],"returns":"Cleanup.t"}],"slug":"libtmux_eio-client-cleanup"},{"id":"Libtmux_eio.Client.clear_history","publicId":"Libtmux_eio.Client.clear_history","qualifiedName":"Libtmux_eio.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":578,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":578,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_history"},{"id":"Libtmux_eio.Client.clear_option_array","publicId":"Libtmux_eio.Client.clear_option_array","qualifiedName":"Libtmux_eio.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_option_array"},{"id":"Libtmux_eio.Client.close","publicId":"Libtmux_eio.Client.close","qualifiedName":"Libtmux_eio.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":584,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Retire the generation and close owned control clients and descriptors.\n Reject new {!submit} and {!subscribe} calls as soon as closing starts.\n Concurrent calls await the same teardown result. Later calls retain a\n teardown failure instead of treating the closed flag as success. Each\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n Other fibers can run during that wait. The grace is per helper; it does\n not bound scheduling, filesystem or uninterruptible kernel work. No signal\n targets the daemon. tmux's [exit-unattached] and [exit-empty] policies can\n end the daemon after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":584,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Retire the generation and close owned control clients and descriptors. Reject new {!submit} and {!subscribe} calls as soon as closing starts. Concurrent calls await the same teardown result. Later calls retain a teardown failure instead of treating the closed flag as success. Each helper gets 200 ms of TERM grace, followed by KILL if needed and reaping. Other fibers can run during that wait. The grace is per helper; it does not bound scheduling, filesystem or uninterruptible kernel work. No signal targets the daemon. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-close"},{"id":"Libtmux_eio.Client.connect","publicId":"Libtmux_eio.Client.connect","qualifiedName":"Libtmux_eio.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n "],"declarations":[{"kind":"function","text":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Attach to an existing local Linux daemon in the same PID namespace and shared filesystem. Requires pidfd support. Default exchange timeout: one second. All client calls belong to the connecting OCaml domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-connect"},{"id":"Libtmux_eio.Client.create_session","publicId":"Libtmux_eio.Client.create_session","qualifiedName":"Libtmux_eio.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_session"},{"id":"Libtmux_eio.Client.create_window","publicId":"Libtmux_eio.Client.create_window","qualifiedName":"Libtmux_eio.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_window"},{"id":"Libtmux_eio.Client.cycle_layout","publicId":"Libtmux_eio.Client.cycle_layout","qualifiedName":"Libtmux_eio.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":531,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-cycle_layout"},{"id":"Libtmux_eio.Client.kill_pane","publicId":"Libtmux_eio.Client.kill_pane","qualifiedName":"Libtmux_eio.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":457,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":457,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_pane"},{"id":"Libtmux_eio.Client.kill_session","publicId":"Libtmux_eio.Client.kill_session","qualifiedName":"Libtmux_eio.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":448,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":448,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_session"},{"id":"Libtmux_eio.Client.kill_window","publicId":"Libtmux_eio.Client.kill_window","qualifiedName":"Libtmux_eio.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":453,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":453,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_window"},{"id":"Libtmux_eio.Client.link_window","publicId":"Libtmux_eio.Client.link_window","qualifiedName":"Libtmux_eio.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-link_window"},{"id":"Libtmux_eio.Client.move_pane","publicId":"Libtmux_eio.Client.move_pane","qualifiedName":"Libtmux_eio.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":538,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":538,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_pane"},{"id":"Libtmux_eio.Client.move_window_at","publicId":"Libtmux_eio.Client.move_window_at","qualifiedName":"Libtmux_eio.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_window_at"},{"id":"Libtmux_eio.Client.read_hook","publicId":"Libtmux_eio.Client.read_hook","qualifiedName":"Libtmux_eio.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":363,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":363,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_hook"},{"id":"Libtmux_eio.Client.read_option","publicId":"Libtmux_eio.Client.read_option","qualifiedName":"Libtmux_eio.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":320,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_option"},{"id":"Libtmux_eio.Client.refresh_client_at","publicId":"Libtmux_eio.Client.refresh_client_at","qualifiedName":"Libtmux_eio.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-refresh_client_at"},{"id":"Libtmux_eio.Client.remove_environment","publicId":"Libtmux_eio.Client.remove_environment","qualifiedName":"Libtmux_eio.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":305,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_environment"},{"id":"Libtmux_eio.Client.remove_hook","publicId":"Libtmux_eio.Client.remove_hook","qualifiedName":"Libtmux_eio.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":388,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":388,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_hook"},{"id":"Libtmux_eio.Client.rename_session","publicId":"Libtmux_eio.Client.rename_session","qualifiedName":"Libtmux_eio.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_session"},{"id":"Libtmux_eio.Client.rename_window","publicId":"Libtmux_eio.Client.rename_window","qualifiedName":"Libtmux_eio.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":219,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_window"},{"id":"Libtmux_eio.Client.request_detach_client_at","publicId":"Libtmux_eio.Client.request_detach_client_at","qualifiedName":"Libtmux_eio.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":239,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-request_detach_client_at"},{"id":"Libtmux_eio.Client.resize_control_client_at","publicId":"Libtmux_eio.Client.resize_control_client_at","qualifiedName":"Libtmux_eio.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_control_client_at"},{"id":"Libtmux_eio.Client.resize_pane","publicId":"Libtmux_eio.Client.resize_pane","qualifiedName":"Libtmux_eio.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_pane"},{"id":"Libtmux_eio.Client.resize_window","publicId":"Libtmux_eio.Client.resize_window","qualifiedName":"Libtmux_eio.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":513,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":513,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_window"},{"id":"Libtmux_eio.Client.respawn_pane","publicId":"Libtmux_eio.Client.respawn_pane","qualifiedName":"Libtmux_eio.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-respawn_pane"},{"id":"Libtmux_eio.Client.rotate_panes","publicId":"Libtmux_eio.Client.rotate_panes","qualifiedName":"Libtmux_eio.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":557,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":557,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rotate_panes"},{"id":"Libtmux_eio.Client.run","publicId":"Libtmux_eio.Client.run","qualifiedName":"Libtmux_eio.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. "],"declarations":[{"kind":"function","text":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Submit and await an explicit command. Retain a separate submitted handle when the outcome must remain inspectable after caller cancellation."},"signatures":[{"raw":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run"},{"id":"Libtmux_eio.Client.run_hook","publicId":"Libtmux_eio.Client.run_hook","qualifiedName":"Libtmux_eio.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":397,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":397,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run_hook"},{"id":"Libtmux_eio.Client.select_layout","publicId":"Libtmux_eio.Client.select_layout","qualifiedName":"Libtmux_eio.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":523,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout :\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_layout"},{"id":"Libtmux_eio.Client.select_pane","publicId":"Libtmux_eio.Client.select_pane","qualifiedName":"Libtmux_eio.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":494,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":494,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_pane"},{"id":"Libtmux_eio.Client.select_window_at","publicId":"Libtmux_eio.Client.select_window_at","qualifiedName":"Libtmux_eio.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":461,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":461,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_window_at"},{"id":"Libtmux_eio.Client.send_keys","publicId":"Libtmux_eio.Client.send_keys","qualifiedName":"Libtmux_eio.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys :\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_keys"},{"id":"Libtmux_eio.Client.send_text","publicId":"Libtmux_eio.Client.send_text","qualifiedName":"Libtmux_eio.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_text"},{"id":"Libtmux_eio.Client.set_environment","publicId":"Libtmux_eio.Client.set_environment","qualifiedName":"Libtmux_eio.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":289,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":289,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_environment"},{"id":"Libtmux_eio.Client.set_hook","publicId":"Libtmux_eio.Client.set_hook","qualifiedName":"Libtmux_eio.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_hook"},{"id":"Libtmux_eio.Client.set_option","publicId":"Libtmux_eio.Client.set_option","qualifiedName":"Libtmux_eio.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":331,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":331,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_option"},{"id":"Libtmux_eio.Client.set_pane_title","publicId":"Libtmux_eio.Client.set_pane_title","qualifiedName":"Libtmux_eio.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":498,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":498,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_pane_title"},{"id":"Libtmux_eio.Client.signal","publicId":"Libtmux_eio.Client.signal","qualifiedName":"Libtmux_eio.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":275,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-signal"},{"id":"Libtmux_eio.Client.source","publicId":"Libtmux_eio.Client.source","qualifiedName":"Libtmux_eio.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"eio/libtmux_eio.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_eio-client-source"},{"id":"Libtmux_eio.Client.split_pane","publicId":"Libtmux_eio.Client.split_pane","qualifiedName":"Libtmux_eio.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-split_pane"},{"id":"Libtmux_eio.Client.submit","publicId":"Libtmux_eio.Client.submit","qualifiedName":"Libtmux_eio.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate and reserve bounded capacity without I/O. Return\n [Error Libtmux.Error.Closed] once {!close} starts. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate and reserve bounded capacity without I/O. Return `Error Libtmux.Error.Closed` once {!close} starts."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-submit"},{"id":"Libtmux_eio.Client.subscribe","publicId":"Libtmux_eio.Client.subscribe","qualifiedName":"Libtmux_eio.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":156,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap\n then End. Data starts after admission's marker, with no snapshot/history\n barrier, automatic reconnect or silent cursor reuse. New admission returns\n [Error Libtmux.Error.Closed] once {!close} starts. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":156,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire verified coverage through one shared lane per session; choose the least observed session ID unless supplied. A client-owned reader delivers future bytes without application callbacks. Default queue bounds are 1 MiB/1024 events; max 16 subscribers and eight total client lanes, sharing the 32 MiB payload budget. Overflow or coverage/layout changes emit Gap then End. Data starts after admission's marker, with no snapshot/history barrier, automatic reconnect or silent cursor reuse. New admission returns `Error Libtmux.Error.Closed` once {!close} starts.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-subscribe"},{"id":"Libtmux_eio.Client.swap_panes","publicId":"Libtmux_eio.Client.swap_panes","qualifiedName":"Libtmux_eio.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":549,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":549,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-swap_panes"},{"id":"Libtmux_eio.Client.switch_client_at","publicId":"Libtmux_eio.Client.switch_client_at","qualifiedName":"Libtmux_eio.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-switch_client_at"},{"id":"Libtmux_eio.Client.t","publicId":"Libtmux_eio.Client.t","qualifiedName":"Libtmux_eio.Client.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-client-t"},{"id":"Libtmux_eio.Client.unlink_window_at","publicId":"Libtmux_eio.Client.unlink_window_at","qualifiedName":"Libtmux_eio.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":466,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":466,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unlink_window_at"},{"id":"Libtmux_eio.Client.unset_environment","publicId":"Libtmux_eio.Client.unset_environment","qualifiedName":"Libtmux_eio.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_environment"},{"id":"Libtmux_eio.Client.unset_option","publicId":"Libtmux_eio.Client.unset_option","qualifiedName":"Libtmux_eio.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":345,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":345,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_option"},{"id":"Libtmux_eio.Client.version","publicId":"Libtmux_eio.Client.version","qualifiedName":"Libtmux_eio.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":153,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"eio/libtmux_eio.mli","line":153,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_eio-client-version"},{"id":"Libtmux_eio.Client.wait_for","publicId":"Libtmux_eio.Client.wait_for","qualifiedName":"Libtmux_eio.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":272,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":272,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for"},{"id":"Libtmux_eio.Client.wait_for_text","publicId":"Libtmux_eio.Client.wait_for_text","qualifiedName":"Libtmux_eio.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. A cleanup failure cannot replace\n an earlier error or cancellation; inspect {!cleanup} for secondary\n failures. Otherwise cleanup failure prevents success or renewed coverage.\n No history/barrier guarantee. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Subscribe and capture the screen immediately, then recapture on output. Membership/overflow gaps establish fresh coverage in the same binding. Maximum pattern: 64 KiB. Return captured rendered text containing it; transient text may be missed. Deadlines are checked between bounded acquisitions, whose I/O retains the client exchange timeout. Cancellation propagates and releases the subscription. A cleanup failure cannot replace an earlier error or cancellation; inspect {!cleanup} for secondary failures. Otherwise cleanup failure prevents success or renewed coverage. No history/barrier guarantee."},"signatures":[{"raw":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for_text"},{"id":"Libtmux_eio.Client.zoom_pane","publicId":"Libtmux_eio.Client.zoom_pane","qualifiedName":"Libtmux_eio.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-zoom_pane"},{"id":"Libtmux_eio.Operation","publicId":"Libtmux_eio.Operation","qualifiedName":"Libtmux_eio.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. When the\n daemon watcher retires an in-flight operation, [cause] retains\n {!Libtmux.Error.Disconnected}. Idle-reader failures also retain their\n library cause instead of becoming an explicit client-close reason. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** Read without I/O, including after client closure. Owning domain only. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove unsent work. A written request remains owned and drained by the\n client. *)\n\n val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result\n (** Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_eio-operation"},{"id":"Libtmux_eio.Operation.await_stage","publicId":"Libtmux_eio.Operation.await_stage","qualifiedName":"Libtmux_eio.Operation.await_stage","name":"await_stage","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n "],"declarations":[{"kind":"function","text":"val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Wait for the named stage or a terminal state. Acknowledgement does not establish completion. Cancelling this observer leaves the operation alone."},"signatures":[{"raw":"val await_stage :\n 'a t -> [ `Acknowledged | `Written ] -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"[ `Acknowledged | `Written ]"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-await_stage"},{"id":"Libtmux_eio.Operation.cancel","publicId":"Libtmux_eio.Operation.cancel","qualifiedName":"Libtmux_eio.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove unsent work. A written request remains owned and drained by the\n client. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Remove unsent work. A written request remains owned and drained by the client."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-cancel"},{"id":"Libtmux_eio.Operation.cleanup_receipt","publicId":"Libtmux_eio.Operation.cleanup_receipt","qualifiedName":"Libtmux_eio.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. When the\n daemon watcher retires an in-flight operation, [cause] retains\n {!Libtmux.Error.Disconnected}. Idle-reader failures also retain their\n library cause instead of becoming an explicit client-close reason. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry. When the daemon watcher retires an in-flight operation, `cause` retains {!Libtmux.Error.Disconnected}. Idle-reader failures also retain their library cause instead of becoming an explicit client-close reason."},"signatures":[{"raw":"type cleanup_receipt =\n {\n cause: Libtmux.Error.t ;\n owned_buffers: string list ;\n created: Libtmux.Created.t list }","params":[]}],"slug":"libtmux_eio-operation-cleanup_receipt"},{"id":"Libtmux_eio.Operation.cleanup_receipt.cause","publicId":"Libtmux_eio.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_eio.Operation.cause","slug":"libtmux_eio-operation-cleanup_receipt-cause"},{"id":"Libtmux_eio.Operation.cleanup_receipt.created","publicId":"Libtmux_eio.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_eio.Operation.created","slug":"libtmux_eio-operation-cleanup_receipt-created"},{"id":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_eio.Operation.owned_buffers","slug":"libtmux_eio-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_eio.Operation.id","publicId":"Libtmux_eio.Operation.id","qualifiedName":"Libtmux_eio.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":77,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"eio/libtmux_eio.mli","line":77,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_eio-operation-id"},{"id":"Libtmux_eio.Operation.inspect","publicId":"Libtmux_eio.Operation.inspect","qualifiedName":"Libtmux_eio.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read without I/O, including after client closure. Owning domain only. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Read without I/O, including after client closure. Owning domain only."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-inspect"},{"id":"Libtmux_eio.Operation.state","publicId":"Libtmux_eio.Operation.state","qualifiedName":"Libtmux_eio.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a state =\n | Queued \n | Not_started \n | Written \n | Acknowledged \n | Finished of ('a, Libtmux.Error.t) result \n | Outcome_unknown of cleanup_receipt ","params":[]}],"slug":"libtmux_eio-operation-state"},{"id":"Libtmux_eio.Operation.state.Acknowledged","publicId":"Libtmux_eio.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Acknowledged","slug":"libtmux_eio-operation-state-acknowledged"},{"id":"Libtmux_eio.Operation.state.Finished","publicId":"Libtmux_eio.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Finished","slug":"libtmux_eio-operation-state-finished"},{"id":"Libtmux_eio.Operation.state.Not_started","publicId":"Libtmux_eio.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"eio/libtmux_eio.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Not_started","slug":"libtmux_eio-operation-state-not_started"},{"id":"Libtmux_eio.Operation.state.Outcome_unknown","publicId":"Libtmux_eio.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Outcome_unknown","slug":"libtmux_eio-operation-state-outcome_unknown"},{"id":"Libtmux_eio.Operation.state.Queued","publicId":"Libtmux_eio.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"eio/libtmux_eio.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Queued","slug":"libtmux_eio-operation-state-queued"},{"id":"Libtmux_eio.Operation.state.Written","publicId":"Libtmux_eio.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"eio/libtmux_eio.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Written","slug":"libtmux_eio-operation-state-written"},{"id":"Libtmux_eio.Operation.t","publicId":"Libtmux_eio.Operation.t","qualifiedName":"Libtmux_eio.Operation.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-operation-t"},{"id":"Libtmux_eio.Rendered","publicId":"Libtmux_eio.Rendered","qualifiedName":"Libtmux_eio.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","exportedFrom":"Libtmux.Captured_text","slug":"libtmux_eio-rendered"},{"id":"Libtmux_eio.Subscription","publicId":"Libtmux_eio.Subscription","qualifiedName":"Libtmux_eio.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O, on the owning domain. *)\n\n val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Concurrent calls\n join the same cleanup, including reaping a lane when it becomes unused;\n later calls retain cleanup failures. Borrowed clients and the daemon\n remain alive. {!poll} can still read the terminal event. *)\n\n val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_eio-subscription"},{"id":"Libtmux_eio.Subscription.close","publicId":"Libtmux_eio.Subscription.close","qualifiedName":"Libtmux_eio.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":107,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Concurrent calls\n join the same cleanup, including reaping a lane when it becomes unused;\n later calls retain cleanup failures. Borrowed clients and the daemon\n remain alive. {!poll} can still read the terminal event. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":107,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"End an active subscription with Cancelled and discard pending data. Preserve an already ended subscription's terminal reason. Concurrent calls join the same cleanup, including reaping a lane when it becomes unused; later calls retain cleanup failures. Borrowed clients and the daemon remain alive. {!poll} can still read the terminal event."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-close"},{"id":"Libtmux_eio.Subscription.next","publicId":"Libtmux_eio.Subscription.next","qualifiedName":"Libtmux_eio.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. "],"declarations":[{"kind":"function","text":"val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Await one event, defaulting to a one-second deadline. `None` follows a consumed End. A deadline keeps the subscription active. Eio cancellation closes it, releases its lane when unused, and propagates."},"signatures":[{"raw":"val next :\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-next"},{"id":"Libtmux_eio.Subscription.poll","publicId":"Libtmux_eio.Subscription.poll","qualifiedName":"Libtmux_eio.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove a queued event without I/O, on the owning domain. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Remove a queued event without I/O, on the owning domain."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-poll"},{"id":"Libtmux_eio.Subscription.t","publicId":"Libtmux_eio.Subscription.t","qualifiedName":"Libtmux_eio.Subscription.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-subscription-t"},{"id":"Libtmux_eio.Subscription.wait_for_bytes","publicId":"Libtmux_eio.Subscription.wait_for_bytes","qualifiedName":"Libtmux_eio.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Consume future observed bytes through a match, with a maximum 64 KiB nonempty pattern. Match across Data boundaries and return its end cursor. Gaps end matching. This searches neither rendered text nor history. A deadline leaves the subscription active; cancellation closes it.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_eio-subscription-wait_for_bytes"},{"id":"Libtmux_eio.Terminal","publicId":"Libtmux_eio.Terminal","qualifiedName":"Libtmux_eio.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Cooperative TERM gets\n 200 ms of grace before forced termination, while other fibers can run.\n Scheduling and kernel completion can add time. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. Supply\n [cleanup] before the call to retain secondary failures after cancellation.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_eio-terminal"},{"id":"Libtmux_eio.Terminal.attach_current","publicId":"Libtmux_eio.Terminal.attach_current","qualifiedName":"Libtmux_eio.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Cooperative TERM gets\n 200 ms of grace before forced termination, while other fibers can run.\n Scheduling and kernel completion can add time. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. Supply\n [cleanup] before the call to retain secondary failures after cancellation.\n "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Terminal","doc":{"summary":"Run an interactive terminal client until exit, using the application's process manager and standard streams unless explicit flows are supplied. `stdin` must be backed by a terminal descriptor; a pipe-backed flow is rejected by tmux. Select the exact ID on the daemon currently listening at `endpoint`, without a captured target, binding, retry or daemon startup.","body":"Environment updates and read-only mode default to false. Clear inherited `TMUX` and `TMUX_PANE`. Cancellation propagates after terminating and reaping this client; it does not stop the daemon. Cooperative TERM gets 200 ms of grace before forced termination, while other fibers can run. Scheduling and kernel completion can add time. Success proves terminal client exit. Diagnostics go to `stderr`; borrowed flows stay open. Supply `cleanup` before the call to retain secondary failures after cancellation."},"signatures":[{"raw":"val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:[> Eio.Flow.source_ty ] Eio.Flow.source ->\n ?stdout:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n ?stderr:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"[> Eio.Flow.source_ty ] Eio.Flow.source","optional":true,"keywordOnly":true},{"name":"stdout","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"stderr","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-terminal-attach_current"},{"id":"Libtmux_eio.Workspace","publicId":"Libtmux_eio.Workspace","qualifiedName":"Libtmux_eio.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":599,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Apply workspace plans through Eio while retaining journals across caller\n cancellation. Handles belong to the creating domain; the application owns\n the scheduler and switch. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. *)\n\n val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. *)\n\n val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Read a journal copy without I/O, including any late retained outcome. *)\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":599,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio","doc":{"summary":"Apply workspace plans through Eio while retaining journals across caller cancellation. Handles belong to the creating domain; the application owns the scheduler and switch."},"slug":"libtmux_eio-workspace"},{"id":"Libtmux_eio.Workspace.await","publicId":"Libtmux_eio.Workspace.await","qualifiedName":"Libtmux_eio.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. "],"declarations":[{"kind":"function","text":"val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Apply once. Expected failures return a retained journal. Eio cancellation propagates after progress is recorded and at most 500 ms of protected compensation. Admitted commands can still complete under client ownership; inspect the receipt before attempting manual recovery."},"signatures":[{"raw":"val await :\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-await"},{"id":"Libtmux_eio.Workspace.client","publicId":"Libtmux_eio.Workspace.client","qualifiedName":"Libtmux_eio.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"eio/libtmux_eio.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_eio-workspace-client"},{"id":"Libtmux_eio.Workspace.close","publicId":"Libtmux_eio.Workspace.close","qualifiedName":"Libtmux_eio.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":638,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":638,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Closing is idempotent; completed journals remain readable."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-close"},{"id":"Libtmux_eio.Workspace.inspect","publicId":"Libtmux_eio.Workspace.inspect","qualifiedName":"Libtmux_eio.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read a journal copy without I/O, including any late retained outcome. "],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Read a journal copy without I/O, including any late retained outcome."},"signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-inspect"},{"id":"Libtmux_eio.Workspace.submit","publicId":"Libtmux_eio.Workspace.submit","qualifiedName":"Libtmux_eio.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a generation-bound handle without I/O. The supplied client is borrowed; closing the handle leaves it open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit"},{"id":"Libtmux_eio.Workspace.submit_bootstrap","publicId":"Libtmux_eio.Workspace.submit_bootstrap","qualifiedName":"Libtmux_eio.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":607,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":607,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a missing-endpoint execution without I/O. Await starts control new-session and binds that same connection. The handle owns its new client within `sw`; it never owns the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit_bootstrap"},{"id":"Libtmux_eio.Workspace.t","publicId":"Libtmux_eio.Workspace.t","qualifiedName":"Libtmux_eio.Workspace.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_eio.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-workspace-t"},{"id":"Libtmux_json","publicId":"Libtmux_json","qualifiedName":"Libtmux_json","name":"Libtmux_json","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Pure, bounded query and workspace JSON interchange.\n\n {!Expr} validates portable queries and {!Workspace} decodes configurations\n and encodes plans and receipts. Both return {!Decode_error.t} on invalid\n data. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} and\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for complete programs. "],"declarations":[{"kind":"module","text":"","source":{"file":"json/libtmux_json.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"doc":{"summary":"Pure, bounded query and workspace JSON interchange.","body":"{!Expr} validates portable queries and {!Workspace} decodes configurations and encodes plans and receipts. Both return {!Decode_error.t} on invalid data. See the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) and [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for complete programs."},"slug":"libtmux_json"},{"id":"Libtmux_json.Decode_error","publicId":"Libtmux_json.Decode_error","qualifiedName":"Libtmux_json.Decode_error","name":"Decode_error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Decode_error : sig\n type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported\n\n type t = { pointer : string; category : category; message : string }\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"json/libtmux_json.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json","slug":"libtmux_json-decode_error"},{"id":"Libtmux_json.Decode_error.category","publicId":"Libtmux_json.Decode_error.category","qualifiedName":"Libtmux_json.Decode_error.category","name":"category","kind":"enum","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":12,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","source":{"file":"json/libtmux_json.mli","line":12,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type category =\n | Syntax \n | Limit \n | Unknown \n | Wrong_type \n | Out_of_range \n | Unsupported ","params":[]}],"slug":"libtmux_json-decode_error-category"},{"id":"Libtmux_json.Decode_error.category.Limit","publicId":"Libtmux_json.Decode_error.category.Limit","name":"Limit","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Limit","source":{"file":"json/libtmux_json.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Limit","slug":"libtmux_json-decode_error-category-limit"},{"id":"Libtmux_json.Decode_error.category.Out_of_range","publicId":"Libtmux_json.Decode_error.category.Out_of_range","name":"Out_of_range","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Out_of_range","source":{"file":"json/libtmux_json.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Out_of_range","slug":"libtmux_json-decode_error-category-out_of_range"},{"id":"Libtmux_json.Decode_error.category.Syntax","publicId":"Libtmux_json.Decode_error.category.Syntax","name":"Syntax","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Syntax","source":{"file":"json/libtmux_json.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Syntax","slug":"libtmux_json-decode_error-category-syntax"},{"id":"Libtmux_json.Decode_error.category.Unknown","publicId":"Libtmux_json.Decode_error.category.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"json/libtmux_json.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unknown","slug":"libtmux_json-decode_error-category-unknown"},{"id":"Libtmux_json.Decode_error.category.Unsupported","publicId":"Libtmux_json.Decode_error.category.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"json/libtmux_json.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unsupported","slug":"libtmux_json-decode_error-category-unsupported"},{"id":"Libtmux_json.Decode_error.category.Wrong_type","publicId":"Libtmux_json.Decode_error.category.Wrong_type","name":"Wrong_type","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_type","source":{"file":"json/libtmux_json.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Wrong_type","slug":"libtmux_json-decode_error-category-wrong_type"},{"id":"Libtmux_json.Decode_error.pp","publicId":"Libtmux_json.Decode_error.pp","qualifiedName":"Libtmux_json.Decode_error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"json/libtmux_json.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux_json-decode_error-pp"},{"id":"Libtmux_json.Decode_error.t","publicId":"Libtmux_json.Decode_error.t","qualifiedName":"Libtmux_json.Decode_error.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = { pointer : string; category : category; message : string }","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type t = {\n pointer: string ;\n category: category ;\n message: string }","params":[]}],"slug":"libtmux_json-decode_error-t"},{"id":"Libtmux_json.Decode_error.t.category","publicId":"Libtmux_json.Decode_error.t.category","name":"category","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"category : category;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.t","type":"category","qualifiedName":"Libtmux_json.Decode_error.category","slug":"libtmux_json-decode_error-t-category"},{"id":"Libtmux_json.Decode_error.t.message","publicId":"Libtmux_json.Decode_error.t.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.message","slug":"libtmux_json-decode_error-t-message"},{"id":"Libtmux_json.Decode_error.t.pointer","publicId":"Libtmux_json.Decode_error.t.pointer","name":"pointer","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pointer : string;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.pointer","slug":"libtmux_json-decode_error-t-pointer"},{"id":"Libtmux_json.Error","publicId":"Libtmux_json.Error","qualifiedName":"Libtmux_json.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Structured native failures for JSON consumers. "],"declarations":[{"kind":"module","text":"module Error : sig\n val encode : Libtmux.Error.t -> Yojson.Safe.t\n (** Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json","doc":{"summary":"Structured native failures for JSON consumers."},"slug":"libtmux_json-error"},{"id":"Libtmux_json.Error.encode","publicId":"Libtmux_json.Error.encode","qualifiedName":"Libtmux_json.Error.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. "],"declarations":[{"kind":"function","text":"val encode : Libtmux.Error.t -> Yojson.Safe.t","source":{"file":"json/libtmux_json.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Error","doc":{"summary":"Return a stable `code`, bounded `message`, `message_truncated` flag and relevant operation, resource or target metadata. Messages and text attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex representation described by {!Workspace.encode_receipt}. No I/O."},"signatures":[{"raw":"val encode : Libtmux.Error.t -> Yojson.Safe.t","params":[{"name":"arg1","type":"Libtmux.Error.t"}],"returns":"Yojson.Safe.t"}],"slug":"libtmux_json-error-encode"},{"id":"Libtmux_json.Expr","publicId":"Libtmux_json.Expr","qualifiedName":"Libtmux_json.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Portable scalar pane expressions. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/query-interchange.md}wire\n subset} for canonical fields, operators and bounds. "],"declarations":[{"kind":"module","text":"module Expr : sig\n val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result\n (** Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. *)\n\n val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result\n (** Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. *)\n\n val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result\n\n val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result\n (** Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json","doc":{"summary":"Portable scalar pane expressions. See the [wire subset](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/query-interchange.md) for canonical fields, operators and bounds."},"slug":"libtmux_json-expr"},{"id":"Libtmux_json.Expr.decode","publicId":"Libtmux_json.Expr.decode","qualifiedName":"Libtmux_json.Expr.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. "],"declarations":[{"kind":"function","text":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Validate the supplied tree, including duplicate properties, before typed construction. Only the shared scalar pane registry and Boolean composition are accepted. Java regex, relationships and native extension fields return `Unsupported`. Numbers must fit signed 32-bit integers."},"signatures":[{"raw":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"Yojson.Safe.t"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-decode"},{"id":"Libtmux_json.Expr.encode","publicId":"Libtmux_json.Expr.encode","qualifiedName":"Libtmux_json.Expr.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Expr","signatures":[{"raw":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-encode"},{"id":"Libtmux_json.Expr.of_string","publicId":"Libtmux_json.Expr.of_string","qualifiedName":"Libtmux_json.Expr.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. "],"declarations":[{"kind":"function","text":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at most 256 values. Errors include a JSON pointer, never the whole input."},"signatures":[{"raw":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"string"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-of_string"},{"id":"Libtmux_json.Expr.to_string","publicId":"Libtmux_json.Expr.to_string","qualifiedName":"Libtmux_json.Expr.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. "],"declarations":[{"kind":"function","text":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Apply the same bounds and subset when encoding. Text with invalid UTF-8 has no representation in this schema. These functions perform no I/O."},"signatures":[{"raw":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(string, Decode_error.t) result"}],"slug":"libtmux_json-expr-to_string"},{"id":"Libtmux_json.Workspace","publicId":"Libtmux_json.Workspace","qualifiedName":"Libtmux_json.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Validate workspace documents and describe plans and retained execution.\n Preview output never supplies executable targets. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n\n val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n (** Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. *)\n\n val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. *)\n\n val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. *)\nend","source":{"file":"json/libtmux_json.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json","doc":{"summary":"Validate workspace documents and describe plans and retained execution. Preview output never supplies executable targets."},"slug":"libtmux_json-workspace"},{"id":"Libtmux_json.Workspace.decode","publicId":"Libtmux_json.Workspace.decode","qualifiedName":"Libtmux_json.Workspace.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Workspace","signatures":[{"raw":"val decode :\n directory:string ->\n Yojson.Safe.t -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"Yojson.Safe.t"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-decode"},{"id":"Libtmux_json.Workspace.encode_plan","publicId":"Libtmux_json.Workspace.encode_plan","qualifiedName":"Libtmux_json.Workspace.encode_plan","name":"encode_plan","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. "],"declarations":[{"kind":"function","text":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-plan/1` without I/O. The advisory preview contains command argv, cwd and environment names, excluding environment values, option values and startup text. It is not an execution script."},"signatures":[{"raw":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_plan"},{"id":"Libtmux_json.Workspace.encode_receipt","publicId":"Libtmux_json.Workspace.encode_receipt","qualifiedName":"Libtmux_json.Workspace.encode_receipt","name":"encode_receipt","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. "],"declarations":[{"kind":"function","text":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-receipt/1` with ordered steps, outcome index lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic messages are limited to 4096 bytes with an explicit truncation flag; command payloads are omitted.","body":"Both output schemas have a 4 MiB bound. Invalid UTF-8 values use `{\"encoding\":\"hex\",\"bytes\":\"...\"}` instead of losing bytes. Imported IDs and hints never establish a connection binding."},"signatures":[{"raw":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Execution.receipt"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_receipt"},{"id":"Libtmux_json.Workspace.of_string","publicId":"Libtmux_json.Workspace.of_string","qualifiedName":"Libtmux_json.Workspace.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":42,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. "],"declarations":[{"kind":"function","text":"val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":42,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Decode `libtmux.workspace/1` with the query codec's 64 KiB, UTF-8 and 32-level JSON bounds. Reject duplicate and unknown properties, invalid argv/shell combinations and configuration errors. `directory` is the absolute document directory; these functions perform no filesystem I/O."},"signatures":[{"raw":"val of_string :\n directory:string ->\n string -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-of_string"},{"id":"Libtmux_unix","publicId":"Libtmux_unix","qualifiedName":"Libtmux_unix","name":"Libtmux_unix","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Blocking Linux tmux clients with explicit scoped cancellation.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md}control\n guide} explains binding, completion and recovery. "],"declarations":[{"kind":"module","text":"","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"doc":{"summary":"Blocking Linux tmux clients with explicit scoped cancellation.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [control guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md) explains binding, completion and recovery."},"slug":"libtmux_unix"},{"id":"Libtmux_unix.Cancellation","publicId":"Libtmux_unix.Cancellation","qualifiedName":"Libtmux_unix.Cancellation","name":"Cancellation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cancellation : sig\n type t\n\n exception Cancelled\n\n val with_ : (t -> 'a) -> 'a\n (** Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. *)\n\n val cancel : t -> unit\n (** Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","slug":"libtmux_unix-cancellation"},{"id":"Libtmux_unix.Cancellation.Cancelled","publicId":"Libtmux_unix.Cancellation.Cancelled","qualifiedName":"Libtmux_unix.Cancellation.Cancelled","name":"Cancelled","kind":"exception","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"exception","text":"exception Cancelled","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type exn += Cancelled","params":[]}],"slug":"libtmux_unix-cancellation-cancelled"},{"id":"Libtmux_unix.Cancellation.cancel","publicId":"Libtmux_unix.Cancellation.cancel","qualifiedName":"Libtmux_unix.Cancellation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. "],"declarations":[{"kind":"function","text":"val cancel : t -> unit","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Wake waiters. Safe from another domain or systhread, but not from a signal handler. Repeated calls and calls after scope exit have no effect."},"signatures":[{"raw":"val cancel : t -> unit","params":[{"name":"arg1","type":"t"}],"returns":"unit"}],"slug":"libtmux_unix-cancellation-cancel"},{"id":"Libtmux_unix.Cancellation.t","publicId":"Libtmux_unix.Cancellation.t","qualifiedName":"Libtmux_unix.Cancellation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-cancellation-t"},{"id":"Libtmux_unix.Cancellation.with_","publicId":"Libtmux_unix.Cancellation.with_","qualifiedName":"Libtmux_unix.Cancellation.with_","name":"with_","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. "],"declarations":[{"kind":"function","text":"val with_ : (t -> 'a) -> 'a","source":{"file":"unix/libtmux_unix.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Own a cancellation token for the callback's lifetime. Leaving the scope cancels outstanding waiters and releases its descriptors after they finish. An escaped token is cancelled and cannot be reused."},"signatures":[{"raw":"val with_ : (t -> 'a) -> 'a","params":[{"name":"arg1","type":"t -> 'a"}],"returns":"'a"}],"slug":"libtmux_unix-cancellation-with_"},{"id":"Libtmux_unix.Cleanup","publicId":"Libtmux_unix.Cleanup","qualifiedName":"Libtmux_unix.Cleanup","name":"Cleanup","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Retained failures from releasing processes and descriptors. Reports belong\n to their creating domain and remain readable after client closure. They\n preserve secondary failures without replacing a primary exception or\n cancellation. "],"declarations":[{"kind":"module","text":"module Cleanup : sig\n type t = Cleanup.t\n\n type phase = Cleanup.phase =\n | Close_pipe\n | Open_pidfd\n | Close_pidfd\n | Terminate\n | Grace\n | Kill\n | Reap\n | Unreaped_child\n | Cancel_workers\n | Release_hook\n | Notify_waiters\n\n type issue = Cleanup.issue = {\n phase : phase;\n error : Libtmux.Error.t option;\n exception_ : exn;\n backtrace : Printexc.raw_backtrace;\n }\n (** One failed cleanup action. [error] retains a typed library cause when\n available; [exception_] and [backtrace] retain the original exception.\n [Unreaped_child] means exit was not established after a failed signal. It\n does not release ownership or authorize signalling a reused PID. *)\n\n type snapshot = Cleanup.snapshot = { issues : issue Iarray.t; omitted : int }\n (** Issues in occurrence order, with a count of additional omitted issues. A\n report retains at most 64 entries. This bounds entry count, not heap\n retention: exception payloads and backtraces may retain other values.\n These diagnostics are not immutable graph observations. *)\n\n val create : unit -> t\n (** Create an empty report without I/O. Supply it before {!Client.connect},\n {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain\n cleanup evidence even when setup fails or cancellation raises. *)\n\n val inspect : t -> (snapshot, Libtmux.Error.t) result\n (** Copy the current diagnostics without I/O. Returns\n {!Libtmux.Error.Wrong_domain} outside the creating domain. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"Retained failures from releasing processes and descriptors. Reports belong to their creating domain and remain readable after client closure. They preserve secondary failures without replacing a primary exception or cancellation."},"slug":"libtmux_unix-cleanup"},{"id":"Libtmux_unix.Cleanup.create","publicId":"Libtmux_unix.Cleanup.create","qualifiedName":"Libtmux_unix.Cleanup.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create an empty report without I/O. Supply it before {!Client.connect},\n {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain\n cleanup evidence even when setup fails or cancellation raises. "],"declarations":[{"kind":"function","text":"val create : unit -> t","source":{"file":"unix/libtmux_unix.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Create an empty report without I/O. Supply it before {!Client.connect}, {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain cleanup evidence even when setup fails or cancellation raises."},"signatures":[{"raw":"val create : unit -> t","params":[{"name":"arg1","type":"unit"}],"returns":"t"}],"slug":"libtmux_unix-cleanup-create"},{"id":"Libtmux_unix.Cleanup.inspect","publicId":"Libtmux_unix.Cleanup.inspect","qualifiedName":"Libtmux_unix.Cleanup.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Copy the current diagnostics without I/O. Returns\n {!Libtmux.Error.Wrong_domain} outside the creating domain. "],"declarations":[{"kind":"function","text":"val inspect : t -> (snapshot, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Copy the current diagnostics without I/O. Returns {!Libtmux.Error.Wrong_domain} outside the creating domain."},"signatures":[{"raw":"val inspect : t -> (snapshot, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(snapshot, Libtmux.Error.t) result"}],"slug":"libtmux_unix-cleanup-inspect"},{"id":"Libtmux_unix.Cleanup.issue","publicId":"Libtmux_unix.Cleanup.issue","qualifiedName":"Libtmux_unix.Cleanup.issue","name":"issue","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" One failed cleanup action. [error] retains a typed library cause when\n available; [exception_] and [backtrace] retain the original exception.\n [Unreaped_child] means exit was not established after a failed signal. It\n does not release ownership or authorize signalling a reused PID. "],"declarations":[{"kind":"struct","text":"type issue = Cleanup.issue = {\n phase : phase;\n error : Libtmux.Error.t option;\n exception_ : exn;\n backtrace : Printexc.raw_backtrace;\n }","source":{"file":"unix/libtmux_unix.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"One failed cleanup action. `error` retains a typed library cause when available; `exception_` and `backtrace` retain the original exception. `Unreaped_child` means exit was not established after a failed signal. It does not release ownership or authorize signalling a reused PID."},"type":"Cleanup.issue","signatures":[{"raw":"type issue = Cleanup.issue =\n {\n phase: phase ;\n error: Libtmux.Error.t option ;\n exception_: exn ;\n backtrace: Printexc.raw_backtrace }","params":[]}],"slug":"libtmux_unix-cleanup-issue"},{"id":"Libtmux_unix.Cleanup.issue.backtrace","publicId":"Libtmux_unix.Cleanup.issue.backtrace","name":"backtrace","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"backtrace : Printexc.raw_backtrace;","source":{"file":"unix/libtmux_unix.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"Printexc.raw_backtrace","qualifiedName":"Libtmux_unix.Cleanup.backtrace","slug":"libtmux_unix-cleanup-issue-backtrace"},{"id":"Libtmux_unix.Cleanup.issue.error","publicId":"Libtmux_unix.Cleanup.issue.error","name":"error","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"error : Libtmux.Error.t option;","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_unix.Cleanup.error","slug":"libtmux_unix-cleanup-issue-error"},{"id":"Libtmux_unix.Cleanup.issue.exception_","publicId":"Libtmux_unix.Cleanup.issue.exception_","name":"exception_","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"exception_ : exn;","source":{"file":"unix/libtmux_unix.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"exn","qualifiedName":"Libtmux_unix.Cleanup.exception_","slug":"libtmux_unix-cleanup-issue-exception_"},{"id":"Libtmux_unix.Cleanup.issue.phase","publicId":"Libtmux_unix.Cleanup.issue.phase","name":"phase","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"phase : phase;","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"phase","qualifiedName":"Libtmux_unix.Cleanup.phase","slug":"libtmux_unix-cleanup-issue-phase"},{"id":"Libtmux_unix.Cleanup.phase","publicId":"Libtmux_unix.Cleanup.phase","qualifiedName":"Libtmux_unix.Cleanup.phase","name":"phase","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type phase = Cleanup.phase =\n | Close_pipe\n | Open_pidfd\n | Close_pidfd\n | Terminate\n | Grace\n | Kill\n | Reap\n | Unreaped_child\n | Cancel_workers\n | Release_hook\n | Notify_waiters","source":{"file":"unix/libtmux_unix.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup","type":"Cleanup.phase","signatures":[{"raw":"type phase = Cleanup.phase =\n | Close_pipe \n | Open_pidfd \n | Close_pidfd \n | Terminate \n | Grace \n | Kill \n | Reap \n | Unreaped_child \n | Cancel_workers \n | Release_hook \n | Notify_waiters ","params":[]}],"slug":"libtmux_unix-cleanup-phase"},{"id":"Libtmux_unix.Cleanup.phase.Cancel_workers","publicId":"Libtmux_unix.Cleanup.phase.Cancel_workers","name":"Cancel_workers","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancel_workers","source":{"file":"unix/libtmux_unix.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Cancel_workers","slug":"libtmux_unix-cleanup-phase-cancel_workers"},{"id":"Libtmux_unix.Cleanup.phase.Close_pidfd","publicId":"Libtmux_unix.Cleanup.phase.Close_pidfd","name":"Close_pidfd","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Close_pidfd","source":{"file":"unix/libtmux_unix.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Close_pidfd","slug":"libtmux_unix-cleanup-phase-close_pidfd"},{"id":"Libtmux_unix.Cleanup.phase.Close_pipe","publicId":"Libtmux_unix.Cleanup.phase.Close_pipe","name":"Close_pipe","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Close_pipe","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Close_pipe","slug":"libtmux_unix-cleanup-phase-close_pipe"},{"id":"Libtmux_unix.Cleanup.phase.Grace","publicId":"Libtmux_unix.Cleanup.phase.Grace","name":"Grace","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Grace","source":{"file":"unix/libtmux_unix.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Grace","slug":"libtmux_unix-cleanup-phase-grace"},{"id":"Libtmux_unix.Cleanup.phase.Kill","publicId":"Libtmux_unix.Cleanup.phase.Kill","name":"Kill","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Kill","slug":"libtmux_unix-cleanup-phase-kill"},{"id":"Libtmux_unix.Cleanup.phase.Notify_waiters","publicId":"Libtmux_unix.Cleanup.phase.Notify_waiters","name":"Notify_waiters","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Notify_waiters","source":{"file":"unix/libtmux_unix.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Notify_waiters","slug":"libtmux_unix-cleanup-phase-notify_waiters"},{"id":"Libtmux_unix.Cleanup.phase.Open_pidfd","publicId":"Libtmux_unix.Cleanup.phase.Open_pidfd","name":"Open_pidfd","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Open_pidfd","source":{"file":"unix/libtmux_unix.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Open_pidfd","slug":"libtmux_unix-cleanup-phase-open_pidfd"},{"id":"Libtmux_unix.Cleanup.phase.Reap","publicId":"Libtmux_unix.Cleanup.phase.Reap","name":"Reap","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Reap","source":{"file":"unix/libtmux_unix.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Reap","slug":"libtmux_unix-cleanup-phase-reap"},{"id":"Libtmux_unix.Cleanup.phase.Release_hook","publicId":"Libtmux_unix.Cleanup.phase.Release_hook","name":"Release_hook","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Release_hook","source":{"file":"unix/libtmux_unix.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Release_hook","slug":"libtmux_unix-cleanup-phase-release_hook"},{"id":"Libtmux_unix.Cleanup.phase.Terminate","publicId":"Libtmux_unix.Cleanup.phase.Terminate","name":"Terminate","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Terminate","source":{"file":"unix/libtmux_unix.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Terminate","slug":"libtmux_unix-cleanup-phase-terminate"},{"id":"Libtmux_unix.Cleanup.phase.Unreaped_child","publicId":"Libtmux_unix.Cleanup.phase.Unreaped_child","name":"Unreaped_child","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":28,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unreaped_child","source":{"file":"unix/libtmux_unix.mli","line":28,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Unreaped_child","slug":"libtmux_unix-cleanup-phase-unreaped_child"},{"id":"Libtmux_unix.Cleanup.snapshot","publicId":"Libtmux_unix.Cleanup.snapshot","qualifiedName":"Libtmux_unix.Cleanup.snapshot","name":"snapshot","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Issues in occurrence order, with a count of additional omitted issues. A\n report retains at most 64 entries. This bounds entry count, not heap\n retention: exception payloads and backtraces may retain other values.\n These diagnostics are not immutable graph observations. "],"declarations":[{"kind":"struct","text":"type snapshot = Cleanup.snapshot = { issues : issue Iarray.t; omitted : int }","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Issues in occurrence order, with a count of additional omitted issues. A report retains at most 64 entries. This bounds entry count, not heap retention: exception payloads and backtraces may retain other values. These diagnostics are not immutable graph observations."},"type":"Cleanup.snapshot","signatures":[{"raw":"type snapshot = Cleanup.snapshot = {\n issues: issue Iarray.t ;\n omitted: int }","params":[]}],"slug":"libtmux_unix-cleanup-snapshot"},{"id":"Libtmux_unix.Cleanup.snapshot.issues","publicId":"Libtmux_unix.Cleanup.snapshot.issues","name":"issues","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"issues : issue Iarray.t;","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.snapshot","type":"issue Iarray.t","qualifiedName":"Libtmux_unix.Cleanup.issues","slug":"libtmux_unix-cleanup-snapshot-issues"},{"id":"Libtmux_unix.Cleanup.snapshot.omitted","publicId":"Libtmux_unix.Cleanup.snapshot.omitted","name":"omitted","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"omitted : int","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup.snapshot","type":"int","qualifiedName":"Libtmux_unix.Cleanup.omitted","slug":"libtmux_unix-cleanup-snapshot-omitted"},{"id":"Libtmux_unix.Cleanup.t","publicId":"Libtmux_unix.Cleanup.t","qualifiedName":"Libtmux_unix.Cleanup.t","name":"t","kind":"typealias","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t = Cleanup.t","source":{"file":"unix/libtmux_unix.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Cleanup","type":"Cleanup.t","signatures":[{"raw":"type t = Cleanup.t","params":[]}],"slug":"libtmux_unix-cleanup-t"},{"id":"Libtmux_unix.Client","publicId":"Libtmux_unix.Client","qualifiedName":"Libtmux_unix.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. *)\n\n val cleanup : t -> Cleanup.t\n (** Read the report supplied at connection time, or its fresh default.\n {!Cleanup.inspect} remains available after close. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. *)\n\n val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. Release the temporary subscription\n without replacing an earlier error or cancellation; inspect {!cleanup} for\n secondary failures. Otherwise cleanup failure prevents success or renewed\n coverage. No capture/stream barrier exists. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve queue capacity without I/O. *)\n\n val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O and owned-child cleanup must also\n finish. Each owned child gets 200 ms of TERM grace before forced\n termination and reaping; scheduling and kernel completion can add time. No\n background scheduler or worker is started. *)\n\n val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result\n (** Submit and await. Use the two calls separately to retain an operation\n handle. *)\n\n val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. *)\n\n val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Libtmux.Error.Unsupported}. *)\n\n val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Close owned control clients and descriptors on the owning domain. Later\n calls retain the original cleanup result, including failure. Each owned\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n This is not a whole-client deadline or a bound on uninterruptible kernel\n work. No signal targets the daemon. tmux's [exit-unattached] and\n [exit-empty] policies can end the daemon after its clients or sessions\n disappear. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_unix-client"},{"id":"Libtmux_unix.Client.await","publicId":"Libtmux_unix.Client.await","qualifiedName":"Libtmux_unix.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O and owned-child cleanup must also\n finish. Each owned child gets 200 ms of TERM grace before forced\n termination and reaping; scheduling and kernel completion can add time. No\n background scheduler or worker is started. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Pump admitted work until this operation is finished. Only one blocking caller may own the client at a time. Cancellation removes queued work or drains admitted work before raising `Cancellation.Cancelled`. The handle retains its outcome. Draining has at most one exchange timeout from detection; local scratch filesystem I/O and owned-child cleanup must also finish. Each owned child gets 200 ms of TERM grace before forced termination and reaping; scheduling and kernel completion can add time. No background scheduler or worker is started."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-await"},{"id":"Libtmux_unix.Client.break_pane","publicId":"Libtmux_unix.Client.break_pane","qualifiedName":"Libtmux_unix.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":559,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":559,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-break_pane"},{"id":"Libtmux_unix.Client.capture","publicId":"Libtmux_unix.Client.capture","qualifiedName":"Libtmux_unix.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":268,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. "],"declarations":[{"kind":"function","text":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":268,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a complete graph over a recorded interval, with a fixed number of listing commands. Races fail validation. Access to returned values performs no I/O, including after closing the client.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture"},{"id":"Libtmux_unix.Client.capture_environment","publicId":"Libtmux_unix.Client.capture_environment","qualifiedName":"Libtmux_unix.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_environment"},{"id":"Libtmux_unix.Client.capture_hooks","publicId":"Libtmux_unix.Client.capture_hooks","qualifiedName":"Libtmux_unix.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":467,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":467,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_hooks"},{"id":"Libtmux_unix.Client.capture_options","publicId":"Libtmux_unix.Client.capture_options","qualifiedName":"Libtmux_unix.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Libtmux.Error.Unsupported}. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors cover every supported release from tmux 3.3a through 3.8; other versions return {!Libtmux.Error.Unsupported}."},"signatures":[{"raw":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_options"},{"id":"Libtmux_unix.Client.capture_text","publicId":"Libtmux_unix.Client.capture_text","qualifiedName":"Libtmux_unix.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture ordinary rendered screen rows, inclusively, via an owned paste buffer and private file. Reject applicable capture/save hooks. The scratch directory defaults to `/tmp` and must be local storage shared with the daemon. Pending and alternate-screen byte modes are unsupported. This observes an interval and establishes no stream continuity barrier."},"signatures":[{"raw":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_text"},{"id":"Libtmux_unix.Client.cleanup","publicId":"Libtmux_unix.Client.cleanup","qualifiedName":"Libtmux_unix.Client.cleanup","name":"cleanup","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read the report supplied at connection time, or its fresh default.\n {!Cleanup.inspect} remains available after close. "],"declarations":[{"kind":"function","text":"val cleanup : t -> Cleanup.t","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the report supplied at connection time, or its fresh default. {!Cleanup.inspect} remains available after close."},"signatures":[{"raw":"val cleanup : t -> Cleanup.t","params":[{"name":"arg1","type":"t"}],"returns":"Cleanup.t"}],"slug":"libtmux_unix-client-cleanup"},{"id":"Libtmux_unix.Client.clear_history","publicId":"Libtmux_unix.Client.clear_history","qualifiedName":"Libtmux_unix.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":739,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":739,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_history"},{"id":"Libtmux_unix.Client.clear_option_array","publicId":"Libtmux_unix.Client.clear_option_array","qualifiedName":"Libtmux_unix.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":459,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":459,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_option_array"},{"id":"Libtmux_unix.Client.close","publicId":"Libtmux_unix.Client.close","qualifiedName":"Libtmux_unix.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":749,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Close owned control clients and descriptors on the owning domain. Later\n calls retain the original cleanup result, including failure. Each owned\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n This is not a whole-client deadline or a bound on uninterruptible kernel\n work. No signal targets the daemon. tmux's [exit-unattached] and\n [exit-empty] policies can end the daemon after its clients or sessions\n disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":749,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Close owned control clients and descriptors on the owning domain. Later calls retain the original cleanup result, including failure. Each owned helper gets 200 ms of TERM grace, followed by KILL if needed and reaping. This is not a whole-client deadline or a bound on uninterruptible kernel work. No signal targets the daemon. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-close"},{"id":"Libtmux_unix.Client.connect","publicId":"Libtmux_unix.Client.connect","qualifiedName":"Libtmux_unix.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. "],"declarations":[{"kind":"function","text":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Attach to an existing local daemon with at least one session. The caller and daemon must share the PID namespace and filesystem. A local socket pathname alone does not establish these preconditions. `timeout` is the maximum seconds per control exchange, defaulting to one second. Requires Linux pidfd support. The client belongs to the current domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float -> Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-connect"},{"id":"Libtmux_unix.Client.create_session","publicId":"Libtmux_unix.Client.create_session","qualifiedName":"Libtmux_unix.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_session"},{"id":"Libtmux_unix.Client.create_window","publicId":"Libtmux_unix.Client.create_window","qualifiedName":"Libtmux_unix.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_create_window.ml","intro":"Create a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"created: logs\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_window"},{"id":"Libtmux_unix.Client.cycle_layout","publicId":"Libtmux_unix.Client.cycle_layout","qualifiedName":"Libtmux_unix.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":683,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":683,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-cycle_layout"},{"id":"Libtmux_unix.Client.kill_pane","publicId":"Libtmux_unix.Client.kill_pane","qualifiedName":"Libtmux_unix.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_pane"},{"id":"Libtmux_unix.Client.kill_session","publicId":"Libtmux_unix.Client.kill_session","qualifiedName":"Libtmux_unix.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":571,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":571,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_session"},{"id":"Libtmux_unix.Client.kill_window","publicId":"Libtmux_unix.Client.kill_window","qualifiedName":"Libtmux_unix.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":579,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":579,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_window"},{"id":"Libtmux_unix.Client.link_window","publicId":"Libtmux_unix.Client.link_window","qualifiedName":"Libtmux_unix.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":614,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":614,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-link_window"},{"id":"Libtmux_unix.Client.move_pane","publicId":"Libtmux_unix.Client.move_pane","qualifiedName":"Libtmux_unix.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":691,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":691,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_pane"},{"id":"Libtmux_unix.Client.move_window_at","publicId":"Libtmux_unix.Client.move_window_at","qualifiedName":"Libtmux_unix.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_move_window.ml","intro":"Move a window between sessions. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"moved: build at 7\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_window_at"},{"id":"Libtmux_unix.Client.read_hook","publicId":"Libtmux_unix.Client.read_hook","qualifiedName":"Libtmux_unix.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":475,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_hook"},{"id":"Libtmux_unix.Client.read_option","publicId":"Libtmux_unix.Client.read_option","qualifiedName":"Libtmux_unix.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_option"},{"id":"Libtmux_unix.Client.refresh_client_at","publicId":"Libtmux_unix.Client.refresh_client_at","qualifiedName":"Libtmux_unix.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-refresh_client_at"},{"id":"Libtmux_unix.Client.remove_environment","publicId":"Libtmux_unix.Client.remove_environment","qualifiedName":"Libtmux_unix.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":402,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":402,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_environment"},{"id":"Libtmux_unix.Client.remove_hook","publicId":"Libtmux_unix.Client.remove_hook","qualifiedName":"Libtmux_unix.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_hook"},{"id":"Libtmux_unix.Client.rename_session","publicId":"Libtmux_unix.Client.rename_session","qualifiedName":"Libtmux_unix.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":298,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":298,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_session"},{"id":"Libtmux_unix.Client.rename_window","publicId":"Libtmux_unix.Client.rename_window","qualifiedName":"Libtmux_unix.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":289,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":289,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_rename_window.ml","intro":"Rename a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"renamed: editor-main\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val rename_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_window"},{"id":"Libtmux_unix.Client.request_detach_client_at","publicId":"Libtmux_unix.Client.request_detach_client_at","qualifiedName":"Libtmux_unix.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":318,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":318,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-request_detach_client_at"},{"id":"Libtmux_unix.Client.resize_control_client_at","publicId":"Libtmux_unix.Client.resize_control_client_at","qualifiedName":"Libtmux_unix.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":335,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":335,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_control_client_at"},{"id":"Libtmux_unix.Client.resize_pane","publicId":"Libtmux_unix.Client.resize_pane","qualifiedName":"Libtmux_unix.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":652,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":652,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_pane"},{"id":"Libtmux_unix.Client.resize_window","publicId":"Libtmux_unix.Client.resize_window","qualifiedName":"Libtmux_unix.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":663,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":663,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_window"},{"id":"Libtmux_unix.Client.respawn_pane","publicId":"Libtmux_unix.Client.respawn_pane","qualifiedName":"Libtmux_unix.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":728,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":728,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-respawn_pane"},{"id":"Libtmux_unix.Client.rotate_panes","publicId":"Libtmux_unix.Client.rotate_panes","qualifiedName":"Libtmux_unix.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rotate_panes"},{"id":"Libtmux_unix.Client.run","publicId":"Libtmux_unix.Client.run","qualifiedName":"Libtmux_unix.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Submit and await. Use the two calls separately to retain an operation\n handle. "],"declarations":[{"kind":"function","text":"val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Submit and await. Use the two calls separately to retain an operation handle."},"signatures":[{"raw":"val run :\n ?cancel:Cancellation.t ->\n t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run"},{"id":"Libtmux_unix.Client.run_hook","publicId":"Libtmux_unix.Client.run_hook","qualifiedName":"Libtmux_unix.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":512,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":512,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run_hook"},{"id":"Libtmux_unix.Client.select_layout","publicId":"Libtmux_unix.Client.select_layout","qualifiedName":"Libtmux_unix.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":674,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":674,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_layout.ml","intro":"Apply a layout. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"layout: 3 horizontal panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_layout"},{"id":"Libtmux_unix.Client.select_pane","publicId":"Libtmux_unix.Client.select_pane","qualifiedName":"Libtmux_unix.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_pane"},{"id":"Libtmux_unix.Client.select_window_at","publicId":"Libtmux_unix.Client.select_window_at","qualifiedName":"Libtmux_unix.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":595,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":595,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_window_at"},{"id":"Libtmux_unix.Client.send_keys","publicId":"Libtmux_unix.Client.send_keys","qualifiedName":"Libtmux_unix.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":352,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":352,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_keys"},{"id":"Libtmux_unix.Client.send_text","publicId":"Libtmux_unix.Client.send_text","qualifiedName":"Libtmux_unix.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/3c0c07a43d4b0930f3a7f9c8d0239588675bb54e/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_text :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_text"},{"id":"Libtmux_unix.Client.set_environment","publicId":"Libtmux_unix.Client.set_environment","qualifiedName":"Libtmux_unix.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_environment"},{"id":"Libtmux_unix.Client.set_hook","publicId":"Libtmux_unix.Client.set_hook","qualifiedName":"Libtmux_unix.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":485,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_hook"},{"id":"Libtmux_unix.Client.set_option","publicId":"Libtmux_unix.Client.set_option","qualifiedName":"Libtmux_unix.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":434,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":434,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_option"},{"id":"Libtmux_unix.Client.set_pane_title","publicId":"Libtmux_unix.Client.set_pane_title","qualifiedName":"Libtmux_unix.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":643,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":643,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_pane_title"},{"id":"Libtmux_unix.Client.signal","publicId":"Libtmux_unix.Client.signal","qualifiedName":"Libtmux_unix.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-signal"},{"id":"Libtmux_unix.Client.source","publicId":"Libtmux_unix.Client.source","qualifiedName":"Libtmux_unix.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"unix/libtmux_unix.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_unix-client-source"},{"id":"Libtmux_unix.Client.split_pane","publicId":"Libtmux_unix.Client.split_pane","qualifiedName":"Libtmux_unix.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":547,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":547,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-split_pane"},{"id":"Libtmux_unix.Client.submit","publicId":"Libtmux_unix.Client.submit","qualifiedName":"Libtmux_unix.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Validate and reserve queue capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate and reserve queue capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-submit"},{"id":"Libtmux_unix.Client.subscribe","publicId":"Libtmux_unix.Client.subscribe","qualifiedName":"Libtmux_unix.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire verified coverage of the pane's observed session/window. Choose the least session ID unless explicitly supplied. Reuse one lane per session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16 subscribers and eight client lanes including commands. Reserve payload against the shared 32 MiB budget before admission.","body":"Data starts after admission's marker. Layout/membership changes end continuity conservatively. Overflow emits Gap then End, without blocking another subscriber. Blocking delivery advances during Subscription.next. There is no snapshot/history barrier or automatic recovery."},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-subscribe"},{"id":"Libtmux_unix.Client.swap_panes","publicId":"Libtmux_unix.Client.swap_panes","qualifiedName":"Libtmux_unix.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":703,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":703,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-swap_panes"},{"id":"Libtmux_unix.Client.switch_client_at","publicId":"Libtmux_unix.Client.switch_client_at","qualifiedName":"Libtmux_unix.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":307,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":307,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-switch_client_at"},{"id":"Libtmux_unix.Client.t","publicId":"Libtmux_unix.Client.t","qualifiedName":"Libtmux_unix.Client.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-client-t"},{"id":"Libtmux_unix.Client.unlink_window_at","publicId":"Libtmux_unix.Client.unlink_window_at","qualifiedName":"Libtmux_unix.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":604,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":604,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unlink_window_at"},{"id":"Libtmux_unix.Client.unset_environment","publicId":"Libtmux_unix.Client.unset_environment","qualifiedName":"Libtmux_unix.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":393,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":393,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_environment"},{"id":"Libtmux_unix.Client.unset_option","publicId":"Libtmux_unix.Client.unset_option","qualifiedName":"Libtmux_unix.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_option"},{"id":"Libtmux_unix.Client.version","publicId":"Libtmux_unix.Client.version","qualifiedName":"Libtmux_unix.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_unix-client-version"},{"id":"Libtmux_unix.Client.wait_for","publicId":"Libtmux_unix.Client.wait_for","qualifiedName":"Libtmux_unix.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for"},{"id":"Libtmux_unix.Client.wait_for_text","publicId":"Libtmux_unix.Client.wait_for_text","qualifiedName":"Libtmux_unix.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. Release the temporary subscription\n without replacing an earlier error or cancellation; inspect {!cleanup} for\n secondary failures. Otherwise cleanup failure prevents success or renewed\n coverage. No capture/stream barrier exists. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Subscribe, capture the ordinary screen immediately, and recapture after output. Membership/overflow gaps trigger explicit fresh capture and new coverage in the same binding. Maximum pattern: 64 KiB. Success returns a capture that contains the text. Transient text between captures may be missed. Check the deadline between bounded acquisitions; in-flight I/O retains the client's exchange timeout. Release the temporary subscription without replacing an earlier error or cancellation; inspect {!cleanup} for secondary failures. Otherwise cleanup failure prevents success or renewed coverage. No capture/stream barrier exists."},"signatures":[{"raw":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for_text"},{"id":"Libtmux_unix.Client.zoom_pane","publicId":"Libtmux_unix.Client.zoom_pane","qualifiedName":"Libtmux_unix.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":721,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-zoom_pane"},{"id":"Libtmux_unix.Operation","publicId":"Libtmux_unix.Operation","qualifiedName":"Libtmux_unix.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** No I/O. Results remain inspectable after client closure, on the owning\n domain. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_unix-operation"},{"id":"Libtmux_unix.Operation.cancel","publicId":"Libtmux_unix.Operation.cancel","qualifiedName":"Libtmux_unix.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"Remove queued work before it is written. Admitted commands retain their owner and are drained by {!Client.await}; cancellation does not undo effects. Returns `Busy` while another blocking caller owns the client; use a {!Cancellation.t} token to interrupt that caller."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-cancel"},{"id":"Libtmux_unix.Operation.cleanup_receipt","publicId":"Libtmux_unix.Operation.cleanup_receipt","qualifiedName":"Libtmux_unix.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt =\n {\n cause: Libtmux.Error.t ;\n owned_buffers: string list ;\n created: Libtmux.Created.t list }","params":[]}],"slug":"libtmux_unix-operation-cleanup_receipt"},{"id":"Libtmux_unix.Operation.cleanup_receipt.cause","publicId":"Libtmux_unix.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"unix/libtmux_unix.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_unix.Operation.cause","slug":"libtmux_unix-operation-cleanup_receipt-cause"},{"id":"Libtmux_unix.Operation.cleanup_receipt.created","publicId":"Libtmux_unix.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":118,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"unix/libtmux_unix.mli","line":118,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_unix.Operation.created","slug":"libtmux_unix-operation-cleanup_receipt-created"},{"id":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"unix/libtmux_unix.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_unix.Operation.owned_buffers","slug":"libtmux_unix-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_unix.Operation.id","publicId":"Libtmux_unix.Operation.id","qualifiedName":"Libtmux_unix.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"unix/libtmux_unix.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_unix-operation-id"},{"id":"Libtmux_unix.Operation.inspect","publicId":"Libtmux_unix.Operation.inspect","qualifiedName":"Libtmux_unix.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" No I/O. Results remain inspectable after client closure, on the owning\n domain. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"No I/O. Results remain inspectable after client closure, on the owning domain."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-inspect"},{"id":"Libtmux_unix.Operation.state","publicId":"Libtmux_unix.Operation.state","qualifiedName":"Libtmux_unix.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a state =\n | Queued \n | Not_started \n | Written \n | Acknowledged \n | Finished of ('a, Libtmux.Error.t) result \n | Outcome_unknown of cleanup_receipt ","params":[]}],"slug":"libtmux_unix-operation-state"},{"id":"Libtmux_unix.Operation.state.Acknowledged","publicId":"Libtmux_unix.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"unix/libtmux_unix.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Acknowledged","slug":"libtmux_unix-operation-state-acknowledged"},{"id":"Libtmux_unix.Operation.state.Finished","publicId":"Libtmux_unix.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Finished","slug":"libtmux_unix-operation-state-finished"},{"id":"Libtmux_unix.Operation.state.Not_started","publicId":"Libtmux_unix.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"unix/libtmux_unix.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Not_started","slug":"libtmux_unix-operation-state-not_started"},{"id":"Libtmux_unix.Operation.state.Outcome_unknown","publicId":"Libtmux_unix.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Outcome_unknown","slug":"libtmux_unix-operation-state-outcome_unknown"},{"id":"Libtmux_unix.Operation.state.Queued","publicId":"Libtmux_unix.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"unix/libtmux_unix.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Queued","slug":"libtmux_unix-operation-state-queued"},{"id":"Libtmux_unix.Operation.state.Written","publicId":"Libtmux_unix.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"unix/libtmux_unix.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Written","slug":"libtmux_unix-operation-state-written"},{"id":"Libtmux_unix.Operation.t","publicId":"Libtmux_unix.Operation.t","qualifiedName":"Libtmux_unix.Operation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"unix/libtmux_unix.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-operation-t"},{"id":"Libtmux_unix.Rendered","publicId":"Libtmux_unix.Rendered","qualifiedName":"Libtmux_unix.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Blocking native Linux transport. No Eio scheduler is started. "],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"unix/libtmux_unix.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"Blocking native Linux transport. No Eio scheduler is started."},"exportedFrom":"Libtmux.Captured_text","slug":"libtmux_unix-rendered"},{"id":"Libtmux_unix.Subscription","publicId":"Libtmux_unix.Subscription","qualifiedName":"Libtmux_unix.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. *)\n\n val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Release and reap\n an unused lane; later calls retain cleanup failures. Does not stop the\n daemon. {!poll} can still read the terminal event. *)\n\n val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_unix-subscription"},{"id":"Libtmux_unix.Subscription.close","publicId":"Libtmux_unix.Subscription.close","qualifiedName":"Libtmux_unix.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":162,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Release and reap\n an unused lane; later calls retain cleanup failures. Does not stop the\n daemon. {!poll} can still read the terminal event. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":162,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"End an active subscription with Cancelled and discard pending data. Preserve an already ended subscription's terminal reason. Release and reap an unused lane; later calls retain cleanup failures. Does not stop the daemon. {!poll} can still read the terminal event."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-close"},{"id":"Libtmux_unix.Subscription.next","publicId":"Libtmux_unix.Subscription.next","qualifiedName":"Libtmux_unix.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":153,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. "],"declarations":[{"kind":"function","text":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":153,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Pump all subscription lanes until one event is available. Default deadline is one second. `None` follows a consumed End. A deadline keeps the subscription active; cancellation closes it and raises Cancelled."},"signatures":[{"raw":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-next"},{"id":"Libtmux_unix.Subscription.poll","publicId":"Libtmux_unix.Subscription.poll","qualifiedName":"Libtmux_unix.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Remove a queued event without I/O. Owning domain only, including after client closure. `None` means no queued event, not proof of continuity."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-poll"},{"id":"Libtmux_unix.Subscription.t","publicId":"Libtmux_unix.Subscription.t","qualifiedName":"Libtmux_unix.Subscription.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":147,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":147,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-subscription-t"},{"id":"Libtmux_unix.Subscription.wait_for_bytes","publicId":"Libtmux_unix.Subscription.wait_for_bytes","qualifiedName":"Libtmux_unix.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"unix/libtmux_unix.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Consume future bytes until the nonempty pattern matches, including across Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's end within its consumed event. Gaps stop matching; no rendered or earlier output is searched. Timeout leaves the subscription active."},"signatures":[{"raw":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_unix-subscription-wait_for_bytes"},{"id":"Libtmux_unix.Terminal","publicId":"Libtmux_unix.Terminal","qualifiedName":"Libtmux_unix.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM\n gets 200 ms of cooperative grace before KILL and reaping. Scheduling and\n uninterruptible kernel work can add time. Supply [cleanup] before the call\n to retain secondary failures after cancellation. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_unix-terminal"},{"id":"Libtmux_unix.Terminal.attach_current","publicId":"Libtmux_unix.Terminal.attach_current","qualifiedName":"Libtmux_unix.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM\n gets 200 ms of cooperative grace before KILL and reaping. Scheduling and\n uninterruptible kernel work can add time. Supply [cleanup] before the call\n to retain secondary failures after cancellation. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Terminal","doc":{"summary":"Run an interactive terminal client until it exits. Select the exact session ID on the daemon currently listening at `endpoint`; this is explicitly unbound and accepts no captured target. No retry or daemon startup occurs. A successful result proves client exit, not continued attachment. Diagnostics go to `stderr`.","body":"Descriptors default to the application's standard streams and remain caller-owned. `stdin` must be a terminal. Environment updates and read-only mode are disabled by default; inherited `TMUX` and `TMUX_PANE` are removed. Cancellation terminates and reaps this terminal client, leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM gets 200 ms of cooperative grace before KILL and reaping. Scheduling and uninterruptible kernel work can add time. Supply `cleanup` before the call to retain secondary failures after cancellation."},"signatures":[{"raw":"val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stdout","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stderr","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-terminal-attach_current"},{"id":"Libtmux_unix.Workspace","publicId":"Libtmux_unix.Workspace","qualifiedName":"Libtmux_unix.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Apply validated plans with blocking I/O and scoped cancellation tokens.\n Execution handles retain journals and borrow existing clients; bootstrap\n handles own their newly bound clients without owning the daemon. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. *)\n\n val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. *)\n\n val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix","doc":{"summary":"Apply validated plans with blocking I/O and scoped cancellation tokens. Execution handles retain journals and borrow existing clients; bootstrap handles own their newly bound clients without owning the daemon."},"slug":"libtmux_unix-workspace"},{"id":"Libtmux_unix.Workspace.await","publicId":"Libtmux_unix.Workspace.await","qualifiedName":"Libtmux_unix.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Expected apply failures are retained receipts. Cancellation propagates after recording progress and at most 500 ms of protected compensation."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-await"},{"id":"Libtmux_unix.Workspace.client","publicId":"Libtmux_unix.Workspace.client","qualifiedName":"Libtmux_unix.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":791,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"unix/libtmux_unix.mli","line":791,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_unix-workspace-client"},{"id":"Libtmux_unix.Workspace.close","publicId":"Libtmux_unix.Workspace.close","qualifiedName":"Libtmux_unix.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Completed journals remain readable after close."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-close"},{"id":"Libtmux_unix.Workspace.inspect","publicId":"Libtmux_unix.Workspace.inspect","qualifiedName":"Libtmux_unix.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":788,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":788,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-inspect"},{"id":"Libtmux_unix.Workspace.submit","publicId":"Libtmux_unix.Workspace.submit","qualifiedName":"Libtmux_unix.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":765,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":765,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a generation-bound execution handle without I/O. The caller owns the supplied client; closing this handle leaves that client open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit"},{"id":"Libtmux_unix.Workspace.submit_bootstrap","publicId":"Libtmux_unix.Workspace.submit_bootstrap","qualifiedName":"Libtmux_unix.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":770,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":770,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a handle for a missing-endpoint plan. Awaiting it starts control new-session and binds the same connection. The handle owns its new client; it never acquires ownership of the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit_bootstrap"},{"id":"Libtmux_unix.Workspace.t","publicId":"Libtmux_unix.Workspace.t","qualifiedName":"Libtmux_unix.Workspace.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-workspace-t"},{"id":"Libtmux_workspace","publicId":"Libtmux_workspace","qualifiedName":"Libtmux_workspace","name":"Libtmux_workspace","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" {!Config} validates workspace descriptions and {!Plan} previews their\n actions without I/O. {!Execution} delegates effects to an explicit executor\n and retains a recovery journal. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for JSON loading, preview, apply and receipt inspection. "],"declarations":[{"kind":"module","text":"","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"doc":{"summary":"{!Config} validates workspace descriptions and {!Plan} previews their actions without I/O. {!Execution} delegates effects to an explicit executor and retains a recovery journal. See the [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for JSON loading, preview, apply and receipt inspection."},"slug":"libtmux_workspace"},{"id":"Libtmux_workspace.Config","publicId":"Libtmux_workspace.Config","qualifiedName":"Libtmux_workspace.Config","name":"Config","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Validate native workspace values without contacting tmux or reading the\n filesystem. Relative directories resolve against the document directory;\n only declared variables participate in expansion. "],"declarations":[{"kind":"module","text":"module Config : sig\n type error = { path : string; message : string }\n\n val pp_error : Format.formatter -> error -> unit\n\n type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }\n\n type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n\n type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }\n\n type t\n\n val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane\n\n val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window\n (** Builders are unchecked descriptions; {!make} validates the whole document.\n *)\n\n val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result\n (** Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. *)\n\n val session : t -> string\n val windows : t -> window Iarray.t\n val environment : t -> (string * string) list\n val options : t -> setting list\n val dimensions : t -> int * int\nend","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace","doc":{"summary":"Validate native workspace values without contacting tmux or reading the filesystem. Relative directories resolve against the document directory; only declared variables participate in expansion."},"slug":"libtmux_workspace-config"},{"id":"Libtmux_workspace.Config.dimensions","publicId":"Libtmux_workspace.Config.dimensions","qualifiedName":"Libtmux_workspace.Config.dimensions","name":"dimensions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dimensions : t -> int * int","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val dimensions : t -> int * int","params":[{"name":"arg1","type":"t"}],"returns":"int * int"}],"slug":"libtmux_workspace-config-dimensions"},{"id":"Libtmux_workspace.Config.environment","publicId":"Libtmux_workspace.Config.environment","qualifiedName":"Libtmux_workspace.Config.environment","name":"environment","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val environment : t -> (string * string) list","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val environment : t -> (string * string) list","params":[{"name":"arg1","type":"t"}],"returns":"(string * string) list"}],"slug":"libtmux_workspace-config-environment"},{"id":"Libtmux_workspace.Config.error","publicId":"Libtmux_workspace.Config.error","qualifiedName":"Libtmux_workspace.Config.error","name":"error","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type error = { path : string; message : string }","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type error = {\n path: string ;\n message: string }","params":[]}],"slug":"libtmux_workspace-config-error"},{"id":"Libtmux_workspace.Config.error.message","publicId":"Libtmux_workspace.Config.error.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.message","slug":"libtmux_workspace-config-error-message"},{"id":"Libtmux_workspace.Config.error.path","publicId":"Libtmux_workspace.Config.error.path","name":"path","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"path : string;","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.path","slug":"libtmux_workspace-config-error-path"},{"id":"Libtmux_workspace.Config.make","publicId":"Libtmux_workspace.Config.make","qualifiedName":"Libtmux_workspace.Config.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. "],"declarations":[{"kind":"function","text":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Resolve relative working directories against the absolute document directory. Explicit variables expand `${NAME}` in directories only; they never read the process environment. Cycles and unknown names fail. Command arguments, shell code, startup text and environment values remain literal.","body":"At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names and settings must be unique in their scope. No filesystem is consulted."},"signatures":[{"raw":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string -> session:string -> window list -> (t, error) result","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"variables","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"directory","type":"string","keywordOnly":true},{"name":"session","type":"string","keywordOnly":true},{"name":"arg1","type":"window list"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-config-make"},{"id":"Libtmux_workspace.Config.options","publicId":"Libtmux_workspace.Config.options","qualifiedName":"Libtmux_workspace.Config.options","name":"options","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val options : t -> setting list","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val options : t -> setting list","params":[{"name":"arg1","type":"t"}],"returns":"setting list"}],"slug":"libtmux_workspace-config-options"},{"id":"Libtmux_workspace.Config.pane","publicId":"Libtmux_workspace.Config.pane","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size -> unit -> pane","params":[{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"startup","type":"string list","optional":true,"keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"pane"}],"slug":"libtmux_workspace-config-pane"},{"id":"Libtmux_workspace.Config.pane:type","publicId":"Libtmux_workspace.Config.pane:type","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type pane =\n {\n spawn: Libtmux.Spawn.t ;\n options: setting list ;\n startup: string list ;\n direction: Libtmux.Geometry.direction ;\n size: Libtmux.Geometry.size option }","params":[]}],"slug":"libtmux_workspace-config-pane-type"},{"id":"Libtmux_workspace.Config.pane:type.direction","publicId":"Libtmux_workspace.Config.pane:type.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Config.direction","slug":"libtmux_workspace-config-pane-type-direction"},{"id":"Libtmux_workspace.Config.pane:type.options","publicId":"Libtmux_workspace.Config.pane:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-pane-type-options"},{"id":"Libtmux_workspace.Config.pane:type.size","publicId":"Libtmux_workspace.Config.pane:type.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Config.size","slug":"libtmux_workspace-config-pane-type-size"},{"id":"Libtmux_workspace.Config.pane:type.spawn","publicId":"Libtmux_workspace.Config.pane:type.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Config.spawn","slug":"libtmux_workspace-config-pane-type-spawn"},{"id":"Libtmux_workspace.Config.pane:type.startup","publicId":"Libtmux_workspace.Config.pane:type.startup","name":"startup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"startup : string list;","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"string list","qualifiedName":"Libtmux_workspace.Config.startup","slug":"libtmux_workspace-config-pane-type-startup"},{"id":"Libtmux_workspace.Config.pp_error","publicId":"Libtmux_workspace.Config.pp_error","qualifiedName":"Libtmux_workspace.Config.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-config-pp_error"},{"id":"Libtmux_workspace.Config.session","publicId":"Libtmux_workspace.Config.session","qualifiedName":"Libtmux_workspace.Config.session","name":"session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> string","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val session : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_workspace-config-session"},{"id":"Libtmux_workspace.Config.setting","publicId":"Libtmux_workspace.Config.setting","qualifiedName":"Libtmux_workspace.Config.setting","name":"setting","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type setting =\n {\n name: string ;\n index: int option ;\n value: Libtmux.Options.scalar }","params":[]}],"slug":"libtmux_workspace-config-setting"},{"id":"Libtmux_workspace.Config.setting.index","publicId":"Libtmux_workspace.Config.setting.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.setting","type":"int option","qualifiedName":"Libtmux_workspace.Config.index","slug":"libtmux_workspace-config-setting-index"},{"id":"Libtmux_workspace.Config.setting.name","publicId":"Libtmux_workspace.Config.setting.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.setting","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-setting-name"},{"id":"Libtmux_workspace.Config.setting.value","publicId":"Libtmux_workspace.Config.setting.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Libtmux.Options.scalar;","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.setting","type":"Libtmux.Options.scalar","qualifiedName":"Libtmux_workspace.Config.value","slug":"libtmux_workspace-config-setting-value"},{"id":"Libtmux_workspace.Config.t","publicId":"Libtmux_workspace.Config.t","qualifiedName":"Libtmux_workspace.Config.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-config-t"},{"id":"Libtmux_workspace.Config.window","publicId":"Libtmux_workspace.Config.window","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Builders are unchecked descriptions; {!make} validates the whole document.\n "],"declarations":[{"kind":"function","text":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Builders are unchecked descriptions; {!make} validates the whole document."},"signatures":[{"raw":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t -> name:string -> pane list -> window","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"layout","type":"Libtmux.Layout.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"pane list"}],"returns":"window"}],"slug":"libtmux_workspace-config-window"},{"id":"Libtmux_workspace.Config.window:type","publicId":"Libtmux_workspace.Config.window:type","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type window =\n {\n name: string ;\n cwd: string option ;\n environment: (string * string) list ;\n options: setting list ;\n panes: pane list ;\n layout: Libtmux.Layout.t option }","params":[]}],"slug":"libtmux_workspace-config-window-type"},{"id":"Libtmux_workspace.Config.window:type.cwd","publicId":"Libtmux_workspace.Config.window:type.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string option","qualifiedName":"Libtmux_workspace.Config.cwd","slug":"libtmux_workspace-config-window-type-cwd"},{"id":"Libtmux_workspace.Config.window:type.environment","publicId":"Libtmux_workspace.Config.window:type.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.window:type","type":"(string * string) list","qualifiedName":"Libtmux_workspace.Config.environment","slug":"libtmux_workspace-config-window-type-environment"},{"id":"Libtmux_workspace.Config.window:type.layout","publicId":"Libtmux_workspace.Config.window:type.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : Libtmux.Layout.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.window:type","type":"Libtmux.Layout.t option","qualifiedName":"Libtmux_workspace.Config.layout","slug":"libtmux_workspace-config-window-type-layout"},{"id":"Libtmux_workspace.Config.window:type.name","publicId":"Libtmux_workspace.Config.window:type.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-window-type-name"},{"id":"Libtmux_workspace.Config.window:type.options","publicId":"Libtmux_workspace.Config.window:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.window:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-window-type-options"},{"id":"Libtmux_workspace.Config.window:type.panes","publicId":"Libtmux_workspace.Config.window:type.panes","name":"panes","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"panes : pane list;","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config.window:type","type":"pane list","qualifiedName":"Libtmux_workspace.Config.panes","slug":"libtmux_workspace-config-window-type-panes"},{"id":"Libtmux_workspace.Config.windows","publicId":"Libtmux_workspace.Config.windows","qualifiedName":"Libtmux_workspace.Config.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> window Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val windows : t -> window Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"window Iarray.t"}],"slug":"libtmux_workspace-config-windows"},{"id":"Libtmux_workspace.Execution","publicId":"Libtmux_workspace.Execution","qualifiedName":"Libtmux_workspace.Execution","name":"Execution","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Apply a plan once per handle and retain effects, uncertainty and cleanup.\n The journal lives in process memory while its execution handle is retained;\n {!Execution.val-inspect} returns immutable copies. It survives waiter\n cancellation and client closure, but supplies no crash-durable recovery or\n cross-invocation deduplication. Ordinary applications use their backend's\n Workspace module; executors below integrate another transport. "],"declarations":[{"kind":"module","text":"module Execution : sig\n type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }\n (** A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. *)\n\n type certainty = Not_started | Applied | Unknown\n\n type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }\n (** Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. *)\n\n type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t\n\n type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }\n\n type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t\n\n type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }\n\n type t\n\n val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. [operation_id] correlates receipts; it\n does not deduplicate handles. A new handle starts a new execution even if\n its ID matches an earlier one. *)\n\n val inspect : t -> receipt\n (** Return an immutable copy of the retained journal without I/O. *)\n\n val await : ?compensate_on_failure:bool -> t -> receipt\n (** Execute once per handle, rechecking generation and captured preconditions\n first. Expected failures return a partial journal. Exceptions, including\n native cancellation, propagate after recording progress and bounded\n compensation. Subsequent calls only return the retained receipt; mutations\n never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. Compensation cannot undo external effects of programs\n started inside the panes. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace","doc":{"summary":"Apply a plan once per handle and retain effects, uncertainty and cleanup. The journal lives in process memory while its execution handle is retained; {!Execution.val-inspect} returns immutable copies. It survives waiter cancellation and client closure, but supplies no crash-durable recovery or cross-invocation deduplication. Ordinary applications use their backend's Workspace module; executors below integrate another transport."},"slug":"libtmux_workspace-execution"},{"id":"Libtmux_workspace.Execution.await","publicId":"Libtmux_workspace.Execution.await","qualifiedName":"Libtmux_workspace.Execution.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Execute once per handle, rechecking generation and captured preconditions\n first. Expected failures return a partial journal. Exceptions, including\n native cancellation, propagate after recording progress and bounded\n compensation. Subsequent calls only return the retained receipt; mutations\n never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. Compensation cannot undo external effects of programs\n started inside the panes. "],"declarations":[{"kind":"function","text":"val await : ?compensate_on_failure:bool -> t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Execute once per handle, rechecking generation and captured preconditions first. Expected failures return a partial journal. Exceptions, including native cancellation, propagate after recording progress and bounded compensation. Subsequent calls only return the retained receipt; mutations never retry.","body":"Compensation kills only panes reported by completed creation commands, in reverse creation order. tmux removes windows and sessions that become empty. Containers with foreign panes or window links remain; adding a borrowed pane never makes it eligible for cleanup. Cleanup failures have separate outcomes. Compensation cannot undo external effects of programs started inside the panes."},"signatures":[{"raw":"val await : ?compensate_on_failure:bool -> t -> receipt","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-await"},{"id":"Libtmux_workspace.Execution.certainty","publicId":"Libtmux_workspace.Execution.certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","name":"certainty","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type certainty = Not_started | Applied | Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type certainty =\n | Not_started \n | Applied \n | Unknown ","params":[]}],"slug":"libtmux_workspace-execution-certainty"},{"id":"Libtmux_workspace.Execution.certainty.Applied","publicId":"Libtmux_workspace.Execution.certainty.Applied","name":"Applied","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applied","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applied","slug":"libtmux_workspace-execution-certainty-applied"},{"id":"Libtmux_workspace.Execution.certainty.Not_started","publicId":"Libtmux_workspace.Execution.certainty.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Not_started","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Not_started","slug":"libtmux_workspace-execution-certainty-not_started"},{"id":"Libtmux_workspace.Execution.certainty.Unknown","publicId":"Libtmux_workspace.Execution.certainty.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Unknown","slug":"libtmux_workspace-execution-certainty-unknown"},{"id":"Libtmux_workspace.Execution.cleanup","publicId":"Libtmux_workspace.Execution.cleanup","qualifiedName":"Libtmux_workspace.Execution.cleanup","name":"cleanup","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":215,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":215,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type cleanup =\n {\n pane: Libtmux.Pane.target ;\n outcome: (unit, Libtmux.Error.t) result }","params":[]}],"slug":"libtmux_workspace-execution-cleanup"},{"id":"Libtmux_workspace.Execution.cleanup.outcome","publicId":"Libtmux_workspace.Execution.cleanup.outcome","name":"outcome","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"outcome : (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"(unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.outcome","slug":"libtmux_workspace-execution-cleanup-outcome"},{"id":"Libtmux_workspace.Execution.cleanup.pane","publicId":"Libtmux_workspace.Execution.cleanup.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":216,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.target;","source":{"file":"workspace/libtmux_workspace.mli","line":216,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"Libtmux.Pane.target","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-cleanup-pane"},{"id":"Libtmux_workspace.Execution.create","publicId":"Libtmux_workspace.Execution.create","qualifiedName":"Libtmux_workspace.Execution.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":240,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. [operation_id] correlates receipts; it\n does not deduplicate handles. A new handle starts a new execution even if\n its ID matches an earlier one. "],"declarations":[{"kind":"function","text":"val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"workspace/libtmux_workspace.mli","line":240,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Allocate a retained handle without I/O. IDs have 1..64 ASCII letters, digits, underscores or hyphens. `operation_id` correlates receipts; it does not deduplicate handles. A new handle starts a new execution even if its ID matches an earlier one."},"signatures":[{"raw":"val create :\n operation_id:string ->\n executor:executor -> Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"operation_id","type":"string","keywordOnly":true},{"name":"executor","type":"executor","keywordOnly":true},{"name":"arg1","type":"Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_workspace-execution-create"},{"id":"Libtmux_workspace.Execution.executor","publicId":"Libtmux_workspace.Execution.executor","qualifiedName":"Libtmux_workspace.Execution.executor","name":"executor","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. "],"declarations":[{"kind":"struct","text":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Backend integration: `inspect` returns a callback tied to the latest operation, reading only its retained state even after later submissions. `protect` bounds compensation and shields it from caller cancellation, reporting expected failures as `Error`. Ordinary callers use their backend's Workspace API."},"signatures":[{"raw":"type executor =\n {\n source: unit -> Libtmux.Source.t option ;\n capture: unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result ;\n run: 'a . 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result ;\n bootstrap: Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result ;\n inspect: unit -> unit -> observation ;\n protect: (unit -> unit) -> (unit, Libtmux.Error.t) result }","params":[]}],"slug":"libtmux_workspace-execution-executor"},{"id":"Libtmux_workspace.Execution.executor.bootstrap","publicId":"Libtmux_workspace.Execution.executor.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.executor","type":"Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.bootstrap","slug":"libtmux_workspace-execution-executor-bootstrap"},{"id":"Libtmux_workspace.Execution.executor.capture","publicId":"Libtmux_workspace.Execution.executor.capture","name":"capture","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.capture","slug":"libtmux_workspace-execution-executor-capture"},{"id":"Libtmux_workspace.Execution.executor.inspect","publicId":"Libtmux_workspace.Execution.executor.inspect","name":"inspect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":190,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inspect : unit -> unit -> observation;","source":{"file":"workspace/libtmux_workspace.mli","line":190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> unit -> observation","qualifiedName":"Libtmux_workspace.Execution.inspect","slug":"libtmux_workspace-execution-executor-inspect"},{"id":"Libtmux_workspace.Execution.executor.protect","publicId":"Libtmux_workspace.Execution.executor.protect","name":"protect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.executor","type":"(unit -> unit) -> (unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.protect","slug":"libtmux_workspace-execution-executor-protect"},{"id":"Libtmux_workspace.Execution.executor.run","publicId":"Libtmux_workspace.Execution.executor.run","name":"run","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.executor","type":"'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.run","slug":"libtmux_workspace-execution-executor-run"},{"id":"Libtmux_workspace.Execution.executor.source","publicId":"Libtmux_workspace.Execution.executor.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : unit -> Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-executor-source"},{"id":"Libtmux_workspace.Execution.hint","publicId":"Libtmux_workspace.Execution.hint","qualifiedName":"Libtmux_workspace.Execution.hint","name":"hint","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. "],"declarations":[{"kind":"struct","text":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"A creation row received before daemon binding finished. Hints are not operational targets and are never eligible for automatic compensation."},"signatures":[{"raw":"type hint =\n {\n session: Libtmux.Session.Id.t ;\n window: Libtmux.Window.Id.t ;\n pane: Libtmux.Pane.Id.t ;\n window_index: int ;\n pane_index: int ;\n server_pid: int }","params":[]}],"slug":"libtmux_workspace-execution-hint"},{"id":"Libtmux_workspace.Execution.hint.pane","publicId":"Libtmux_workspace.Execution.hint.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-hint-pane"},{"id":"Libtmux_workspace.Execution.hint.pane_index","publicId":"Libtmux_workspace.Execution.hint.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":171,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":171,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.pane_index","slug":"libtmux_workspace-execution-hint-pane_index"},{"id":"Libtmux_workspace.Execution.hint.server_pid","publicId":"Libtmux_workspace.Execution.hint.server_pid","name":"server_pid","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"server_pid : int;","source":{"file":"workspace/libtmux_workspace.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.server_pid","slug":"libtmux_workspace-execution-hint-server_pid"},{"id":"Libtmux_workspace.Execution.hint.session","publicId":"Libtmux_workspace.Execution.hint.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Libtmux.Session.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Session.Id.t","qualifiedName":"Libtmux_workspace.Execution.session","slug":"libtmux_workspace-execution-hint-session"},{"id":"Libtmux_workspace.Execution.hint.window","publicId":"Libtmux_workspace.Execution.hint.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Libtmux.Window.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Window.Id.t","qualifiedName":"Libtmux_workspace.Execution.window","slug":"libtmux_workspace-execution-hint-window"},{"id":"Libtmux_workspace.Execution.hint.window_index","publicId":"Libtmux_workspace.Execution.hint.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":170,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":170,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.window_index","slug":"libtmux_workspace-execution-hint-window_index"},{"id":"Libtmux_workspace.Execution.inspect","publicId":"Libtmux_workspace.Execution.inspect","qualifiedName":"Libtmux_workspace.Execution.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":250,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Return an immutable copy of the retained journal without I/O. "],"declarations":[{"kind":"function","text":"val inspect : t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":250,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Return an immutable copy of the retained journal without I/O."},"signatures":[{"raw":"val inspect : t -> receipt","params":[{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-inspect"},{"id":"Libtmux_workspace.Execution.observation","publicId":"Libtmux_workspace.Execution.observation","qualifiedName":"Libtmux_workspace.Execution.observation","name":"observation","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type observation =\n {\n certainty: certainty ;\n created: Libtmux.Created.t list ;\n unbound: hint option }","params":[]}],"slug":"libtmux_workspace-execution-observation"},{"id":"Libtmux_workspace.Execution.observation.certainty","publicId":"Libtmux_workspace.Execution.observation.certainty","name":"certainty","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":180,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"certainty : certainty;","source":{"file":"workspace/libtmux_workspace.mli","line":180,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.observation","type":"certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","slug":"libtmux_workspace-execution-observation-certainty"},{"id":"Libtmux_workspace.Execution.observation.created","publicId":"Libtmux_workspace.Execution.observation.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.observation","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-observation-created"},{"id":"Libtmux_workspace.Execution.observation.unbound","publicId":"Libtmux_workspace.Execution.observation.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.observation","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-observation-unbound"},{"id":"Libtmux_workspace.Execution.receipt","publicId":"Libtmux_workspace.Execution.receipt","qualifiedName":"Libtmux_workspace.Execution.receipt","name":"receipt","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type receipt =\n {\n operation_id: string ;\n source: Libtmux.Source.t option ;\n status: status ;\n steps: step Iarray.t ;\n cleanup: cleanup Iarray.t ;\n cleanup_error: Libtmux.Error.t option }","params":[]}],"slug":"libtmux_workspace-execution-receipt"},{"id":"Libtmux_workspace.Execution.receipt.cleanup","publicId":"Libtmux_workspace.Execution.receipt.cleanup","name":"cleanup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup : cleanup Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"cleanup Iarray.t","qualifiedName":"Libtmux_workspace.Execution.cleanup","slug":"libtmux_workspace-execution-receipt-cleanup"},{"id":"Libtmux_workspace.Execution.receipt.cleanup_error","publicId":"Libtmux_workspace.Execution.receipt.cleanup_error","name":"cleanup_error","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup_error : Libtmux.Error.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_workspace.Execution.cleanup_error","slug":"libtmux_workspace-execution-receipt-cleanup_error"},{"id":"Libtmux_workspace.Execution.receipt.operation_id","publicId":"Libtmux_workspace.Execution.receipt.operation_id","name":"operation_id","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation_id : string;","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"string","qualifiedName":"Libtmux_workspace.Execution.operation_id","slug":"libtmux_workspace-execution-receipt-operation_id"},{"id":"Libtmux_workspace.Execution.receipt.source","publicId":"Libtmux_workspace.Execution.receipt.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-receipt-source"},{"id":"Libtmux_workspace.Execution.receipt.status","publicId":"Libtmux_workspace.Execution.receipt.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : status;","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-receipt-status"},{"id":"Libtmux_workspace.Execution.receipt.steps","publicId":"Libtmux_workspace.Execution.receipt.steps","name":"steps","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"steps : step Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"step Iarray.t","qualifiedName":"Libtmux_workspace.Execution.steps","slug":"libtmux_workspace-execution-receipt-steps"},{"id":"Libtmux_workspace.Execution.status","publicId":"Libtmux_workspace.Execution.status","qualifiedName":"Libtmux_workspace.Execution.status","name":"status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type status =\n | Queued \n | Applying \n | Succeeded \n | Partial \n | Interrupted \n | Rejected of Plan.error \n | Unavailable of Libtmux.Error.t ","params":[]}],"slug":"libtmux_workspace-execution-status"},{"id":"Libtmux_workspace.Execution.status.Applying","publicId":"Libtmux_workspace.Execution.status.Applying","name":"Applying","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applying","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applying","slug":"libtmux_workspace-execution-status-applying"},{"id":"Libtmux_workspace.Execution.status.Interrupted","publicId":"Libtmux_workspace.Execution.status.Interrupted","name":"Interrupted","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":225,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Interrupted","source":{"file":"workspace/libtmux_workspace.mli","line":225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Interrupted","slug":"libtmux_workspace-execution-status-interrupted"},{"id":"Libtmux_workspace.Execution.status.Partial","publicId":"Libtmux_workspace.Execution.status.Partial","name":"Partial","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Partial","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Partial","slug":"libtmux_workspace-execution-status-partial"},{"id":"Libtmux_workspace.Execution.status.Queued","publicId":"Libtmux_workspace.Execution.status.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Queued","slug":"libtmux_workspace-execution-status-queued"},{"id":"Libtmux_workspace.Execution.status.Rejected","publicId":"Libtmux_workspace.Execution.status.Rejected","name":"Rejected","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rejected of Plan.error","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Rejected","slug":"libtmux_workspace-execution-status-rejected"},{"id":"Libtmux_workspace.Execution.status.Succeeded","publicId":"Libtmux_workspace.Execution.status.Succeeded","name":"Succeeded","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Succeeded","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Succeeded","slug":"libtmux_workspace-execution-status-succeeded"},{"id":"Libtmux_workspace.Execution.status.Unavailable","publicId":"Libtmux_workspace.Execution.status.Unavailable","name":"Unavailable","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Unavailable","slug":"libtmux_workspace-execution-status-unavailable"},{"id":"Libtmux_workspace.Execution.step","publicId":"Libtmux_workspace.Execution.step","qualifiedName":"Libtmux_workspace.Execution.step","name":"step","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step =\n {\n index: int ;\n action: Plan.action ;\n status: step_status ;\n created: Libtmux.Created.t list ;\n unbound: hint option }","params":[]}],"slug":"libtmux_workspace-execution-step"},{"id":"Libtmux_workspace.Execution.step.action","publicId":"Libtmux_workspace.Execution.step.action","name":"action","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"action : Plan.action;","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step","type":"Plan.action","qualifiedName":"Libtmux_workspace.Execution.action","slug":"libtmux_workspace-execution-step-action"},{"id":"Libtmux_workspace.Execution.step.created","publicId":"Libtmux_workspace.Execution.step.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-step-created"},{"id":"Libtmux_workspace.Execution.step.index","publicId":"Libtmux_workspace.Execution.step.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step","type":"int","qualifiedName":"Libtmux_workspace.Execution.index","slug":"libtmux_workspace-execution-step-index"},{"id":"Libtmux_workspace.Execution.step.status","publicId":"Libtmux_workspace.Execution.step.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":210,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : step_status;","source":{"file":"workspace/libtmux_workspace.mli","line":210,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step","type":"step_status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-step-status"},{"id":"Libtmux_workspace.Execution.step.unbound","publicId":"Libtmux_workspace.Execution.step.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-step-unbound"},{"id":"Libtmux_workspace.Execution.step_status","publicId":"Libtmux_workspace.Execution.step_status","qualifiedName":"Libtmux_workspace.Execution.step_status","name":"step_status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step_status =\n | Pending \n | Running \n | Completed \n | Failed of Libtmux.Error.t \n | Skipped \n | Uncertain of Libtmux.Error.t ","params":[]}],"slug":"libtmux_workspace-execution-step_status"},{"id":"Libtmux_workspace.Execution.step_status.Completed","publicId":"Libtmux_workspace.Execution.step_status.Completed","name":"Completed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Completed","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Completed","slug":"libtmux_workspace-execution-step_status-completed"},{"id":"Libtmux_workspace.Execution.step_status.Failed","publicId":"Libtmux_workspace.Execution.step_status.Failed","name":"Failed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Failed of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Failed","slug":"libtmux_workspace-execution-step_status-failed"},{"id":"Libtmux_workspace.Execution.step_status.Pending","publicId":"Libtmux_workspace.Execution.step_status.Pending","name":"Pending","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pending","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Pending","slug":"libtmux_workspace-execution-step_status-pending"},{"id":"Libtmux_workspace.Execution.step_status.Running","publicId":"Libtmux_workspace.Execution.step_status.Running","name":"Running","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Running","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Running","slug":"libtmux_workspace-execution-step_status-running"},{"id":"Libtmux_workspace.Execution.step_status.Skipped","publicId":"Libtmux_workspace.Execution.step_status.Skipped","name":"Skipped","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Skipped","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Skipped","slug":"libtmux_workspace-execution-step_status-skipped"},{"id":"Libtmux_workspace.Execution.step_status.Uncertain","publicId":"Libtmux_workspace.Execution.step_status.Uncertain","name":"Uncertain","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Uncertain","slug":"libtmux_workspace-execution-step_status-uncertain"},{"id":"Libtmux_workspace.Execution.t","publicId":"Libtmux_workspace.Execution.t","qualifiedName":"Libtmux_workspace.Execution.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-execution-t"},{"id":"Libtmux_workspace.Plan","publicId":"Libtmux_workspace.Plan","qualifiedName":"Libtmux_workspace.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[" Preview ordered workspace actions against one observed daemon generation. A\n plan retains collision policy and bound targets; it is not a portable\n command script. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type server_policy = Create_if_missing | Require_existing_server\n type window_collision = Reject\n\n type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }\n\n type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale\n\n val pp_error : Format.formatter -> error -> unit\n\n type scope = Session | Window of int | Pane of { window : int; pane : int }\n\n type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t\n\n type t\n\n val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result\n (** [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. *)\n\n val endpoint : t -> Libtmux.Endpoint.t\n val source : t -> Libtmux.Source.t option\n val existing_session : t -> Libtmux.Session.target option\n val actions : t -> action Iarray.t\n val config : t -> Config.t\n\n val check_source : t -> Libtmux.Source.t option -> (unit, error) result\n (** Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace","doc":{"summary":"Preview ordered workspace actions against one observed daemon generation. A plan retains collision policy and bound targets; it is not a portable command script."},"slug":"libtmux_workspace-plan"},{"id":"Libtmux_workspace.Plan.action","publicId":"Libtmux_workspace.Plan.action","qualifiedName":"Libtmux_workspace.Plan.action","name":"action","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type action =\n | Create_session of\n {\n bootstrap: bool ;\n name: string ;\n window_name: string ;\n spawn: Libtmux.Spawn.t ;\n width: int ;\n height: int } \n | Create_window of {\n window: int ;\n name: string ;\n spawn: Libtmux.Spawn.t } \n | Split_pane of\n {\n window: int ;\n pane: int ;\n spawn: Libtmux.Spawn.t ;\n direction: Libtmux.Geometry.direction ;\n size: Libtmux.Geometry.size option } \n | Set_environment of string * string \n | Set_option of scope * Config.setting \n | Send_text of {\n window: int ;\n pane: int ;\n text: string } \n | Send_enter of {\n window: int ;\n pane: int } \n | Select_layout of int * Libtmux.Layout.t ","params":[]}],"slug":"libtmux_workspace-plan-action"},{"id":"Libtmux_workspace.Plan.action.Create_session","publicId":"Libtmux_workspace.Plan.action.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_session","slug":"libtmux_workspace-plan-action-create_session"},{"id":"Libtmux_workspace.Plan.action.Create_session.bootstrap","publicId":"Libtmux_workspace.Plan.action.Create_session.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : bool;","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"bool","qualifiedName":"Libtmux_workspace.Plan.bootstrap","slug":"libtmux_workspace-plan-action-create_session-bootstrap"},{"id":"Libtmux_workspace.Plan.action.Create_session.height","publicId":"Libtmux_workspace.Plan.action.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.height","slug":"libtmux_workspace-plan-action-create_session-height"},{"id":"Libtmux_workspace.Plan.action.Create_session.name","publicId":"Libtmux_workspace.Plan.action.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_session-name"},{"id":"Libtmux_workspace.Plan.action.Create_session.spawn","publicId":"Libtmux_workspace.Plan.action.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_session-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_session.width","publicId":"Libtmux_workspace.Plan.action.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.width","slug":"libtmux_workspace-plan-action-create_session-width"},{"id":"Libtmux_workspace.Plan.action.Create_session.window_name","publicId":"Libtmux_workspace.Plan.action.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.window_name","slug":"libtmux_workspace-plan-action-create_session-window_name"},{"id":"Libtmux_workspace.Plan.action.Create_window","publicId":"Libtmux_workspace.Plan.action.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_window","slug":"libtmux_workspace-plan-action-create_window"},{"id":"Libtmux_workspace.Plan.action.Create_window.name","publicId":"Libtmux_workspace.Plan.action.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_window-name"},{"id":"Libtmux_workspace.Plan.action.Create_window.spawn","publicId":"Libtmux_workspace.Plan.action.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_window-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_window.window","publicId":"Libtmux_workspace.Plan.action.Create_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-create_window-window"},{"id":"Libtmux_workspace.Plan.action.Select_layout","publicId":"Libtmux_workspace.Plan.action.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Select_layout","slug":"libtmux_workspace-plan-action-select_layout"},{"id":"Libtmux_workspace.Plan.action.Send_enter","publicId":"Libtmux_workspace.Plan.action.Send_enter","name":"Send_enter","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_enter of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_enter","slug":"libtmux_workspace-plan-action-send_enter"},{"id":"Libtmux_workspace.Plan.action.Send_enter.pane","publicId":"Libtmux_workspace.Plan.action.Send_enter.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_enter-pane"},{"id":"Libtmux_workspace.Plan.action.Send_enter.window","publicId":"Libtmux_workspace.Plan.action.Send_enter.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_enter-window"},{"id":"Libtmux_workspace.Plan.action.Send_text","publicId":"Libtmux_workspace.Plan.action.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text of { window : int; pane : int; text : string }","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_text","slug":"libtmux_workspace-plan-action-send_text"},{"id":"Libtmux_workspace.Plan.action.Send_text.pane","publicId":"Libtmux_workspace.Plan.action.Send_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_text-pane"},{"id":"Libtmux_workspace.Plan.action.Send_text.text","publicId":"Libtmux_workspace.Plan.action.Send_text.text","name":"text","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"text : string","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"string","qualifiedName":"Libtmux_workspace.Plan.text","slug":"libtmux_workspace-plan-action-send_text-text"},{"id":"Libtmux_workspace.Plan.action.Send_text.window","publicId":"Libtmux_workspace.Plan.action.Send_text.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_text-window"},{"id":"Libtmux_workspace.Plan.action.Set_environment","publicId":"Libtmux_workspace.Plan.action.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of string * string","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_environment","slug":"libtmux_workspace-plan-action-set_environment"},{"id":"Libtmux_workspace.Plan.action.Set_option","publicId":"Libtmux_workspace.Plan.action.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of scope * Config.setting","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_option","slug":"libtmux_workspace-plan-action-set_option"},{"id":"Libtmux_workspace.Plan.action.Split_pane","publicId":"Libtmux_workspace.Plan.action.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Split_pane","slug":"libtmux_workspace-plan-action-split_pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.direction","publicId":"Libtmux_workspace.Plan.action.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Plan.direction","slug":"libtmux_workspace-plan-action-split_pane-direction"},{"id":"Libtmux_workspace.Plan.action.Split_pane.pane","publicId":"Libtmux_workspace.Plan.action.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-split_pane-pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.size","publicId":"Libtmux_workspace.Plan.action.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Plan.size","slug":"libtmux_workspace-plan-action-split_pane-size"},{"id":"Libtmux_workspace.Plan.action.Split_pane.spawn","publicId":"Libtmux_workspace.Plan.action.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-split_pane-spawn"},{"id":"Libtmux_workspace.Plan.action.Split_pane.window","publicId":"Libtmux_workspace.Plan.action.Split_pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-split_pane-window"},{"id":"Libtmux_workspace.Plan.actions","publicId":"Libtmux_workspace.Plan.actions","qualifiedName":"Libtmux_workspace.Plan.actions","name":"actions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val actions : t -> action Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val actions : t -> action Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"action Iarray.t"}],"slug":"libtmux_workspace-plan-actions"},{"id":"Libtmux_workspace.Plan.check_source","publicId":"Libtmux_workspace.Plan.check_source","qualifiedName":"Libtmux_workspace.Plan.check_source","name":"check_source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. "],"declarations":[{"kind":"function","text":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"Operational plans are ephemeral and bound to one connection generation. A printed or serialized preview cannot supply operational targets."},"signatures":[{"raw":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Source.t option"}],"returns":"(unit, error) result"}],"slug":"libtmux_workspace-plan-check_source"},{"id":"Libtmux_workspace.Plan.collision_policy","publicId":"Libtmux_workspace.Plan.collision_policy","qualifiedName":"Libtmux_workspace.Plan.collision_policy","name":"collision_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type collision_policy =\n | Fail_if_session_exists \n | Append_new_windows of {\n window_collision: window_collision } ","params":[]}],"slug":"libtmux_workspace-plan-collision_policy"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","name":"Append_new_windows","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Append_new_windows","slug":"libtmux_workspace-plan-collision_policy-append_new_windows"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","name":"window_collision","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_collision : window_collision","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","type":"window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","slug":"libtmux_workspace-plan-collision_policy-append_new_windows-window_collision"},{"id":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","publicId":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","name":"Fail_if_session_exists","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Fail_if_session_exists","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Fail_if_session_exists","slug":"libtmux_workspace-plan-collision_policy-fail_if_session_exists"},{"id":"Libtmux_workspace.Plan.config","publicId":"Libtmux_workspace.Plan.config","qualifiedName":"Libtmux_workspace.Plan.config","name":"config","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val config : t -> Config.t","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val config : t -> Config.t","params":[{"name":"arg1","type":"t"}],"returns":"Config.t"}],"slug":"libtmux_workspace-plan-config"},{"id":"Libtmux_workspace.Plan.endpoint","publicId":"Libtmux_workspace.Plan.endpoint","qualifiedName":"Libtmux_workspace.Plan.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Libtmux.Endpoint.t","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val endpoint : t -> Libtmux.Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Endpoint.t"}],"slug":"libtmux_workspace-plan-endpoint"},{"id":"Libtmux_workspace.Plan.error","publicId":"Libtmux_workspace.Plan.error","qualifiedName":"Libtmux_workspace.Plan.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type error =\n | Missing_endpoint \n | Session_conflict of string \n | Window_conflict of string \n | Append_session_options \n | Too_many_steps \n | Unsupported_setting of Config.error \n | Stale ","params":[]}],"slug":"libtmux_workspace-plan-error"},{"id":"Libtmux_workspace.Plan.error.Append_session_options","publicId":"Libtmux_workspace.Plan.error.Append_session_options","name":"Append_session_options","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_session_options","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Append_session_options","slug":"libtmux_workspace-plan-error-append_session_options"},{"id":"Libtmux_workspace.Plan.error.Missing_endpoint","publicId":"Libtmux_workspace.Plan.error.Missing_endpoint","name":"Missing_endpoint","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing_endpoint","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Missing_endpoint","slug":"libtmux_workspace-plan-error-missing_endpoint"},{"id":"Libtmux_workspace.Plan.error.Session_conflict","publicId":"Libtmux_workspace.Plan.error.Session_conflict","name":"Session_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Session_conflict","slug":"libtmux_workspace-plan-error-session_conflict"},{"id":"Libtmux_workspace.Plan.error.Stale","publicId":"Libtmux_workspace.Plan.error.Stale","name":"Stale","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Stale","slug":"libtmux_workspace-plan-error-stale"},{"id":"Libtmux_workspace.Plan.error.Too_many_steps","publicId":"Libtmux_workspace.Plan.error.Too_many_steps","name":"Too_many_steps","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Too_many_steps","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Too_many_steps","slug":"libtmux_workspace-plan-error-too_many_steps"},{"id":"Libtmux_workspace.Plan.error.Unsupported_setting","publicId":"Libtmux_workspace.Plan.error.Unsupported_setting","name":"Unsupported_setting","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_setting of Config.error","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Unsupported_setting","slug":"libtmux_workspace-plan-error-unsupported_setting"},{"id":"Libtmux_workspace.Plan.error.Window_conflict","publicId":"Libtmux_workspace.Plan.error.Window_conflict","name":"Window_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window_conflict","slug":"libtmux_workspace-plan-error-window_conflict"},{"id":"Libtmux_workspace.Plan.existing_session","publicId":"Libtmux_workspace.Plan.existing_session","qualifiedName":"Libtmux_workspace.Plan.existing_session","name":"existing_session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val existing_session : t -> Libtmux.Session.target option","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val existing_session : t -> Libtmux.Session.target option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Session.target option"}],"slug":"libtmux_workspace-plan-existing_session"},{"id":"Libtmux_workspace.Plan.make","publicId":"Libtmux_workspace.Plan.make","qualifiedName":"Libtmux_workspace.Plan.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[" [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. "],"declarations":[{"kind":"function","text":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"`None` means an explicitly observed missing endpoint. It is not an empty successful snapshot. A plan does not start a server. Append rejects any existing requested window name and never changes session options. `version` selects the generated option catalog."},"signatures":[{"raw":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option -> Config.t -> (t, error) result","params":[{"name":"server_policy","type":"server_policy","optional":true,"keywordOnly":true},{"name":"collision_policy","type":"collision_policy","optional":true,"keywordOnly":true},{"name":"endpoint","type":"Libtmux.Endpoint.t","keywordOnly":true},{"name":"version","type":"string","keywordOnly":true},{"name":"observed","type":"Libtmux.Snapshot.t option","keywordOnly":true},{"name":"arg1","type":"Config.t"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-plan-make"},{"id":"Libtmux_workspace.Plan.pp_error","publicId":"Libtmux_workspace.Plan.pp_error","qualifiedName":"Libtmux_workspace.Plan.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-plan-pp_error"},{"id":"Libtmux_workspace.Plan.scope","publicId":"Libtmux_workspace.Plan.scope","qualifiedName":"Libtmux_workspace.Plan.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Session | Window of int | Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type scope =\n | Session \n | Window of int \n | Pane of {\n window: int ;\n pane: int } ","params":[]}],"slug":"libtmux_workspace-plan-scope"},{"id":"Libtmux_workspace.Plan.scope.Pane","publicId":"Libtmux_workspace.Plan.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Pane","slug":"libtmux_workspace-plan-scope-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.pane","publicId":"Libtmux_workspace.Plan.scope.Pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-scope-pane-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.window","publicId":"Libtmux_workspace.Plan.scope.Pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-scope-pane-window"},{"id":"Libtmux_workspace.Plan.scope.Session","publicId":"Libtmux_workspace.Plan.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Session","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Session","slug":"libtmux_workspace-plan-scope-session"},{"id":"Libtmux_workspace.Plan.scope.Window","publicId":"Libtmux_workspace.Plan.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window","slug":"libtmux_workspace-plan-scope-window"},{"id":"Libtmux_workspace.Plan.server_policy","publicId":"Libtmux_workspace.Plan.server_policy","qualifiedName":"Libtmux_workspace.Plan.server_policy","name":"server_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type server_policy = Create_if_missing | Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type server_policy =\n | Create_if_missing \n | Require_existing_server ","params":[]}],"slug":"libtmux_workspace-plan-server_policy"},{"id":"Libtmux_workspace.Plan.server_policy.Create_if_missing","publicId":"Libtmux_workspace.Plan.server_policy.Create_if_missing","name":"Create_if_missing","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Create_if_missing","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Create_if_missing","slug":"libtmux_workspace-plan-server_policy-create_if_missing"},{"id":"Libtmux_workspace.Plan.server_policy.Require_existing_server","publicId":"Libtmux_workspace.Plan.server_policy.Require_existing_server","name":"Require_existing_server","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Require_existing_server","slug":"libtmux_workspace-plan-server_policy-require_existing_server"},{"id":"Libtmux_workspace.Plan.source","publicId":"Libtmux_workspace.Plan.source","qualifiedName":"Libtmux_workspace.Plan.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t option","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val source : t -> Libtmux.Source.t option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t option"}],"slug":"libtmux_workspace-plan-source"},{"id":"Libtmux_workspace.Plan.t","publicId":"Libtmux_workspace.Plan.t","qualifiedName":"Libtmux_workspace.Plan.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-plan-t"},{"id":"Libtmux_workspace.Plan.window_collision","publicId":"Libtmux_workspace.Plan.window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","name":"window_collision","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type window_collision = Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type window_collision =\n | Reject ","params":[]}],"slug":"libtmux_workspace-plan-window_collision"},{"id":"Libtmux_workspace.Plan.window_collision.Reject","publicId":"Libtmux_workspace.Plan.window_collision.Reject","name":"Reject","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","extractedRevision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e"}}],"parent":"Libtmux_workspace.Plan.window_collision","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Reject","slug":"libtmux_workspace-plan-window_collision-reject"}]} +{"port":"ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","repo":"libtmux/libtmux-ocaml","sources":[{"product":"core","package":"libtmux","repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},{"product":"core","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},{"product":"workspace","package":"libtmux-json","repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},{"product":"core","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},{"product":"workspace","package":"libtmux-unix","repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},{"product":"core","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},{"product":"workspace","package":"libtmux-eio","repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}],"extractor":"OCaml 5.5.2 compiler-libs .cmti + odoc-parser 3.2.2","nativeProvenance":{"files":[{"path":"lib/libtmux.mli","sha256":"cde6d0a89aeb60e3bffe3df003ffba1115d3a0c1318c6361a874202580797bfb"},{"path":"_build/install/default/lib/libtmux/libtmux.cmti","sha256":"296786db1d801c4a2ed7071b942a9c785f120474a9479aafda0837e8fcb00c18"},{"path":"workspace/libtmux_workspace.mli","sha256":"7f828d52abc58665510de7cf87bc03479d85feaaca5f00e678fda58f47713a4d"},{"path":"_build/install/default/lib/libtmux-workspace/libtmux_workspace.cmti","sha256":"5a55a369dde40b8a1261089043218e0bbb245f5ea09088365b7fc3dd91b82b7f"},{"path":"json/libtmux_json.mli","sha256":"0df1e135b74307a8ef363bcd484e499c463172f6a0451a8ebbd511ec8adb57bc"},{"path":"_build/install/default/lib/libtmux-json/libtmux_json.cmti","sha256":"1a065de46eb27da42755e3bef53c4de6ca30fcdd587556a0daef9bf6a6afbd6d"},{"path":"unix/libtmux_unix.mli","sha256":"955bd588b18eb03bbeb54d5ccdb4f1b18feb312274e21b480d4b9e2e4f93c1cc"},{"path":"_build/install/default/lib/libtmux-unix/libtmux_unix.cmti","sha256":"abd62b20e1cd4ddb1f68218cccc1da6f738a55e108b3f3cf24d64334b2c156b1"},{"path":"eio/libtmux_eio.mli","sha256":"e0965c94eb356e081a3108a7836460a4417d757a05aa04a88e6678dd7983bb21"},{"path":"_build/install/default/lib/libtmux-eio/libtmux_eio.cmti","sha256":"a1cb92730c57ff79f77252dfe3f1f278353949806bc15eaae948cd7b3fad0426"}],"exporter":{"revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","baseRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","files":[{"path":"tools/api_export.ml","sha256":"34b59e728494aeed3595c5a88e1a1482d7dfa65ddcda725e43cd6c21ee131945"},{"path":"tools/api_doc.ml","sha256":"94d9b4dff3f86d570a31161019e06cea250926200b8cc4562f7d14f9f3cd0d59"},{"path":"tools/export_api.py","sha256":"5188348adc7e3ea577889e144de30da6204ec14ec6fc1577f86a732bc7625973"},{"path":"tools/api_modules.json","sha256":"233ef409440fa5015f522a11933e74f059a301aecbce5ab5126f14e8a35614cf"},{"path":"tools/dune","sha256":"777e122d729870f9f8dc6fc13485ce0eea29f0e741b9bb22cb0245d433ff9442"}],"compiler":"5.5.2","schema":"libtmux.ocaml-api/1","publicManifest":"tools/api_modules.json"}},"symbols":[{"id":"Libtmux","publicId":"Libtmux","qualifiedName":"Libtmux","name":"Libtmux","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Native captured values, typed queries and explicit command descriptions.\n\n A {!Snapshot.t} owns immutable observations. Entity accessors and query\n evaluation perform no I/O, preserve captured order and remain usable after\n client closure. Use [Libtmux_unix.Client] or [Libtmux_eio.Client] to acquire\n or mutate state.\n\n Retaining any entity retains its complete snapshot graph. Copy scalar\n summaries when captured relationships are no longer needed. Targets omit the\n graph but remain restricted to their original {!Source.t}.\n\n {1 Typical flow}\n\n Capture explicitly, traverse {!Session.window_links} and {!Window.panes},\n filter with [Seq.filter] or {!Query.matching}, establish cardinality with\n {!Query.exactly_one}, then submit a command with a bound target.\n\n The core depends only on the standard library. Its abstract observations are\n safe to share; live clients and subscriptions belong to their backend.\n\n See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md}graph\n guide} for window links and the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} for native predicates and typed expressions. "],"declarations":[{"kind":"module","text":"","source":{"file":"lib/libtmux.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"doc":{"summary":"Native captured values, typed queries and explicit command descriptions.","body":"A {!Snapshot.t} owns immutable observations. Entity accessors and query evaluation perform no I/O, preserve captured order and remain usable after client closure. Use `Libtmux_unix.Client` or `Libtmux_eio.Client` to acquire or mutate state.\n\nRetaining any entity retains its complete snapshot graph. Copy scalar summaries when captured relationships are no longer needed. Targets omit the graph but remain restricted to their original {!Source.t}.\n\n## Typical flow\n\nCapture explicitly, traverse {!Session.window_links} and {!Window.panes}, filter with `Seq.filter` or {!Query.matching}, establish cardinality with {!Query.exactly_one}, then submit a command with a bound target.\n\nThe core depends only on the standard library. Its abstract observations are safe to share; live clients and subscriptions belong to their backend.\n\nSee the [graph guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/graph.md) for window links and the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) for native predicates and typed expressions."},"slug":"libtmux"},{"id":"Libtmux.Captured_text","publicId":"Libtmux.Captured_text","qualifiedName":"Libtmux.Captured_text","name":"Captured_text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":712,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Captured_text : sig\n type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. *)\nend","source":{"file":"lib/libtmux.mli","line":712,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","slug":"libtmux-captured_text"},{"id":"Libtmux.Captured_text.t","publicId":"Libtmux.Captured_text.t","qualifiedName":"Libtmux.Captured_text.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":713,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Ordinary rendered rows captured over an interval. This value has no\n implied relationship to a subscription cursor. "],"declarations":[{"kind":"struct","text":"type t = {\n bytes : string;\n source : Source.t;\n pane : Pane.Id.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":713,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Captured_text","doc":{"summary":"Ordinary rendered rows captured over an interval. This value has no implied relationship to a subscription cursor."},"signatures":[{"raw":"type t =\n {\n bytes: string ;\n source: Source.t ;\n pane: Pane.Id.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-captured_text-t"},{"id":"Libtmux.Captured_text.t.bytes","publicId":"Libtmux.Captured_text.t.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":714,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string;","source":{"file":"lib/libtmux.mli","line":714,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Captured_text.t","type":"string","qualifiedName":"Libtmux.Captured_text.bytes","slug":"libtmux-captured_text-t-bytes"},{"id":"Libtmux.Captured_text.t.finished_at_ns","publicId":"Libtmux.Captured_text.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":718,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":718,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.finished_at_ns","slug":"libtmux-captured_text-t-finished_at_ns"},{"id":"Libtmux.Captured_text.t.pane","publicId":"Libtmux.Captured_text.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":716,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":716,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Captured_text.t","type":"Pane.Id.t","qualifiedName":"Libtmux.Captured_text.pane","slug":"libtmux-captured_text-t-pane"},{"id":"Libtmux.Captured_text.t.source","publicId":"Libtmux.Captured_text.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":715,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":715,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Captured_text.t","type":"Source.t","qualifiedName":"Libtmux.Captured_text.source","slug":"libtmux-captured_text-t-source"},{"id":"Libtmux.Captured_text.t.started_at_ns","publicId":"Libtmux.Captured_text.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":717,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":717,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Captured_text.t","type":"int64","qualifiedName":"Libtmux.Captured_text.started_at_ns","slug":"libtmux-captured_text-t-started_at_ns"},{"id":"Libtmux.Cardinality","publicId":"Libtmux.Cardinality","qualifiedName":"Libtmux.Cardinality","name":"Cardinality","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":685,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cardinality : sig\n type error = No_match | Multiple_matches of { at_least : int }\n\n val pp_error : Format.formatter -> error -> unit\nend","source":{"file":"lib/libtmux.mli","line":685,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","slug":"libtmux-cardinality"},{"id":"Libtmux.Cardinality.error","publicId":"Libtmux.Cardinality.error","qualifiedName":"Libtmux.Cardinality.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error = No_match | Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"type error =\n | No_match \n | Multiple_matches of {\n at_least: int } ","params":[]}],"slug":"libtmux-cardinality-error"},{"id":"Libtmux.Cardinality.error.Multiple_matches","publicId":"Libtmux.Cardinality.error.Multiple_matches","name":"Multiple_matches","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Multiple_matches of { at_least : int }","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Cardinality.error","variant":"struct","qualifiedName":"Libtmux.Cardinality.Multiple_matches","slug":"libtmux-cardinality-error-multiple_matches"},{"id":"Libtmux.Cardinality.error.Multiple_matches.at_least","publicId":"Libtmux.Cardinality.error.Multiple_matches.at_least","name":"at_least","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"at_least : int","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Cardinality.error.Multiple_matches","type":"int","qualifiedName":"Libtmux.Cardinality.at_least","slug":"libtmux-cardinality-error-multiple_matches-at_least"},{"id":"Libtmux.Cardinality.error.No_match","publicId":"Libtmux.Cardinality.error.No_match","name":"No_match","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":686,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"No_match","source":{"file":"lib/libtmux.mli","line":686,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Cardinality.error","variant":"unit","qualifiedName":"Libtmux.Cardinality.No_match","slug":"libtmux-cardinality-error-no_match"},{"id":"Libtmux.Cardinality.pp_error","publicId":"Libtmux.Cardinality.pp_error","qualifiedName":"Libtmux.Cardinality.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":688,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"lib/libtmux.mli","line":688,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Cardinality","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux-cardinality-pp_error"},{"id":"Libtmux.Client_name","publicId":"Libtmux.Client_name","qualifiedName":"Libtmux.Client_name","name":"Client_name","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Client_name : sig\n type t\n (** A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. *)\n\n val source : t -> Source.t\n val to_string : t -> string\nend","source":{"file":"lib/libtmux.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","slug":"libtmux-client_name"},{"id":"Libtmux.Client_name.source","publicId":"Libtmux.Client_name.source","qualifiedName":"Libtmux.Client_name.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_name-source"},{"id":"Libtmux.Client_name.t","publicId":"Libtmux.Client_name.t","qualifiedName":"Libtmux.Client_name.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" A name in one connection generation, with current-name semantics. It does\n not identify a stable client incarnation; tmux may reuse client names. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_name","doc":{"summary":"A name in one connection generation, with current-name semantics. It does not identify a stable client incarnation; tmux may reuse client names."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_name-t"},{"id":"Libtmux.Client_name.to_string","publicId":"Libtmux.Client_name.to_string","qualifiedName":"Libtmux.Client_name.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_name","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_name-to_string"},{"id":"Libtmux.Client_observation","publicId":"Libtmux.Client_observation","qualifiedName":"Libtmux.Client_observation","name":"Client_observation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":365,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"and Client_observation : sig\n type t\n\n module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end\n\n val name : t -> string\n val pid : t -> int\n val width : t -> int\n\n val height : t -> int option\n (** No height is reported until the client has a started terminal. *)\n\n val control_mode : t -> bool\n val source : t -> Source.t\n\n val current_name : t -> Client_name.t\n (** Address whichever client has this name when a command executes. *)\n\n val session : t -> Session.t option\n (** [None] means the captured client has no attached session. *)\n\n val same_observation : t -> t -> bool\n (** Client names may be reused. No cross-snapshot entity equality is offered.\n *)\nend","source":{"file":"lib/libtmux.mli","line":365,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","slug":"libtmux-client_observation"},{"id":"Libtmux.Client_observation.Fields","publicId":"Libtmux.Client_observation.Fields","qualifiedName":"Libtmux.Client_observation.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":368,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val name : (t, string) Field.t\n val pid : (t, int) Field.t\n val width : (t, int) Field.t\n val control_mode : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":368,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-fields"},{"id":"Libtmux.Client_observation.Fields.control_mode","publicId":"Libtmux.Client_observation.Fields.control_mode","qualifiedName":"Libtmux.Client_observation.Fields.control_mode","name":"control_mode","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":372,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val control_mode : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":372,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val control_mode : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-client_observation-fields-control_mode"},{"id":"Libtmux.Client_observation.Fields.name","publicId":"Libtmux.Client_observation.Fields.name","qualifiedName":"Libtmux.Client_observation.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":369,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":369,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-client_observation-fields-name"},{"id":"Libtmux.Client_observation.Fields.pid","publicId":"Libtmux.Client_observation.Fields.pid","qualifiedName":"Libtmux.Client_observation.Fields.pid","name":"pid","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":370,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pid : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":370,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val pid : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-pid"},{"id":"Libtmux.Client_observation.Fields.width","publicId":"Libtmux.Client_observation.Fields.width","qualifiedName":"Libtmux.Client_observation.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":371,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":371,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-client_observation-fields-width"},{"id":"Libtmux.Client_observation.Relations","publicId":"Libtmux.Client_observation.Relations","qualifiedName":"Libtmux.Client_observation.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":375,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.Optional.t\n end","source":{"file":"lib/libtmux.mli","line":375,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation","slug":"libtmux-client_observation-relations"},{"id":"Libtmux.Client_observation.Relations.session","publicId":"Libtmux.Client_observation.Relations.session","qualifiedName":"Libtmux.Client_observation.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":376,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.Optional.t","source":{"file":"lib/libtmux.mli","line":376,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.Optional.t","params":[],"returns":"(t, Session.t) Relation.Optional.t"}],"slug":"libtmux-client_observation-relations-session"},{"id":"Libtmux.Client_observation.control_mode","publicId":"Libtmux.Client_observation.control_mode","qualifiedName":"Libtmux.Client_observation.control_mode","name":"control_mode","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":386,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val control_mode : t -> bool","source":{"file":"lib/libtmux.mli","line":386,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val control_mode : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-control_mode"},{"id":"Libtmux.Client_observation.current_name","publicId":"Libtmux.Client_observation.current_name","qualifiedName":"Libtmux.Client_observation.current_name","name":"current_name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":389,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Address whichever client has this name when a command executes. "],"declarations":[{"kind":"function","text":"val current_name : t -> Client_name.t","source":{"file":"lib/libtmux.mli","line":389,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Address whichever client has this name when a command executes."},"signatures":[{"raw":"val current_name : t -> Client_name.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_name.t"}],"slug":"libtmux-client_observation-current_name"},{"id":"Libtmux.Client_observation.height","publicId":"Libtmux.Client_observation.height","qualifiedName":"Libtmux.Client_observation.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":383,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" No height is reported until the client has a started terminal. "],"declarations":[{"kind":"function","text":"val height : t -> int option","source":{"file":"lib/libtmux.mli","line":383,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"No height is reported until the client has a started terminal."},"signatures":[{"raw":"val height : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-client_observation-height"},{"id":"Libtmux.Client_observation.name","publicId":"Libtmux.Client_observation.name","qualifiedName":"Libtmux.Client_observation.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":379,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":379,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-client_observation-name"},{"id":"Libtmux.Client_observation.pid","publicId":"Libtmux.Client_observation.pid","qualifiedName":"Libtmux.Client_observation.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":380,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pid : t -> int","source":{"file":"lib/libtmux.mli","line":380,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-pid"},{"id":"Libtmux.Client_observation.same_observation","publicId":"Libtmux.Client_observation.same_observation","qualifiedName":"Libtmux.Client_observation.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":395,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Client names may be reused. No cross-snapshot entity equality is offered.\n "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":395,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"Client names may be reused. No cross-snapshot entity equality is offered."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-client_observation-same_observation"},{"id":"Libtmux.Client_observation.session","publicId":"Libtmux.Client_observation.session","qualifiedName":"Libtmux.Client_observation.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":392,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" [None] means the captured client has no attached session. "],"declarations":[{"kind":"function","text":"val session : t -> Session.t option","source":{"file":"lib/libtmux.mli","line":392,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation","doc":{"summary":"`None` means the captured client has no attached session."},"signatures":[{"raw":"val session : t -> Session.t option","params":[{"name":"arg1","type":"t"}],"returns":"Session.t option"}],"slug":"libtmux-client_observation-session"},{"id":"Libtmux.Client_observation.source","publicId":"Libtmux.Client_observation.source","qualifiedName":"Libtmux.Client_observation.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-client_observation-source"},{"id":"Libtmux.Client_observation.t","publicId":"Libtmux.Client_observation.t","qualifiedName":"Libtmux.Client_observation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":366,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":366,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-client_observation-t"},{"id":"Libtmux.Client_observation.width","publicId":"Libtmux.Client_observation.width","qualifiedName":"Libtmux.Client_observation.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":381,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":381,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Client_observation","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-client_observation-width"},{"id":"Libtmux.Command","publicId":"Libtmux.Command","qualifiedName":"Libtmux.Command","name":"Command","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":883,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Typed descriptions of explicit acquisition and mutation operations.\n Construction performs no I/O; a backend validates and admits the command. "],"declarations":[{"kind":"module","text":"module Command : sig\n type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }\n\n type 'a t\n (** An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. *)\n\n type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view\n\n val view : 'a t -> 'a view\n (** Read-only inspection for transport adapters. *)\nend","source":{"file":"lib/libtmux.mli","line":883,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"Typed descriptions of explicit acquisition and mutation operations. Construction performs no I/O; a backend validates and admits the command."},"slug":"libtmux-command"},{"id":"Libtmux.Command.mutation","publicId":"Libtmux.Command.mutation","qualifiedName":"Libtmux.Command.mutation","name":"mutation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":884,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type mutation =\n | Kill_session of Session.target\n | Kill_window of Window.target\n | Kill_pane of Pane.target\n | Select_window_at of Session.target * int\n | Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }\n | Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }\n | Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }\n | Select_pane of Pane.target\n | Set_pane_title of Pane.target * string\n | Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }\n | Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }\n | Select_layout of Window.target * Layout.t\n | Cycle_layout of Window.target * [ `Next | `Previous ]\n | Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }\n | Swap_panes of Pane.target * Pane.target\n | Rotate_panes of Window.target * [ `Forward | `Backward ]\n | Zoom_pane of Pane.target\n | Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }\n | Clear_history of Pane.target\n | Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }\n | Unset_environment of Environment.scope * string\n | Remove_environment of Environment.scope * string\n | Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }\n | Unset_option of Options.scope * string * int option\n | Clear_option_array of Options.scope * string\n | Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }\n | Remove_hook of Options.scope * string * int option\n | Run_hook of Options.scope * string\n | Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }\n | Request_detach_client_at of Client_name.t\n | Refresh_client_at of Client_name.t * bool\n | Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":884,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type mutation =\n | Kill_session of Session.target \n | Kill_window of Window.target \n | Kill_pane of Pane.target \n | Select_window_at of Session.target * int \n | Unlink_window_at of\n {\n session: Session.target ;\n index: int ;\n allow_kill: bool } \n | Link_window of\n {\n window: Window.target ;\n session: Session.target ;\n index: int } \n | Move_window_at of\n {\n from_session: Session.target ;\n from_index: int ;\n session: Session.target ;\n index: int } \n | Select_pane of Pane.target \n | Set_pane_title of Pane.target * string \n | Resize_pane of\n {\n pane: Pane.target ;\n width: int option ;\n height: int option } \n | Resize_window of\n {\n window: Window.target ;\n width: int option ;\n height: int option } \n | Select_layout of Window.target * Layout.t \n | Cycle_layout of Window.target * [ `Next | `Previous ] \n | Move_pane of\n {\n pane: Pane.target ;\n beside: Pane.target ;\n direction: Geometry.direction ;\n size: Geometry.size option } \n | Swap_panes of Pane.target * Pane.target \n | Rotate_panes of Window.target * [ `Forward | `Backward ] \n | Zoom_pane of Pane.target \n | Respawn_pane of {\n pane: Pane.target ;\n spawn: Spawn.t ;\n kill_running: bool } \n | Clear_history of Pane.target \n | Set_environment of\n {\n scope: Environment.scope ;\n name: string ;\n value: string ;\n hidden: bool } \n | Unset_environment of Environment.scope * string \n | Remove_environment of Environment.scope * string \n | Set_option of\n {\n scope: Options.scope ;\n name: string ;\n index: int option ;\n value: Options.scalar ;\n append: bool } \n | Unset_option of Options.scope * string * int option \n | Clear_option_array of Options.scope * string \n | Set_hook of\n {\n scope: Options.scope ;\n name: string ;\n index: int option ;\n commands: Hook.command list ;\n append: bool } \n | Remove_hook of Options.scope * string * int option \n | Run_hook of Options.scope * string \n | Switch_client_at of\n {\n client: Client_name.t ;\n session: Session.target ;\n update_environment: bool } \n | Request_detach_client_at of Client_name.t \n | Refresh_client_at of Client_name.t * bool \n | Resize_control_client_at of\n {\n client: Client_name.t ;\n width: int ;\n height: int } ","params":[]}],"slug":"libtmux-command-mutation"},{"id":"Libtmux.Command.mutation.Clear_history","publicId":"Libtmux.Command.mutation.Clear_history","name":"Clear_history","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":933,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_history of Pane.target","source":{"file":"lib/libtmux.mli","line":933,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_history","slug":"libtmux-command-mutation-clear_history"},{"id":"Libtmux.Command.mutation.Clear_option_array","publicId":"Libtmux.Command.mutation.Clear_option_array","name":"Clear_option_array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":950,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Clear_option_array of Options.scope * string","source":{"file":"lib/libtmux.mli","line":950,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Clear_option_array","slug":"libtmux-command-mutation-clear_option_array"},{"id":"Libtmux.Command.mutation.Cycle_layout","publicId":"Libtmux.Command.mutation.Cycle_layout","name":"Cycle_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":918,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cycle_layout of Window.target * [ `Next | `Previous ]","source":{"file":"lib/libtmux.mli","line":918,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Cycle_layout","slug":"libtmux-command-mutation-cycle_layout"},{"id":"Libtmux.Command.mutation.Kill_pane","publicId":"Libtmux.Command.mutation.Kill_pane","name":"Kill_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":887,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":887,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_pane","slug":"libtmux-command-mutation-kill_pane"},{"id":"Libtmux.Command.mutation.Kill_session","publicId":"Libtmux.Command.mutation.Kill_session","name":"Kill_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":885,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_session of Session.target","source":{"file":"lib/libtmux.mli","line":885,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_session","slug":"libtmux-command-mutation-kill_session"},{"id":"Libtmux.Command.mutation.Kill_window","publicId":"Libtmux.Command.mutation.Kill_window","name":"Kill_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":886,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill_window of Window.target","source":{"file":"lib/libtmux.mli","line":886,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Kill_window","slug":"libtmux-command-mutation-kill_window"},{"id":"Libtmux.Command.mutation.Link_window","publicId":"Libtmux.Command.mutation.Link_window","name":"Link_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":894,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Link_window of {\n window : Window.target;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":894,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Link_window","slug":"libtmux-command-mutation-link_window"},{"id":"Libtmux.Command.mutation.Link_window.index","publicId":"Libtmux.Command.mutation.Link_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":897,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":897,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-link_window-index"},{"id":"Libtmux.Command.mutation.Link_window.session","publicId":"Libtmux.Command.mutation.Link_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":896,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":896,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-link_window-session"},{"id":"Libtmux.Command.mutation.Link_window.window","publicId":"Libtmux.Command.mutation.Link_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":895,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":895,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Link_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-link_window-window"},{"id":"Libtmux.Command.mutation.Move_pane","publicId":"Libtmux.Command.mutation.Move_pane","name":"Move_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":919,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_pane of {\n pane : Pane.target;\n beside : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n }","source":{"file":"lib/libtmux.mli","line":919,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_pane","slug":"libtmux-command-mutation-move_pane"},{"id":"Libtmux.Command.mutation.Move_pane.beside","publicId":"Libtmux.Command.mutation.Move_pane.beside","name":"beside","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":921,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"beside : Pane.target;","source":{"file":"lib/libtmux.mli","line":921,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.beside","slug":"libtmux-command-mutation-move_pane-beside"},{"id":"Libtmux.Command.mutation.Move_pane.direction","publicId":"Libtmux.Command.mutation.Move_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":922,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":922,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-mutation-move_pane-direction"},{"id":"Libtmux.Command.mutation.Move_pane.pane","publicId":"Libtmux.Command.mutation.Move_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":920,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":920,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-move_pane-pane"},{"id":"Libtmux.Command.mutation.Move_pane.size","publicId":"Libtmux.Command.mutation.Move_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":923,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":923,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Move_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-mutation-move_pane-size"},{"id":"Libtmux.Command.mutation.Move_window_at","publicId":"Libtmux.Command.mutation.Move_window_at","name":"Move_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":899,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Move_window_at of {\n from_session : Session.target;\n from_index : int;\n session : Session.target;\n index : int;\n }","source":{"file":"lib/libtmux.mli","line":899,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Move_window_at","slug":"libtmux-command-mutation-move_window_at"},{"id":"Libtmux.Command.mutation.Move_window_at.from_index","publicId":"Libtmux.Command.mutation.Move_window_at.from_index","name":"from_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":901,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_index : int;","source":{"file":"lib/libtmux.mli","line":901,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.from_index","slug":"libtmux-command-mutation-move_window_at-from_index"},{"id":"Libtmux.Command.mutation.Move_window_at.from_session","publicId":"Libtmux.Command.mutation.Move_window_at.from_session","name":"from_session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":900,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"from_session : Session.target;","source":{"file":"lib/libtmux.mli","line":900,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.from_session","slug":"libtmux-command-mutation-move_window_at-from_session"},{"id":"Libtmux.Command.mutation.Move_window_at.index","publicId":"Libtmux.Command.mutation.Move_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":903,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":903,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-move_window_at-index"},{"id":"Libtmux.Command.mutation.Move_window_at.session","publicId":"Libtmux.Command.mutation.Move_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":902,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":902,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Move_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-move_window_at-session"},{"id":"Libtmux.Command.mutation.Refresh_client_at","publicId":"Libtmux.Command.mutation.Refresh_client_at","name":"Refresh_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":966,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Refresh_client_at of Client_name.t * bool","source":{"file":"lib/libtmux.mli","line":966,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Refresh_client_at","slug":"libtmux-command-mutation-refresh_client_at"},{"id":"Libtmux.Command.mutation.Remove_environment","publicId":"Libtmux.Command.mutation.Remove_environment","name":"Remove_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":941,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":941,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_environment","slug":"libtmux-command-mutation-remove_environment"},{"id":"Libtmux.Command.mutation.Remove_hook","publicId":"Libtmux.Command.mutation.Remove_hook","name":"Remove_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":958,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Remove_hook of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":958,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Remove_hook","slug":"libtmux-command-mutation-remove_hook"},{"id":"Libtmux.Command.mutation.Request_detach_client_at","publicId":"Libtmux.Command.mutation.Request_detach_client_at","name":"Request_detach_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":965,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Request_detach_client_at of Client_name.t","source":{"file":"lib/libtmux.mli","line":965,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Request_detach_client_at","slug":"libtmux-command-mutation-request_detach_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at","publicId":"Libtmux.Command.mutation.Resize_control_client_at","name":"Resize_control_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":967,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_control_client_at of {\n client : Client_name.t;\n width : int;\n height : int;\n }","source":{"file":"lib/libtmux.mli","line":967,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_control_client_at","slug":"libtmux-command-mutation-resize_control_client_at"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.client","publicId":"Libtmux.Command.mutation.Resize_control_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":968,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":968,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-resize_control_client_at-client"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.height","publicId":"Libtmux.Command.mutation.Resize_control_client_at.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":970,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":970,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_control_client_at-height"},{"id":"Libtmux.Command.mutation.Resize_control_client_at.width","publicId":"Libtmux.Command.mutation.Resize_control_client_at.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":969,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":969,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Resize_control_client_at","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_control_client_at-width"},{"id":"Libtmux.Command.mutation.Resize_pane","publicId":"Libtmux.Command.mutation.Resize_pane","name":"Resize_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":907,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_pane of {\n pane : Pane.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":907,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_pane","slug":"libtmux-command-mutation-resize_pane"},{"id":"Libtmux.Command.mutation.Resize_pane.height","publicId":"Libtmux.Command.mutation.Resize_pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":910,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":910,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_pane-height"},{"id":"Libtmux.Command.mutation.Resize_pane.pane","publicId":"Libtmux.Command.mutation.Resize_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":908,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":908,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-resize_pane-pane"},{"id":"Libtmux.Command.mutation.Resize_pane.width","publicId":"Libtmux.Command.mutation.Resize_pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":909,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":909,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Resize_pane","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_pane-width"},{"id":"Libtmux.Command.mutation.Resize_window","publicId":"Libtmux.Command.mutation.Resize_window","name":"Resize_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":912,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Resize_window of {\n window : Window.target;\n width : int option;\n height : int option;\n }","source":{"file":"lib/libtmux.mli","line":912,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Resize_window","slug":"libtmux-command-mutation-resize_window"},{"id":"Libtmux.Command.mutation.Resize_window.height","publicId":"Libtmux.Command.mutation.Resize_window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":915,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":915,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-mutation-resize_window-height"},{"id":"Libtmux.Command.mutation.Resize_window.width","publicId":"Libtmux.Command.mutation.Resize_window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":914,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int option;","source":{"file":"lib/libtmux.mli","line":914,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"int option","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-mutation-resize_window-width"},{"id":"Libtmux.Command.mutation.Resize_window.window","publicId":"Libtmux.Command.mutation.Resize_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":913,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":913,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Resize_window","type":"Window.target","qualifiedName":"Libtmux.Command.window","slug":"libtmux-command-mutation-resize_window-window"},{"id":"Libtmux.Command.mutation.Respawn_pane","publicId":"Libtmux.Command.mutation.Respawn_pane","name":"Respawn_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":928,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Respawn_pane of {\n pane : Pane.target;\n spawn : Spawn.t;\n kill_running : bool;\n }","source":{"file":"lib/libtmux.mli","line":928,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Respawn_pane","slug":"libtmux-command-mutation-respawn_pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.kill_running","publicId":"Libtmux.Command.mutation.Respawn_pane.kill_running","name":"kill_running","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":931,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kill_running : bool;","source":{"file":"lib/libtmux.mli","line":931,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"bool","qualifiedName":"Libtmux.Command.kill_running","slug":"libtmux-command-mutation-respawn_pane-kill_running"},{"id":"Libtmux.Command.mutation.Respawn_pane.pane","publicId":"Libtmux.Command.mutation.Respawn_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":929,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":929,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-mutation-respawn_pane-pane"},{"id":"Libtmux.Command.mutation.Respawn_pane.spawn","publicId":"Libtmux.Command.mutation.Respawn_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":930,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":930,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Respawn_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-mutation-respawn_pane-spawn"},{"id":"Libtmux.Command.mutation.Rotate_panes","publicId":"Libtmux.Command.mutation.Rotate_panes","name":"Rotate_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":926,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rotate_panes of Window.target * [ `Forward | `Backward ]","source":{"file":"lib/libtmux.mli","line":926,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Rotate_panes","slug":"libtmux-command-mutation-rotate_panes"},{"id":"Libtmux.Command.mutation.Run_hook","publicId":"Libtmux.Command.mutation.Run_hook","name":"Run_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":959,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Run_hook of Options.scope * string","source":{"file":"lib/libtmux.mli","line":959,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Run_hook","slug":"libtmux-command-mutation-run_hook"},{"id":"Libtmux.Command.mutation.Select_layout","publicId":"Libtmux.Command.mutation.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":917,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of Window.target * Layout.t","source":{"file":"lib/libtmux.mli","line":917,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_layout","slug":"libtmux-command-mutation-select_layout"},{"id":"Libtmux.Command.mutation.Select_pane","publicId":"Libtmux.Command.mutation.Select_pane","name":"Select_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":905,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":905,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_pane","slug":"libtmux-command-mutation-select_pane"},{"id":"Libtmux.Command.mutation.Select_window_at","publicId":"Libtmux.Command.mutation.Select_window_at","name":"Select_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":888,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_window_at of Session.target * int","source":{"file":"lib/libtmux.mli","line":888,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Select_window_at","slug":"libtmux-command-mutation-select_window_at"},{"id":"Libtmux.Command.mutation.Set_environment","publicId":"Libtmux.Command.mutation.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":934,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of {\n scope : Environment.scope;\n name : string;\n value : string;\n hidden : bool;\n }","source":{"file":"lib/libtmux.mli","line":934,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_environment","slug":"libtmux-command-mutation-set_environment"},{"id":"Libtmux.Command.mutation.Set_environment.hidden","publicId":"Libtmux.Command.mutation.Set_environment.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":938,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":938,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"bool","qualifiedName":"Libtmux.Command.hidden","slug":"libtmux-command-mutation-set_environment-hidden"},{"id":"Libtmux.Command.mutation.Set_environment.name","publicId":"Libtmux.Command.mutation.Set_environment.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":936,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":936,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_environment-name"},{"id":"Libtmux.Command.mutation.Set_environment.scope","publicId":"Libtmux.Command.mutation.Set_environment.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":935,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Environment.scope;","source":{"file":"lib/libtmux.mli","line":935,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"Environment.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_environment-scope"},{"id":"Libtmux.Command.mutation.Set_environment.value","publicId":"Libtmux.Command.mutation.Set_environment.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":937,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : string;","source":{"file":"lib/libtmux.mli","line":937,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_environment","type":"string","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_environment-value"},{"id":"Libtmux.Command.mutation.Set_hook","publicId":"Libtmux.Command.mutation.Set_hook","name":"Set_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":951,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_hook of {\n scope : Options.scope;\n name : string;\n index : int option;\n commands : Hook.command list;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":951,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_hook","slug":"libtmux-command-mutation-set_hook"},{"id":"Libtmux.Command.mutation.Set_hook.append","publicId":"Libtmux.Command.mutation.Set_hook.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":956,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":956,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_hook-append"},{"id":"Libtmux.Command.mutation.Set_hook.commands","publicId":"Libtmux.Command.mutation.Set_hook.commands","name":"commands","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":955,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"commands : Hook.command list;","source":{"file":"lib/libtmux.mli","line":955,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Hook.command list","qualifiedName":"Libtmux.Command.commands","slug":"libtmux-command-mutation-set_hook-commands"},{"id":"Libtmux.Command.mutation.Set_hook.index","publicId":"Libtmux.Command.mutation.Set_hook.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":954,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":954,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_hook-index"},{"id":"Libtmux.Command.mutation.Set_hook.name","publicId":"Libtmux.Command.mutation.Set_hook.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":953,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":953,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_hook-name"},{"id":"Libtmux.Command.mutation.Set_hook.scope","publicId":"Libtmux.Command.mutation.Set_hook.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":952,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":952,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_hook","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_hook-scope"},{"id":"Libtmux.Command.mutation.Set_option","publicId":"Libtmux.Command.mutation.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":942,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of {\n scope : Options.scope;\n name : string;\n index : int option;\n value : Options.scalar;\n append : bool;\n }","source":{"file":"lib/libtmux.mli","line":942,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Set_option","slug":"libtmux-command-mutation-set_option"},{"id":"Libtmux.Command.mutation.Set_option.append","publicId":"Libtmux.Command.mutation.Set_option.append","name":"append","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":947,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"append : bool;","source":{"file":"lib/libtmux.mli","line":947,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"bool","qualifiedName":"Libtmux.Command.append","slug":"libtmux-command-mutation-set_option-append"},{"id":"Libtmux.Command.mutation.Set_option.index","publicId":"Libtmux.Command.mutation.Set_option.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":945,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":945,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-set_option-index"},{"id":"Libtmux.Command.mutation.Set_option.name","publicId":"Libtmux.Command.mutation.Set_option.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":944,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":944,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-mutation-set_option-name"},{"id":"Libtmux.Command.mutation.Set_option.scope","publicId":"Libtmux.Command.mutation.Set_option.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":943,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : Options.scope;","source":{"file":"lib/libtmux.mli","line":943,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scope","qualifiedName":"Libtmux.Command.scope","slug":"libtmux-command-mutation-set_option-scope"},{"id":"Libtmux.Command.mutation.Set_option.value","publicId":"Libtmux.Command.mutation.Set_option.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":946,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Options.scalar;","source":{"file":"lib/libtmux.mli","line":946,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Set_option","type":"Options.scalar","qualifiedName":"Libtmux.Command.value","slug":"libtmux-command-mutation-set_option-value"},{"id":"Libtmux.Command.mutation.Set_pane_title","publicId":"Libtmux.Command.mutation.Set_pane_title","name":"Set_pane_title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":906,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_pane_title of Pane.target * string","source":{"file":"lib/libtmux.mli","line":906,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Set_pane_title","slug":"libtmux-command-mutation-set_pane_title"},{"id":"Libtmux.Command.mutation.Swap_panes","publicId":"Libtmux.Command.mutation.Swap_panes","name":"Swap_panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":925,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Swap_panes of Pane.target * Pane.target","source":{"file":"lib/libtmux.mli","line":925,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Swap_panes","slug":"libtmux-command-mutation-swap_panes"},{"id":"Libtmux.Command.mutation.Switch_client_at","publicId":"Libtmux.Command.mutation.Switch_client_at","name":"Switch_client_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":960,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Switch_client_at of {\n client : Client_name.t;\n session : Session.target;\n update_environment : bool;\n }","source":{"file":"lib/libtmux.mli","line":960,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Switch_client_at","slug":"libtmux-command-mutation-switch_client_at"},{"id":"Libtmux.Command.mutation.Switch_client_at.client","publicId":"Libtmux.Command.mutation.Switch_client_at.client","name":"client","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":961,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"client : Client_name.t;","source":{"file":"lib/libtmux.mli","line":961,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Client_name.t","qualifiedName":"Libtmux.Command.client","slug":"libtmux-command-mutation-switch_client_at-client"},{"id":"Libtmux.Command.mutation.Switch_client_at.session","publicId":"Libtmux.Command.mutation.Switch_client_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":962,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":962,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-switch_client_at-session"},{"id":"Libtmux.Command.mutation.Switch_client_at.update_environment","publicId":"Libtmux.Command.mutation.Switch_client_at.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":963,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"update_environment : bool;","source":{"file":"lib/libtmux.mli","line":963,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Switch_client_at","type":"bool","qualifiedName":"Libtmux.Command.update_environment","slug":"libtmux-command-mutation-switch_client_at-update_environment"},{"id":"Libtmux.Command.mutation.Unlink_window_at","publicId":"Libtmux.Command.mutation.Unlink_window_at","name":"Unlink_window_at","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":889,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unlink_window_at of {\n session : Session.target;\n index : int;\n allow_kill : bool;\n }","source":{"file":"lib/libtmux.mli","line":889,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"struct","qualifiedName":"Libtmux.Command.Unlink_window_at","slug":"libtmux-command-mutation-unlink_window_at"},{"id":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","publicId":"Libtmux.Command.mutation.Unlink_window_at.allow_kill","name":"allow_kill","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":892,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"allow_kill : bool;","source":{"file":"lib/libtmux.mli","line":892,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"bool","qualifiedName":"Libtmux.Command.allow_kill","slug":"libtmux-command-mutation-unlink_window_at-allow_kill"},{"id":"Libtmux.Command.mutation.Unlink_window_at.index","publicId":"Libtmux.Command.mutation.Unlink_window_at.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":891,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":891,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-mutation-unlink_window_at-index"},{"id":"Libtmux.Command.mutation.Unlink_window_at.session","publicId":"Libtmux.Command.mutation.Unlink_window_at.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":890,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":890,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation.Unlink_window_at","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-mutation-unlink_window_at-session"},{"id":"Libtmux.Command.mutation.Unset_environment","publicId":"Libtmux.Command.mutation.Unset_environment","name":"Unset_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":940,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_environment of Environment.scope * string","source":{"file":"lib/libtmux.mli","line":940,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_environment","slug":"libtmux-command-mutation-unset_environment"},{"id":"Libtmux.Command.mutation.Unset_option","publicId":"Libtmux.Command.mutation.Unset_option","name":"Unset_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":949,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unset_option of Options.scope * string * int option","source":{"file":"lib/libtmux.mli","line":949,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Unset_option","slug":"libtmux-command-mutation-unset_option"},{"id":"Libtmux.Command.mutation.Zoom_pane","publicId":"Libtmux.Command.mutation.Zoom_pane","name":"Zoom_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":927,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Zoom_pane of Pane.target","source":{"file":"lib/libtmux.mli","line":927,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.mutation","variant":"tuple","qualifiedName":"Libtmux.Command.Zoom_pane","slug":"libtmux-command-mutation-zoom_pane"},{"id":"Libtmux.Command.t","publicId":"Libtmux.Command.t","qualifiedName":"Libtmux.Command.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":973,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" An immutable description, validated by a backend before admission.\n Constructing or inspecting it performs no I/O. "],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":973,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command","doc":{"summary":"An immutable description, validated by a backend before admission. Constructing or inspecting it performs no I/O."},"signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-command-t"},{"id":"Libtmux.Command.view","publicId":"Libtmux.Command.view","qualifiedName":"Libtmux.Command.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1028,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read-only inspection for transport adapters. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":1028,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command","doc":{"summary":"Read-only inspection for transport adapters."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-command-view"},{"id":"Libtmux.Command.view:type","publicId":"Libtmux.Command.view:type","qualifiedName":"Libtmux.Command.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":977,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ view =\n | Capture : Snapshot.t view\n | Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view\n | Rename_window : Window.target * string -> unit view\n | Rename_session : Session.target * string -> unit view\n | Send_text : Pane.target * string -> unit view\n | Send_keys : Pane.target * Key.t list -> unit view\n | Wait_for : string -> unit view\n | Signal : string -> unit view\n | Capture_environment : Environment.scope * bool -> Environment.t view\n | Capture_options : Options.scope * bool -> Options.t view\n | Read_option : Options.scope * string * bool -> Options.value option view\n | Capture_hooks : Options.scope -> Options.t view\n | Read_hook : Options.scope * string * bool -> Options.value option view\n | Mutate : mutation -> unit view\n | Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view\n | Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":977,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command","signatures":[{"raw":"type _ view =\n | Capture: Snapshot.t view \n | Capture_text: {\n pane: Pane.t ;\n start: int ;\n end_: int ;\n scratch_dir: string } -> Captured_text.t view \n | Rename_window: Window.target * string -> unit view \n | Rename_session: Session.target * string -> unit view \n | Send_text: Pane.target * string -> unit view \n | Send_keys: Pane.target * Key.t list -> unit view \n | Wait_for: string -> unit view \n | Signal: string -> unit view \n | Capture_environment: Environment.scope * bool -> Environment.t view \n | Capture_options: Options.scope * bool -> Options.t view \n | Read_option: Options.scope * string * bool -> Options.value option view \n | Capture_hooks: Options.scope -> Options.t view \n | Read_hook: Options.scope * string * bool -> Options.value option view \n | Mutate: mutation -> unit view \n | Create_session:\n {\n name: string ;\n window_name: string option ;\n width: int ;\n height: int ;\n spawn: Spawn.t } -> Created.t view \n | Create_window:\n {\n session: Session.target ;\n index: int option ;\n name: string option ;\n spawn: Spawn.t } -> Created.t view \n | Split_pane:\n {\n pane: Pane.target ;\n direction: Geometry.direction ;\n size: Geometry.size option ;\n spawn: Spawn.t } -> Created.t view \n | Break_pane:\n {\n pane: Pane.target ;\n session: Session.target ;\n index: int ;\n name: string option } -> Created.t view ","params":[]}],"slug":"libtmux-command-view-type"},{"id":"Libtmux.Command.view:type.Break_pane","publicId":"Libtmux.Command.view:type.Break_pane","name":"Break_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1020,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Break_pane : {\n pane : Pane.target;\n session : Session.target;\n index : int;\n name : string option;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1020,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Break_pane","slug":"libtmux-command-view-type-break_pane"},{"id":"Libtmux.Command.view:type.Break_pane.index","publicId":"Libtmux.Command.view:type.Break_pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1023,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":1023,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"int","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-break_pane-index"},{"id":"Libtmux.Command.view:type.Break_pane.name","publicId":"Libtmux.Command.view:type.Break_pane.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1024,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1024,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-break_pane-name"},{"id":"Libtmux.Command.view:type.Break_pane.pane","publicId":"Libtmux.Command.view:type.Break_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1021,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":1021,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-break_pane-pane"},{"id":"Libtmux.Command.view:type.Break_pane.session","publicId":"Libtmux.Command.view:type.Break_pane.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1022,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1022,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Break_pane","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-break_pane-session"},{"id":"Libtmux.Command.view:type.Capture","publicId":"Libtmux.Command.view:type.Capture","name":"Capture","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":978,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture : Snapshot.t view","source":{"file":"lib/libtmux.mli","line":978,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"unit","qualifiedName":"Libtmux.Command.Capture","slug":"libtmux-command-view-type-capture"},{"id":"Libtmux.Command.view:type.Capture_environment","publicId":"Libtmux.Command.view:type.Capture_environment","name":"Capture_environment","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":992,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_environment : Environment.scope * bool -> Environment.t view","source":{"file":"lib/libtmux.mli","line":992,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_environment","slug":"libtmux-command-view-type-capture_environment"},{"id":"Libtmux.Command.view:type.Capture_hooks","publicId":"Libtmux.Command.view:type.Capture_hooks","name":"Capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":995,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_hooks : Options.scope -> Options.t view","source":{"file":"lib/libtmux.mli","line":995,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_hooks","slug":"libtmux-command-view-type-capture_hooks"},{"id":"Libtmux.Command.view:type.Capture_options","publicId":"Libtmux.Command.view:type.Capture_options","name":"Capture_options","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":993,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_options : Options.scope * bool -> Options.t view","source":{"file":"lib/libtmux.mli","line":993,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Capture_options","slug":"libtmux-command-view-type-capture_options"},{"id":"Libtmux.Command.view:type.Capture_text","publicId":"Libtmux.Command.view:type.Capture_text","name":"Capture_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":979,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_text : {\n pane : Pane.t;\n start : int;\n end_ : int;\n scratch_dir : string;\n }\n -> Captured_text.t view","source":{"file":"lib/libtmux.mli","line":979,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Capture_text","slug":"libtmux-command-view-type-capture_text"},{"id":"Libtmux.Command.view:type.Capture_text.end_","publicId":"Libtmux.Command.view:type.Capture_text.end_","name":"end_","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":982,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"end_ : int;","source":{"file":"lib/libtmux.mli","line":982,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.end_","slug":"libtmux-command-view-type-capture_text-end_"},{"id":"Libtmux.Command.view:type.Capture_text.pane","publicId":"Libtmux.Command.view:type.Capture_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":980,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.t;","source":{"file":"lib/libtmux.mli","line":980,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"Pane.t","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-capture_text-pane"},{"id":"Libtmux.Command.view:type.Capture_text.scratch_dir","publicId":"Libtmux.Command.view:type.Capture_text.scratch_dir","name":"scratch_dir","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":983,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scratch_dir : string;","source":{"file":"lib/libtmux.mli","line":983,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"string","qualifiedName":"Libtmux.Command.scratch_dir","slug":"libtmux-command-view-type-capture_text-scratch_dir"},{"id":"Libtmux.Command.view:type.Capture_text.start","publicId":"Libtmux.Command.view:type.Capture_text.start","name":"start","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":981,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"start : int;","source":{"file":"lib/libtmux.mli","line":981,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Capture_text","type":"int","qualifiedName":"Libtmux.Command.start","slug":"libtmux-command-view-type-capture_text-start"},{"id":"Libtmux.Command.view:type.Create_session","publicId":"Libtmux.Command.view:type.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":998,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session : {\n name : string;\n window_name : string option;\n width : int;\n height : int;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":998,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_session","slug":"libtmux-command-view-type-create_session"},{"id":"Libtmux.Command.view:type.Create_session.height","publicId":"Libtmux.Command.view:type.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1002,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":1002,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.height","slug":"libtmux-command-view-type-create_session-height"},{"id":"Libtmux.Command.view:type.Create_session.name","publicId":"Libtmux.Command.view:type.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":999,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":999,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_session-name"},{"id":"Libtmux.Command.view:type.Create_session.spawn","publicId":"Libtmux.Command.view:type.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1003,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1003,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_session-spawn"},{"id":"Libtmux.Command.view:type.Create_session.width","publicId":"Libtmux.Command.view:type.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1001,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":1001,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"int","qualifiedName":"Libtmux.Command.width","slug":"libtmux-command-view-type-create_session-width"},{"id":"Libtmux.Command.view:type.Create_session.window_name","publicId":"Libtmux.Command.view:type.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1000,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string option;","source":{"file":"lib/libtmux.mli","line":1000,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Create_session","type":"string option","qualifiedName":"Libtmux.Command.window_name","slug":"libtmux-command-view-type-create_session-window_name"},{"id":"Libtmux.Command.view:type.Create_window","publicId":"Libtmux.Command.view:type.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1006,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window : {\n session : Session.target;\n index : int option;\n name : string option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1006,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Create_window","slug":"libtmux-command-view-type-create_window"},{"id":"Libtmux.Command.view:type.Create_window.index","publicId":"Libtmux.Command.view:type.Create_window.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1008,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"lib/libtmux.mli","line":1008,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"int option","qualifiedName":"Libtmux.Command.index","slug":"libtmux-command-view-type-create_window-index"},{"id":"Libtmux.Command.view:type.Create_window.name","publicId":"Libtmux.Command.view:type.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1009,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string option;","source":{"file":"lib/libtmux.mli","line":1009,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"string option","qualifiedName":"Libtmux.Command.name","slug":"libtmux-command-view-type-create_window-name"},{"id":"Libtmux.Command.view:type.Create_window.session","publicId":"Libtmux.Command.view:type.Create_window.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1007,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":1007,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Session.target","qualifiedName":"Libtmux.Command.session","slug":"libtmux-command-view-type-create_window-session"},{"id":"Libtmux.Command.view:type.Create_window.spawn","publicId":"Libtmux.Command.view:type.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1010,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1010,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Create_window","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-create_window-spawn"},{"id":"Libtmux.Command.view:type.Mutate","publicId":"Libtmux.Command.view:type.Mutate","name":"Mutate","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":997,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mutate : mutation -> unit view","source":{"file":"lib/libtmux.mli","line":997,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Mutate","slug":"libtmux-command-view-type-mutate"},{"id":"Libtmux.Command.view:type.Read_hook","publicId":"Libtmux.Command.view:type.Read_hook","name":"Read_hook","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":996,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_hook : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":996,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_hook","slug":"libtmux-command-view-type-read_hook"},{"id":"Libtmux.Command.view:type.Read_option","publicId":"Libtmux.Command.view:type.Read_option","name":"Read_option","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":994,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Read_option : Options.scope * string * bool -> Options.value option view","source":{"file":"lib/libtmux.mli","line":994,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Read_option","slug":"libtmux-command-view-type-read_option"},{"id":"Libtmux.Command.view:type.Rename_session","publicId":"Libtmux.Command.view:type.Rename_session","name":"Rename_session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":987,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_session : Session.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":987,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_session","slug":"libtmux-command-view-type-rename_session"},{"id":"Libtmux.Command.view:type.Rename_window","publicId":"Libtmux.Command.view:type.Rename_window","name":"Rename_window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":986,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rename_window : Window.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":986,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Rename_window","slug":"libtmux-command-view-type-rename_window"},{"id":"Libtmux.Command.view:type.Send_keys","publicId":"Libtmux.Command.view:type.Send_keys","name":"Send_keys","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":989,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_keys : Pane.target * Key.t list -> unit view","source":{"file":"lib/libtmux.mli","line":989,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_keys","slug":"libtmux-command-view-type-send_keys"},{"id":"Libtmux.Command.view:type.Send_text","publicId":"Libtmux.Command.view:type.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":988,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text : Pane.target * string -> unit view","source":{"file":"lib/libtmux.mli","line":988,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Send_text","slug":"libtmux-command-view-type-send_text"},{"id":"Libtmux.Command.view:type.Signal","publicId":"Libtmux.Command.view:type.Signal","name":"Signal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":991,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Signal : string -> unit view","source":{"file":"lib/libtmux.mli","line":991,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Signal","slug":"libtmux-command-view-type-signal"},{"id":"Libtmux.Command.view:type.Split_pane","publicId":"Libtmux.Command.view:type.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1013,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane : {\n pane : Pane.target;\n direction : Geometry.direction;\n size : Geometry.size option;\n spawn : Spawn.t;\n }\n -> Created.t view","source":{"file":"lib/libtmux.mli","line":1013,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"struct","qualifiedName":"Libtmux.Command.Split_pane","slug":"libtmux-command-view-type-split_pane"},{"id":"Libtmux.Command.view:type.Split_pane.direction","publicId":"Libtmux.Command.view:type.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1015,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Geometry.direction;","source":{"file":"lib/libtmux.mli","line":1015,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.direction","qualifiedName":"Libtmux.Command.direction","slug":"libtmux-command-view-type-split_pane-direction"},{"id":"Libtmux.Command.view:type.Split_pane.pane","publicId":"Libtmux.Command.view:type.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1014,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":1014,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Pane.target","qualifiedName":"Libtmux.Command.pane","slug":"libtmux-command-view-type-split_pane-pane"},{"id":"Libtmux.Command.view:type.Split_pane.size","publicId":"Libtmux.Command.view:type.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1016,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Geometry.size option;","source":{"file":"lib/libtmux.mli","line":1016,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Geometry.size option","qualifiedName":"Libtmux.Command.size","slug":"libtmux-command-view-type-split_pane-size"},{"id":"Libtmux.Command.view:type.Split_pane.spawn","publicId":"Libtmux.Command.view:type.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1017,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Spawn.t;","source":{"file":"lib/libtmux.mli","line":1017,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type.Split_pane","type":"Spawn.t","qualifiedName":"Libtmux.Command.spawn","slug":"libtmux-command-view-type-split_pane-spawn"},{"id":"Libtmux.Command.view:type.Wait_for","publicId":"Libtmux.Command.view:type.Wait_for","name":"Wait_for","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":990,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wait_for : string -> unit view","source":{"file":"lib/libtmux.mli","line":990,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Command.view:type","variant":"tuple","qualifiedName":"Libtmux.Command.Wait_for","slug":"libtmux-command-view-type-wait_for"},{"id":"Libtmux.Created","publicId":"Libtmux.Created","qualifiedName":"Libtmux.Created","name":"Created","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":779,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" IDs reported by a successful creation reply. Only the requested kind is\n newly created; the other fields can describe existing containers. "],"declarations":[{"kind":"module","text":"module Created : sig\n type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }\n (** IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. *)\nend","source":{"file":"lib/libtmux.mli","line":779,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"IDs reported by a successful creation reply. Only the requested kind is newly created; the other fields can describe existing containers."},"slug":"libtmux-created"},{"id":"Libtmux.Created.t","publicId":"Libtmux.Created.t","qualifiedName":"Libtmux.Created.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":780,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" IDs returned by the creation command, without a second capture. Indexes\n describe the creation response and may change afterward. Only the resource\n requested by the command is newly created: splitting a pane does not\n create the reported session or window. "],"declarations":[{"kind":"struct","text":"type t = {\n session : Session.target;\n window : Window.target;\n pane : Pane.target;\n window_index : int;\n pane_index : int;\n }","source":{"file":"lib/libtmux.mli","line":780,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Created","doc":{"summary":"IDs returned by the creation command, without a second capture. Indexes describe the creation response and may change afterward. Only the resource requested by the command is newly created: splitting a pane does not create the reported session or window."},"signatures":[{"raw":"type t =\n {\n session: Session.target ;\n window: Window.target ;\n pane: Pane.target ;\n window_index: int ;\n pane_index: int }","params":[]}],"slug":"libtmux-created-t"},{"id":"Libtmux.Created.t.pane","publicId":"Libtmux.Created.t.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":783,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Pane.target;","source":{"file":"lib/libtmux.mli","line":783,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Created.t","type":"Pane.target","qualifiedName":"Libtmux.Created.pane","slug":"libtmux-created-t-pane"},{"id":"Libtmux.Created.t.pane_index","publicId":"Libtmux.Created.t.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":785,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"lib/libtmux.mli","line":785,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.pane_index","slug":"libtmux-created-t-pane_index"},{"id":"Libtmux.Created.t.session","publicId":"Libtmux.Created.t.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":781,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Session.target;","source":{"file":"lib/libtmux.mli","line":781,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Created.t","type":"Session.target","qualifiedName":"Libtmux.Created.session","slug":"libtmux-created-t-session"},{"id":"Libtmux.Created.t.window","publicId":"Libtmux.Created.t.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":782,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Window.target;","source":{"file":"lib/libtmux.mli","line":782,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Created.t","type":"Window.target","qualifiedName":"Libtmux.Created.window","slug":"libtmux-created-t-window"},{"id":"Libtmux.Created.t.window_index","publicId":"Libtmux.Created.t.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":784,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"lib/libtmux.mli","line":784,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Created.t","type":"int","qualifiedName":"Libtmux.Created.window_index","slug":"libtmux-created-t-window_index"},{"id":"Libtmux.Endpoint","publicId":"Libtmux.Endpoint","qualifiedName":"Libtmux.Endpoint","name":"Endpoint","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" An explicit socket description. Constructing an endpoint neither reads the\n environment nor starts a daemon. {!Source.t} adds the observed daemon and\n connection generation. "],"declarations":[{"kind":"module","text":"module Endpoint : sig\n type t\n (** An explicit socket description, independent of the environment. *)\n\n type kind = Named_socket of string | Socket_path of string\n\n val named_socket : string -> t\n (** [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. *)\n\n val socket_path : string -> t\n (** [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. *)\n\n val kind : t -> kind\n\n val equal : t -> t -> bool\n (** Equality compares descriptions, not server instances or resolved paths. *)\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"An explicit socket description. Constructing an endpoint neither reads the environment nor starts a daemon. {!Source.t} adds the observed daemon and connection generation."},"slug":"libtmux-endpoint"},{"id":"Libtmux.Endpoint.equal","publicId":"Libtmux.Endpoint.equal","qualifiedName":"Libtmux.Endpoint.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":47,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Equality compares descriptions, not server instances or resolved paths. "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":47,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"Equality compares descriptions, not server instances or resolved paths."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-endpoint-equal"},{"id":"Libtmux.Endpoint.kind","publicId":"Libtmux.Endpoint.kind","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":45,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : t -> kind","source":{"file":"lib/libtmux.mli","line":45,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val kind : t -> kind","params":[{"name":"arg1","type":"t"}],"returns":"kind"}],"slug":"libtmux-endpoint-kind"},{"id":"Libtmux.Endpoint.kind:type","publicId":"Libtmux.Endpoint.kind:type","qualifiedName":"Libtmux.Endpoint.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type kind = Named_socket of string | Socket_path of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"type kind =\n | Named_socket of string \n | Socket_path of string ","params":[]}],"slug":"libtmux-endpoint-kind-type"},{"id":"Libtmux.Endpoint.kind:type.Named_socket","publicId":"Libtmux.Endpoint.kind:type.Named_socket","name":"Named_socket","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Named_socket of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Named_socket","slug":"libtmux-endpoint-kind-type-named_socket"},{"id":"Libtmux.Endpoint.kind:type.Socket_path","publicId":"Libtmux.Endpoint.kind:type.Socket_path","name":"Socket_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Socket_path of string","source":{"file":"lib/libtmux.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Endpoint.kind:type","variant":"tuple","qualifiedName":"Libtmux.Endpoint.Socket_path","slug":"libtmux-endpoint-kind-type-socket_path"},{"id":"Libtmux.Endpoint.named_socket","publicId":"Libtmux.Endpoint.named_socket","qualifiedName":"Libtmux.Endpoint.named_socket","name":"named_socket","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" [named_socket name] describes tmux's [-L name] endpoint. Raises\n [Invalid_argument] if [name] is empty or contains NUL or [/]. "],"declarations":[{"kind":"function","text":"val named_socket : string -> t","source":{"file":"lib/libtmux.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`named_socket name` describes tmux's `-L name` endpoint. Raises `Invalid_argument` if `name` is empty or contains NUL or `/`."},"signatures":[{"raw":"val named_socket : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-named_socket"},{"id":"Libtmux.Endpoint.pp","publicId":"Libtmux.Endpoint.pp","qualifiedName":"Libtmux.Endpoint.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Endpoint","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-endpoint-pp"},{"id":"Libtmux.Endpoint.socket_path","publicId":"Libtmux.Endpoint.socket_path","qualifiedName":"Libtmux.Endpoint.socket_path","name":"socket_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" [socket_path path] describes an absolute [-S path] endpoint. It does not\n check existence or resolve symbolic links. Raises [Invalid_argument] if\n [path] is relative, empty or contains NUL. "],"declarations":[{"kind":"function","text":"val socket_path : string -> t","source":{"file":"lib/libtmux.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"`socket_path path` describes an absolute `-S path` endpoint. It does not check existence or resolve symbolic links. Raises `Invalid_argument` if `path` is relative, empty or contains NUL."},"signatures":[{"raw":"val socket_path : string -> t","params":[{"name":"arg1","type":"string"}],"returns":"t"}],"slug":"libtmux-endpoint-socket_path"},{"id":"Libtmux.Endpoint.t","publicId":"Libtmux.Endpoint.t","qualifiedName":"Libtmux.Endpoint.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" An explicit socket description, independent of the environment. "],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Endpoint","doc":{"summary":"An explicit socket description, independent of the environment."},"signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-endpoint-t"},{"id":"Libtmux.Environment","publicId":"Libtmux.Environment","qualifiedName":"Libtmux.Environment","name":"Environment","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":793,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Environment : sig\n type scope = Global | Session of Session.target\n type value = Value of string | Removed\n type entry = { name : string; value : value }\n\n type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. *)\n\n val lookup : t -> string -> value option\n (** No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. *)\nend","source":{"file":"lib/libtmux.mli","line":793,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","slug":"libtmux-environment"},{"id":"Libtmux.Environment.entry","publicId":"Libtmux.Environment.entry","qualifiedName":"Libtmux.Environment.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { name : string; value : value }","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type entry = {\n name: string ;\n value: value }","params":[]}],"slug":"libtmux-environment-entry"},{"id":"Libtmux.Environment.entry.name","publicId":"Libtmux.Environment.entry.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment.entry","type":"string","qualifiedName":"Libtmux.Environment.name","slug":"libtmux-environment-entry-name"},{"id":"Libtmux.Environment.entry.value","publicId":"Libtmux.Environment.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":796,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value","source":{"file":"lib/libtmux.mli","line":796,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment.entry","type":"value","qualifiedName":"Libtmux.Environment.value","slug":"libtmux-environment-entry-value"},{"id":"Libtmux.Environment.lookup","publicId":"Libtmux.Environment.lookup","qualifiedName":"Libtmux.Environment.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":810,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" No I/O. [None] means absent from the selected table and visibility.\n [Removed] masks a global value; [Value \"\"] is an explicitly empty value.\n Names must be ASCII identifiers; values preserve non-NUL bytes. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> value option","source":{"file":"lib/libtmux.mli","line":810,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment","doc":{"summary":"No I/O. `None` means absent from the selected table and visibility. `Removed` masks a global value; `Value \"\"` is an explicitly empty value. Names must be ASCII identifiers; values preserve non-NUL bytes."},"signatures":[{"raw":"val lookup : t -> string -> value option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"value option"}],"slug":"libtmux-environment-lookup"},{"id":"Libtmux.Environment.scope","publicId":"Libtmux.Environment.scope","qualifiedName":"Libtmux.Environment.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Global | Session of Session.target","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type scope =\n | Global \n | Session of Session.target ","params":[]}],"slug":"libtmux-environment-scope"},{"id":"Libtmux.Environment.scope.Global","publicId":"Libtmux.Environment.scope.Global","name":"Global","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Global","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment.scope","variant":"unit","qualifiedName":"Libtmux.Environment.Global","slug":"libtmux-environment-scope-global"},{"id":"Libtmux.Environment.scope.Session","publicId":"Libtmux.Environment.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment.scope","variant":"tuple","qualifiedName":"Libtmux.Environment.Session","slug":"libtmux-environment-scope-session"},{"id":"Libtmux.Environment.t","publicId":"Libtmux.Environment.t","qualifiedName":"Libtmux.Environment.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":798,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" One captured environment table, in tmux order. [hidden] selects hidden\n variables exclusively. Session tables contain local entries, including\n removal markers; they do not merge the global environment. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n hidden : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":798,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment","doc":{"summary":"One captured environment table, in tmux order. `hidden` selects hidden variables exclusively. Session tables contain local entries, including removal markers; they do not merge the global environment."},"signatures":[{"raw":"type t =\n {\n source: Source.t ;\n scope: scope ;\n hidden: bool ;\n entries: entry Iarray.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-environment-t"},{"id":"Libtmux.Environment.t.entries","publicId":"Libtmux.Environment.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":802,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":802,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Environment.entries","slug":"libtmux-environment-t-entries"},{"id":"Libtmux.Environment.t.finished_at_ns","publicId":"Libtmux.Environment.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":804,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":804,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.finished_at_ns","slug":"libtmux-environment-t-finished_at_ns"},{"id":"Libtmux.Environment.t.hidden","publicId":"Libtmux.Environment.t.hidden","name":"hidden","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":801,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hidden : bool;","source":{"file":"lib/libtmux.mli","line":801,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment.t","type":"bool","qualifiedName":"Libtmux.Environment.hidden","slug":"libtmux-environment-t-hidden"},{"id":"Libtmux.Environment.t.scope","publicId":"Libtmux.Environment.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":800,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":800,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment.t","type":"scope","qualifiedName":"Libtmux.Environment.scope","slug":"libtmux-environment-t-scope"},{"id":"Libtmux.Environment.t.source","publicId":"Libtmux.Environment.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":799,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":799,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment.t","type":"Source.t","qualifiedName":"Libtmux.Environment.source","slug":"libtmux-environment-t-source"},{"id":"Libtmux.Environment.t.started_at_ns","publicId":"Libtmux.Environment.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":803,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":803,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment.t","type":"int64","qualifiedName":"Libtmux.Environment.started_at_ns","slug":"libtmux-environment-t-started_at_ns"},{"id":"Libtmux.Environment.value","publicId":"Libtmux.Environment.value","qualifiedName":"Libtmux.Environment.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Value of string | Removed","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment","signatures":[{"raw":"type value =\n | Value of string \n | Removed ","params":[]}],"slug":"libtmux-environment-value"},{"id":"Libtmux.Environment.value.Removed","publicId":"Libtmux.Environment.value.Removed","name":"Removed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Removed","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment.value","variant":"unit","qualifiedName":"Libtmux.Environment.Removed","slug":"libtmux-environment-value-removed"},{"id":"Libtmux.Environment.value.Value","publicId":"Libtmux.Environment.value.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":795,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Value of string","source":{"file":"lib/libtmux.mli","line":795,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Environment.value","variant":"tuple","qualifiedName":"Libtmux.Environment.Value","slug":"libtmux-environment-value-value"},{"id":"Libtmux.Error","publicId":"Libtmux.Error","qualifiedName":"Libtmux.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Expected input, capture, capability and transport failures. Cancellation\n belongs to the chosen backend and is not converted into an ordinary error.\n"],"declarations":[{"kind":"module","text":"module Error : sig\n type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"Expected input, capture, capability and transport failures. Cancellation belongs to the chosen backend and is not converted into an ordinary error."},"slug":"libtmux-error"},{"id":"Libtmux.Error.pp","publicId":"Libtmux.Error.pp","qualifiedName":"Libtmux.Error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":78,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":78,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-error-pp"},{"id":"Libtmux.Error.t","publicId":"Libtmux.Error.t","qualifiedName":"Libtmux.Error.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Invalid_input of string\n | Malformed_data of string\n | Capture_raced of string\n | Unsupported_version of string\n | Unsupported_binding of string\n | Unsupported_capture_hooks\n | Unsupported of string\n | Closed\n | Disconnected of string\n | Filesystem of { operation : string; message : string }\n | Wrong_domain\n | Busy\n | Capacity of { resource : string; limit : int }\n | Stale_target\n | No_such_entity of { kind : string; id : string }\n | Command_failed of { command : string; message : string }\n | Deadline_exceeded\n | Not_started\n | Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error","signatures":[{"raw":"type t =\n | Invalid_input of string \n | Malformed_data of string \n | Capture_raced of string \n | Unsupported_version of string \n | Unsupported_binding of string \n | Unsupported_capture_hooks \n | Unsupported of string \n | Closed \n | Disconnected of string \n | Filesystem of {\n operation: string ;\n message: string } \n | Wrong_domain \n | Busy \n | Capacity of {\n resource: string ;\n limit: int } \n | Stale_target \n | No_such_entity of {\n kind: string ;\n id: string } \n | Command_failed of {\n command: string ;\n message: string } \n | Deadline_exceeded \n | Not_started \n | Outcome_unknown of string ","params":[]}],"slug":"libtmux-error-t"},{"id":"Libtmux.Error.t.Busy","publicId":"Libtmux.Error.t.Busy","name":"Busy","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Busy","source":{"file":"lib/libtmux.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Busy","slug":"libtmux-error-t-busy"},{"id":"Libtmux.Error.t.Capacity","publicId":"Libtmux.Error.t.Capacity","name":"Capacity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capacity of { resource : string; limit : int }","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Capacity","slug":"libtmux-error-t-capacity"},{"id":"Libtmux.Error.t.Capacity.limit","publicId":"Libtmux.Error.t.Capacity.limit","name":"limit","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"limit : int","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t.Capacity","type":"int","qualifiedName":"Libtmux.Error.limit","slug":"libtmux-error-t-capacity-limit"},{"id":"Libtmux.Error.t.Capacity.resource","publicId":"Libtmux.Error.t.Capacity.resource","name":"resource","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"resource : string;","source":{"file":"lib/libtmux.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t.Capacity","type":"string","qualifiedName":"Libtmux.Error.resource","slug":"libtmux-error-t-capacity-resource"},{"id":"Libtmux.Error.t.Capture_raced","publicId":"Libtmux.Error.t.Capture_raced","name":"Capture_raced","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Capture_raced of string","source":{"file":"lib/libtmux.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Capture_raced","slug":"libtmux-error-t-capture_raced"},{"id":"Libtmux.Error.t.Closed","publicId":"Libtmux.Error.t.Closed","name":"Closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":65,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Closed","source":{"file":"lib/libtmux.mli","line":65,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Closed","slug":"libtmux-error-t-closed"},{"id":"Libtmux.Error.t.Command_failed","publicId":"Libtmux.Error.t.Command_failed","name":"Command_failed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command_failed of { command : string; message : string }","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Command_failed","slug":"libtmux-error-t-command_failed"},{"id":"Libtmux.Error.t.Command_failed.command","publicId":"Libtmux.Error.t.Command_failed.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : string;","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.command","slug":"libtmux-error-t-command_failed-command"},{"id":"Libtmux.Error.t.Command_failed.message","publicId":"Libtmux.Error.t.Command_failed.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t.Command_failed","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-command_failed-message"},{"id":"Libtmux.Error.t.Deadline_exceeded","publicId":"Libtmux.Error.t.Deadline_exceeded","name":"Deadline_exceeded","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Deadline_exceeded","source":{"file":"lib/libtmux.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Deadline_exceeded","slug":"libtmux-error-t-deadline_exceeded"},{"id":"Libtmux.Error.t.Disconnected","publicId":"Libtmux.Error.t.Disconnected","name":"Disconnected","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Disconnected of string","source":{"file":"lib/libtmux.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Disconnected","slug":"libtmux-error-t-disconnected"},{"id":"Libtmux.Error.t.Filesystem","publicId":"Libtmux.Error.t.Filesystem","name":"Filesystem","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Filesystem of { operation : string; message : string }","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.Filesystem","slug":"libtmux-error-t-filesystem"},{"id":"Libtmux.Error.t.Filesystem.message","publicId":"Libtmux.Error.t.Filesystem.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.message","slug":"libtmux-error-t-filesystem-message"},{"id":"Libtmux.Error.t.Filesystem.operation","publicId":"Libtmux.Error.t.Filesystem.operation","name":"operation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":67,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation : string;","source":{"file":"lib/libtmux.mli","line":67,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t.Filesystem","type":"string","qualifiedName":"Libtmux.Error.operation","slug":"libtmux-error-t-filesystem-operation"},{"id":"Libtmux.Error.t.Invalid_input","publicId":"Libtmux.Error.t.Invalid_input","name":"Invalid_input","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Invalid_input of string","source":{"file":"lib/libtmux.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Invalid_input","slug":"libtmux-error-t-invalid_input"},{"id":"Libtmux.Error.t.Malformed_data","publicId":"Libtmux.Error.t.Malformed_data","name":"Malformed_data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Malformed_data of string","source":{"file":"lib/libtmux.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Malformed_data","slug":"libtmux-error-t-malformed_data"},{"id":"Libtmux.Error.t.No_such_entity","publicId":"Libtmux.Error.t.No_such_entity","name":"No_such_entity","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| No_such_entity of { kind : string; id : string }","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"struct","qualifiedName":"Libtmux.Error.No_such_entity","slug":"libtmux-error-t-no_such_entity"},{"id":"Libtmux.Error.t.No_such_entity.id","publicId":"Libtmux.Error.t.No_such_entity.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : string","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.id","slug":"libtmux-error-t-no_such_entity-id"},{"id":"Libtmux.Error.t.No_such_entity.kind","publicId":"Libtmux.Error.t.No_such_entity.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : string;","source":{"file":"lib/libtmux.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t.No_such_entity","type":"string","qualifiedName":"Libtmux.Error.kind","slug":"libtmux-error-t-no_such_entity-kind"},{"id":"Libtmux.Error.t.Not_started","publicId":"Libtmux.Error.t.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"lib/libtmux.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Not_started","slug":"libtmux-error-t-not_started"},{"id":"Libtmux.Error.t.Outcome_unknown","publicId":"Libtmux.Error.t.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":76,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of string","source":{"file":"lib/libtmux.mli","line":76,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Outcome_unknown","slug":"libtmux-error-t-outcome_unknown"},{"id":"Libtmux.Error.t.Stale_target","publicId":"Libtmux.Error.t.Stale_target","name":"Stale_target","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale_target","source":{"file":"lib/libtmux.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Stale_target","slug":"libtmux-error-t-stale_target"},{"id":"Libtmux.Error.t.Unsupported","publicId":"Libtmux.Error.t.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported of string","source":{"file":"lib/libtmux.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported","slug":"libtmux-error-t-unsupported"},{"id":"Libtmux.Error.t.Unsupported_binding","publicId":"Libtmux.Error.t.Unsupported_binding","name":"Unsupported_binding","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":62,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_binding of string","source":{"file":"lib/libtmux.mli","line":62,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_binding","slug":"libtmux-error-t-unsupported_binding"},{"id":"Libtmux.Error.t.Unsupported_capture_hooks","publicId":"Libtmux.Error.t.Unsupported_capture_hooks","name":"Unsupported_capture_hooks","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_capture_hooks","source":{"file":"lib/libtmux.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Unsupported_capture_hooks","slug":"libtmux-error-t-unsupported_capture_hooks"},{"id":"Libtmux.Error.t.Unsupported_version","publicId":"Libtmux.Error.t.Unsupported_version","name":"Unsupported_version","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_version of string","source":{"file":"lib/libtmux.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"tuple","qualifiedName":"Libtmux.Error.Unsupported_version","slug":"libtmux-error-t-unsupported_version"},{"id":"Libtmux.Error.t.Wrong_domain","publicId":"Libtmux.Error.t.Wrong_domain","name":"Wrong_domain","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_domain","source":{"file":"lib/libtmux.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Error.t","variant":"unit","qualifiedName":"Libtmux.Error.Wrong_domain","slug":"libtmux-error-t-wrong_domain"},{"id":"Libtmux.Expr","publicId":"Libtmux.Expr","qualifiedName":"Libtmux.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":574,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Inspectable predicates whose entity and operand types are checked by the\n compiler. Combine native closures separately with [Seq.filter]. Evaluation\n follows captured relationships without acquisition or hidden caches. "],"declarations":[{"kind":"module","text":"module Expr : sig\n type 'entity t\n\n val all : 'a t list -> 'a t\n (** Boolean conjunction; the empty conjunction is true. *)\n\n val any : 'a t list -> 'a t\n (** Boolean disjunction; the empty disjunction is false. *)\n\n val not_ : 'a t -> 'a t\n\n module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end\n\n module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end\n\n module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end\n\n module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end\n\n val compile : 'a t -> 'a -> bool\n (** Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n *)\n\n val pp : Format.formatter -> 'a t -> unit\n val describe : 'a t -> string\n\n type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison\n\n type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view\n\n val view : 'a t -> 'a view\n (** Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. *)\nend","source":{"file":"lib/libtmux.mli","line":574,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"Inspectable predicates whose entity and operand types are checked by the compiler. Combine native closures separately with `Seq.filter`. Evaluation follows captured relationships without acquisition or hidden caches."},"slug":"libtmux-expr"},{"id":"Libtmux.Expr.Bool","publicId":"Libtmux.Expr.Bool","qualifiedName":"Libtmux.Expr.Bool","name":"Bool","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":585,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Bool : sig\n val equal : ('a, bool) Field.t -> bool -> 'a t\n val is_true : ('a, bool) Field.t -> 'a t\n val is_false : ('a, bool) Field.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":585,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-bool"},{"id":"Libtmux.Expr.Bool.equal","publicId":"Libtmux.Expr.Bool.equal","qualifiedName":"Libtmux.Expr.Bool.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":586,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, bool) Field.t -> bool -> 'a t","source":{"file":"lib/libtmux.mli","line":586,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val equal : ('a, bool) Field.t -> bool -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"},{"name":"arg2","type":"bool"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-equal"},{"id":"Libtmux.Expr.Bool.is_false","publicId":"Libtmux.Expr.Bool.is_false","qualifiedName":"Libtmux.Expr.Bool.is_false","name":"is_false","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":588,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_false : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":588,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_false : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_false"},{"id":"Libtmux.Expr.Bool.is_true","publicId":"Libtmux.Expr.Bool.is_true","qualifiedName":"Libtmux.Expr.Bool.is_true","name":"is_true","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":587,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_true : ('a, bool) Field.t -> 'a t","source":{"file":"lib/libtmux.mli","line":587,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Bool","signatures":[{"raw":"val is_true : ('a, bool) Field.t -> 'a t","params":[{"name":"arg1","type":"('a, bool) Field.t"}],"returns":"'a t"}],"slug":"libtmux-expr-bool-is_true"},{"id":"Libtmux.Expr.Int","publicId":"Libtmux.Expr.Int","qualifiedName":"Libtmux.Expr.Int","name":"Int","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":591,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Int : sig\n val equal : ('a, int) Field.t -> int -> 'a t\n val lt : ('a, int) Field.t -> int -> 'a t\n val le : ('a, int) Field.t -> int -> 'a t\n val gt : ('a, int) Field.t -> int -> 'a t\n val ge : ('a, int) Field.t -> int -> 'a t\n val is_in : ('a, int) Field.t -> int list -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":591,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-int"},{"id":"Libtmux.Expr.Int.equal","publicId":"Libtmux.Expr.Int.equal","qualifiedName":"Libtmux.Expr.Int.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":592,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":592,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val equal : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-equal"},{"id":"Libtmux.Expr.Int.ge","publicId":"Libtmux.Expr.Int.ge","qualifiedName":"Libtmux.Expr.Int.ge","name":"ge","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":596,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ge : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":596,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val ge : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-ge"},{"id":"Libtmux.Expr.Int.gt","publicId":"Libtmux.Expr.Int.gt","qualifiedName":"Libtmux.Expr.Int.gt","name":"gt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":595,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val gt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":595,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val gt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-gt"},{"id":"Libtmux.Expr.Int.is_in","publicId":"Libtmux.Expr.Int.is_in","qualifiedName":"Libtmux.Expr.Int.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":597,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_in : ('a, int) Field.t -> int list -> 'a t","source":{"file":"lib/libtmux.mli","line":597,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val is_in : ('a, int) Field.t -> int list -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int list"}],"returns":"'a t"}],"slug":"libtmux-expr-int-is_in"},{"id":"Libtmux.Expr.Int.le","publicId":"Libtmux.Expr.Int.le","qualifiedName":"Libtmux.Expr.Int.le","name":"le","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":594,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val le : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":594,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val le : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-le"},{"id":"Libtmux.Expr.Int.lt","publicId":"Libtmux.Expr.Int.lt","qualifiedName":"Libtmux.Expr.Int.lt","name":"lt","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":593,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val lt : ('a, int) Field.t -> int -> 'a t","source":{"file":"lib/libtmux.mli","line":593,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Int","signatures":[{"raw":"val lt : ('a, int) Field.t -> int -> 'a t","params":[{"name":"arg1","type":"('a, int) Field.t"},{"name":"arg2","type":"int"}],"returns":"'a t"}],"slug":"libtmux-expr-int-lt"},{"id":"Libtmux.Expr.Rel","publicId":"Libtmux.Expr.Rel","qualifiedName":"Libtmux.Expr.Rel","name":"Rel","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":611,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rel : sig\n val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n\n val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t\n (** On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. *)\n\n val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t\n val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t\n val is_absent : ('a, 'b) Relation.Optional.t -> 'a t\n end","source":{"file":"lib/libtmux.mli","line":611,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-rel"},{"id":"Libtmux.Expr.Rel.all","publicId":"Libtmux.Expr.Rel.all","qualifiedName":"Libtmux.Expr.Rel.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":613,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":613,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val all : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-all"},{"id":"Libtmux.Expr.Rel.any","publicId":"Libtmux.Expr.Rel.any","qualifiedName":"Libtmux.Expr.Rel.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":612,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":612,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val any : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-any"},{"id":"Libtmux.Expr.Rel.exists","publicId":"Libtmux.Expr.Rel.exists","qualifiedName":"Libtmux.Expr.Rel.exists","name":"exists","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val exists : ('a, 'b) Relation.Optional.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-exists"},{"id":"Libtmux.Expr.Rel.is","publicId":"Libtmux.Expr.Rel.is","qualifiedName":"Libtmux.Expr.Rel.is","name":"is","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":619,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":619,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is : ('a, 'b) Relation.One.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.One.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is"},{"id":"Libtmux.Expr.Rel.is_absent","publicId":"Libtmux.Expr.Rel.is_absent","qualifiedName":"Libtmux.Expr.Rel.is_absent","name":"is_absent","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":621,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","source":{"file":"lib/libtmux.mli","line":621,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Rel","signatures":[{"raw":"val is_absent : ('a, 'b) Relation.Optional.t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Optional.t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-is_absent"},{"id":"Libtmux.Expr.Rel.none","publicId":"Libtmux.Expr.Rel.none","qualifiedName":"Libtmux.Expr.Rel.none","name":"none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":615,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" On empty relations, [any] is false; [all] and [none] are true. One child\n must satisfy the complete nested expression. "],"declarations":[{"kind":"function","text":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","source":{"file":"lib/libtmux.mli","line":615,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Rel","doc":{"summary":"On empty relations, `any` is false; `all` and `none` are true. One child must satisfy the complete nested expression."},"signatures":[{"raw":"val none : ('a, 'b) Relation.Many.t -> 'b t -> 'a t","params":[{"name":"arg1","type":"('a, 'b) Relation.Many.t"},{"name":"arg2","type":"'b t"}],"returns":"'a t"}],"slug":"libtmux-expr-rel-none"},{"id":"Libtmux.Expr.Text","publicId":"Libtmux.Expr.Text","qualifiedName":"Libtmux.Expr.Text","name":"Text","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":600,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Text : sig\n val equal : ('a, string) Field.t -> string -> 'a t\n val starts_with : ('a, string) Field.t -> string -> 'a t\n val ends_with : ('a, string) Field.t -> string -> 'a t\n val contains : ('a, string) Field.t -> string -> 'a t\n\n val is_in : ('a, string) Field.t -> string list -> 'a t\n (** Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. *)\n end","source":{"file":"lib/libtmux.mli","line":600,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","slug":"libtmux-expr-text"},{"id":"Libtmux.Expr.Text.contains","publicId":"Libtmux.Expr.Text.contains","qualifiedName":"Libtmux.Expr.Text.contains","name":"contains","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":604,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val contains : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":604,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val contains : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-contains"},{"id":"Libtmux.Expr.Text.ends_with","publicId":"Libtmux.Expr.Text.ends_with","qualifiedName":"Libtmux.Expr.Text.ends_with","name":"ends_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":603,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val ends_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":603,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val ends_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-ends_with"},{"id":"Libtmux.Expr.Text.equal","publicId":"Libtmux.Expr.Text.equal","qualifiedName":"Libtmux.Expr.Text.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":601,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":601,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val equal : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-equal"},{"id":"Libtmux.Expr.Text.is_in","publicId":"Libtmux.Expr.Text.is_in","qualifiedName":"Libtmux.Expr.Text.is_in","name":"is_in","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":606,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Comparisons use exact bytes, without case folding or normalization. The\n empty substring matches every string. "],"declarations":[{"kind":"function","text":"val is_in : ('a, string) Field.t -> string list -> 'a t","source":{"file":"lib/libtmux.mli","line":606,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Text","doc":{"summary":"Comparisons use exact bytes, without case folding or normalization. The empty substring matches every string."},"signatures":[{"raw":"val is_in : ('a, string) Field.t -> string list -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string list"}],"returns":"'a t"}],"slug":"libtmux-expr-text-is_in"},{"id":"Libtmux.Expr.Text.starts_with","publicId":"Libtmux.Expr.Text.starts_with","qualifiedName":"Libtmux.Expr.Text.starts_with","name":"starts_with","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":602,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val starts_with : ('a, string) Field.t -> string -> 'a t","source":{"file":"lib/libtmux.mli","line":602,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.Text","signatures":[{"raw":"val starts_with : ('a, string) Field.t -> string -> 'a t","params":[{"name":"arg1","type":"('a, string) Field.t"},{"name":"arg2","type":"string"}],"returns":"'a t"}],"slug":"libtmux-expr-text-starts_with"},{"id":"Libtmux.Expr.all","publicId":"Libtmux.Expr.all","qualifiedName":"Libtmux.Expr.all","name":"all","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":577,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Boolean conjunction; the empty conjunction is true. "],"declarations":[{"kind":"function","text":"val all : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":577,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean conjunction; the empty conjunction is true."},"signatures":[{"raw":"val all : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-all"},{"id":"Libtmux.Expr.any","publicId":"Libtmux.Expr.any","qualifiedName":"Libtmux.Expr.any","name":"any","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":580,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Boolean disjunction; the empty disjunction is false. "],"declarations":[{"kind":"function","text":"val any : 'a t list -> 'a t","source":{"file":"lib/libtmux.mli","line":580,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","doc":{"summary":"Boolean disjunction; the empty disjunction is false."},"signatures":[{"raw":"val any : 'a t list -> 'a t","params":[{"name":"arg1","type":"'a t list"}],"returns":"'a t"}],"slug":"libtmux-expr-any"},{"id":"Libtmux.Expr.comparison","publicId":"Libtmux.Expr.comparison","qualifiedName":"Libtmux.Expr.comparison","name":"comparison","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":631,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ comparison =\n | Bool_equal : bool -> bool comparison\n | Int_equal : int -> int comparison\n | Int_lt : int -> int comparison\n | Int_le : int -> int comparison\n | Int_gt : int -> int comparison\n | Int_ge : int -> int comparison\n | Int_in : int list -> int comparison\n | Text_equal : string -> string comparison\n | Text_starts_with : string -> string comparison\n | Text_ends_with : string -> string comparison\n | Text_contains : string -> string comparison\n | Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":631,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type _ comparison =\n | Bool_equal: bool -> bool comparison \n | Int_equal: int -> int comparison \n | Int_lt: int -> int comparison \n | Int_le: int -> int comparison \n | Int_gt: int -> int comparison \n | Int_ge: int -> int comparison \n | Int_in: int list -> int comparison \n | Text_equal: string -> string comparison \n | Text_starts_with: string -> string comparison \n | Text_ends_with: string -> string comparison \n | Text_contains: string -> string comparison \n | Text_in: string list -> string comparison ","params":[]}],"slug":"libtmux-expr-comparison"},{"id":"Libtmux.Expr.comparison.Bool_equal","publicId":"Libtmux.Expr.comparison.Bool_equal","name":"Bool_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":632,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool_equal : bool -> bool comparison","source":{"file":"lib/libtmux.mli","line":632,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Bool_equal","slug":"libtmux-expr-comparison-bool_equal"},{"id":"Libtmux.Expr.comparison.Int_equal","publicId":"Libtmux.Expr.comparison.Int_equal","name":"Int_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":633,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_equal : int -> int comparison","source":{"file":"lib/libtmux.mli","line":633,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_equal","slug":"libtmux-expr-comparison-int_equal"},{"id":"Libtmux.Expr.comparison.Int_ge","publicId":"Libtmux.Expr.comparison.Int_ge","name":"Int_ge","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":637,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_ge : int -> int comparison","source":{"file":"lib/libtmux.mli","line":637,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_ge","slug":"libtmux-expr-comparison-int_ge"},{"id":"Libtmux.Expr.comparison.Int_gt","publicId":"Libtmux.Expr.comparison.Int_gt","name":"Int_gt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":636,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_gt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":636,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_gt","slug":"libtmux-expr-comparison-int_gt"},{"id":"Libtmux.Expr.comparison.Int_in","publicId":"Libtmux.Expr.comparison.Int_in","name":"Int_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":638,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_in : int list -> int comparison","source":{"file":"lib/libtmux.mli","line":638,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_in","slug":"libtmux-expr-comparison-int_in"},{"id":"Libtmux.Expr.comparison.Int_le","publicId":"Libtmux.Expr.comparison.Int_le","name":"Int_le","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_le : int -> int comparison","source":{"file":"lib/libtmux.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_le","slug":"libtmux-expr-comparison-int_le"},{"id":"Libtmux.Expr.comparison.Int_lt","publicId":"Libtmux.Expr.comparison.Int_lt","name":"Int_lt","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":634,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int_lt : int -> int comparison","source":{"file":"lib/libtmux.mli","line":634,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Int_lt","slug":"libtmux-expr-comparison-int_lt"},{"id":"Libtmux.Expr.comparison.Text_contains","publicId":"Libtmux.Expr.comparison.Text_contains","name":"Text_contains","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":642,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_contains : string -> string comparison","source":{"file":"lib/libtmux.mli","line":642,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_contains","slug":"libtmux-expr-comparison-text_contains"},{"id":"Libtmux.Expr.comparison.Text_ends_with","publicId":"Libtmux.Expr.comparison.Text_ends_with","name":"Text_ends_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":641,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_ends_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":641,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_ends_with","slug":"libtmux-expr-comparison-text_ends_with"},{"id":"Libtmux.Expr.comparison.Text_equal","publicId":"Libtmux.Expr.comparison.Text_equal","name":"Text_equal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":639,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_equal : string -> string comparison","source":{"file":"lib/libtmux.mli","line":639,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_equal","slug":"libtmux-expr-comparison-text_equal"},{"id":"Libtmux.Expr.comparison.Text_in","publicId":"Libtmux.Expr.comparison.Text_in","name":"Text_in","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":643,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_in : string list -> string comparison","source":{"file":"lib/libtmux.mli","line":643,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_in","slug":"libtmux-expr-comparison-text_in"},{"id":"Libtmux.Expr.comparison.Text_starts_with","publicId":"Libtmux.Expr.comparison.Text_starts_with","name":"Text_starts_with","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":640,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text_starts_with : string -> string comparison","source":{"file":"lib/libtmux.mli","line":640,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.comparison","variant":"tuple","qualifiedName":"Libtmux.Expr.Text_starts_with","slug":"libtmux-expr-comparison-text_starts_with"},{"id":"Libtmux.Expr.compile","publicId":"Libtmux.Expr.compile","qualifiedName":"Libtmux.Expr.compile","name":"compile","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":624,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Prepare a reusable predicate. Compilation and evaluation perform no I/O.\n "],"declarations":[{"kind":"function","text":"val compile : 'a t -> 'a -> bool","source":{"file":"lib/libtmux.mli","line":624,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","doc":{"summary":"Prepare a reusable predicate. Compilation and evaluation perform no I/O."},"signatures":[{"raw":"val compile : 'a t -> 'a -> bool","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"'a"}],"returns":"bool"}],"slug":"libtmux-expr-compile"},{"id":"Libtmux.Expr.describe","publicId":"Libtmux.Expr.describe","qualifiedName":"Libtmux.Expr.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":629,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : 'a t -> string","source":{"file":"lib/libtmux.mli","line":629,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val describe : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-expr-describe"},{"id":"Libtmux.Expr.not_","publicId":"Libtmux.Expr.not_","qualifiedName":"Libtmux.Expr.not_","name":"not_","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":583,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val not_ : 'a t -> 'a t","source":{"file":"lib/libtmux.mli","line":583,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val not_ : 'a t -> 'a t","params":[{"name":"arg1","type":"'a t"}],"returns":"'a t"}],"slug":"libtmux-expr-not_"},{"id":"Libtmux.Expr.pp","publicId":"Libtmux.Expr.pp","qualifiedName":"Libtmux.Expr.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":628,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> 'a t -> unit","source":{"file":"lib/libtmux.mli","line":628,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"val pp : Format.formatter -> 'a t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"'a t"}],"returns":"unit"}],"slug":"libtmux-expr-pp"},{"id":"Libtmux.Expr.t","publicId":"Libtmux.Expr.t","qualifiedName":"Libtmux.Expr.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":575,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'entity t","source":{"file":"lib/libtmux.mli","line":575,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'entity t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-expr-t"},{"id":"Libtmux.Expr.view","publicId":"Libtmux.Expr.view","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":657,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Typed read-only inspection for codecs and planners. A view cannot add\n custom accessors or closures to an expression. "],"declarations":[{"kind":"function","text":"val view : 'a t -> 'a view","source":{"file":"lib/libtmux.mli","line":657,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","doc":{"summary":"Typed read-only inspection for codecs and planners. A view cannot add custom accessors or closures to an expression."},"signatures":[{"raw":"val view : 'a t -> 'a view","params":[{"name":"arg1","type":"'a t"}],"returns":"'a view"}],"slug":"libtmux-expr-view"},{"id":"Libtmux.Expr.view:type","publicId":"Libtmux.Expr.view:type","qualifiedName":"Libtmux.Expr.view","name":"view","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":645,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a view =\n | Compare : ('a, 'v) Field.t * 'v comparison -> 'a view\n | All of 'a t list\n | Any of 'a t list\n | Not of 'a t\n | Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view\n | Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view\n | Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view\n | Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":645,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr","signatures":[{"raw":"type 'a view =\n | Compare: ('a, 'v) Field.t * 'v comparison -> 'a view \n | All of 'a t list \n | Any of 'a t list \n | Not of 'a t \n | Related_any: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_all: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_none: ('a, 'b) Relation.Many.t * 'b t -> 'a view \n | Related_one: ('a, 'b) Relation.One.t * 'b t -> 'a view \n | Related_optional: ('a, 'b) Relation.Optional.t * 'b t -> 'a view \n | Absent: ('a, 'b) Relation.Optional.t -> 'a view ","params":[]}],"slug":"libtmux-expr-view-type"},{"id":"Libtmux.Expr.view:type.Absent","publicId":"Libtmux.Expr.view:type.Absent","name":"Absent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":655,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Absent : ('a, 'b) Relation.Optional.t -> 'a view","source":{"file":"lib/libtmux.mli","line":655,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Absent","slug":"libtmux-expr-view-type-absent"},{"id":"Libtmux.Expr.view:type.All","publicId":"Libtmux.Expr.view:type.All","name":"All","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":647,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| All of 'a t list","source":{"file":"lib/libtmux.mli","line":647,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.All","slug":"libtmux-expr-view-type-all"},{"id":"Libtmux.Expr.view:type.Any","publicId":"Libtmux.Expr.view:type.Any","name":"Any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":648,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Any of 'a t list","source":{"file":"lib/libtmux.mli","line":648,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Any","slug":"libtmux-expr-view-type-any"},{"id":"Libtmux.Expr.view:type.Compare","publicId":"Libtmux.Expr.view:type.Compare","name":"Compare","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":646,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Compare : ('a, 'v) Field.t * 'v comparison -> 'a view","source":{"file":"lib/libtmux.mli","line":646,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Compare","slug":"libtmux-expr-view-type-compare"},{"id":"Libtmux.Expr.view:type.Not","publicId":"Libtmux.Expr.view:type.Not","name":"Not","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":649,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not of 'a t","source":{"file":"lib/libtmux.mli","line":649,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Not","slug":"libtmux-expr-view-type-not"},{"id":"Libtmux.Expr.view:type.Related_all","publicId":"Libtmux.Expr.view:type.Related_all","name":"Related_all","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":651,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_all : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":651,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_all","slug":"libtmux-expr-view-type-related_all"},{"id":"Libtmux.Expr.view:type.Related_any","publicId":"Libtmux.Expr.view:type.Related_any","name":"Related_any","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":650,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_any : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":650,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_any","slug":"libtmux-expr-view-type-related_any"},{"id":"Libtmux.Expr.view:type.Related_none","publicId":"Libtmux.Expr.view:type.Related_none","name":"Related_none","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":652,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_none : ('a, 'b) Relation.Many.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":652,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_none","slug":"libtmux-expr-view-type-related_none"},{"id":"Libtmux.Expr.view:type.Related_one","publicId":"Libtmux.Expr.view:type.Related_one","name":"Related_one","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":653,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_one : ('a, 'b) Relation.One.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":653,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_one","slug":"libtmux-expr-view-type-related_one"},{"id":"Libtmux.Expr.view:type.Related_optional","publicId":"Libtmux.Expr.view:type.Related_optional","name":"Related_optional","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":654,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Related_optional : ('a, 'b) Relation.Optional.t * 'b t -> 'a view","source":{"file":"lib/libtmux.mli","line":654,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Expr.view:type","variant":"tuple","qualifiedName":"Libtmux.Expr.Related_optional","slug":"libtmux-expr-view-type-related_optional"},{"id":"Libtmux.Field","publicId":"Libtmux.Field","qualifiedName":"Libtmux.Field","name":"Field","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":143,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Sealed scalar descriptors carrying entity and value types. Descriptors read\n captured data and provide trusted identities for {!Expr} values. Use\n {!Relation} for graph edges. "],"declarations":[{"kind":"module","text":"module Field : sig\n type _ kind = Bool : bool kind | Int : int kind | Text : string kind\n type ('entity, 'value) t\n type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed\n\n val name : ('entity, 'value) t -> string\n val kind : ('entity, 'value) t -> 'value kind\n\n val get : ('entity, 'value) t -> 'entity -> 'value\n (** Canonical descriptors are sealed. Accessing a field reads captured data.\n *)\nend","source":{"file":"lib/libtmux.mli","line":143,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"Sealed scalar descriptors carrying entity and value types. Descriptors read captured data and provide trusted identities for {!Expr} values. Use {!Relation} for graph edges."},"slug":"libtmux-field"},{"id":"Libtmux.Field.get","publicId":"Libtmux.Field.get","qualifiedName":"Libtmux.Field.get","name":"get","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Canonical descriptors are sealed. Accessing a field reads captured data.\n "],"declarations":[{"kind":"function","text":"val get : ('entity, 'value) t -> 'entity -> 'value","source":{"file":"lib/libtmux.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Field","doc":{"summary":"Canonical descriptors are sealed. Accessing a field reads captured data."},"signatures":[{"raw":"val get : ('entity, 'value) t -> 'entity -> 'value","params":[{"name":"arg1","type":"('entity, 'value) t"},{"name":"arg2","type":"'entity"}],"returns":"'value"}],"slug":"libtmux-field-get"},{"id":"Libtmux.Field.kind","publicId":"Libtmux.Field.kind","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val kind : ('entity, 'value) t -> 'value kind","source":{"file":"lib/libtmux.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val kind : ('entity, 'value) t -> 'value kind","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"'value kind"}],"slug":"libtmux-field-kind"},{"id":"Libtmux.Field.kind:type","publicId":"Libtmux.Field.kind:type","qualifiedName":"Libtmux.Field.kind","name":"kind","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type _ kind = Bool : bool kind | Int : int kind | Text : string kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type _ kind =\n | Bool: bool kind \n | Int: int kind \n | Text: string kind ","params":[]}],"slug":"libtmux-field-kind-type"},{"id":"Libtmux.Field.kind:type.Bool","publicId":"Libtmux.Field.kind:type.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool : bool kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Bool","slug":"libtmux-field-kind-type-bool"},{"id":"Libtmux.Field.kind:type.Int","publicId":"Libtmux.Field.kind:type.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int : int kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Int","slug":"libtmux-field-kind-type-int"},{"id":"Libtmux.Field.kind:type.Text","publicId":"Libtmux.Field.kind:type.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":144,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text : string kind","source":{"file":"lib/libtmux.mli","line":144,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Field.kind:type","variant":"unit","qualifiedName":"Libtmux.Field.Text","slug":"libtmux-field-kind-type-text"},{"id":"Libtmux.Field.name","publicId":"Libtmux.Field.name","qualifiedName":"Libtmux.Field.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('entity, 'value) t -> string","source":{"file":"lib/libtmux.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Field","signatures":[{"raw":"val name : ('entity, 'value) t -> string","params":[{"name":"arg1","type":"('entity, 'value) t"}],"returns":"string"}],"slug":"libtmux-field-name"},{"id":"Libtmux.Field.packed","publicId":"Libtmux.Field.packed","qualifiedName":"Libtmux.Field.packed","name":"packed","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'entity packed = Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type 'entity packed =\n | Pack: ('entity, 'value) t -> 'entity packed ","params":[]}],"slug":"libtmux-field-packed"},{"id":"Libtmux.Field.packed.Pack","publicId":"Libtmux.Field.packed.Pack","name":"Pack","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Pack : ('entity, 'value) t -> 'entity packed","source":{"file":"lib/libtmux.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Field.packed","variant":"tuple","qualifiedName":"Libtmux.Field.Pack","slug":"libtmux-field-packed-pack"},{"id":"Libtmux.Field.t","publicId":"Libtmux.Field.t","qualifiedName":"Libtmux.Field.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":145,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('entity, 'value) t","source":{"file":"lib/libtmux.mli","line":145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Field","signatures":[{"raw":"type ('entity, 'value) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-field-t"},{"id":"Libtmux.Formats","publicId":"Libtmux.Formats","qualifiedName":"Libtmux.Formats","name":"Formats","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":495,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Formats : sig\n module Kind : sig\n type t = Text | Timestamp\n end\n\n module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }\n (** Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. *)\n\n type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t\n\n type scalar = Bool of bool | Int of int | Text of string\n\n type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported\n (** [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor option, Error.t) result\n\n val lookup :\n version:string -> observation -> string -> (state, Error.t) result\n (** No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. *)\nend","source":{"file":"lib/libtmux.mli","line":495,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","slug":"libtmux-formats"},{"id":"Libtmux.Formats.Context","publicId":"Libtmux.Formats.Context","qualifiedName":"Libtmux.Formats.Context","name":"Context","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":500,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Context : sig\n type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command\n end","source":{"file":"lib/libtmux.mli","line":500,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-context"},{"id":"Libtmux.Formats.Context.t","publicId":"Libtmux.Formats.Context.t","qualifiedName":"Libtmux.Formats.Context.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":501,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Server\n | Connection\n | Session\n | Window\n | Window_link\n | Pane\n | Client\n | Buffer\n | Mouse\n | Command","source":{"file":"lib/libtmux.mli","line":501,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Context","signatures":[{"raw":"type t =\n | Server \n | Connection \n | Session \n | Window \n | Window_link \n | Pane \n | Client \n | Buffer \n | Mouse \n | Command ","params":[]}],"slug":"libtmux-formats-context-t"},{"id":"Libtmux.Formats.Context.t.Buffer","publicId":"Libtmux.Formats.Context.t.Buffer","name":"Buffer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":509,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Buffer","source":{"file":"lib/libtmux.mli","line":509,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Buffer","slug":"libtmux-formats-context-t-buffer"},{"id":"Libtmux.Formats.Context.t.Client","publicId":"Libtmux.Formats.Context.t.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":508,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client","source":{"file":"lib/libtmux.mli","line":508,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Client","slug":"libtmux-formats-context-t-client"},{"id":"Libtmux.Formats.Context.t.Command","publicId":"Libtmux.Formats.Context.t.Command","name":"Command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":511,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Command","source":{"file":"lib/libtmux.mli","line":511,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Command","slug":"libtmux-formats-context-t-command"},{"id":"Libtmux.Formats.Context.t.Connection","publicId":"Libtmux.Formats.Context.t.Connection","name":"Connection","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":503,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Connection","source":{"file":"lib/libtmux.mli","line":503,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Connection","slug":"libtmux-formats-context-t-connection"},{"id":"Libtmux.Formats.Context.t.Mouse","publicId":"Libtmux.Formats.Context.t.Mouse","name":"Mouse","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":510,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Mouse","source":{"file":"lib/libtmux.mli","line":510,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Mouse","slug":"libtmux-formats-context-t-mouse"},{"id":"Libtmux.Formats.Context.t.Pane","publicId":"Libtmux.Formats.Context.t.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":507,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane","source":{"file":"lib/libtmux.mli","line":507,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Pane","slug":"libtmux-formats-context-t-pane"},{"id":"Libtmux.Formats.Context.t.Server","publicId":"Libtmux.Formats.Context.t.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":502,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":502,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Server","slug":"libtmux-formats-context-t-server"},{"id":"Libtmux.Formats.Context.t.Session","publicId":"Libtmux.Formats.Context.t.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":504,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session","source":{"file":"lib/libtmux.mli","line":504,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Session","slug":"libtmux-formats-context-t-session"},{"id":"Libtmux.Formats.Context.t.Window","publicId":"Libtmux.Formats.Context.t.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":505,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window","source":{"file":"lib/libtmux.mli","line":505,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window","slug":"libtmux-formats-context-t-window"},{"id":"Libtmux.Formats.Context.t.Window_link","publicId":"Libtmux.Formats.Context.t.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":506,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link","source":{"file":"lib/libtmux.mli","line":506,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Context.t","variant":"unit","qualifiedName":"Libtmux.Formats.Context.Window_link","slug":"libtmux-formats-context-t-window_link"},{"id":"Libtmux.Formats.Kind","publicId":"Libtmux.Formats.Kind","qualifiedName":"Libtmux.Formats.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":496,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Timestamp\n end","source":{"file":"lib/libtmux.mli","line":496,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats","slug":"libtmux-formats-kind"},{"id":"Libtmux.Formats.Kind.t","publicId":"Libtmux.Formats.Kind.t","qualifiedName":"Libtmux.Formats.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Timestamp","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Kind","signatures":[{"raw":"type t =\n | Text \n | Timestamp ","params":[]}],"slug":"libtmux-formats-kind-t"},{"id":"Libtmux.Formats.Kind.t.Text","publicId":"Libtmux.Formats.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Text","slug":"libtmux-formats-kind-t-text"},{"id":"Libtmux.Formats.Kind.t.Timestamp","publicId":"Libtmux.Formats.Kind.t.Timestamp","name":"Timestamp","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":497,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Timestamp","source":{"file":"lib/libtmux.mli","line":497,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.Kind.t","variant":"unit","qualifiedName":"Libtmux.Formats.Kind.Timestamp","slug":"libtmux-formats-kind-t-timestamp"},{"id":"Libtmux.Formats.catalog","publicId":"Libtmux.Formats.catalog","qualifiedName":"Libtmux.Formats.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":546,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":546,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-formats-catalog"},{"id":"Libtmux.Formats.describe","publicId":"Libtmux.Formats.describe","qualifiedName":"Libtmux.Formats.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":547,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor option, Error.t) result","source":{"file":"lib/libtmux.mli","line":547,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"val describe :\n version:string -> string -> (descriptor option, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor option, Error.t) result"}],"slug":"libtmux-formats-describe"},{"id":"Libtmux.Formats.descriptor","publicId":"Libtmux.Formats.descriptor","qualifiedName":"Libtmux.Formats.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":514,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Metadata generated from pinned tmux format callbacks. [contexts] lists\n direct context dependencies, not a promise that a value exists. Caller\n variables from hooks and menus are outside this built-in catalog. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n contexts : Context.t list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":514,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats","doc":{"summary":"Metadata generated from pinned tmux format callbacks. `contexts` lists direct context dependencies, not a promise that a value exists. Caller variables from hooks and menus are outside this built-in catalog."},"signatures":[{"raw":"type descriptor =\n {\n name: string ;\n kind: Kind.t ;\n contexts: Context.t list ;\n versions: string list }","params":[]}],"slug":"libtmux-formats-descriptor"},{"id":"Libtmux.Formats.descriptor.contexts","publicId":"Libtmux.Formats.descriptor.contexts","name":"contexts","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":517,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"contexts : Context.t list;","source":{"file":"lib/libtmux.mli","line":517,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.descriptor","type":"Context.t list","qualifiedName":"Libtmux.Formats.contexts","slug":"libtmux-formats-descriptor-contexts"},{"id":"Libtmux.Formats.descriptor.kind","publicId":"Libtmux.Formats.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":516,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":516,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Formats.kind","slug":"libtmux-formats-descriptor-kind"},{"id":"Libtmux.Formats.descriptor.name","publicId":"Libtmux.Formats.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":515,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":515,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.descriptor","type":"string","qualifiedName":"Libtmux.Formats.name","slug":"libtmux-formats-descriptor-name"},{"id":"Libtmux.Formats.descriptor.versions","publicId":"Libtmux.Formats.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":518,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":518,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.descriptor","type":"string list","qualifiedName":"Libtmux.Formats.versions","slug":"libtmux-formats-descriptor-versions"},{"id":"Libtmux.Formats.lookup","publicId":"Libtmux.Formats.lookup","qualifiedName":"Libtmux.Formats.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":549,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" No I/O. Supply the version recorded by the acquiring client's [version]\n accessor. Unsupported catalog versions return an error. Native typed\n accessors remain the primary API; lookup does not acquire extra fields. "],"declarations":[{"kind":"function","text":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","source":{"file":"lib/libtmux.mli","line":549,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats","doc":{"summary":"No I/O. Supply the version recorded by the acquiring client's `version` accessor. Unsupported catalog versions return an error. Native typed accessors remain the primary API; lookup does not acquire extra fields."},"signatures":[{"raw":"val lookup :\n version:string -> observation -> string -> (state, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"observation"},{"name":"arg2","type":"string"}],"returns":"(state, Error.t) result"}],"slug":"libtmux-formats-lookup"},{"id":"Libtmux.Formats.observation","publicId":"Libtmux.Formats.observation","qualifiedName":"Libtmux.Formats.observation","name":"observation","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":524,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type observation =\n | Snapshot of Snapshot.t\n | Session of Session.t\n | Window of Window.t\n | Window_link of Window_link.t\n | Pane of Pane.t\n | Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":524,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type observation =\n | Snapshot of Snapshot.t \n | Session of Session.t \n | Window of Window.t \n | Window_link of Window_link.t \n | Pane of Pane.t \n | Client of Client_observation.t ","params":[]}],"slug":"libtmux-formats-observation"},{"id":"Libtmux.Formats.observation.Client","publicId":"Libtmux.Formats.observation.Client","name":"Client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":530,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client of Client_observation.t","source":{"file":"lib/libtmux.mli","line":530,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Client","slug":"libtmux-formats-observation-client"},{"id":"Libtmux.Formats.observation.Pane","publicId":"Libtmux.Formats.observation.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":529,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.t","source":{"file":"lib/libtmux.mli","line":529,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Pane","slug":"libtmux-formats-observation-pane"},{"id":"Libtmux.Formats.observation.Session","publicId":"Libtmux.Formats.observation.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":526,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.t","source":{"file":"lib/libtmux.mli","line":526,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Session","slug":"libtmux-formats-observation-session"},{"id":"Libtmux.Formats.observation.Snapshot","publicId":"Libtmux.Formats.observation.Snapshot","name":"Snapshot","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":525,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Snapshot of Snapshot.t","source":{"file":"lib/libtmux.mli","line":525,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Snapshot","slug":"libtmux-formats-observation-snapshot"},{"id":"Libtmux.Formats.observation.Window","publicId":"Libtmux.Formats.observation.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":527,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.t","source":{"file":"lib/libtmux.mli","line":527,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window","slug":"libtmux-formats-observation-window"},{"id":"Libtmux.Formats.observation.Window_link","publicId":"Libtmux.Formats.observation.Window_link","name":"Window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":528,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_link of Window_link.t","source":{"file":"lib/libtmux.mli","line":528,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.observation","variant":"tuple","qualifiedName":"Libtmux.Formats.Window_link","slug":"libtmux-formats-observation-window_link"},{"id":"Libtmux.Formats.scalar","publicId":"Libtmux.Formats.scalar","qualifiedName":"Libtmux.Formats.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar = Bool of bool | Int of int | Text of string","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type scalar =\n | Bool of bool \n | Int of int \n | Text of string ","params":[]}],"slug":"libtmux-formats-scalar"},{"id":"Libtmux.Formats.scalar.Bool","publicId":"Libtmux.Formats.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Bool of bool","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Bool","slug":"libtmux-formats-scalar-bool"},{"id":"Libtmux.Formats.scalar.Int","publicId":"Libtmux.Formats.scalar.Int","name":"Int","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Int of int","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Int","slug":"libtmux-formats-scalar-int"},{"id":"Libtmux.Formats.scalar.Text","publicId":"Libtmux.Formats.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":532,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":532,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.scalar","variant":"tuple","qualifiedName":"Libtmux.Formats.Text","slug":"libtmux-formats-scalar-text"},{"id":"Libtmux.Formats.state","publicId":"Libtmux.Formats.state","qualifiedName":"Libtmux.Formats.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":534,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type state =\n | Value of scalar\n | Missing\n | Unacquired\n | Unsupported","source":{"file":"lib/libtmux.mli","line":534,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats","signatures":[{"raw":"type state =\n | Value of scalar \n | Missing \n | Unacquired \n | Unsupported ","params":[]}],"slug":"libtmux-formats-state"},{"id":"Libtmux.Formats.state.Missing","publicId":"Libtmux.Formats.state.Missing","name":"Missing","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":536,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing","source":{"file":"lib/libtmux.mli","line":536,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Missing","slug":"libtmux-formats-state-missing"},{"id":"Libtmux.Formats.state.Unacquired","publicId":"Libtmux.Formats.state.Unacquired","name":"Unacquired","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unacquired","source":{"file":"lib/libtmux.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.state","variant":"unit","qualifiedName":"Libtmux.Formats.Unacquired","slug":"libtmux-formats-state-unacquired"},{"id":"Libtmux.Formats.state.Unsupported","publicId":"Libtmux.Formats.state.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":538,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" [Missing] is an absence explicitly recorded in the observation, such\n as a client without terminal height. [Unacquired] means no captured\n value for this observation, including ambiguous session context for\n a pane. [Unsupported] means the name is outside the selected\n release's catalog. [Value (Text \"\")] is a captured empty string,\n never inferred absence. "],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"lib/libtmux.mli","line":538,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.state","doc":{"summary":"`Missing` is an absence explicitly recorded in the observation, such as a client without terminal height. `Unacquired` means no captured value for this observation, including ambiguous session context for a pane. `Unsupported` means the name is outside the selected release's catalog. `Value (Text \"\")` is a captured empty string, never inferred absence."},"variant":"unit","qualifiedName":"Libtmux.Formats.Unsupported","slug":"libtmux-formats-state-unsupported"},{"id":"Libtmux.Formats.state.Value","publicId":"Libtmux.Formats.state.Value","name":"Value","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":535,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Value of scalar","source":{"file":"lib/libtmux.mli","line":535,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Formats.state","variant":"tuple","qualifiedName":"Libtmux.Formats.Value","slug":"libtmux-formats-state-value"},{"id":"Libtmux.Generation","publicId":"Libtmux.Generation","qualifiedName":"Libtmux.Generation","name":"Generation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" A random connection-generation identifier. Reconnecting creates a new\n generation even when the socket and server PID are unchanged. "],"declarations":[{"kind":"module","text":"module Generation : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"A random connection-generation identifier. Reconnecting creates a new generation even when the socket and server PID are unchanged."},"slug":"libtmux-generation"},{"id":"Libtmux.Generation.equal","publicId":"Libtmux.Generation.equal","qualifiedName":"Libtmux.Generation.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-generation-equal"},{"id":"Libtmux.Generation.of_string","publicId":"Libtmux.Generation.of_string","qualifiedName":"Libtmux.Generation.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Import a 256-bit connection nonce as 64 lowercase hexadecimal characters.\n Backends generate a fresh random nonce for each connection. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Generation","doc":{"summary":"Import a 256-bit connection nonce as 64 lowercase hexadecimal characters. Backends generate a fresh random nonce for each connection."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-generation-of_string"},{"id":"Libtmux.Generation.t","publicId":"Libtmux.Generation.t","qualifiedName":"Libtmux.Generation.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":84,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":84,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-generation-t"},{"id":"Libtmux.Generation.to_string","publicId":"Libtmux.Generation.to_string","qualifiedName":"Libtmux.Generation.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Generation","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-generation-to_string"},{"id":"Libtmux.Geometry","publicId":"Libtmux.Geometry","qualifiedName":"Libtmux.Geometry","name":"Geometry","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":762,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Geometry : sig\n type direction = Left | Right | Above | Below\n type size = Cells of int | Percent of int\nend","source":{"file":"lib/libtmux.mli","line":762,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","slug":"libtmux-geometry"},{"id":"Libtmux.Geometry.direction","publicId":"Libtmux.Geometry.direction","qualifiedName":"Libtmux.Geometry.direction","name":"direction","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type direction = Left | Right | Above | Below","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type direction =\n | Left \n | Right \n | Above \n | Below ","params":[]}],"slug":"libtmux-geometry-direction"},{"id":"Libtmux.Geometry.direction.Above","publicId":"Libtmux.Geometry.direction.Above","name":"Above","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Above","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Above","slug":"libtmux-geometry-direction-above"},{"id":"Libtmux.Geometry.direction.Below","publicId":"Libtmux.Geometry.direction.Below","name":"Below","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Below","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Below","slug":"libtmux-geometry-direction-below"},{"id":"Libtmux.Geometry.direction.Left","publicId":"Libtmux.Geometry.direction.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Left","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Left","slug":"libtmux-geometry-direction-left"},{"id":"Libtmux.Geometry.direction.Right","publicId":"Libtmux.Geometry.direction.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":763,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":763,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Geometry.direction","variant":"unit","qualifiedName":"Libtmux.Geometry.Right","slug":"libtmux-geometry-direction-right"},{"id":"Libtmux.Geometry.size","publicId":"Libtmux.Geometry.size","qualifiedName":"Libtmux.Geometry.size","name":"size","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type size = Cells of int | Percent of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Geometry","signatures":[{"raw":"type size =\n | Cells of int \n | Percent of int ","params":[]}],"slug":"libtmux-geometry-size"},{"id":"Libtmux.Geometry.size.Cells","publicId":"Libtmux.Geometry.size.Cells","name":"Cells","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Cells of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Cells","slug":"libtmux-geometry-size-cells"},{"id":"Libtmux.Geometry.size.Percent","publicId":"Libtmux.Geometry.size.Percent","name":"Percent","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":764,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Percent of int","source":{"file":"lib/libtmux.mli","line":764,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Geometry.size","variant":"tuple","qualifiedName":"Libtmux.Geometry.Percent","slug":"libtmux-geometry-size-percent"},{"id":"Libtmux.Hook","publicId":"Libtmux.Hook","qualifiedName":"Libtmux.Hook","name":"Hook","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":873,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Hook : sig\n type command = { name : string; arguments : string list }\n (** A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. *)\nend","source":{"file":"lib/libtmux.mli","line":873,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","slug":"libtmux-hook"},{"id":"Libtmux.Hook.command","publicId":"Libtmux.Hook.command","qualifiedName":"Libtmux.Hook.command","name":"command","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" A tmux command and its distinct arguments. Setting a hook encodes these as\n command data; it does not concatenate arguments into shell code.\n Argument-specific tmux behavior, including format expansion, still applies\n when the hook runs. "],"declarations":[{"kind":"struct","text":"type command = { name : string; arguments : string list }","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Hook","doc":{"summary":"A tmux command and its distinct arguments. Setting a hook encodes these as command data; it does not concatenate arguments into shell code. Argument-specific tmux behavior, including format expansion, still applies when the hook runs."},"signatures":[{"raw":"type command = {\n name: string ;\n arguments: string list }","params":[]}],"slug":"libtmux-hook-command"},{"id":"Libtmux.Hook.command.arguments","publicId":"Libtmux.Hook.command.arguments","name":"arguments","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"arguments : string list","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Hook.command","type":"string list","qualifiedName":"Libtmux.Hook.arguments","slug":"libtmux-hook-command-arguments"},{"id":"Libtmux.Hook.command.name","publicId":"Libtmux.Hook.command.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":874,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":874,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Hook.command","type":"string","qualifiedName":"Libtmux.Hook.name","slug":"libtmux-hook-command-name"},{"id":"Libtmux.ID","publicId":"Libtmux.ID","qualifiedName":"Libtmux.ID","name":"ID","kind":"interface","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"interface","text":"module type ID = sig\n type t\n\n val of_string : string -> (t, Error.t) result\n (** Accept a canonical prefixed decimal tmux ID in the uint32 range. *)\n\n val to_string : t -> string\n val equal : t -> t -> bool\n val compare : t -> t -> int\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","slug":"libtmux-id"},{"id":"Libtmux.ID.compare","publicId":"Libtmux.ID.compare","qualifiedName":"Libtmux.ID.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-id-compare"},{"id":"Libtmux.ID.equal","publicId":"Libtmux.ID.equal","qualifiedName":"Libtmux.ID.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-id-equal"},{"id":"Libtmux.ID.of_string","publicId":"Libtmux.ID.of_string","qualifiedName":"Libtmux.ID.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.ID","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-id-of_string"},{"id":"Libtmux.ID.pp","publicId":"Libtmux.ID.pp","qualifiedName":"Libtmux.ID.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-id-pp"},{"id":"Libtmux.ID.t","publicId":"Libtmux.ID.t","qualifiedName":"Libtmux.ID.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.ID","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-id-t"},{"id":"Libtmux.ID.to_string","publicId":"Libtmux.ID.to_string","qualifiedName":"Libtmux.ID.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.ID","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-id-to_string"},{"id":"Libtmux.Key","publicId":"Libtmux.Key","qualifiedName":"Libtmux.Key","name":"Key","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":724,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Key : sig\n type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char\nend","source":{"file":"lib/libtmux.mli","line":724,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","slug":"libtmux-key"},{"id":"Libtmux.Key.t","publicId":"Libtmux.Key.t","qualifiedName":"Libtmux.Key.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":725,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Enter\n | Tab\n | Escape\n | Backspace\n | Up\n | Down\n | Left\n | Right\n | Control of char","source":{"file":"lib/libtmux.mli","line":725,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Key","signatures":[{"raw":"type t =\n | Enter \n | Tab \n | Escape \n | Backspace \n | Up \n | Down \n | Left \n | Right \n | Control of char ","params":[]}],"slug":"libtmux-key-t"},{"id":"Libtmux.Key.t.Backspace","publicId":"Libtmux.Key.t.Backspace","name":"Backspace","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":729,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Backspace","source":{"file":"lib/libtmux.mli","line":729,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Backspace","slug":"libtmux-key-t-backspace"},{"id":"Libtmux.Key.t.Control","publicId":"Libtmux.Key.t.Control","name":"Control","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":734,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Control of char","source":{"file":"lib/libtmux.mli","line":734,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Key.t","variant":"tuple","qualifiedName":"Libtmux.Key.Control","slug":"libtmux-key-t-control"},{"id":"Libtmux.Key.t.Down","publicId":"Libtmux.Key.t.Down","name":"Down","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":731,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Down","source":{"file":"lib/libtmux.mli","line":731,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Down","slug":"libtmux-key-t-down"},{"id":"Libtmux.Key.t.Enter","publicId":"Libtmux.Key.t.Enter","name":"Enter","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":726,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Enter","source":{"file":"lib/libtmux.mli","line":726,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Enter","slug":"libtmux-key-t-enter"},{"id":"Libtmux.Key.t.Escape","publicId":"Libtmux.Key.t.Escape","name":"Escape","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":728,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Escape","source":{"file":"lib/libtmux.mli","line":728,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Escape","slug":"libtmux-key-t-escape"},{"id":"Libtmux.Key.t.Left","publicId":"Libtmux.Key.t.Left","name":"Left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":732,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Left","source":{"file":"lib/libtmux.mli","line":732,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Left","slug":"libtmux-key-t-left"},{"id":"Libtmux.Key.t.Right","publicId":"Libtmux.Key.t.Right","name":"Right","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":733,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Right","source":{"file":"lib/libtmux.mli","line":733,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Right","slug":"libtmux-key-t-right"},{"id":"Libtmux.Key.t.Tab","publicId":"Libtmux.Key.t.Tab","name":"Tab","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":727,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tab","source":{"file":"lib/libtmux.mli","line":727,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Tab","slug":"libtmux-key-t-tab"},{"id":"Libtmux.Key.t.Up","publicId":"Libtmux.Key.t.Up","name":"Up","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":730,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Up","source":{"file":"lib/libtmux.mli","line":730,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Key.t","variant":"unit","qualifiedName":"Libtmux.Key.Up","slug":"libtmux-key-t-up"},{"id":"Libtmux.Layout","publicId":"Libtmux.Layout","qualifiedName":"Libtmux.Layout","name":"Layout","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":767,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Layout : sig\n type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string\nend","source":{"file":"lib/libtmux.mli","line":767,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","slug":"libtmux-layout"},{"id":"Libtmux.Layout.t","publicId":"Libtmux.Layout.t","qualifiedName":"Libtmux.Layout.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":768,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t =\n | Even_horizontal\n | Even_vertical\n | Main_horizontal\n | Main_vertical\n | Tiled\n | Custom of string","source":{"file":"lib/libtmux.mli","line":768,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Layout","signatures":[{"raw":"type t =\n | Even_horizontal \n | Even_vertical \n | Main_horizontal \n | Main_vertical \n | Tiled \n | Custom of string ","params":[]}],"slug":"libtmux-layout-t"},{"id":"Libtmux.Layout.t.Custom","publicId":"Libtmux.Layout.t.Custom","name":"Custom","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":774,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Custom of string","source":{"file":"lib/libtmux.mli","line":774,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Layout.t","variant":"tuple","qualifiedName":"Libtmux.Layout.Custom","slug":"libtmux-layout-t-custom"},{"id":"Libtmux.Layout.t.Even_horizontal","publicId":"Libtmux.Layout.t.Even_horizontal","name":"Even_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":769,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_horizontal","source":{"file":"lib/libtmux.mli","line":769,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_horizontal","slug":"libtmux-layout-t-even_horizontal"},{"id":"Libtmux.Layout.t.Even_vertical","publicId":"Libtmux.Layout.t.Even_vertical","name":"Even_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":770,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Even_vertical","source":{"file":"lib/libtmux.mli","line":770,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Even_vertical","slug":"libtmux-layout-t-even_vertical"},{"id":"Libtmux.Layout.t.Main_horizontal","publicId":"Libtmux.Layout.t.Main_horizontal","name":"Main_horizontal","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":771,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_horizontal","source":{"file":"lib/libtmux.mli","line":771,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_horizontal","slug":"libtmux-layout-t-main_horizontal"},{"id":"Libtmux.Layout.t.Main_vertical","publicId":"Libtmux.Layout.t.Main_vertical","name":"Main_vertical","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":772,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Main_vertical","source":{"file":"lib/libtmux.mli","line":772,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Main_vertical","slug":"libtmux-layout-t-main_vertical"},{"id":"Libtmux.Layout.t.Tiled","publicId":"Libtmux.Layout.t.Tiled","name":"Tiled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":773,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Tiled","source":{"file":"lib/libtmux.mli","line":773,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Layout.t","variant":"unit","qualifiedName":"Libtmux.Layout.Tiled","slug":"libtmux-layout-t-tiled"},{"id":"Libtmux.Model","publicId":"Libtmux.Model","qualifiedName":"Libtmux.Model","name":"Model","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":558,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Built-in model witnesses and canonical field lookup for typed codecs.\n Untrusted field names must resolve against the selected model. "],"declarations":[{"kind":"module","text":"module Model : sig\n type 'a t\n\n val session : Session.t t\n val window : Window.t t\n val window_link : Window_link.t t\n val pane : Pane.t t\n val client : Client_observation.t t\n val name : 'a t -> string\n val fields : 'a t -> 'a Field.packed list\n val find_field : 'a t -> string -> 'a Field.packed option\nend","source":{"file":"lib/libtmux.mli","line":558,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"Built-in model witnesses and canonical field lookup for typed codecs. Untrusted field names must resolve against the selected model."},"slug":"libtmux-model"},{"id":"Libtmux.Model.client","publicId":"Libtmux.Model.client","qualifiedName":"Libtmux.Model.client","name":"client","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val client : Client_observation.t t","source":{"file":"lib/libtmux.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val client : Client_observation.t t","params":[],"returns":"Client_observation.t t"}],"slug":"libtmux-model-client"},{"id":"Libtmux.Model.fields","publicId":"Libtmux.Model.fields","qualifiedName":"Libtmux.Model.fields","name":"fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":567,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val fields : 'a t -> 'a Field.packed list","source":{"file":"lib/libtmux.mli","line":567,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val fields : 'a t -> 'a Field.packed list","params":[{"name":"arg1","type":"'a t"}],"returns":"'a Field.packed list"}],"slug":"libtmux-model-fields"},{"id":"Libtmux.Model.find_field","publicId":"Libtmux.Model.find_field","qualifiedName":"Libtmux.Model.find_field","name":"find_field","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":568,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_field : 'a t -> string -> 'a Field.packed option","source":{"file":"lib/libtmux.mli","line":568,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val find_field : 'a t -> string -> 'a Field.packed option","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"string"}],"returns":"'a Field.packed option"}],"slug":"libtmux-model-find_field"},{"id":"Libtmux.Model.name","publicId":"Libtmux.Model.name","qualifiedName":"Libtmux.Model.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":566,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : 'a t -> string","source":{"file":"lib/libtmux.mli","line":566,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val name : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux-model-name"},{"id":"Libtmux.Model.pane","publicId":"Libtmux.Model.pane","qualifiedName":"Libtmux.Model.pane","name":"pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":564,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val pane : Pane.t t","source":{"file":"lib/libtmux.mli","line":564,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val pane : Pane.t t","params":[],"returns":"Pane.t t"}],"slug":"libtmux-model-pane"},{"id":"Libtmux.Model.session","publicId":"Libtmux.Model.session","qualifiedName":"Libtmux.Model.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":561,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : Session.t t","source":{"file":"lib/libtmux.mli","line":561,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val session : Session.t t","params":[],"returns":"Session.t t"}],"slug":"libtmux-model-session"},{"id":"Libtmux.Model.t","publicId":"Libtmux.Model.t","qualifiedName":"Libtmux.Model.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":559,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"lib/libtmux.mli","line":559,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Model","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-model-t"},{"id":"Libtmux.Model.window","publicId":"Libtmux.Model.window","qualifiedName":"Libtmux.Model.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":562,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : Window.t t","source":{"file":"lib/libtmux.mli","line":562,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window : Window.t t","params":[],"returns":"Window.t t"}],"slug":"libtmux-model-window"},{"id":"Libtmux.Model.window_link","publicId":"Libtmux.Model.window_link","qualifiedName":"Libtmux.Model.window_link","name":"window_link","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":563,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_link : Window_link.t t","source":{"file":"lib/libtmux.mli","line":563,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Model","signatures":[{"raw":"val window_link : Window_link.t t","params":[],"returns":"Window_link.t t"}],"slug":"libtmux-model-window_link"},{"id":"Libtmux.Operations","publicId":"Libtmux.Operations","qualifiedName":"Libtmux.Operations","name":"Operations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1073,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Construct typed tmux operations for a backend client. Observations are\n immutable, mutations use explicit targets, and no command retries a mutation\n against another connection generation. Construction performs no I/O; the\n descriptions below state what execution does. "],"declarations":[{"kind":"module","text":"module Operations : sig\n val capture : unit -> Snapshot.t Command.t\n (** Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. *)\n\n val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t\n (** Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. *)\n\n val rename_window : Window.target -> name:string -> unit Command.t\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session : Session.target -> name:string -> unit Command.t\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at : Client_name.t -> unit Command.t\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text : Pane.target -> text:string -> unit Command.t\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys : Pane.target -> Key.t list -> unit Command.t\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : string -> unit Command.t\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : string -> unit Command.t\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment : Environment.scope -> string -> unit Command.t\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment : Environment.scope -> string -> unit Command.t\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Error.Unsupported}. *)\n\n val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array : Options.scope -> string -> unit Command.t\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks : Options.scope -> Options.t Command.t\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. *)\n\n val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook : Options.scope -> string -> unit Command.t\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session : Session.target -> unit Command.t\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : Window.target -> unit Command.t\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : Pane.target -> unit Command.t\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at : Session.target -> index:int -> unit Command.t\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : Pane.target -> unit Command.t\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title : Pane.target -> title:string -> unit Command.t\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout : Window.target -> Layout.t -> unit Command.t\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes : Pane.target -> Pane.target -> unit Command.t\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : Pane.target -> unit Command.t\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : Pane.target -> unit Command.t\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\nend","source":{"file":"lib/libtmux.mli","line":1073,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"Construct typed tmux operations for a backend client. Observations are immutable, mutations use explicit targets, and no command retries a mutation against another connection generation. Construction performs no I/O; the descriptions below state what execution does."},"slug":"libtmux-operations"},{"id":"Libtmux.Operations.break_pane","publicId":"Libtmux.Operations.break_pane","qualifiedName":"Libtmux.Operations.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1257,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n Pane.target ->\n session:Session.target ->\n index:int ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1257,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n Pane.target -> session:Session.target -> index:int -> Created.t Command.t","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-break_pane"},{"id":"Libtmux.Operations.capture","publicId":"Libtmux.Operations.capture","qualifiedName":"Libtmux.Operations.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1074,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Capture and validate the complete session/window-link/pane graph. The\n result records an acquisition interval, not an atomic server instant. "],"declarations":[{"kind":"function","text":"val capture : unit -> Snapshot.t Command.t","source":{"file":"lib/libtmux.mli","line":1074,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture and validate the complete session/window-link/pane graph. The result records an acquisition interval, not an atomic server instant."},"signatures":[{"raw":"val capture : unit -> Snapshot.t Command.t","params":[{"name":"arg1","type":"unit"}],"returns":"Snapshot.t Command.t"}],"slug":"libtmux-operations-capture"},{"id":"Libtmux.Operations.capture_environment","publicId":"Libtmux.Operations.capture_environment","qualifiedName":"Libtmux.Operations.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1132,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","source":{"file":"lib/libtmux.mli","line":1132,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool -> Environment.scope -> Environment.t Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"}],"returns":"Environment.t Command.t"}],"slug":"libtmux-operations-capture_environment"},{"id":"Libtmux.Operations.capture_hooks","publicId":"Libtmux.Operations.capture_hooks","qualifiedName":"Libtmux.Operations.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1190,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks : Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks : Options.scope -> Options.t Command.t","params":[{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_hooks"},{"id":"Libtmux.Operations.capture_options","publicId":"Libtmux.Operations.capture_options","qualifiedName":"Libtmux.Operations.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1152,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Error.Unsupported}. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","source":{"file":"lib/libtmux.mli","line":1152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors cover every supported release from tmux 3.3a through 3.8; other versions return {!Error.Unsupported}."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool -> Options.scope -> Options.t Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"}],"returns":"Options.t Command.t"}],"slug":"libtmux-operations-capture_options"},{"id":"Libtmux.Operations.capture_text","publicId":"Libtmux.Operations.capture_text","qualifiedName":"Libtmux.Operations.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1078,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Capture inclusive visible rows through an operation-owned temporary file.\n Require [0 <= start <= end_ < Pane.height pane]; scrollback is excluded.\n Retained bytes survive client close. The scratch directory must share the\n daemon filesystem. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n Pane.t ->\n start:int ->\n end_:int ->\n Captured_text.t Command.t","source":{"file":"lib/libtmux.mli","line":1078,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Capture inclusive visible rows through an operation-owned temporary file. Require `0 <= start <= end_ < Pane.height pane`; scrollback is excluded. Retained bytes survive client close. The scratch directory must share the daemon filesystem."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n Pane.t -> start:int -> end_:int -> Captured_text.t Command.t","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"Captured_text.t Command.t"}],"slug":"libtmux-operations-capture_text"},{"id":"Libtmux.Operations.clear_history","publicId":"Libtmux.Operations.clear_history","qualifiedName":"Libtmux.Operations.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1355,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1355,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_history"},{"id":"Libtmux.Operations.clear_option_array","publicId":"Libtmux.Operations.clear_option_array","qualifiedName":"Libtmux.Operations.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1187,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-clear_option_array"},{"id":"Libtmux.Operations.create_session","publicId":"Libtmux.Operations.create_session","qualifiedName":"Libtmux.Operations.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1229,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Spawn.t ->\n name:string ->\n unit ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int -> ?spawn:Spawn.t -> name:string -> unit -> Created.t Command.t","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_session"},{"id":"Libtmux.Operations.create_window","publicId":"Libtmux.Operations.create_window","qualifiedName":"Libtmux.Operations.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1239,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Spawn.t ->\n Session.target ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1239,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string -> ?spawn:Spawn.t -> Session.target -> Created.t Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-create_window"},{"id":"Libtmux.Operations.cycle_layout","publicId":"Libtmux.Operations.cycle_layout","qualifiedName":"Libtmux.Operations.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1325,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1325,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout : Window.target -> [ `Next | `Previous ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Next | `Previous ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-cycle_layout"},{"id":"Libtmux.Operations.kill_pane","publicId":"Libtmux.Operations.kill_pane","qualifiedName":"Libtmux.Operations.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1275,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1275,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_pane"},{"id":"Libtmux.Operations.kill_session","publicId":"Libtmux.Operations.kill_session","qualifiedName":"Libtmux.Operations.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1267,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session : Session.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1267,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session : Session.target -> unit Command.t","params":[{"name":"arg1","type":"Session.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_session"},{"id":"Libtmux.Operations.kill_window","publicId":"Libtmux.Operations.kill_window","qualifiedName":"Libtmux.Operations.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1271,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1271,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window : Window.target -> unit Command.t","params":[{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-kill_window"},{"id":"Libtmux.Operations.link_window","publicId":"Libtmux.Operations.link_window","qualifiedName":"Libtmux.Operations.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1288,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n Window.target -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-link_window"},{"id":"Libtmux.Operations.move_pane","publicId":"Libtmux.Operations.move_pane","qualifiedName":"Libtmux.Operations.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1328,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target ->\n direction:Geometry.direction ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1328,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Geometry.size ->\n Pane.target ->\n beside:Pane.target -> direction:Geometry.direction -> unit Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"beside","type":"Pane.target","keywordOnly":true},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_pane"},{"id":"Libtmux.Operations.move_window_at","publicId":"Libtmux.Operations.move_window_at","qualifiedName":"Libtmux.Operations.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1293,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n Session.target ->\n from_index:int ->\n session:Session.target ->\n index:int ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n Session.target ->\n from_index:int -> session:Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-move_window_at"},{"id":"Libtmux.Operations.read_hook","publicId":"Libtmux.Operations.read_hook","qualifiedName":"Libtmux.Operations.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1194,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1194,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_hook"},{"id":"Libtmux.Operations.read_option","publicId":"Libtmux.Operations.read_option","qualifiedName":"Libtmux.Operations.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1160,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n Options.scope ->\n string ->\n Options.value option Command.t","source":{"file":"lib/libtmux.mli","line":1160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n Options.scope -> string -> Options.value option Command.t","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"Options.value option Command.t"}],"slug":"libtmux-operations-read_option"},{"id":"Libtmux.Operations.refresh_client_at","publicId":"Libtmux.Operations.refresh_client_at","qualifiedName":"Libtmux.Operations.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1111,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at : ?status_only:bool -> Client_name.t -> unit Command.t","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-refresh_client_at"},{"id":"Libtmux.Operations.remove_environment","publicId":"Libtmux.Operations.remove_environment","qualifiedName":"Libtmux.Operations.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1149,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_environment"},{"id":"Libtmux.Operations.remove_hook","publicId":"Libtmux.Operations.remove_hook","qualifiedName":"Libtmux.Operations.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1217,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-remove_hook"},{"id":"Libtmux.Operations.rename_session","publicId":"Libtmux.Operations.rename_session","qualifiedName":"Libtmux.Operations.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1093,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session : Session.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1093,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session : Session.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_session"},{"id":"Libtmux.Operations.rename_window","publicId":"Libtmux.Operations.rename_window","qualifiedName":"Libtmux.Operations.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1089,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window : Window.target -> name:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1089,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window : Window.target -> name:string -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rename_window"},{"id":"Libtmux.Operations.request_detach_client_at","publicId":"Libtmux.Operations.request_detach_client_at","qualifiedName":"Libtmux.Operations.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1106,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at : Client_name.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at : Client_name.t -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-request_detach_client_at"},{"id":"Libtmux.Operations.resize_control_client_at","publicId":"Libtmux.Operations.resize_control_client_at","qualifiedName":"Libtmux.Operations.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1114,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n Client_name.t -> width:int -> height:int -> unit Command.t","params":[{"name":"arg1","type":"Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_control_client_at"},{"id":"Libtmux.Operations.resize_pane","publicId":"Libtmux.Operations.resize_pane","qualifiedName":"Libtmux.Operations.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1310,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1310,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane : ?width:int -> ?height:int -> Pane.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_pane"},{"id":"Libtmux.Operations.resize_window","publicId":"Libtmux.Operations.resize_window","qualifiedName":"Libtmux.Operations.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1315,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int -> ?height:int -> Window.target -> unit Command.t","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Window.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-resize_window"},{"id":"Libtmux.Operations.respawn_pane","publicId":"Libtmux.Operations.respawn_pane","qualifiedName":"Libtmux.Operations.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1349,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1349,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool -> Pane.target -> Spawn.t -> unit Command.t","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Spawn.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-respawn_pane"},{"id":"Libtmux.Operations.rotate_panes","publicId":"Libtmux.Operations.rotate_panes","qualifiedName":"Libtmux.Operations.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1342,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes : Window.target -> [ `Forward | `Backward ] -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1342,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n Window.target -> [ `Backward | `Forward ] -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"[ `Backward | `Forward ]"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-rotate_panes"},{"id":"Libtmux.Operations.run_hook","publicId":"Libtmux.Operations.run_hook","qualifiedName":"Libtmux.Operations.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1221,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook : Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook : Options.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-run_hook"},{"id":"Libtmux.Operations.select_layout","publicId":"Libtmux.Operations.select_layout","qualifiedName":"Libtmux.Operations.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1321,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout : Window.target -> Layout.t -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1321,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout : Window.target -> Layout.t -> unit Command.t","params":[{"name":"arg1","type":"Window.target"},{"name":"arg2","type":"Layout.t"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_layout"},{"id":"Libtmux.Operations.select_pane","publicId":"Libtmux.Operations.select_pane","qualifiedName":"Libtmux.Operations.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1302,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1302,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_pane"},{"id":"Libtmux.Operations.select_window_at","publicId":"Libtmux.Operations.select_window_at","qualifiedName":"Libtmux.Operations.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1279,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at : Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at : Session.target -> index:int -> unit Command.t","params":[{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-select_window_at"},{"id":"Libtmux.Operations.send_keys","publicId":"Libtmux.Operations.send_keys","qualifiedName":"Libtmux.Operations.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1121,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys : Pane.target -> Key.t list -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys : Pane.target -> Key.t list -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Key.t list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_keys"},{"id":"Libtmux.Operations.send_text","publicId":"Libtmux.Operations.send_text","qualifiedName":"Libtmux.Operations.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1118,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text : Pane.target -> text:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1118,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text : Pane.target -> text:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-send_text"},{"id":"Libtmux.Operations.set_environment","publicId":"Libtmux.Operations.set_environment","qualifiedName":"Libtmux.Operations.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1139,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool -> Environment.scope -> name:string -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1139,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n Environment.scope -> name:string -> string -> unit Command.t","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_environment"},{"id":"Libtmux.Operations.set_hook","publicId":"Libtmux.Operations.set_hook","qualifiedName":"Libtmux.Operations.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1202,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Options.Text] value; bulk hook capture includes built-ins. Commands may\n cause arbitrary tmux effects when triggered. Hooks that print output are\n outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Hook.command list ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Hook.command list -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Hook.command list"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_hook"},{"id":"Libtmux.Operations.set_option","publicId":"Libtmux.Operations.set_option","qualifiedName":"Libtmux.Operations.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1170,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope ->\n name:string ->\n Options.scalar ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1170,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n Options.scope -> name:string -> Options.scalar -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"Options.scalar"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_option"},{"id":"Libtmux.Operations.set_pane_title","publicId":"Libtmux.Operations.set_pane_title","qualifiedName":"Libtmux.Operations.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1306,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title : Pane.target -> title:string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title : Pane.target -> title:string -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-set_pane_title"},{"id":"Libtmux.Operations.signal","publicId":"Libtmux.Operations.signal","qualifiedName":"Libtmux.Operations.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1128,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-signal"},{"id":"Libtmux.Operations.split_pane","publicId":"Libtmux.Operations.split_pane","qualifiedName":"Libtmux.Operations.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1247,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target ->\n direction:Geometry.direction ->\n Created.t Command.t","source":{"file":"lib/libtmux.mli","line":1247,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Geometry.size ->\n ?spawn:Spawn.t ->\n Pane.target -> direction:Geometry.direction -> Created.t Command.t","params":[{"name":"size","type":"Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.target"},{"name":"direction","type":"Geometry.direction","keywordOnly":true}],"returns":"Created.t Command.t"}],"slug":"libtmux-operations-split_pane"},{"id":"Libtmux.Operations.swap_panes","publicId":"Libtmux.Operations.swap_panes","qualifiedName":"Libtmux.Operations.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1338,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1338,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes : Pane.target -> Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"},{"name":"arg2","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-swap_panes"},{"id":"Libtmux.Operations.switch_client_at","publicId":"Libtmux.Operations.switch_client_at","qualifiedName":"Libtmux.Operations.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1097,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t ->\n session:Session.target ->\n unit Command.t","source":{"file":"lib/libtmux.mli","line":1097,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n Client_name.t -> session:Session.target -> unit Command.t","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Client_name.t"},{"name":"session","type":"Session.target","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-switch_client_at"},{"id":"Libtmux.Operations.unlink_window_at","publicId":"Libtmux.Operations.unlink_window_at","qualifiedName":"Libtmux.Operations.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1283,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool -> Session.target -> index:int -> unit Command.t","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unlink_window_at"},{"id":"Libtmux.Operations.unset_environment","publicId":"Libtmux.Operations.unset_environment","qualifiedName":"Libtmux.Operations.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1145,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment : Environment.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment : Environment.scope -> string -> unit Command.t","params":[{"name":"arg1","type":"Environment.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_environment"},{"id":"Libtmux.Operations.unset_option","publicId":"Libtmux.Operations.unset_option","qualifiedName":"Libtmux.Operations.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1183,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option : ?index:int -> Options.scope -> string -> unit Command.t","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"Options.scope"},{"name":"arg2","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-unset_option"},{"id":"Libtmux.Operations.wait_for","publicId":"Libtmux.Operations.wait_for","qualifiedName":"Libtmux.Operations.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1125,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : string -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : string -> unit Command.t","params":[{"name":"arg1","type":"string"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-wait_for"},{"id":"Libtmux.Operations.zoom_pane","publicId":"Libtmux.Operations.zoom_pane","qualifiedName":"Libtmux.Operations.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1346,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : Pane.target -> unit Command.t","source":{"file":"lib/libtmux.mli","line":1346,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Operations","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : Pane.target -> unit Command.t","params":[{"name":"arg1","type":"Pane.target"}],"returns":"unit Command.t"}],"slug":"libtmux-operations-zoom_pane"},{"id":"Libtmux.Options","publicId":"Libtmux.Options","qualifiedName":"Libtmux.Options","name":"Options","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":818,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Version-aware option descriptors and captured scoped values. Sparse array\n indexes and inherited entries retain their tmux meaning. "],"declarations":[{"kind":"module","text":"module Options : sig\n module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end\n\n type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }\n (** Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. *)\n\n type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target\n\n type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string\n\n type value = Scalar of scalar | Array of (int * scalar) Iarray.t\n type entry = { descriptor : descriptor; value : value; inherited : bool }\n\n type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }\n (** Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. *)\n\n val catalog : version:string -> (descriptor Iarray.t, Error.t) result\n val describe : version:string -> string -> (descriptor, Error.t) result\n\n val lookup : t -> string -> entry option\n (** [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. *)\nend","source":{"file":"lib/libtmux.mli","line":818,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"Version-aware option descriptors and captured scoped values. Sparse array indexes and inherited entries retain their tmux meaning."},"slug":"libtmux-options"},{"id":"Libtmux.Options.Kind","publicId":"Libtmux.Options.Kind","qualifiedName":"Libtmux.Options.Kind","name":"Kind","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":819,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Kind : sig\n type t = Text | Number | Flag | Choice | Key | Colour | Commands\n end","source":{"file":"lib/libtmux.mli","line":819,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options","slug":"libtmux-options-kind"},{"id":"Libtmux.Options.Kind.t","publicId":"Libtmux.Options.Kind.t","qualifiedName":"Libtmux.Options.Kind.t","name":"t","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type t = Text | Number | Flag | Choice | Key | Colour | Commands","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.Kind","signatures":[{"raw":"type t =\n | Text \n | Number \n | Flag \n | Choice \n | Key \n | Colour \n | Commands ","params":[]}],"slug":"libtmux-options-kind-t"},{"id":"Libtmux.Options.Kind.t.Choice","publicId":"Libtmux.Options.Kind.t.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Choice","slug":"libtmux-options-kind-t-choice"},{"id":"Libtmux.Options.Kind.t.Colour","publicId":"Libtmux.Options.Kind.t.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Colour","slug":"libtmux-options-kind-t-colour"},{"id":"Libtmux.Options.Kind.t.Commands","publicId":"Libtmux.Options.Kind.t.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Commands","slug":"libtmux-options-kind-t-commands"},{"id":"Libtmux.Options.Kind.t.Flag","publicId":"Libtmux.Options.Kind.t.Flag","name":"Flag","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Flag","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Flag","slug":"libtmux-options-kind-t-flag"},{"id":"Libtmux.Options.Kind.t.Key","publicId":"Libtmux.Options.Kind.t.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Key","slug":"libtmux-options-kind-t-key"},{"id":"Libtmux.Options.Kind.t.Number","publicId":"Libtmux.Options.Kind.t.Number","name":"Number","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Number","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Number","slug":"libtmux-options-kind-t-number"},{"id":"Libtmux.Options.Kind.t.Text","publicId":"Libtmux.Options.Kind.t.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":820,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Text","source":{"file":"lib/libtmux.mli","line":820,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.Kind.t","variant":"unit","qualifiedName":"Libtmux.Options.Kind.Text","slug":"libtmux-options-kind-t-text"},{"id":"Libtmux.Options.catalog","publicId":"Libtmux.Options.catalog","qualifiedName":"Libtmux.Options.catalog","name":"catalog","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":865,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","source":{"file":"lib/libtmux.mli","line":865,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val catalog : version:string -> (descriptor Iarray.t, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true}],"returns":"(descriptor Iarray.t, Error.t) result"}],"slug":"libtmux-options-catalog"},{"id":"Libtmux.Options.describe","publicId":"Libtmux.Options.describe","qualifiedName":"Libtmux.Options.describe","name":"describe","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":866,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val describe : version:string -> string -> (descriptor, Error.t) result","source":{"file":"lib/libtmux.mli","line":866,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options","signatures":[{"raw":"val describe : version:string -> string -> (descriptor, Error.t) result","params":[{"name":"version","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(descriptor, Error.t) result"}],"slug":"libtmux-options-describe"},{"id":"Libtmux.Options.descriptor","publicId":"Libtmux.Options.descriptor","qualifiedName":"Libtmux.Options.descriptor","name":"descriptor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":823,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Generated upstream descriptors. [versions] lists qualified releases; user\n options have no built-in release history. "],"declarations":[{"kind":"struct","text":"type descriptor = {\n name : string;\n kind : Kind.t;\n array : bool;\n hook : bool;\n scopes : [ `Server | `Session | `Window | `Pane ] list;\n versions : string list;\n }","source":{"file":"lib/libtmux.mli","line":823,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options","doc":{"summary":"Generated upstream descriptors. `versions` lists qualified releases; user options have no built-in release history."},"signatures":[{"raw":"type descriptor =\n {\n name: string ;\n kind: Kind.t ;\n array: bool ;\n hook: bool ;\n scopes: [ `Server | `Session | `Window | `Pane ] list ;\n versions: string list }","params":[]}],"slug":"libtmux-options-descriptor"},{"id":"Libtmux.Options.descriptor.array","publicId":"Libtmux.Options.descriptor.array","name":"array","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":826,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"array : bool;","source":{"file":"lib/libtmux.mli","line":826,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.array","slug":"libtmux-options-descriptor-array"},{"id":"Libtmux.Options.descriptor.hook","publicId":"Libtmux.Options.descriptor.hook","name":"hook","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":827,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"hook : bool;","source":{"file":"lib/libtmux.mli","line":827,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.descriptor","type":"bool","qualifiedName":"Libtmux.Options.hook","slug":"libtmux-options-descriptor-hook"},{"id":"Libtmux.Options.descriptor.kind","publicId":"Libtmux.Options.descriptor.kind","name":"kind","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":825,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"kind : Kind.t;","source":{"file":"lib/libtmux.mli","line":825,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.descriptor","type":"Kind.t","qualifiedName":"Libtmux.Options.kind","slug":"libtmux-options-descriptor-kind"},{"id":"Libtmux.Options.descriptor.name","publicId":"Libtmux.Options.descriptor.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":824,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":824,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.descriptor","type":"string","qualifiedName":"Libtmux.Options.name","slug":"libtmux-options-descriptor-name"},{"id":"Libtmux.Options.descriptor.scopes","publicId":"Libtmux.Options.descriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":828,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scopes : [ `Server | `Session | `Window | `Pane ] list;","source":{"file":"lib/libtmux.mli","line":828,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.descriptor","type":"[ `Pane | `Server | `Session | `Window ] list","qualifiedName":"Libtmux.Options.scopes","slug":"libtmux-options-descriptor-scopes"},{"id":"Libtmux.Options.descriptor.versions","publicId":"Libtmux.Options.descriptor.versions","name":"versions","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":829,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"versions : string list;","source":{"file":"lib/libtmux.mli","line":829,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.descriptor","type":"string list","qualifiedName":"Libtmux.Options.versions","slug":"libtmux-options-descriptor-versions"},{"id":"Libtmux.Options.entry","publicId":"Libtmux.Options.entry","qualifiedName":"Libtmux.Options.entry","name":"entry","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type entry = { descriptor : descriptor; value : value; inherited : bool }","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type entry = {\n descriptor: descriptor ;\n value: value ;\n inherited: bool }","params":[]}],"slug":"libtmux-options-entry"},{"id":"Libtmux.Options.entry.descriptor","publicId":"Libtmux.Options.entry.descriptor","name":"descriptor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"descriptor : descriptor;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.entry","type":"descriptor","qualifiedName":"Libtmux.Options.descriptor","slug":"libtmux-options-entry-descriptor"},{"id":"Libtmux.Options.entry.inherited","publicId":"Libtmux.Options.entry.inherited","name":"inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inherited : bool","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.entry","type":"bool","qualifiedName":"Libtmux.Options.inherited","slug":"libtmux-options-entry-inherited"},{"id":"Libtmux.Options.entry.value","publicId":"Libtmux.Options.entry.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":852,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : value;","source":{"file":"lib/libtmux.mli","line":852,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.entry","type":"value","qualifiedName":"Libtmux.Options.value","slug":"libtmux-options-entry-value"},{"id":"Libtmux.Options.lookup","publicId":"Libtmux.Options.lookup","qualifiedName":"Libtmux.Options.lookup","name":"lookup","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":868,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" [None] means absent from this capture's selected scope and inheritance\n policy. Use [describe] to distinguish an unsupported built-in name. "],"declarations":[{"kind":"function","text":"val lookup : t -> string -> entry option","source":{"file":"lib/libtmux.mli","line":868,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options","doc":{"summary":"`None` means absent from this capture's selected scope and inheritance policy. Use `describe` to distinguish an unsupported built-in name."},"signatures":[{"raw":"val lookup : t -> string -> entry option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"entry option"}],"slug":"libtmux-options-lookup"},{"id":"Libtmux.Options.scalar","publicId":"Libtmux.Options.scalar","qualifiedName":"Libtmux.Options.scalar","name":"scalar","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":842,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scalar =\n | Text of string\n | Integer of int64\n | Bool of bool\n | Choice of string\n | Key of string\n | Colour of string\n | Commands of string","source":{"file":"lib/libtmux.mli","line":842,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scalar =\n | Text of string \n | Integer of int64 \n | Bool of bool \n | Choice of string \n | Key of string \n | Colour of string \n | Commands of string ","params":[]}],"slug":"libtmux-options-scalar"},{"id":"Libtmux.Options.scalar.Bool","publicId":"Libtmux.Options.scalar.Bool","name":"Bool","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":845,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Bool of bool","source":{"file":"lib/libtmux.mli","line":845,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Bool","slug":"libtmux-options-scalar-bool"},{"id":"Libtmux.Options.scalar.Choice","publicId":"Libtmux.Options.scalar.Choice","name":"Choice","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":846,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Choice of string","source":{"file":"lib/libtmux.mli","line":846,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Choice","slug":"libtmux-options-scalar-choice"},{"id":"Libtmux.Options.scalar.Colour","publicId":"Libtmux.Options.scalar.Colour","name":"Colour","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":848,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Colour of string","source":{"file":"lib/libtmux.mli","line":848,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Colour","slug":"libtmux-options-scalar-colour"},{"id":"Libtmux.Options.scalar.Commands","publicId":"Libtmux.Options.scalar.Commands","name":"Commands","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":849,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Commands of string","source":{"file":"lib/libtmux.mli","line":849,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Commands","slug":"libtmux-options-scalar-commands"},{"id":"Libtmux.Options.scalar.Integer","publicId":"Libtmux.Options.scalar.Integer","name":"Integer","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":844,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Integer of int64","source":{"file":"lib/libtmux.mli","line":844,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Integer","slug":"libtmux-options-scalar-integer"},{"id":"Libtmux.Options.scalar.Key","publicId":"Libtmux.Options.scalar.Key","name":"Key","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":847,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Key of string","source":{"file":"lib/libtmux.mli","line":847,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Key","slug":"libtmux-options-scalar-key"},{"id":"Libtmux.Options.scalar.Text","publicId":"Libtmux.Options.scalar.Text","name":"Text","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":843,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Text of string","source":{"file":"lib/libtmux.mli","line":843,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scalar","variant":"tuple","qualifiedName":"Libtmux.Options.Text","slug":"libtmux-options-scalar-text"},{"id":"Libtmux.Options.scope","publicId":"Libtmux.Options.scope","qualifiedName":"Libtmux.Options.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":834,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope =\n | Server\n | Global_sessions\n | Global_windows\n | Session of Session.target\n | Window of Window.target\n | Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":834,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type scope =\n | Server \n | Global_sessions \n | Global_windows \n | Session of Session.target \n | Window of Window.target \n | Pane of Pane.target ","params":[]}],"slug":"libtmux-options-scope"},{"id":"Libtmux.Options.scope.Global_sessions","publicId":"Libtmux.Options.scope.Global_sessions","name":"Global_sessions","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":836,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_sessions","source":{"file":"lib/libtmux.mli","line":836,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_sessions","slug":"libtmux-options-scope-global_sessions"},{"id":"Libtmux.Options.scope.Global_windows","publicId":"Libtmux.Options.scope.Global_windows","name":"Global_windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":837,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Global_windows","source":{"file":"lib/libtmux.mli","line":837,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Global_windows","slug":"libtmux-options-scope-global_windows"},{"id":"Libtmux.Options.scope.Pane","publicId":"Libtmux.Options.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":840,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of Pane.target","source":{"file":"lib/libtmux.mli","line":840,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Pane","slug":"libtmux-options-scope-pane"},{"id":"Libtmux.Options.scope.Server","publicId":"Libtmux.Options.scope.Server","name":"Server","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":835,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server","source":{"file":"lib/libtmux.mli","line":835,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scope","variant":"unit","qualifiedName":"Libtmux.Options.Server","slug":"libtmux-options-scope-server"},{"id":"Libtmux.Options.scope.Session","publicId":"Libtmux.Options.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":838,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session of Session.target","source":{"file":"lib/libtmux.mli","line":838,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Session","slug":"libtmux-options-scope-session"},{"id":"Libtmux.Options.scope.Window","publicId":"Libtmux.Options.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":839,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of Window.target","source":{"file":"lib/libtmux.mli","line":839,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.scope","variant":"tuple","qualifiedName":"Libtmux.Options.Window","slug":"libtmux-options-scope-window"},{"id":"Libtmux.Options.t","publicId":"Libtmux.Options.t","qualifiedName":"Libtmux.Options.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":854,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Captured options in tmux order, with original array indexes. An empty\n array differs from an absent local entry. No accessor performs I/O. "],"declarations":[{"kind":"struct","text":"type t = {\n source : Source.t;\n scope : scope;\n include_inherited : bool;\n entries : entry Iarray.t;\n started_at_ns : int64;\n finished_at_ns : int64;\n }","source":{"file":"lib/libtmux.mli","line":854,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options","doc":{"summary":"Captured options in tmux order, with original array indexes. An empty array differs from an absent local entry. No accessor performs I/O."},"signatures":[{"raw":"type t =\n {\n source: Source.t ;\n scope: scope ;\n include_inherited: bool ;\n entries: entry Iarray.t ;\n started_at_ns: int64 ;\n finished_at_ns: int64 }","params":[]}],"slug":"libtmux-options-t"},{"id":"Libtmux.Options.t.entries","publicId":"Libtmux.Options.t.entries","name":"entries","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":858,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"entries : entry Iarray.t;","source":{"file":"lib/libtmux.mli","line":858,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.t","type":"entry Iarray.t","qualifiedName":"Libtmux.Options.entries","slug":"libtmux-options-t-entries"},{"id":"Libtmux.Options.t.finished_at_ns","publicId":"Libtmux.Options.t.finished_at_ns","name":"finished_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":860,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"finished_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":860,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.finished_at_ns","slug":"libtmux-options-t-finished_at_ns"},{"id":"Libtmux.Options.t.include_inherited","publicId":"Libtmux.Options.t.include_inherited","name":"include_inherited","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":857,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"include_inherited : bool;","source":{"file":"lib/libtmux.mli","line":857,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.t","type":"bool","qualifiedName":"Libtmux.Options.include_inherited","slug":"libtmux-options-t-include_inherited"},{"id":"Libtmux.Options.t.scope","publicId":"Libtmux.Options.t.scope","name":"scope","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":856,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"scope : scope;","source":{"file":"lib/libtmux.mli","line":856,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.t","type":"scope","qualifiedName":"Libtmux.Options.scope","slug":"libtmux-options-t-scope"},{"id":"Libtmux.Options.t.source","publicId":"Libtmux.Options.t.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":855,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Source.t;","source":{"file":"lib/libtmux.mli","line":855,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.t","type":"Source.t","qualifiedName":"Libtmux.Options.source","slug":"libtmux-options-t-source"},{"id":"Libtmux.Options.t.started_at_ns","publicId":"Libtmux.Options.t.started_at_ns","name":"started_at_ns","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":859,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"started_at_ns : int64;","source":{"file":"lib/libtmux.mli","line":859,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.t","type":"int64","qualifiedName":"Libtmux.Options.started_at_ns","slug":"libtmux-options-t-started_at_ns"},{"id":"Libtmux.Options.value","publicId":"Libtmux.Options.value","qualifiedName":"Libtmux.Options.value","name":"value","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type value = Scalar of scalar | Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options","signatures":[{"raw":"type value =\n | Scalar of scalar \n | Array of (int * scalar) Iarray.t ","params":[]}],"slug":"libtmux-options-value"},{"id":"Libtmux.Options.value.Array","publicId":"Libtmux.Options.value.Array","name":"Array","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Array of (int * scalar) Iarray.t","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Array","slug":"libtmux-options-value-array"},{"id":"Libtmux.Options.value.Scalar","publicId":"Libtmux.Options.value.Scalar","name":"Scalar","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":851,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Scalar of scalar","source":{"file":"lib/libtmux.mli","line":851,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Options.value","variant":"tuple","qualifiedName":"Libtmux.Options.Scalar","slug":"libtmux-options-value-scalar"},{"id":"Libtmux.Output","publicId":"Libtmux.Output","qualifiedName":"Libtmux.Output","name":"Output","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1034,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Future observed pane bytes, local cursors and explicit continuity loss.\n Output cursors are unrelated to snapshot times or server-side history. "],"declarations":[{"kind":"module","text":"module Output : sig\n type cursor = { generation : Generation.t; offset : int64 }\n (** [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. *)\n\n type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t\n\n type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason\n (** Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. *)\n\n val reason_pp : Format.formatter -> reason -> unit\n\n type wait_error =\n | Ended of reason\n | Failure of Error.t\n (** A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. *)\nend","source":{"file":"lib/libtmux.mli","line":1034,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"Future observed pane bytes, local cursors and explicit continuity loss. Output cursors are unrelated to snapshot times or server-side history."},"slug":"libtmux-output"},{"id":"Libtmux.Output.cursor","publicId":"Libtmux.Output.cursor","qualifiedName":"Libtmux.Output.cursor","name":"cursor","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" [offset] is the number of observed bytes through the end of a Data event.\n Cursors from different subscription generations are unrelated. No cursor\n identifies a snapshot instant or a server-side historical position. "],"declarations":[{"kind":"struct","text":"type cursor = { generation : Generation.t; offset : int64 }","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output","doc":{"summary":"`offset` is the number of observed bytes through the end of a Data event. Cursors from different subscription generations are unrelated. No cursor identifies a snapshot instant or a server-side historical position."},"signatures":[{"raw":"type cursor = {\n generation: Generation.t ;\n offset: int64 }","params":[]}],"slug":"libtmux-output-cursor"},{"id":"Libtmux.Output.cursor.generation","publicId":"Libtmux.Output.cursor.generation","name":"generation","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"generation : Generation.t;","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.cursor","type":"Generation.t","qualifiedName":"Libtmux.Output.generation","slug":"libtmux-output-cursor-generation"},{"id":"Libtmux.Output.cursor.offset","publicId":"Libtmux.Output.cursor.offset","name":"offset","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1035,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"offset : int64","source":{"file":"lib/libtmux.mli","line":1035,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.cursor","type":"int64","qualifiedName":"Libtmux.Output.offset","slug":"libtmux-output-cursor-offset"},{"id":"Libtmux.Output.event","publicId":"Libtmux.Output.event","qualifiedName":"Libtmux.Output.event","name":"event","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1048,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type event =\n | Data of { cursor : cursor; bytes : string }\n | Gap of { after : cursor option; lost_bytes : int option; reason : reason }\n | End of reason","source":{"file":"lib/libtmux.mli","line":1048,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type event =\n | Data of {\n cursor: cursor ;\n bytes: string } \n | Gap of {\n after: cursor option ;\n lost_bytes: int option ;\n reason: reason } \n | End of reason ","params":[]}],"slug":"libtmux-output-event"},{"id":"Libtmux.Output.event.Data","publicId":"Libtmux.Output.event.Data","name":"Data","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Data of { cursor : cursor; bytes : string }","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Data","slug":"libtmux-output-event-data"},{"id":"Libtmux.Output.event.Data.bytes","publicId":"Libtmux.Output.event.Data.bytes","name":"bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bytes : string","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.event.Data","type":"string","qualifiedName":"Libtmux.Output.bytes","slug":"libtmux-output-event-data-bytes"},{"id":"Libtmux.Output.event.Data.cursor","publicId":"Libtmux.Output.event.Data.cursor","name":"cursor","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1049,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cursor : cursor;","source":{"file":"lib/libtmux.mli","line":1049,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.event.Data","type":"cursor","qualifiedName":"Libtmux.Output.cursor","slug":"libtmux-output-event-data-cursor"},{"id":"Libtmux.Output.event.End","publicId":"Libtmux.Output.event.End","name":"End","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1051,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Immutable event values. [Gap.after] is the last cursor delivered to\n the caller. Unknown loss is [None]. A gap ends continuity and is\n followed by End; recover with a fresh capture and a new\n subscription. Data preserves bytes, including NUL and invalid UTF-8.\n It is future observed output, not rendered text or historical\n reconstruction. "],"declarations":[{"kind":"constant","text":"| End of reason","source":{"file":"lib/libtmux.mli","line":1051,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.event","doc":{"summary":"Immutable event values. `Gap.after` is the last cursor delivered to the caller. Unknown loss is `None`. A gap ends continuity and is followed by End; recover with a fresh capture and a new subscription. Data preserves bytes, including NUL and invalid UTF-8. It is future observed output, not rendered text or historical reconstruction."},"variant":"tuple","qualifiedName":"Libtmux.Output.End","slug":"libtmux-output-event-end"},{"id":"Libtmux.Output.event.Gap","publicId":"Libtmux.Output.event.Gap","name":"Gap","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Gap of { after : cursor option; lost_bytes : int option; reason : reason }","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.event","variant":"struct","qualifiedName":"Libtmux.Output.Gap","slug":"libtmux-output-event-gap"},{"id":"Libtmux.Output.event.Gap.after","publicId":"Libtmux.Output.event.Gap.after","name":"after","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"after : cursor option;","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.event.Gap","type":"cursor option","qualifiedName":"Libtmux.Output.after","slug":"libtmux-output-event-gap-after"},{"id":"Libtmux.Output.event.Gap.lost_bytes","publicId":"Libtmux.Output.event.Gap.lost_bytes","name":"lost_bytes","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"lost_bytes : int option;","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.event.Gap","type":"int option","qualifiedName":"Libtmux.Output.lost_bytes","slug":"libtmux-output-event-gap-lost_bytes"},{"id":"Libtmux.Output.event.Gap.reason","publicId":"Libtmux.Output.event.Gap.reason","name":"reason","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1050,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"reason : reason","source":{"file":"lib/libtmux.mli","line":1050,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.event.Gap","type":"reason","qualifiedName":"Libtmux.Output.reason","slug":"libtmux-output-event-gap-reason"},{"id":"Libtmux.Output.reason","publicId":"Libtmux.Output.reason","qualifiedName":"Libtmux.Output.reason","name":"reason","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1040,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type reason =\n | Overflow\n | Membership_changed\n | Server_paused\n | Cancelled\n | Client_closed\n | Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1040,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type reason =\n | Overflow \n | Membership_changed \n | Server_paused \n | Cancelled \n | Client_closed \n | Transport_error of Error.t ","params":[]}],"slug":"libtmux-output-reason"},{"id":"Libtmux.Output.reason.Cancelled","publicId":"Libtmux.Output.reason.Cancelled","name":"Cancelled","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1044,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancelled","source":{"file":"lib/libtmux.mli","line":1044,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Cancelled","slug":"libtmux-output-reason-cancelled"},{"id":"Libtmux.Output.reason.Client_closed","publicId":"Libtmux.Output.reason.Client_closed","name":"Client_closed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1045,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Client_closed","source":{"file":"lib/libtmux.mli","line":1045,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Client_closed","slug":"libtmux-output-reason-client_closed"},{"id":"Libtmux.Output.reason.Membership_changed","publicId":"Libtmux.Output.reason.Membership_changed","name":"Membership_changed","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1042,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Membership_changed","source":{"file":"lib/libtmux.mli","line":1042,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Membership_changed","slug":"libtmux-output-reason-membership_changed"},{"id":"Libtmux.Output.reason.Overflow","publicId":"Libtmux.Output.reason.Overflow","name":"Overflow","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1041,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Overflow","source":{"file":"lib/libtmux.mli","line":1041,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Overflow","slug":"libtmux-output-reason-overflow"},{"id":"Libtmux.Output.reason.Server_paused","publicId":"Libtmux.Output.reason.Server_paused","name":"Server_paused","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1043,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Server_paused","source":{"file":"lib/libtmux.mli","line":1043,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.reason","variant":"unit","qualifiedName":"Libtmux.Output.Server_paused","slug":"libtmux-output-reason-server_paused"},{"id":"Libtmux.Output.reason.Transport_error","publicId":"Libtmux.Output.reason.Transport_error","name":"Transport_error","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1046,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Transport_error of Error.t","source":{"file":"lib/libtmux.mli","line":1046,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.reason","variant":"tuple","qualifiedName":"Libtmux.Output.Transport_error","slug":"libtmux-output-reason-transport_error"},{"id":"Libtmux.Output.reason_pp","publicId":"Libtmux.Output.reason_pp","qualifiedName":"Libtmux.Output.reason_pp","name":"reason_pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1059,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val reason_pp : Format.formatter -> reason -> unit","source":{"file":"lib/libtmux.mli","line":1059,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output","signatures":[{"raw":"val reason_pp : Format.formatter -> reason -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"reason"}],"returns":"unit"}],"slug":"libtmux-output-reason_pp"},{"id":"Libtmux.Output.wait_error","publicId":"Libtmux.Output.wait_error","qualifiedName":"Libtmux.Output.wait_error","name":"wait_error","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1061,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type wait_error =\n | Ended of reason\n | Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1061,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output","signatures":[{"raw":"type wait_error =\n | Ended of reason \n | Failure of Error.t ","params":[]}],"slug":"libtmux-output-wait_error"},{"id":"Libtmux.Output.wait_error.Ended","publicId":"Libtmux.Output.wait_error.Ended","name":"Ended","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1062,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Ended of reason","source":{"file":"lib/libtmux.mli","line":1062,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.wait_error","variant":"tuple","qualifiedName":"Libtmux.Output.Ended","slug":"libtmux-output-wait_error-ended"},{"id":"Libtmux.Output.wait_error.Failure","publicId":"Libtmux.Output.wait_error.Failure","name":"Failure","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":1063,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" A future-byte wait either loses its subscription's continuity or\n fails an operation. Neither result establishes that the text was\n absent earlier. "],"declarations":[{"kind":"constant","text":"| Failure of Error.t","source":{"file":"lib/libtmux.mli","line":1063,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Output.wait_error","doc":{"summary":"A future-byte wait either loses its subscription's continuity or fails an operation. Neither result establishes that the text was absent earlier."},"variant":"tuple","qualifiedName":"Libtmux.Output.Failure","slug":"libtmux-output-wait_error-failure"},{"id":"Libtmux.Pane","publicId":"Libtmux.Pane","qualifiedName":"Libtmux.Pane","name":"Pane","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" A captured pane with local geometry, process metadata and a window\n relationship. Use {!Pane.val-target} for explicit actions; reading the\n observation never refreshes it. "],"declarations":[{"kind":"module","text":"and Pane : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end\n\n module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val index : t -> int\n val active : t -> bool\n val dead : t -> bool\n val title : t -> string\n val current_command : t -> string\n val current_path : t -> string\n\n val pid : t -> int option\n (** The captured process ID, absent when tmux reports no process. *)\n\n val width : t -> int\n val height : t -> int\n val left : t -> int\n val top : t -> int\n val window : t -> Window.t\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\nend","source":{"file":"lib/libtmux.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"A captured pane with local geometry, process metadata and a window relationship. Use {!Pane.val-target} for explicit actions; reading the observation never refreshes it."},"slug":"libtmux-pane"},{"id":"Libtmux.Pane.Fields","publicId":"Libtmux.Pane.Fields","qualifiedName":"Libtmux.Pane.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":309,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val index : (t, int) Field.t\n val active : (t, bool) Field.t\n val dead : (t, bool) Field.t\n val title : (t, string) Field.t\n val current_command : (t, string) Field.t\n val current_path : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val left : (t, int) Field.t\n val top : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":309,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-fields"},{"id":"Libtmux.Pane.Fields.active","publicId":"Libtmux.Pane.Fields.active","qualifiedName":"Libtmux.Pane.Fields.active","name":"active","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":312,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val active : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":312,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val active : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-active"},{"id":"Libtmux.Pane.Fields.current_command","publicId":"Libtmux.Pane.Fields.current_command","qualifiedName":"Libtmux.Pane.Fields.current_command","name":"current_command","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":315,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_command : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_command : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_command"},{"id":"Libtmux.Pane.Fields.current_path","publicId":"Libtmux.Pane.Fields.current_path","qualifiedName":"Libtmux.Pane.Fields.current_path","name":"current_path","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":316,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val current_path : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":316,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val current_path : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-current_path"},{"id":"Libtmux.Pane.Fields.dead","publicId":"Libtmux.Pane.Fields.dead","qualifiedName":"Libtmux.Pane.Fields.dead","name":"dead","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":313,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val dead : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":313,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val dead : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-pane-fields-dead"},{"id":"Libtmux.Pane.Fields.height","publicId":"Libtmux.Pane.Fields.height","qualifiedName":"Libtmux.Pane.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":318,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":318,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-height"},{"id":"Libtmux.Pane.Fields.id","publicId":"Libtmux.Pane.Fields.id","qualifiedName":"Libtmux.Pane.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":310,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":310,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-id"},{"id":"Libtmux.Pane.Fields.index","publicId":"Libtmux.Pane.Fields.index","qualifiedName":"Libtmux.Pane.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":311,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":311,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-index"},{"id":"Libtmux.Pane.Fields.left","publicId":"Libtmux.Pane.Fields.left","qualifiedName":"Libtmux.Pane.Fields.left","name":"left","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":319,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val left : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":319,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val left : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-left"},{"id":"Libtmux.Pane.Fields.title","publicId":"Libtmux.Pane.Fields.title","qualifiedName":"Libtmux.Pane.Fields.title","name":"title","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":314,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val title : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":314,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val title : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-pane-fields-title"},{"id":"Libtmux.Pane.Fields.top","publicId":"Libtmux.Pane.Fields.top","qualifiedName":"Libtmux.Pane.Fields.top","name":"top","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":320,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val top : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":320,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val top : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-top"},{"id":"Libtmux.Pane.Fields.width","publicId":"Libtmux.Pane.Fields.width","qualifiedName":"Libtmux.Pane.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":317,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":317,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-pane-fields-width"},{"id":"Libtmux.Pane.Id","publicId":"Libtmux.Pane.Id","qualifiedName":"Libtmux.Pane.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":327,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":327,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-id-16to"},{"id":"Libtmux.Pane.Id.compare","publicId":"Libtmux.Pane.Id.compare","qualifiedName":"Libtmux.Pane.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-id-compare"},{"id":"Libtmux.Pane.Id.equal","publicId":"Libtmux.Pane.Id.equal","qualifiedName":"Libtmux.Pane.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-id-equal"},{"id":"Libtmux.Pane.Id.of_string","publicId":"Libtmux.Pane.Id.of_string","qualifiedName":"Libtmux.Pane.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-pane-id-of_string"},{"id":"Libtmux.Pane.Id.pp","publicId":"Libtmux.Pane.Id.pp","qualifiedName":"Libtmux.Pane.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-pane-id-pp"},{"id":"Libtmux.Pane.Id.t","publicId":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux.Pane.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-id-t"},{"id":"Libtmux.Pane.Id.to_string","publicId":"Libtmux.Pane.Id.to_string","qualifiedName":"Libtmux.Pane.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-id-to_string"},{"id":"Libtmux.Pane.Relations","publicId":"Libtmux.Pane.Relations","qualifiedName":"Libtmux.Pane.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":323,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":323,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-relations"},{"id":"Libtmux.Pane.Relations.window","publicId":"Libtmux.Pane.Relations.window","qualifiedName":"Libtmux.Pane.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":324,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-pane-relations-window"},{"id":"Libtmux.Pane.Target","publicId":"Libtmux.Pane.Target","qualifiedName":"Libtmux.Pane.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":329,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":329,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","slug":"libtmux-pane-target-nx8w"},{"id":"Libtmux.Pane.Target.id","publicId":"Libtmux.Pane.Target.id","qualifiedName":"Libtmux.Pane.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":334,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":334,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-target-id"},{"id":"Libtmux.Pane.Target.of_id","publicId":"Libtmux.Pane.Target.of_id","qualifiedName":"Libtmux.Pane.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":332,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":332,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-pane-target-of_id"},{"id":"Libtmux.Pane.Target.source","publicId":"Libtmux.Pane.Target.source","qualifiedName":"Libtmux.Pane.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":333,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-target-source"},{"id":"Libtmux.Pane.Target.t","publicId":"Libtmux.Pane.Target.t","qualifiedName":"Libtmux.Pane.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":330,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":330,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-target-t"},{"id":"Libtmux.Pane.active","publicId":"Libtmux.Pane.active","qualifiedName":"Libtmux.Pane.active","name":"active","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":341,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val active : t -> bool","source":{"file":"lib/libtmux.mli","line":341,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val active : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-active"},{"id":"Libtmux.Pane.current_command","publicId":"Libtmux.Pane.current_command","qualifiedName":"Libtmux.Pane.current_command","name":"current_command","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":344,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_command : t -> string","source":{"file":"lib/libtmux.mli","line":344,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_command : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_command"},{"id":"Libtmux.Pane.current_path","publicId":"Libtmux.Pane.current_path","qualifiedName":"Libtmux.Pane.current_path","name":"current_path","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":345,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val current_path : t -> string","source":{"file":"lib/libtmux.mli","line":345,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val current_path : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-current_path"},{"id":"Libtmux.Pane.dead","publicId":"Libtmux.Pane.dead","qualifiedName":"Libtmux.Pane.dead","name":"dead","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":342,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dead : t -> bool","source":{"file":"lib/libtmux.mli","line":342,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val dead : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-dead"},{"id":"Libtmux.Pane.height","publicId":"Libtmux.Pane.height","qualifiedName":"Libtmux.Pane.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":351,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":351,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-height"},{"id":"Libtmux.Pane.id","publicId":"Libtmux.Pane.id","qualifiedName":"Libtmux.Pane.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":339,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":339,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-pane-id-19ve"},{"id":"Libtmux.Pane.index","publicId":"Libtmux.Pane.index","qualifiedName":"Libtmux.Pane.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":340,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":340,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-index"},{"id":"Libtmux.Pane.left","publicId":"Libtmux.Pane.left","qualifiedName":"Libtmux.Pane.left","name":"left","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":352,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val left : t -> int","source":{"file":"lib/libtmux.mli","line":352,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val left : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-left"},{"id":"Libtmux.Pane.pid","publicId":"Libtmux.Pane.pid","qualifiedName":"Libtmux.Pane.pid","name":"pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":347,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" The captured process ID, absent when tmux reports no process. "],"declarations":[{"kind":"function","text":"val pid : t -> int option","source":{"file":"lib/libtmux.mli","line":347,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","doc":{"summary":"The captured process ID, absent when tmux reports no process."},"signatures":[{"raw":"val pid : t -> int option","params":[{"name":"arg1","type":"t"}],"returns":"int option"}],"slug":"libtmux-pane-pid"},{"id":"Libtmux.Pane.same_entity","publicId":"Libtmux.Pane.same_entity","qualifiedName":"Libtmux.Pane.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_entity"},{"id":"Libtmux.Pane.same_observation","publicId":"Libtmux.Pane.same_observation","qualifiedName":"Libtmux.Pane.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":361,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":361,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-pane-same_observation"},{"id":"Libtmux.Pane.source","publicId":"Libtmux.Pane.source","qualifiedName":"Libtmux.Pane.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":355,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":355,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-pane-source"},{"id":"Libtmux.Pane.t","publicId":"Libtmux.Pane.t","qualifiedName":"Libtmux.Pane.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":307,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":307,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-pane-t"},{"id":"Libtmux.Pane.target","publicId":"Libtmux.Pane.target","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":356,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":356,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-pane-target-t3h1"},{"id":"Libtmux.Pane.target:type","publicId":"Libtmux.Pane.target:type","qualifiedName":"Libtmux.Pane.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-pane-target-type"},{"id":"Libtmux.Pane.title","publicId":"Libtmux.Pane.title","qualifiedName":"Libtmux.Pane.title","name":"title","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":343,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val title : t -> string","source":{"file":"lib/libtmux.mli","line":343,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val title : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-pane-title"},{"id":"Libtmux.Pane.top","publicId":"Libtmux.Pane.top","qualifiedName":"Libtmux.Pane.top","name":"top","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":353,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val top : t -> int","source":{"file":"lib/libtmux.mli","line":353,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val top : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-top"},{"id":"Libtmux.Pane.width","publicId":"Libtmux.Pane.width","qualifiedName":"Libtmux.Pane.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":350,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":350,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-pane-width"},{"id":"Libtmux.Pane.window","publicId":"Libtmux.Pane.window","qualifiedName":"Libtmux.Pane.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":354,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":354,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Pane","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-pane-window"},{"id":"Libtmux.Plan","publicId":"Libtmux.Plan","qualifiedName":"Libtmux.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":666,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Explicit source-filter planning for a new acquisition. A plan separates\n supported tmux predicates from residual local evaluation; it never changes\n the I/O-free contract of {!Query.matching}. Backend capture operations\n acquire a complete graph and do not consume these plans. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type pushdown = Auto | Never | Require_exact\n type t\n\n val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result\n (** Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. *)\n\n val source_filter : t -> string option\n val residual : t -> Pane.t Expr.t\n val required_fields : t -> string list\n val required_relations : t -> string list\n val explanation : t -> string\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"lib/libtmux.mli","line":666,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"Explicit source-filter planning for a new acquisition. A plan separates supported tmux predicates from residual local evaluation; it never changes the I/O-free contract of {!Query.matching}. Backend capture operations acquire a complete graph and do not consume these plans."},"slug":"libtmux-plan"},{"id":"Libtmux.Plan.explanation","publicId":"Libtmux.Plan.explanation","qualifiedName":"Libtmux.Plan.explanation","name":"explanation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":681,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val explanation : t -> string","source":{"file":"lib/libtmux.mli","line":681,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val explanation : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-plan-explanation"},{"id":"Libtmux.Plan.panes","publicId":"Libtmux.Plan.panes","qualifiedName":"Libtmux.Plan.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":670,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Plan without I/O. Exact lowering covers pane active/dead flags and\n complete Boolean combinations. Unsupported children prevent lowering the\n whole expression, including under OR and NOT. Relationships always stay\n local. [Require_exact] rejects an unsupported expression before\n acquisition. "],"declarations":[{"kind":"function","text":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":670,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Plan","doc":{"summary":"Plan without I/O. Exact lowering covers pane active/dead flags and complete Boolean combinations. Unsupported children prevent lowering the whole expression, including under OR and NOT. Relationships always stay local. `Require_exact` rejects an unsupported expression before acquisition."},"signatures":[{"raw":"val panes : ?pushdown:pushdown -> Pane.t Expr.t -> (t, Error.t) result","params":[{"name":"pushdown","type":"pushdown","optional":true,"keywordOnly":true},{"name":"arg1","type":"Pane.t Expr.t"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-plan-panes"},{"id":"Libtmux.Plan.pp","publicId":"Libtmux.Plan.pp","qualifiedName":"Libtmux.Plan.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":682,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":682,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-plan-pp"},{"id":"Libtmux.Plan.pushdown","publicId":"Libtmux.Plan.pushdown","qualifiedName":"Libtmux.Plan.pushdown","name":"pushdown","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type pushdown = Auto | Never | Require_exact","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type pushdown =\n | Auto \n | Never \n | Require_exact ","params":[]}],"slug":"libtmux-plan-pushdown"},{"id":"Libtmux.Plan.pushdown.Auto","publicId":"Libtmux.Plan.pushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Auto","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Auto","slug":"libtmux-plan-pushdown-auto"},{"id":"Libtmux.Plan.pushdown.Never","publicId":"Libtmux.Plan.pushdown.Never","name":"Never","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Never","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Never","slug":"libtmux-plan-pushdown-never"},{"id":"Libtmux.Plan.pushdown.Require_exact","publicId":"Libtmux.Plan.pushdown.Require_exact","name":"Require_exact","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":667,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_exact","source":{"file":"lib/libtmux.mli","line":667,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Plan.pushdown","variant":"unit","qualifiedName":"Libtmux.Plan.Require_exact","slug":"libtmux-plan-pushdown-require_exact"},{"id":"Libtmux.Plan.required_fields","publicId":"Libtmux.Plan.required_fields","qualifiedName":"Libtmux.Plan.required_fields","name":"required_fields","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":679,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_fields : t -> string list","source":{"file":"lib/libtmux.mli","line":679,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_fields : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_fields"},{"id":"Libtmux.Plan.required_relations","publicId":"Libtmux.Plan.required_relations","qualifiedName":"Libtmux.Plan.required_relations","name":"required_relations","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":680,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val required_relations : t -> string list","source":{"file":"lib/libtmux.mli","line":680,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val required_relations : t -> string list","params":[{"name":"arg1","type":"t"}],"returns":"string list"}],"slug":"libtmux-plan-required_relations"},{"id":"Libtmux.Plan.residual","publicId":"Libtmux.Plan.residual","qualifiedName":"Libtmux.Plan.residual","name":"residual","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":678,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val residual : t -> Pane.t Expr.t","source":{"file":"lib/libtmux.mli","line":678,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val residual : t -> Pane.t Expr.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Expr.t"}],"slug":"libtmux-plan-residual"},{"id":"Libtmux.Plan.source_filter","publicId":"Libtmux.Plan.source_filter","qualifiedName":"Libtmux.Plan.source_filter","name":"source_filter","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":677,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source_filter : t -> string option","source":{"file":"lib/libtmux.mli","line":677,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"val source_filter : t -> string option","params":[{"name":"arg1","type":"t"}],"returns":"string option"}],"slug":"libtmux-plan-source_filter"},{"id":"Libtmux.Plan.t","publicId":"Libtmux.Plan.t","qualifiedName":"Libtmux.Plan.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":668,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":668,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-plan-t"},{"id":"Libtmux.Query","publicId":"Libtmux.Query","qualifiedName":"Libtmux.Query","name":"Query","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":694,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Sequence adapters and bounded cardinality checks over captured values.\n Matching preserves order and duplicates. Expected absence and ambiguity\n remain ordinary result values. "],"declarations":[{"kind":"module","text":"module Query : sig\n val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t\n (** [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. *)\n\n val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result\n (** Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. *)\n\n val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result\n (** As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n *)\nend","source":{"file":"lib/libtmux.mli","line":694,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"Sequence adapters and bounded cardinality checks over captured values. Matching preserves order and duplicates. Expected absence and ambiguity remain ordinary result values."},"slug":"libtmux-query"},{"id":"Libtmux.Query.exactly_one","publicId":"Libtmux.Query.exactly_one","qualifiedName":"Libtmux.Query.exactly_one","name":"exactly_one","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":701,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Return the unique value. Stop when a second value is found; proving\n uniqueness requires exhausting the remaining sequence. The input's effects\n and exceptions propagate. This does not execute a mutation. "],"declarations":[{"kind":"function","text":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":701,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Query","doc":{"summary":"Return the unique value. Stop when a second value is found; proving uniqueness requires exhausting the remaining sequence. The input's effects and exceptions propagate. This does not execute a mutation."},"signatures":[{"raw":"val exactly_one : 'a Seq.t -> ('a, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a, Cardinality.error) result"}],"slug":"libtmux-query-exactly_one"},{"id":"Libtmux.Query.matching","publicId":"Libtmux.Query.matching","qualifiedName":"Libtmux.Query.matching","name":"matching","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":695,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" [matching expression] compiles once when the adapter is constructed.\n Filtering preserves order and duplicates. Snapshot-derived sequences\n replay captured values; arbitrary input sequences retain their effects,\n exceptions and replay semantics. No tmux acquisition occurs. "],"declarations":[{"kind":"function","text":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","source":{"file":"lib/libtmux.mli","line":695,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Query","doc":{"summary":"`matching expression` compiles once when the adapter is constructed. Filtering preserves order and duplicates. Snapshot-derived sequences replay captured values; arbitrary input sequences retain their effects, exceptions and replay semantics. No tmux acquisition occurs."},"signatures":[{"raw":"val matching : 'a Expr.t -> 'a Seq.t -> 'a Seq.t","params":[{"name":"arg1","type":"'a Expr.t"},{"name":"arg2","type":"'a Seq.t"}],"returns":"'a Seq.t"}],"slug":"libtmux-query-matching"},{"id":"Libtmux.Query.one_or_none","publicId":"Libtmux.Query.one_or_none","qualifiedName":"Libtmux.Query.one_or_none","name":"one_or_none","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":706,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" As {!exactly_one}, with [Ok None] for an empty sequence. Order and\n duplicate entries count toward cardinality; values are not deduplicated.\n "],"declarations":[{"kind":"function","text":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","source":{"file":"lib/libtmux.mli","line":706,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Query","doc":{"summary":"As {!exactly_one}, with `Ok None` for an empty sequence. Order and duplicate entries count toward cardinality; values are not deduplicated."},"signatures":[{"raw":"val one_or_none : 'a Seq.t -> ('a option, Cardinality.error) result","params":[{"name":"arg1","type":"'a Seq.t"}],"returns":"('a option, Cardinality.error) result"}],"slug":"libtmux-query-one_or_none"},{"id":"Libtmux.Relation","publicId":"Libtmux.Relation","qualifiedName":"Libtmux.Relation","name":"Relation","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":159,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Typed edges in a captured graph. Many, one and optional relations are\n distinct; an unacquired relationship is never represented as an empty one.\n"],"declarations":[{"kind":"module","text":"module Relation : sig\n module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\n\n module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end\nend","source":{"file":"lib/libtmux.mli","line":159,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"Typed edges in a captured graph. Many, one and optional relations are distinct; an unacquired relationship is never represented as an empty one."},"slug":"libtmux-relation"},{"id":"Libtmux.Relation.Many","publicId":"Libtmux.Relation.Many","qualifiedName":"Libtmux.Relation.Many","name":"Many","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":160,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Many : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":160,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-many"},{"id":"Libtmux.Relation.Many.name","publicId":"Libtmux.Relation.Many.name","qualifiedName":"Libtmux.Relation.Many.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":163,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":163,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-many-name"},{"id":"Libtmux.Relation.Many.t","publicId":"Libtmux.Relation.Many.t","qualifiedName":"Libtmux.Relation.Many.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":161,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":161,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Relation.Many","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-many-t"},{"id":"Libtmux.Relation.One","publicId":"Libtmux.Relation.One","qualifiedName":"Libtmux.Relation.One","name":"One","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module One : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-one"},{"id":"Libtmux.Relation.One.name","publicId":"Libtmux.Relation.One.name","qualifiedName":"Libtmux.Relation.One.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-one-name"},{"id":"Libtmux.Relation.One.t","publicId":"Libtmux.Relation.One.t","qualifiedName":"Libtmux.Relation.One.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Relation.One","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-one-t"},{"id":"Libtmux.Relation.Optional","publicId":"Libtmux.Relation.Optional","qualifiedName":"Libtmux.Relation.Optional","name":"Optional","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Optional : sig\n type ('parent, 'child) t\n\n val name : ('parent, 'child) t -> string\n end","source":{"file":"lib/libtmux.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Relation","slug":"libtmux-relation-optional"},{"id":"Libtmux.Relation.Optional.name","publicId":"Libtmux.Relation.Optional.name","qualifiedName":"Libtmux.Relation.Optional.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":175,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : ('parent, 'child) t -> string","source":{"file":"lib/libtmux.mli","line":175,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"val name : ('parent, 'child) t -> string","params":[{"name":"arg1","type":"('parent, 'child) t"}],"returns":"string"}],"slug":"libtmux-relation-optional-name"},{"id":"Libtmux.Relation.Optional.t","publicId":"Libtmux.Relation.Optional.t","qualifiedName":"Libtmux.Relation.Optional.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":173,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type ('parent, 'child) t","source":{"file":"lib/libtmux.mli","line":173,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Relation.Optional","signatures":[{"raw":"type ('parent, 'child) t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-relation-optional-t"},{"id":"Libtmux.Session","publicId":"Libtmux.Session","qualifiedName":"Libtmux.Session","name":"Session","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" A captured session and its ordered window-link contexts. A session can\n contain repeated links to the same global window. "],"declarations":[{"kind":"module","text":"module rec Session : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end\n\n module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val attached : t -> int\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\n\n val window_links : t -> Window_link.t Iarray.t\n (** All captured links, in capture order, including repeated windows. *)\n\n val windows : t -> Window.t Iarray.t\n (** Distinct windows in first-link order. All accesses are local. *)\nend","source":{"file":"lib/libtmux.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"A captured session and its ordered window-link contexts. A session can contain repeated links to the same global window."},"slug":"libtmux-session"},{"id":"Libtmux.Session.Fields","publicId":"Libtmux.Session.Fields","qualifiedName":"Libtmux.Session.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":184,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val attached : (t, int) Field.t\n end","source":{"file":"lib/libtmux.mli","line":184,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","slug":"libtmux-session-fields"},{"id":"Libtmux.Session.Fields.attached","publicId":"Libtmux.Session.Fields.attached","qualifiedName":"Libtmux.Session.Fields.attached","name":"attached","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val attached : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val attached : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-session-fields-attached"},{"id":"Libtmux.Session.Fields.id","publicId":"Libtmux.Session.Fields.id","qualifiedName":"Libtmux.Session.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-id"},{"id":"Libtmux.Session.Fields.name","publicId":"Libtmux.Session.Fields.name","qualifiedName":"Libtmux.Session.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-session-fields-name"},{"id":"Libtmux.Session.Id","publicId":"Libtmux.Session.Id","qualifiedName":"Libtmux.Session.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":195,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","slug":"libtmux-session-id-12k2"},{"id":"Libtmux.Session.Id.compare","publicId":"Libtmux.Session.Id.compare","qualifiedName":"Libtmux.Session.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-session-id-compare"},{"id":"Libtmux.Session.Id.equal","publicId":"Libtmux.Session.Id.equal","qualifiedName":"Libtmux.Session.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-id-equal"},{"id":"Libtmux.Session.Id.of_string","publicId":"Libtmux.Session.Id.of_string","qualifiedName":"Libtmux.Session.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-session-id-of_string"},{"id":"Libtmux.Session.Id.pp","publicId":"Libtmux.Session.Id.pp","qualifiedName":"Libtmux.Session.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-session-id-pp"},{"id":"Libtmux.Session.Id.t","publicId":"Libtmux.Session.Id.t","qualifiedName":"Libtmux.Session.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-id-t"},{"id":"Libtmux.Session.Id.to_string","publicId":"Libtmux.Session.Id.to_string","qualifiedName":"Libtmux.Session.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-id-to_string"},{"id":"Libtmux.Session.Relations","publicId":"Libtmux.Session.Relations","qualifiedName":"Libtmux.Session.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":190,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val window_links : (t, Window_link.t) Relation.Many.t\n val windows : (t, Window.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","slug":"libtmux-session-relations"},{"id":"Libtmux.Session.Relations.window_links","publicId":"Libtmux.Session.Relations.window_links","qualifiedName":"Libtmux.Session.Relations.window_links","name":"window_links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window_links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val window_links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-session-relations-window_links"},{"id":"Libtmux.Session.Relations.windows","publicId":"Libtmux.Session.Relations.windows","qualifiedName":"Libtmux.Session.Relations.windows","name":"windows","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":192,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val windows : (t, Window.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":192,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Relations","signatures":[{"raw":"val windows : (t, Window.t) Relation.Many.t","params":[],"returns":"(t, Window.t) Relation.Many.t"}],"slug":"libtmux-session-relations-windows"},{"id":"Libtmux.Session.Target","publicId":"Libtmux.Session.Target","qualifiedName":"Libtmux.Session.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":197,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n (** Describe a target in an existing connection generation. No I/O. *)\n\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":197,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","slug":"libtmux-session-target-5p2d"},{"id":"Libtmux.Session.Target.id","publicId":"Libtmux.Session.Target.id","qualifiedName":"Libtmux.Session.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-target-id"},{"id":"Libtmux.Session.Target.of_id","publicId":"Libtmux.Session.Target.of_id","qualifiedName":"Libtmux.Session.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Describe a target in an existing connection generation. No I/O. "],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Target","doc":{"summary":"Describe a target in an existing connection generation. No I/O."},"signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-session-target-of_id"},{"id":"Libtmux.Session.Target.source","publicId":"Libtmux.Session.Target.source","qualifiedName":"Libtmux.Session.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-target-source"},{"id":"Libtmux.Session.Target.t","publicId":"Libtmux.Session.Target.t","qualifiedName":"Libtmux.Session.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-target-t"},{"id":"Libtmux.Session.attached","publicId":"Libtmux.Session.attached","qualifiedName":"Libtmux.Session.attached","name":"attached","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val attached : t -> int","source":{"file":"lib/libtmux.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val attached : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-session-attached"},{"id":"Libtmux.Session.id","publicId":"Libtmux.Session.id","qualifiedName":"Libtmux.Session.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-session-id-12gy"},{"id":"Libtmux.Session.name","publicId":"Libtmux.Session.name","qualifiedName":"Libtmux.Session.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":210,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":210,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-session-name"},{"id":"Libtmux.Session.same_entity","publicId":"Libtmux.Session.same_entity","qualifiedName":"Libtmux.Session.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":215,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":215,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_entity"},{"id":"Libtmux.Session.same_observation","publicId":"Libtmux.Session.same_observation","qualifiedName":"Libtmux.Session.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":218,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":218,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-session-same_observation"},{"id":"Libtmux.Session.source","publicId":"Libtmux.Session.source","qualifiedName":"Libtmux.Session.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-session-source"},{"id":"Libtmux.Session.t","publicId":"Libtmux.Session.t","qualifiedName":"Libtmux.Session.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-session-t"},{"id":"Libtmux.Session.target","publicId":"Libtmux.Session.target","qualifiedName":"Libtmux.Session.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":213,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":213,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-session-target-iu8j"},{"id":"Libtmux.Session.target:type","publicId":"Libtmux.Session.target:type","qualifiedName":"Libtmux.Session.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-session-target-type"},{"id":"Libtmux.Session.window_links","publicId":"Libtmux.Session.window_links","qualifiedName":"Libtmux.Session.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" All captured links, in capture order, including repeated windows. "],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","doc":{"summary":"All captured links, in capture order, including repeated windows.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-session-window_links"},{"id":"Libtmux.Session.windows","publicId":"Libtmux.Session.windows","qualifiedName":"Libtmux.Session.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Distinct windows in first-link order. All accesses are local. "],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Session","doc":{"summary":"Distinct windows in first-link order. All accesses are local."},"signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-session-windows"},{"id":"Libtmux.Snapshot","publicId":"Libtmux.Snapshot","qualifiedName":"Libtmux.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" A complete immutable graph captured over an acquisition interval.\n Collections are replayable immutable arrays. Capturing several tmux commands\n does not establish an atomic transaction. "],"declarations":[{"kind":"module","text":"module Snapshot : sig\n type t\n\n module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end\n\n module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end\n\n val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result\n (** Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. *)\n\n val id : t -> Id.t\n val source : t -> Source.t\n val started_at_ns : t -> int64\n val finished_at_ns : t -> int64\n val sessions : t -> Session.t Iarray.t\n val windows : t -> Window.t Iarray.t\n val window_links : t -> Window_link.t Iarray.t\n val panes : t -> Pane.t Iarray.t\n\n val clients : t -> Client_observation.t Iarray.t\n (** Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. *)\n\n val find_session : t -> Session.Id.t -> Session.t option\n val find_window : t -> Window.Id.t -> Window.t option\n val find_pane : t -> Pane.Id.t -> Pane.t option\nend","source":{"file":"lib/libtmux.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"A complete immutable graph captured over an acquisition interval. Collections are replayable immutable arrays. Capturing several tmux commands does not establish an atomic transaction."},"slug":"libtmux-snapshot"},{"id":"Libtmux.Snapshot.Id","publicId":"Libtmux.Snapshot.Id","qualifiedName":"Libtmux.Snapshot.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":406,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : sig\n type t\n\n val of_string : string -> (t, Error.t) result\n val to_string : t -> string\n val equal : t -> t -> bool\n end","source":{"file":"lib/libtmux.mli","line":406,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-id-1y9h"},{"id":"Libtmux.Snapshot.Id.equal","publicId":"Libtmux.Snapshot.Id.equal","qualifiedName":"Libtmux.Snapshot.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":411,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":411,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-snapshot-id-equal"},{"id":"Libtmux.Snapshot.Id.of_string","publicId":"Libtmux.Snapshot.Id.of_string","qualifiedName":"Libtmux.Snapshot.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":409,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":409,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-id-of_string"},{"id":"Libtmux.Snapshot.Id.t","publicId":"Libtmux.Snapshot.Id.t","qualifiedName":"Libtmux.Snapshot.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":407,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":407,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-id-t"},{"id":"Libtmux.Snapshot.Id.to_string","publicId":"Libtmux.Snapshot.Id.to_string","qualifiedName":"Libtmux.Snapshot.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":410,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":410,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-snapshot-id-to_string"},{"id":"Libtmux.Snapshot.Input","publicId":"Libtmux.Snapshot.Input","qualifiedName":"Libtmux.Snapshot.Input","name":"Input","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":414,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Input : sig\n type session = { id : Session.Id.t; name : string; attached : int }\n\n type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }\n\n type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }\n\n type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }\n\n type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }\n end","source":{"file":"lib/libtmux.mli","line":414,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","slug":"libtmux-snapshot-input"},{"id":"Libtmux.Snapshot.Input.client","publicId":"Libtmux.Snapshot.Input.client","qualifiedName":"Libtmux.Snapshot.Input.client","name":"client","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":448,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type client = {\n name : string;\n session_id : Session.Id.t option;\n pid : int;\n width : int;\n height : int option;\n control_mode : bool;\n }","source":{"file":"lib/libtmux.mli","line":448,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type client =\n {\n name: string ;\n session_id: Session.Id.t option ;\n pid: int ;\n width: int ;\n height: int option ;\n control_mode: bool }","params":[]}],"slug":"libtmux-snapshot-input-client"},{"id":"Libtmux.Snapshot.Input.client.control_mode","publicId":"Libtmux.Snapshot.Input.client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":454,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"control_mode : bool;","source":{"file":"lib/libtmux.mli","line":454,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.client","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.control_mode","slug":"libtmux-snapshot-input-client-control_mode"},{"id":"Libtmux.Snapshot.Input.client.height","publicId":"Libtmux.Snapshot.Input.client.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":453,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int option;","source":{"file":"lib/libtmux.mli","line":453,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-client-height"},{"id":"Libtmux.Snapshot.Input.client.name","publicId":"Libtmux.Snapshot.Input.client.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":449,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":449,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.client","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-client-name"},{"id":"Libtmux.Snapshot.Input.client.pid","publicId":"Libtmux.Snapshot.Input.client.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":451,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int;","source":{"file":"lib/libtmux.mli","line":451,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-client-pid"},{"id":"Libtmux.Snapshot.Input.client.session_id","publicId":"Libtmux.Snapshot.Input.client.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":450,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t option;","source":{"file":"lib/libtmux.mli","line":450,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.client","type":"Session.Id.t option","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-client-session_id"},{"id":"Libtmux.Snapshot.Input.client.width","publicId":"Libtmux.Snapshot.Input.client.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":452,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":452,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.client","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-client-width"},{"id":"Libtmux.Snapshot.Input.pane","publicId":"Libtmux.Snapshot.Input.pane","qualifiedName":"Libtmux.Snapshot.Input.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":432,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n id : Pane.Id.t;\n window_id : Window.Id.t;\n index : int;\n active : bool;\n dead : bool;\n title : string;\n current_command : string;\n current_path : string;\n pid : int option;\n width : int;\n height : int;\n left : int;\n top : int;\n }","source":{"file":"lib/libtmux.mli","line":432,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type pane =\n {\n id: Pane.Id.t ;\n window_id: Window.Id.t ;\n index: int ;\n active: bool ;\n dead: bool ;\n title: string ;\n current_command: string ;\n current_path: string ;\n pid: int option ;\n width: int ;\n height: int ;\n left: int ;\n top: int }","params":[]}],"slug":"libtmux-snapshot-input-pane"},{"id":"Libtmux.Snapshot.Input.pane.active","publicId":"Libtmux.Snapshot.Input.pane.active","name":"active","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":436,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"active : bool;","source":{"file":"lib/libtmux.mli","line":436,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.active","slug":"libtmux-snapshot-input-pane-active"},{"id":"Libtmux.Snapshot.Input.pane.current_command","publicId":"Libtmux.Snapshot.Input.pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":439,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_command : string;","source":{"file":"lib/libtmux.mli","line":439,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_command","slug":"libtmux-snapshot-input-pane-current_command"},{"id":"Libtmux.Snapshot.Input.pane.current_path","publicId":"Libtmux.Snapshot.Input.pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"current_path : string;","source":{"file":"lib/libtmux.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.current_path","slug":"libtmux-snapshot-input-pane-current_path"},{"id":"Libtmux.Snapshot.Input.pane.dead","publicId":"Libtmux.Snapshot.Input.pane.dead","name":"dead","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":437,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"dead : bool;","source":{"file":"lib/libtmux.mli","line":437,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.dead","slug":"libtmux-snapshot-input-pane-dead"},{"id":"Libtmux.Snapshot.Input.pane.height","publicId":"Libtmux.Snapshot.Input.pane.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":443,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":443,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-pane-height"},{"id":"Libtmux.Snapshot.Input.pane.id","publicId":"Libtmux.Snapshot.Input.pane.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":433,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Pane.Id.t;","source":{"file":"lib/libtmux.mli","line":433,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Pane.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-pane-id"},{"id":"Libtmux.Snapshot.Input.pane.index","publicId":"Libtmux.Snapshot.Input.pane.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":435,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":435,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-pane-index"},{"id":"Libtmux.Snapshot.Input.pane.left","publicId":"Libtmux.Snapshot.Input.pane.left","name":"left","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":444,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"left : int;","source":{"file":"lib/libtmux.mli","line":444,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.left","slug":"libtmux-snapshot-input-pane-left"},{"id":"Libtmux.Snapshot.Input.pane.pid","publicId":"Libtmux.Snapshot.Input.pane.pid","name":"pid","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":441,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pid : int option;","source":{"file":"lib/libtmux.mli","line":441,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int option","qualifiedName":"Libtmux.Snapshot.Input.pid","slug":"libtmux-snapshot-input-pane-pid"},{"id":"Libtmux.Snapshot.Input.pane.title","publicId":"Libtmux.Snapshot.Input.pane.title","name":"title","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":438,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"title : string;","source":{"file":"lib/libtmux.mli","line":438,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"string","qualifiedName":"Libtmux.Snapshot.Input.title","slug":"libtmux-snapshot-input-pane-title"},{"id":"Libtmux.Snapshot.Input.pane.top","publicId":"Libtmux.Snapshot.Input.pane.top","name":"top","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":445,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"top : int;","source":{"file":"lib/libtmux.mli","line":445,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.top","slug":"libtmux-snapshot-input-pane-top"},{"id":"Libtmux.Snapshot.Input.pane.width","publicId":"Libtmux.Snapshot.Input.pane.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":442,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":442,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-pane-width"},{"id":"Libtmux.Snapshot.Input.pane.window_id","publicId":"Libtmux.Snapshot.Input.pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":434,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":434,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.pane","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-pane-window_id"},{"id":"Libtmux.Snapshot.Input.session","publicId":"Libtmux.Snapshot.Input.session","qualifiedName":"Libtmux.Snapshot.Input.session","name":"session","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type session = { id : Session.Id.t; name : string; attached : int }","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type session = {\n id: Session.Id.t ;\n name: string ;\n attached: int }","params":[]}],"slug":"libtmux-snapshot-input-session"},{"id":"Libtmux.Snapshot.Input.session.attached","publicId":"Libtmux.Snapshot.Input.session.attached","name":"attached","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"attached : int","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.session","type":"int","qualifiedName":"Libtmux.Snapshot.Input.attached","slug":"libtmux-snapshot-input-session-attached"},{"id":"Libtmux.Snapshot.Input.session.id","publicId":"Libtmux.Snapshot.Input.session.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.session","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-session-id"},{"id":"Libtmux.Snapshot.Input.session.name","publicId":"Libtmux.Snapshot.Input.session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":415,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":415,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.session","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-session-name"},{"id":"Libtmux.Snapshot.Input.window","publicId":"Libtmux.Snapshot.Input.window","qualifiedName":"Libtmux.Snapshot.Input.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":417,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n id : Window.Id.t;\n name : string;\n width : int;\n height : int;\n layout : string;\n }","source":{"file":"lib/libtmux.mli","line":417,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window =\n {\n id: Window.Id.t ;\n name: string ;\n width: int ;\n height: int ;\n layout: string }","params":[]}],"slug":"libtmux-snapshot-input-window"},{"id":"Libtmux.Snapshot.Input.window.height","publicId":"Libtmux.Snapshot.Input.window.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":421,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"lib/libtmux.mli","line":421,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.height","slug":"libtmux-snapshot-input-window-height"},{"id":"Libtmux.Snapshot.Input.window.id","publicId":"Libtmux.Snapshot.Input.window.id","name":"id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":418,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":418,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.window","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.id","slug":"libtmux-snapshot-input-window-id"},{"id":"Libtmux.Snapshot.Input.window.layout","publicId":"Libtmux.Snapshot.Input.window.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":422,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : string;","source":{"file":"lib/libtmux.mli","line":422,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.layout","slug":"libtmux-snapshot-input-window-layout"},{"id":"Libtmux.Snapshot.Input.window.name","publicId":"Libtmux.Snapshot.Input.window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":419,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"lib/libtmux.mli","line":419,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.window","type":"string","qualifiedName":"Libtmux.Snapshot.Input.name","slug":"libtmux-snapshot-input-window-name"},{"id":"Libtmux.Snapshot.Input.window.width","publicId":"Libtmux.Snapshot.Input.window.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":420,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"lib/libtmux.mli","line":420,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.window","type":"int","qualifiedName":"Libtmux.Snapshot.Input.width","slug":"libtmux-snapshot-input-window-width"},{"id":"Libtmux.Snapshot.Input.window_link","publicId":"Libtmux.Snapshot.Input.window_link","qualifiedName":"Libtmux.Snapshot.Input.window_link","name":"window_link","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":425,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window_link = {\n session_id : Session.Id.t;\n window_id : Window.Id.t;\n index : int;\n is_current : bool;\n }","source":{"file":"lib/libtmux.mli","line":425,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input","signatures":[{"raw":"type window_link =\n {\n session_id: Session.Id.t ;\n window_id: Window.Id.t ;\n index: int ;\n is_current: bool }","params":[]}],"slug":"libtmux-snapshot-input-window_link"},{"id":"Libtmux.Snapshot.Input.window_link.index","publicId":"Libtmux.Snapshot.Input.window_link.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":428,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"lib/libtmux.mli","line":428,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"int","qualifiedName":"Libtmux.Snapshot.Input.index","slug":"libtmux-snapshot-input-window_link-index"},{"id":"Libtmux.Snapshot.Input.window_link.is_current","publicId":"Libtmux.Snapshot.Input.window_link.is_current","name":"is_current","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":429,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"is_current : bool;","source":{"file":"lib/libtmux.mli","line":429,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"bool","qualifiedName":"Libtmux.Snapshot.Input.is_current","slug":"libtmux-snapshot-input-window_link-is_current"},{"id":"Libtmux.Snapshot.Input.window_link.session_id","publicId":"Libtmux.Snapshot.Input.window_link.session_id","name":"session_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":426,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session_id : Session.Id.t;","source":{"file":"lib/libtmux.mli","line":426,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Session.Id.t","qualifiedName":"Libtmux.Snapshot.Input.session_id","slug":"libtmux-snapshot-input-window_link-session_id"},{"id":"Libtmux.Snapshot.Input.window_link.window_id","publicId":"Libtmux.Snapshot.Input.window_link.window_id","name":"window_id","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":427,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_id : Window.Id.t;","source":{"file":"lib/libtmux.mli","line":427,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot.Input.window_link","type":"Window.Id.t","qualifiedName":"Libtmux.Snapshot.Input.window_id","slug":"libtmux-snapshot-input-window_link-window_id"},{"id":"Libtmux.Snapshot.clients","publicId":"Libtmux.Snapshot.clients","qualifiedName":"Libtmux.Snapshot.clients","name":"clients","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":486,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Collections and their contents are immutable. They retain capture order,\n are replayable and remain readable after the acquiring client closes. "],"declarations":[{"kind":"function","text":"val clients : t -> Client_observation.t Iarray.t","source":{"file":"lib/libtmux.mli","line":486,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Collections and their contents are immutable. They retain capture order, are replayable and remain readable after the acquiring client closes."},"signatures":[{"raw":"val clients : t -> Client_observation.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Client_observation.t Iarray.t"}],"slug":"libtmux-snapshot-clients"},{"id":"Libtmux.Snapshot.create","publicId":"Libtmux.Snapshot.create","qualifiedName":"Libtmux.Snapshot.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":458,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Validate and materialize a complete captured graph without I/O. Equal\n duplicate global rows collapse in first-occurrence order; conflicting rows\n and dangling references return {!Error.Capture_raced}. Links at different\n indexes remain distinct, including within one session. At most 10,000\n input rows are admitted. Each session needs one current link and each\n window one active pane. Capture spans an interval, not an atomic instant.\n Input strings are bytes; no Unicode normalization is performed. "],"declarations":[{"kind":"function","text":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list ->\n clients:Input.client list ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":458,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","doc":{"summary":"Validate and materialize a complete captured graph without I/O. Equal duplicate global rows collapse in first-occurrence order; conflicting rows and dangling references return {!Error.Capture_raced}. Links at different indexes remain distinct, including within one session. At most 10,000 input rows are admitted. Each session needs one current link and each window one active pane. Capture spans an interval, not an atomic instant. Input strings are bytes; no Unicode normalization is performed."},"signatures":[{"raw":"val create :\n source:Source.t ->\n id:Id.t ->\n started_at_ns:int64 ->\n finished_at_ns:int64 ->\n sessions:Input.session list ->\n windows:Input.window list ->\n window_links:Input.window_link list ->\n panes:Input.pane list -> clients:Input.client list -> (t, Error.t) result","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"id","type":"Id.t","keywordOnly":true},{"name":"started_at_ns","type":"int64","keywordOnly":true},{"name":"finished_at_ns","type":"int64","keywordOnly":true},{"name":"sessions","type":"Input.session list","keywordOnly":true},{"name":"windows","type":"Input.window list","keywordOnly":true},{"name":"window_links","type":"Input.window_link list","keywordOnly":true},{"name":"panes","type":"Input.pane list","keywordOnly":true},{"name":"clients","type":"Input.client list","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-snapshot-create"},{"id":"Libtmux.Snapshot.find_pane","publicId":"Libtmux.Snapshot.find_pane","qualifiedName":"Libtmux.Snapshot.find_pane","name":"find_pane","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":492,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_pane : t -> Pane.Id.t -> Pane.t option","source":{"file":"lib/libtmux.mli","line":492,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_pane : t -> Pane.Id.t -> Pane.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Pane.Id.t"}],"returns":"Pane.t option"}],"slug":"libtmux-snapshot-find_pane"},{"id":"Libtmux.Snapshot.find_session","publicId":"Libtmux.Snapshot.find_session","qualifiedName":"Libtmux.Snapshot.find_session","name":"find_session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":490,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_session : t -> Session.Id.t -> Session.t option","source":{"file":"lib/libtmux.mli","line":490,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_session : t -> Session.Id.t -> Session.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Session.Id.t"}],"returns":"Session.t option"}],"slug":"libtmux-snapshot-find_session"},{"id":"Libtmux.Snapshot.find_window","publicId":"Libtmux.Snapshot.find_window","qualifiedName":"Libtmux.Snapshot.find_window","name":"find_window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":491,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val find_window : t -> Window.Id.t -> Window.t option","source":{"file":"lib/libtmux.mli","line":491,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val find_window : t -> Window.Id.t -> Window.t option","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Window.Id.t"}],"returns":"Window.t option"}],"slug":"libtmux-snapshot-find_window"},{"id":"Libtmux.Snapshot.finished_at_ns","publicId":"Libtmux.Snapshot.finished_at_ns","qualifiedName":"Libtmux.Snapshot.finished_at_ns","name":"finished_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":480,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val finished_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":480,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val finished_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-finished_at_ns"},{"id":"Libtmux.Snapshot.id","publicId":"Libtmux.Snapshot.id","qualifiedName":"Libtmux.Snapshot.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":477,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":477,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-snapshot-id-1y6d"},{"id":"Libtmux.Snapshot.panes","publicId":"Libtmux.Snapshot.panes","qualifiedName":"Libtmux.Snapshot.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":484,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":484,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"slug":"libtmux-snapshot-panes"},{"id":"Libtmux.Snapshot.sessions","publicId":"Libtmux.Snapshot.sessions","qualifiedName":"Libtmux.Snapshot.sessions","name":"sessions","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val sessions : t -> Session.t Iarray.t","source":{"file":"lib/libtmux.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val sessions : t -> Session.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-snapshot-sessions"},{"id":"Libtmux.Snapshot.source","publicId":"Libtmux.Snapshot.source","qualifiedName":"Libtmux.Snapshot.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":478,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":478,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-snapshot-source"},{"id":"Libtmux.Snapshot.started_at_ns","publicId":"Libtmux.Snapshot.started_at_ns","qualifiedName":"Libtmux.Snapshot.started_at_ns","name":"started_at_ns","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":479,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val started_at_ns : t -> int64","source":{"file":"lib/libtmux.mli","line":479,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val started_at_ns : t -> int64","params":[{"name":"arg1","type":"t"}],"returns":"int64"}],"slug":"libtmux-snapshot-started_at_ns"},{"id":"Libtmux.Snapshot.t","publicId":"Libtmux.Snapshot.t","qualifiedName":"Libtmux.Snapshot.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":404,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":404,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-snapshot-t"},{"id":"Libtmux.Snapshot.window_links","publicId":"Libtmux.Snapshot.window_links","qualifiedName":"Libtmux.Snapshot.window_links","name":"window_links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":483,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window_links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":483,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val window_links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-snapshot-window_links"},{"id":"Libtmux.Snapshot.windows","publicId":"Libtmux.Snapshot.windows","qualifiedName":"Libtmux.Snapshot.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":482,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> Window.t Iarray.t","source":{"file":"lib/libtmux.mli","line":482,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Snapshot","signatures":[{"raw":"val windows : t -> Window.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t Iarray.t"}],"slug":"libtmux-snapshot-windows"},{"id":"Libtmux.Source","publicId":"Libtmux.Source","qualifiedName":"Libtmux.Source","name":"Source","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Endpoint and observed daemon identity for one connection generation.\n Constructing metadata alone does not establish a live binding. "],"declarations":[{"kind":"module","text":"module Source : sig\n type t\n\n val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result\n (** Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. *)\n\n val endpoint : t -> Endpoint.t\n val generation : t -> Generation.t\n val server_pid : t -> int\n\n val equal : t -> t -> bool\n (** Compare endpoint, observed daemon PID and connection generation.\n Independent connections compare unequal even when they observe the same\n PID. Equality establishes neither a live binding nor fresh observations.\n *)\nend","source":{"file":"lib/libtmux.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"Endpoint and observed daemon identity for one connection generation. Constructing metadata alone does not establish a live binding."},"slug":"libtmux-source"},{"id":"Libtmux.Source.create","publicId":"Libtmux.Source.create","qualifiedName":"Libtmux.Source.create","name":"create","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Pure metadata import for capture adapters. This neither establishes a\n connection nor verifies process identity. The backend must bind the\n generation to a live daemon before it admits operations. "],"declarations":[{"kind":"function","text":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t ->\n server_pid:int ->\n (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Source","doc":{"summary":"Pure metadata import for capture adapters. This neither establishes a connection nor verifies process identity. The backend must bind the generation to a live daemon before it admits operations."},"signatures":[{"raw":"val create :\n endpoint:Endpoint.t ->\n generation:Generation.t -> server_pid:int -> (t, Error.t) result","params":[{"name":"endpoint","type":"Endpoint.t","keywordOnly":true},{"name":"generation","type":"Generation.t","keywordOnly":true},{"name":"server_pid","type":"int","keywordOnly":true}],"returns":"(t, Error.t) result"}],"slug":"libtmux-source-create"},{"id":"Libtmux.Source.endpoint","publicId":"Libtmux.Source.endpoint","qualifiedName":"Libtmux.Source.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Endpoint.t","source":{"file":"lib/libtmux.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val endpoint : t -> Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Endpoint.t"}],"slug":"libtmux-source-endpoint"},{"id":"Libtmux.Source.equal","publicId":"Libtmux.Source.equal","qualifiedName":"Libtmux.Source.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Compare endpoint, observed daemon PID and connection generation.\n Independent connections compare unequal even when they observe the same\n PID. Equality establishes neither a live binding nor fresh observations.\n "],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Source","doc":{"summary":"Compare endpoint, observed daemon PID and connection generation. Independent connections compare unequal even when they observe the same PID. Equality establishes neither a live binding nor fresh observations."},"signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-source-equal"},{"id":"Libtmux.Source.generation","publicId":"Libtmux.Source.generation","qualifiedName":"Libtmux.Source.generation","name":"generation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":109,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val generation : t -> Generation.t","source":{"file":"lib/libtmux.mli","line":109,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val generation : t -> Generation.t","params":[{"name":"arg1","type":"t"}],"returns":"Generation.t"}],"slug":"libtmux-source-generation"},{"id":"Libtmux.Source.server_pid","publicId":"Libtmux.Source.server_pid","qualifiedName":"Libtmux.Source.server_pid","name":"server_pid","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val server_pid : t -> int","source":{"file":"lib/libtmux.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Source","signatures":[{"raw":"val server_pid : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-source-server_pid"},{"id":"Libtmux.Source.t","publicId":"Libtmux.Source.t","qualifiedName":"Libtmux.Source.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Source","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-source-t"},{"id":"Libtmux.Spawn","publicId":"Libtmux.Spawn","qualifiedName":"Libtmux.Spawn","name":"Spawn","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":739,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" A process description with explicit argv or shell semantics, working\n directory and environment. Describing a process performs no I/O. "],"declarations":[{"kind":"module","text":"module Spawn : sig\n type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string\n\n type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }\n\n val make : ?cwd:string -> ?environment:(string * string) list -> command -> t\n (** Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. *)\n\n val default : t\nend","source":{"file":"lib/libtmux.mli","line":739,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"A process description with explicit argv or shell semantics, working directory and environment. Describing a process performs no I/O."},"slug":"libtmux-spawn"},{"id":"Libtmux.Spawn.command","publicId":"Libtmux.Spawn.command","qualifiedName":"Libtmux.Spawn.command","name":"command","kind":"enum","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":740,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type command =\n | Default\n | Exec of { program : string; args : string list }\n | Shell of string","source":{"file":"lib/libtmux.mli","line":740,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type command =\n | Default \n | Exec of {\n program: string ;\n args: string list } \n | Shell of string ","params":[]}],"slug":"libtmux-spawn-command"},{"id":"Libtmux.Spawn.command.Default","publicId":"Libtmux.Spawn.command.Default","name":"Default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":741,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Default","source":{"file":"lib/libtmux.mli","line":741,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Spawn.command","variant":"unit","qualifiedName":"Libtmux.Spawn.Default","slug":"libtmux-spawn-command-default"},{"id":"Libtmux.Spawn.command.Exec","publicId":"Libtmux.Spawn.command.Exec","name":"Exec","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Exec of { program : string; args : string list }","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Spawn.command","variant":"struct","qualifiedName":"Libtmux.Spawn.Exec","slug":"libtmux-spawn-command-exec"},{"id":"Libtmux.Spawn.command.Exec.args","publicId":"Libtmux.Spawn.command.Exec.args","name":"args","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"args : string list","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string list","qualifiedName":"Libtmux.Spawn.args","slug":"libtmux-spawn-command-exec-args"},{"id":"Libtmux.Spawn.command.Exec.program","publicId":"Libtmux.Spawn.command.Exec.program","name":"program","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":742,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"program : string;","source":{"file":"lib/libtmux.mli","line":742,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Spawn.command.Exec","type":"string","qualifiedName":"Libtmux.Spawn.program","slug":"libtmux-spawn-command-exec-program"},{"id":"Libtmux.Spawn.command.Shell","publicId":"Libtmux.Spawn.command.Shell","name":"Shell","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":743,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Shell of string","source":{"file":"lib/libtmux.mli","line":743,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Spawn.command","variant":"tuple","qualifiedName":"Libtmux.Spawn.Shell","slug":"libtmux-spawn-command-shell"},{"id":"Libtmux.Spawn.default","publicId":"Libtmux.Spawn.default","qualifiedName":"Libtmux.Spawn.default","name":"default","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":759,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val default : t","source":{"file":"lib/libtmux.mli","line":759,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"val default : t","params":[],"returns":"t"}],"slug":"libtmux-spawn-default"},{"id":"Libtmux.Spawn.make","publicId":"Libtmux.Spawn.make","qualifiedName":"Libtmux.Spawn.make","name":"make","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":751,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Describe a program without I/O. [Exec] preserves argv; [Shell] explicitly\n requests the daemon's configured shell. [cwd] must be absolute. Validation\n occurs at admission. With no arguments, [Exec] uses a fixed [/bin/sh]\n trampoline because tmux treats a single argument as shell code. [Default]\n follows tmux defaults on creation and reuses the previous command on\n respawn. "],"declarations":[{"kind":"function","text":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","source":{"file":"lib/libtmux.mli","line":751,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Spawn","doc":{"summary":"Describe a program without I/O. `Exec` preserves argv; `Shell` explicitly requests the daemon's configured shell. `cwd` must be absolute. Validation occurs at admission. With no arguments, `Exec` uses a fixed `/bin/sh` trampoline because tmux treats a single argument as shell code. `Default` follows tmux defaults on creation and reuses the previous command on respawn."},"signatures":[{"raw":"val make : ?cwd:string -> ?environment:(string * string) list -> command -> t","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"arg1","type":"command"}],"returns":"t"}],"slug":"libtmux-spawn-make"},{"id":"Libtmux.Spawn.t","publicId":"Libtmux.Spawn.t","qualifiedName":"Libtmux.Spawn.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":745,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = {\n command : command;\n cwd : string option;\n environment : (string * string) list;\n }","source":{"file":"lib/libtmux.mli","line":745,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Spawn","signatures":[{"raw":"type t =\n {\n command: command ;\n cwd: string option ;\n environment: (string * string) list }","params":[]}],"slug":"libtmux-spawn-t"},{"id":"Libtmux.Spawn.t.command","publicId":"Libtmux.Spawn.t.command","name":"command","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":746,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"command : command;","source":{"file":"lib/libtmux.mli","line":746,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Spawn.t","type":"command","qualifiedName":"Libtmux.Spawn.command","slug":"libtmux-spawn-t-command"},{"id":"Libtmux.Spawn.t.cwd","publicId":"Libtmux.Spawn.t.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":747,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"lib/libtmux.mli","line":747,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Spawn.t","type":"string option","qualifiedName":"Libtmux.Spawn.cwd","slug":"libtmux-spawn-t-cwd"},{"id":"Libtmux.Spawn.t.environment","publicId":"Libtmux.Spawn.t.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":748,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"lib/libtmux.mli","line":748,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Spawn.t","type":"(string * string) list","qualifiedName":"Libtmux.Spawn.environment","slug":"libtmux-spawn-t-environment"},{"id":"Libtmux.Window","publicId":"Libtmux.Window","qualifiedName":"Libtmux.Window","name":"Window","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" A global window shared by its session links. Window index and current state\n belong to a link, while panes and geometry belong to the window. "],"declarations":[{"kind":"module","text":"and Window : sig\n type t\n\n module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end\n\n module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end\n\n module Id : ID\n\n module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end\n\n type target = Target.t\n\n val id : t -> Id.t\n val name : t -> string\n val width : t -> int\n val height : t -> int\n val layout : t -> string\n val source : t -> Source.t\n val target : t -> target\n\n val same_entity : t -> t -> bool\n (** Compare IDs within the same bound {!Source.t} generation. *)\n\n val same_observation : t -> t -> bool\n (** Compare entity identity and snapshot identity. *)\n\n val panes : t -> Pane.t Iarray.t\n val links : t -> Window_link.t Iarray.t\nend","source":{"file":"lib/libtmux.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"A global window shared by its session links. Window index and current state belong to a link, while panes and geometry belong to the window."},"slug":"libtmux-window"},{"id":"Libtmux.Window.Fields","publicId":"Libtmux.Window.Fields","qualifiedName":"Libtmux.Window.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val id : (t, string) Field.t\n val name : (t, string) Field.t\n val width : (t, int) Field.t\n val height : (t, int) Field.t\n val layout : (t, string) Field.t\n end","source":{"file":"lib/libtmux.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","slug":"libtmux-window-fields"},{"id":"Libtmux.Window.Fields.height","publicId":"Libtmux.Window.Fields.height","qualifiedName":"Libtmux.Window.Fields.height","name":"height","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":237,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val height : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":237,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val height : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-height"},{"id":"Libtmux.Window.Fields.id","publicId":"Libtmux.Window.Fields.id","qualifiedName":"Libtmux.Window.Fields.id","name":"id","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val id : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val id : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-id"},{"id":"Libtmux.Window.Fields.layout","publicId":"Libtmux.Window.Fields.layout","qualifiedName":"Libtmux.Window.Fields.layout","name":"layout","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val layout : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val layout : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-layout"},{"id":"Libtmux.Window.Fields.name","publicId":"Libtmux.Window.Fields.name","qualifiedName":"Libtmux.Window.Fields.name","name":"name","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val name : (t, string) Field.t","source":{"file":"lib/libtmux.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val name : (t, string) Field.t","params":[],"returns":"(t, string) Field.t"}],"slug":"libtmux-window-fields-name"},{"id":"Libtmux.Window.Fields.width","publicId":"Libtmux.Window.Fields.width","qualifiedName":"Libtmux.Window.Fields.width","name":"width","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":236,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val width : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":236,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Fields","signatures":[{"raw":"val width : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window-fields-width"},{"id":"Libtmux.Window.Id","publicId":"Libtmux.Window.Id","qualifiedName":"Libtmux.Window.Id","name":"Id","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":246,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Id : ID","source":{"file":"lib/libtmux.mli","line":246,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","slug":"libtmux-window-id-1sgu"},{"id":"Libtmux.Window.Id.compare","publicId":"Libtmux.Window.Id.compare","qualifiedName":"Libtmux.Window.Id.compare","name":"compare","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":136,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val compare : t -> t -> int","source":{"file":"lib/libtmux.mli","line":136,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val compare : t -> t -> int","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"int"}],"slug":"libtmux-window-id-compare"},{"id":"Libtmux.Window.Id.equal","publicId":"Libtmux.Window.Id.equal","qualifiedName":"Libtmux.Window.Id.equal","name":"equal","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val equal : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val equal : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-id-equal"},{"id":"Libtmux.Window.Id.of_string","publicId":"Libtmux.Window.Id.of_string","qualifiedName":"Libtmux.Window.Id.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Accept a canonical prefixed decimal tmux ID in the uint32 range. "],"declarations":[{"kind":"function","text":"val of_string : string -> (t, Error.t) result","source":{"file":"lib/libtmux.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Id","doc":{"summary":"Accept a canonical prefixed decimal tmux ID in the uint32 range."},"signatures":[{"raw":"val of_string : string -> (t, Error.t) result","params":[{"name":"arg1","type":"string"}],"returns":"(t, Error.t) result"}],"slug":"libtmux-window-id-of_string"},{"id":"Libtmux.Window.Id.pp","publicId":"Libtmux.Window.Id.pp","qualifiedName":"Libtmux.Window.Id.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"lib/libtmux.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux-window-id-pp"},{"id":"Libtmux.Window.Id.t","publicId":"Libtmux.Window.Id.t","qualifiedName":"Libtmux.Window.Id.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-id-t"},{"id":"Libtmux.Window.Id.to_string","publicId":"Libtmux.Window.Id.to_string","qualifiedName":"Libtmux.Window.Id.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":134,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val to_string : t -> string","source":{"file":"lib/libtmux.mli","line":134,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Id","signatures":[{"raw":"val to_string : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-id-to_string"},{"id":"Libtmux.Window.Relations","publicId":"Libtmux.Window.Relations","qualifiedName":"Libtmux.Window.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":241,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val panes : (t, Pane.t) Relation.Many.t\n val links : (t, Window_link.t) Relation.Many.t\n end","source":{"file":"lib/libtmux.mli","line":241,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","slug":"libtmux-window-relations"},{"id":"Libtmux.Window.Relations.links","publicId":"Libtmux.Window.Relations.links","qualifiedName":"Libtmux.Window.Relations.links","name":"links","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":243,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val links : (t, Window_link.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":243,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val links : (t, Window_link.t) Relation.Many.t","params":[],"returns":"(t, Window_link.t) Relation.Many.t"}],"slug":"libtmux-window-relations-links"},{"id":"Libtmux.Window.Relations.panes","publicId":"Libtmux.Window.Relations.panes","qualifiedName":"Libtmux.Window.Relations.panes","name":"panes","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":242,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val panes : (t, Pane.t) Relation.Many.t","source":{"file":"lib/libtmux.mli","line":242,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Relations","signatures":[{"raw":"val panes : (t, Pane.t) Relation.Many.t","params":[],"returns":"(t, Pane.t) Relation.Many.t"}],"slug":"libtmux-window-relations-panes"},{"id":"Libtmux.Window.Target","publicId":"Libtmux.Window.Target","qualifiedName":"Libtmux.Window.Target","name":"Target","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":248,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Target : sig\n type t\n\n val of_id : source:Source.t -> Id.t -> t\n val source : t -> Source.t\n val id : t -> Id.t\n end","source":{"file":"lib/libtmux.mli","line":248,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","slug":"libtmux-window-target-6ecc"},{"id":"Libtmux.Window.Target.id","publicId":"Libtmux.Window.Target.id","qualifiedName":"Libtmux.Window.Target.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-target-id"},{"id":"Libtmux.Window.Target.of_id","publicId":"Libtmux.Window.Target.of_id","qualifiedName":"Libtmux.Window.Target.of_id","name":"of_id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val of_id : source:Source.t -> Id.t -> t","source":{"file":"lib/libtmux.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val of_id : source:Source.t -> Id.t -> t","params":[{"name":"source","type":"Source.t","keywordOnly":true},{"name":"arg1","type":"Id.t"}],"returns":"t"}],"slug":"libtmux-window-target-of_id"},{"id":"Libtmux.Window.Target.source","publicId":"Libtmux.Window.Target.source","qualifiedName":"Libtmux.Window.Target.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":252,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":252,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-target-source"},{"id":"Libtmux.Window.Target.t","publicId":"Libtmux.Window.Target.t","qualifiedName":"Libtmux.Window.Target.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":249,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":249,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window.Target","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-target-t"},{"id":"Libtmux.Window.height","publicId":"Libtmux.Window.height","qualifiedName":"Libtmux.Window.height","name":"height","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":261,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val height : t -> int","source":{"file":"lib/libtmux.mli","line":261,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val height : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-height"},{"id":"Libtmux.Window.id","publicId":"Libtmux.Window.id","qualifiedName":"Libtmux.Window.id","name":"id","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":258,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : t -> Id.t","source":{"file":"lib/libtmux.mli","line":258,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val id : t -> Id.t","params":[{"name":"arg1","type":"t"}],"returns":"Id.t"}],"slug":"libtmux-window-id-1sjw"},{"id":"Libtmux.Window.layout","publicId":"Libtmux.Window.layout","qualifiedName":"Libtmux.Window.layout","name":"layout","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":262,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val layout : t -> string","source":{"file":"lib/libtmux.mli","line":262,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val layout : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-layout"},{"id":"Libtmux.Window.links","publicId":"Libtmux.Window.links","qualifiedName":"Libtmux.Window.links","name":"links","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":273,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val links : t -> Window_link.t Iarray.t","source":{"file":"lib/libtmux.mli","line":273,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val links : t -> Window_link.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Window_link.t Iarray.t"}],"slug":"libtmux-window-links"},{"id":"Libtmux.Window.name","publicId":"Libtmux.Window.name","qualifiedName":"Libtmux.Window.name","name":"name","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":259,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val name : t -> string","source":{"file":"lib/libtmux.mli","line":259,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val name : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux-window-name"},{"id":"Libtmux.Window.panes","publicId":"Libtmux.Window.panes","qualifiedName":"Libtmux.Window.panes","name":"panes","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":272,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val panes : t -> Pane.t Iarray.t","source":{"file":"lib/libtmux.mli","line":272,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val panes : t -> Pane.t Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"Pane.t Iarray.t"}],"doc":{"summary":"","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"slug":"libtmux-window-panes"},{"id":"Libtmux.Window.same_entity","publicId":"Libtmux.Window.same_entity","qualifiedName":"Libtmux.Window.same_entity","name":"same_entity","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":266,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Compare IDs within the same bound {!Source.t} generation. "],"declarations":[{"kind":"function","text":"val same_entity : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","doc":{"summary":"Compare IDs within the same bound {!Source.t} generation."},"signatures":[{"raw":"val same_entity : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_entity"},{"id":"Libtmux.Window.same_observation","publicId":"Libtmux.Window.same_observation","qualifiedName":"Libtmux.Window.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":269,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Compare entity identity and snapshot identity. "],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":269,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","doc":{"summary":"Compare entity identity and snapshot identity."},"signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window-same_observation"},{"id":"Libtmux.Window.source","publicId":"Libtmux.Window.source","qualifiedName":"Libtmux.Window.source","name":"source","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":263,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Source.t","source":{"file":"lib/libtmux.mli","line":263,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val source : t -> Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Source.t"}],"slug":"libtmux-window-source"},{"id":"Libtmux.Window.t","publicId":"Libtmux.Window.t","qualifiedName":"Libtmux.Window.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window-t"},{"id":"Libtmux.Window.target","publicId":"Libtmux.Window.target","qualifiedName":"Libtmux.Window.target","name":"target","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":264,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val target : t -> target","source":{"file":"lib/libtmux.mli","line":264,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val target : t -> target","params":[{"name":"arg1","type":"t"}],"returns":"target"}],"slug":"libtmux-window-target-1sbf"},{"id":"Libtmux.Window.target:type","publicId":"Libtmux.Window.target:type","qualifiedName":"Libtmux.Window.target","name":"target","kind":"typealias","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":256,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type target = Target.t","source":{"file":"lib/libtmux.mli","line":256,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","type":"Target.t","signatures":[{"raw":"type target = Target.t","params":[]}],"slug":"libtmux-window-target-type"},{"id":"Libtmux.Window.width","publicId":"Libtmux.Window.width","qualifiedName":"Libtmux.Window.width","name":"width","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":260,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val width : t -> int","source":{"file":"lib/libtmux.mli","line":260,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window","signatures":[{"raw":"val width : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window-width"},{"id":"Libtmux.Window_link","publicId":"Libtmux.Window_link","qualifiedName":"Libtmux.Window_link","name":"Window_link","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":278,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" One captured session/index/window context. It is not a stable link\n incarnation across unlinking, movement or reindexing. "],"declarations":[{"kind":"module","text":"and Window_link : sig\n type t\n\n module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end\n\n module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end\n\n val index : t -> int\n val is_current : t -> bool\n val session : t -> Session.t\n val window : t -> Window.t\n\n val same_context : t -> t -> bool\n (** Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. *)\n\n val same_observation : t -> t -> bool\nend","source":{"file":"lib/libtmux.mli","line":278,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux","doc":{"summary":"One captured session/index/window context. It is not a stable link incarnation across unlinking, movement or reindexing."},"slug":"libtmux-window_link"},{"id":"Libtmux.Window_link.Fields","publicId":"Libtmux.Window_link.Fields","qualifiedName":"Libtmux.Window_link.Fields","name":"Fields","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":281,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Fields : sig\n val index : (t, int) Field.t\n val is_current : (t, bool) Field.t\n end","source":{"file":"lib/libtmux.mli","line":281,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-fields"},{"id":"Libtmux.Window_link.Fields.index","publicId":"Libtmux.Window_link.Fields.index","qualifiedName":"Libtmux.Window_link.Fields.index","name":"index","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":282,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val index : (t, int) Field.t","source":{"file":"lib/libtmux.mli","line":282,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val index : (t, int) Field.t","params":[],"returns":"(t, int) Field.t"}],"slug":"libtmux-window_link-fields-index"},{"id":"Libtmux.Window_link.Fields.is_current","publicId":"Libtmux.Window_link.Fields.is_current","qualifiedName":"Libtmux.Window_link.Fields.is_current","name":"is_current","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":283,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val is_current : (t, bool) Field.t","source":{"file":"lib/libtmux.mli","line":283,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link.Fields","signatures":[{"raw":"val is_current : (t, bool) Field.t","params":[],"returns":"(t, bool) Field.t"}],"slug":"libtmux-window_link-fields-is_current"},{"id":"Libtmux.Window_link.Relations","publicId":"Libtmux.Window_link.Relations","qualifiedName":"Libtmux.Window_link.Relations","name":"Relations","kind":"module","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":286,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Relations : sig\n val session : (t, Session.t) Relation.One.t\n val window : (t, Window.t) Relation.One.t\n end","source":{"file":"lib/libtmux.mli","line":286,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link","slug":"libtmux-window_link-relations"},{"id":"Libtmux.Window_link.Relations.session","publicId":"Libtmux.Window_link.Relations.session","qualifiedName":"Libtmux.Window_link.Relations.session","name":"session","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":287,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val session : (t, Session.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":287,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val session : (t, Session.t) Relation.One.t","params":[],"returns":"(t, Session.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-session"},{"id":"Libtmux.Window_link.Relations.window","publicId":"Libtmux.Window_link.Relations.window","qualifiedName":"Libtmux.Window_link.Relations.window","name":"window","kind":"constant","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":288,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"val window : (t, Window.t) Relation.One.t","source":{"file":"lib/libtmux.mli","line":288,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link.Relations","signatures":[{"raw":"val window : (t, Window.t) Relation.One.t","params":[],"returns":"(t, Window.t) Relation.One.t"}],"slug":"libtmux-window_link-relations-window"},{"id":"Libtmux.Window_link.index","publicId":"Libtmux.Window_link.index","qualifiedName":"Libtmux.Window_link.index","name":"index","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":291,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val index : t -> int","source":{"file":"lib/libtmux.mli","line":291,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val index : t -> int","params":[{"name":"arg1","type":"t"}],"returns":"int"}],"slug":"libtmux-window_link-index"},{"id":"Libtmux.Window_link.is_current","publicId":"Libtmux.Window_link.is_current","qualifiedName":"Libtmux.Window_link.is_current","name":"is_current","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":292,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val is_current : t -> bool","source":{"file":"lib/libtmux.mli","line":292,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val is_current : t -> bool","params":[{"name":"arg1","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-is_current"},{"id":"Libtmux.Window_link.same_context","publicId":"Libtmux.Window_link.same_context","qualifiedName":"Libtmux.Window_link.same_context","name":"same_context","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":296,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Compare source, session, index and window. An equal context does not\n certify a stable link incarnation across reindexing or unlink/relink. "],"declarations":[{"kind":"function","text":"val same_context : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":296,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link","doc":{"summary":"Compare source, session, index and window. An equal context does not certify a stable link incarnation across reindexing or unlink/relink."},"signatures":[{"raw":"val same_context : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_context"},{"id":"Libtmux.Window_link.same_observation","publicId":"Libtmux.Window_link.same_observation","qualifiedName":"Libtmux.Window_link.same_observation","name":"same_observation","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":300,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val same_observation : t -> t -> bool","source":{"file":"lib/libtmux.mli","line":300,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val same_observation : t -> t -> bool","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"t"}],"returns":"bool"}],"slug":"libtmux-window_link-same_observation"},{"id":"Libtmux.Window_link.session","publicId":"Libtmux.Window_link.session","qualifiedName":"Libtmux.Window_link.session","name":"session","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":293,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> Session.t","source":{"file":"lib/libtmux.mli","line":293,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val session : t -> Session.t","params":[{"name":"arg1","type":"t"}],"returns":"Session.t"}],"slug":"libtmux-window_link-session"},{"id":"Libtmux.Window_link.t","publicId":"Libtmux.Window_link.t","qualifiedName":"Libtmux.Window_link.t","name":"t","kind":"typealias","package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":279,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"lib/libtmux.mli","line":279,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux-window_link-t"},{"id":"Libtmux.Window_link.window","publicId":"Libtmux.Window_link.window","qualifiedName":"Libtmux.Window_link.window","name":"window","kind":"function","modifiers":[],"package":"libtmux","product":"core","apiScope":"exported","publicOwner":"Libtmux","source":{"file":"lib/libtmux.mli","line":294,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val window : t -> Window.t","source":{"file":"lib/libtmux.mli","line":294,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux.Window_link","signatures":[{"raw":"val window : t -> Window.t","params":[{"name":"arg1","type":"t"}],"returns":"Window.t"}],"slug":"libtmux-window_link-window"},{"id":"Libtmux_eio","publicId":"Libtmux_eio","qualifiedName":"Libtmux_eio","name":"Libtmux_eio","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Concurrent Linux tmux clients using the application's Eio scheduler.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md}streaming\n guide} demonstrates application-owned switches, cancellation and continuity\n gaps. "],"declarations":[{"kind":"module","text":"","source":{"file":"eio/libtmux_eio.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"doc":{"summary":"Concurrent Linux tmux clients using the application's Eio scheduler.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [streaming guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md) demonstrates application-owned switches, cancellation and continuity gaps."},"slug":"libtmux_eio"},{"id":"Libtmux_eio.Cleanup","publicId":"Libtmux_eio.Cleanup","qualifiedName":"Libtmux_eio.Cleanup","name":"Cleanup","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Domain-owned cleanup diagnostics shared with the blocking backend. Supply a\n report before setup to inspect secondary failures after native cancellation.\n No scheduler is needed to inspect a report. "],"declarations":[{"kind":"module","text":"module Cleanup = Libtmux_unix.Cleanup","source":{"file":"eio/libtmux_eio.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio","doc":{"summary":"Domain-owned cleanup diagnostics shared with the blocking backend. Supply a report before setup to inspect secondary failures after native cancellation. No scheduler is needed to inspect a report."},"exportedFrom":"Libtmux_unix.Cleanup","slug":"libtmux_eio-cleanup"},{"id":"Libtmux_eio.Client","publicId":"Libtmux_eio.Client","qualifiedName":"Libtmux_eio.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n *)\n\n val cleanup : t -> Cleanup.t\n (** Read the supplied report or the client's fresh default without I/O.\n {!Cleanup.inspect} remains available after close. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Queue capacities remain reserved while empty;\n captures and reads need additional scratch space and can return\n {!Libtmux.Error.Capacity} below the subscriber-count limit. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md#plan-shared-capacity}shared\n capacity guide} for combined reservations and process slots.\n\n Overflow or coverage/layout changes emit Gap then End. Data starts after\n admission's marker, with no snapshot/history barrier, automatic reconnect\n or silent cursor reuse. New admission returns [Error Libtmux.Error.Closed]\n once {!close} starts. *)\n\n val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. A cleanup failure cannot replace\n an earlier error or cancellation; inspect {!cleanup} for secondary\n failures. Otherwise cleanup failure prevents success or renewed coverage.\n No history/barrier guarantee. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve bounded capacity without I/O. Return\n [Error Libtmux.Error.Closed] once {!close} starts. *)\n\n val await : 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. *)\n\n val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result\n (** Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. *)\n\n val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. *)\n\n val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for : t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal : t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Libtmux.Error.Unsupported}. *)\n\n val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Retire the generation and close owned control clients and descriptors.\n Reject new {!submit} and {!subscribe} calls as soon as closing starts.\n Concurrent calls await the same teardown result. Later calls retain a\n teardown failure instead of treating the closed flag as success. Each\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n Other fibers can run during that wait. The grace is per helper; it does\n not bound scheduling, filesystem or uninterruptible kernel work. No signal\n targets the daemon. tmux's [exit-unattached] and [exit-empty] policies can\n end the daemon after its clients or sessions disappear. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_eio-client"},{"id":"Libtmux_eio.Client.await","publicId":"Libtmux_eio.Client.await","qualifiedName":"Libtmux_eio.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Cancellation propagates as Eio cancellation. Store the handle outside the\n cancelled fiber: the client drains written work independently, and the\n eventual result remains inspectable. "],"declarations":[{"kind":"function","text":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Cancellation propagates as Eio cancellation. Store the handle outside the cancelled fiber: the client drains written work independently, and the eventual result remains inspectable."},"signatures":[{"raw":"val await : 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-await"},{"id":"Libtmux_eio.Client.break_pane","publicId":"Libtmux_eio.Client.break_pane","qualifiedName":"Libtmux_eio.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":443,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":443,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-break_pane"},{"id":"Libtmux_eio.Client.capture","publicId":"Libtmux_eio.Client.capture","qualifiedName":"Libtmux_eio.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Acquire a complete immutable graph over an interval. Conflicting or\n disappearing entities fail capture; they do not become empty relations.\n The returned values remain readable after client closure. "],"declarations":[{"kind":"function","text":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a complete immutable graph over an interval. Conflicting or disappearing entities fail capture; they do not become empty relations. The returned values remain readable after client closure."},"signatures":[{"raw":"val capture : t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture"},{"id":"Libtmux_eio.Client.capture_environment","publicId":"Libtmux_eio.Client.capture_environment","qualifiedName":"Libtmux_eio.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":285,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":285,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_environment"},{"id":"Libtmux_eio.Client.capture_hooks","publicId":"Libtmux_eio.Client.capture_hooks","qualifiedName":"Libtmux_eio.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":364,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":364,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_hooks"},{"id":"Libtmux_eio.Client.capture_options","publicId":"Libtmux_eio.Client.capture_options","qualifiedName":"Libtmux_eio.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":315,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Libtmux.Error.Unsupported}. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":315,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors cover every supported release from tmux 3.3a through 3.8; other versions return {!Libtmux.Error.Unsupported}."},"signatures":[{"raw":"val capture_options :\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_options"},{"id":"Libtmux_eio.Client.capture_text","publicId":"Libtmux_eio.Client.capture_text","qualifiedName":"Libtmux_eio.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":214,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Inclusive ordinary screen rows, using a bounded private file transfer.\n Qualified local scratch storage must be shared with the daemon. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":214,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Inclusive ordinary screen rows, using a bounded private file transfer. Qualified local scratch storage must be shared with the daemon."},"signatures":[{"raw":"val capture_text :\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-capture_text"},{"id":"Libtmux_eio.Client.cleanup","publicId":"Libtmux_eio.Client.cleanup","qualifiedName":"Libtmux_eio.Client.cleanup","name":"cleanup","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":145,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read the supplied report or the client's fresh default without I/O.\n {!Cleanup.inspect} remains available after close. "],"declarations":[{"kind":"function","text":"val cleanup : t -> Cleanup.t","source":{"file":"eio/libtmux_eio.mli","line":145,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the supplied report or the client's fresh default without I/O. {!Cleanup.inspect} remains available after close."},"signatures":[{"raw":"val cleanup : t -> Cleanup.t","params":[{"name":"arg1","type":"t"}],"returns":"Cleanup.t"}],"slug":"libtmux_eio-client-cleanup"},{"id":"Libtmux_eio.Client.clear_history","publicId":"Libtmux_eio.Client.clear_history","qualifiedName":"Libtmux_eio.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":584,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":584,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_history"},{"id":"Libtmux_eio.Client.clear_option_array","publicId":"Libtmux_eio.Client.clear_option_array","qualifiedName":"Libtmux_eio.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":360,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":360,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-clear_option_array"},{"id":"Libtmux_eio.Client.close","publicId":"Libtmux_eio.Client.close","qualifiedName":"Libtmux_eio.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":590,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Retire the generation and close owned control clients and descriptors.\n Reject new {!submit} and {!subscribe} calls as soon as closing starts.\n Concurrent calls await the same teardown result. Later calls retain a\n teardown failure instead of treating the closed flag as success. Each\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n Other fibers can run during that wait. The grace is per helper; it does\n not bound scheduling, filesystem or uninterruptible kernel work. No signal\n targets the daemon. tmux's [exit-unattached] and [exit-empty] policies can\n end the daemon after its clients or sessions disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":590,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Retire the generation and close owned control clients and descriptors. Reject new {!submit} and {!subscribe} calls as soon as closing starts. Concurrent calls await the same teardown result. Later calls retain a teardown failure instead of treating the closed flag as success. Each helper gets 200 ms of TERM grace, followed by KILL if needed and reaping. Other fibers can run during that wait. The grace is per helper; it does not bound scheduling, filesystem or uninterruptible kernel work. No signal targets the daemon. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-close"},{"id":"Libtmux_eio.Client.connect","publicId":"Libtmux_eio.Client.connect","qualifiedName":"Libtmux_eio.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Attach to an existing local Linux daemon in the same PID namespace and\n shared filesystem. Requires pidfd support. Default exchange timeout: one\n second. All client calls belong to the connecting OCaml domain. Initial\n and auxiliary attachments suppress tmux's [update-environment] behavior.\n "],"declarations":[{"kind":"function","text":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Attach to an existing local Linux daemon in the same PID namespace and shared filesystem. Requires pidfd support. Default exchange timeout: one second. All client calls belong to the connecting OCaml domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-connect"},{"id":"Libtmux_eio.Client.create_session","publicId":"Libtmux_eio.Client.create_session","qualifiedName":"Libtmux_eio.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":412,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":412,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_session"},{"id":"Libtmux_eio.Client.create_window","publicId":"Libtmux_eio.Client.create_window","qualifiedName":"Libtmux_eio.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":423,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":423,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index."},"signatures":[{"raw":"val create_window :\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-create_window"},{"id":"Libtmux_eio.Client.cycle_layout","publicId":"Libtmux_eio.Client.cycle_layout","qualifiedName":"Libtmux_eio.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":537,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":537,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-cycle_layout"},{"id":"Libtmux_eio.Client.kill_pane","publicId":"Libtmux_eio.Client.kill_pane","qualifiedName":"Libtmux_eio.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":463,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":463,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_pane"},{"id":"Libtmux_eio.Client.kill_session","publicId":"Libtmux_eio.Client.kill_session","qualifiedName":"Libtmux_eio.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":454,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":454,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_session"},{"id":"Libtmux_eio.Client.kill_window","publicId":"Libtmux_eio.Client.kill_window","qualifiedName":"Libtmux_eio.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":459,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window : t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":459,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-kill_window"},{"id":"Libtmux_eio.Client.link_window","publicId":"Libtmux_eio.Client.link_window","qualifiedName":"Libtmux_eio.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-link_window"},{"id":"Libtmux_eio.Client.move_pane","publicId":"Libtmux_eio.Client.move_pane","qualifiedName":"Libtmux_eio.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":544,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":544,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_pane"},{"id":"Libtmux_eio.Client.move_window_at","publicId":"Libtmux_eio.Client.move_window_at","qualifiedName":"Libtmux_eio.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":490,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":490,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail."},"signatures":[{"raw":"val move_window_at :\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-move_window_at"},{"id":"Libtmux_eio.Client.read_hook","publicId":"Libtmux_eio.Client.read_hook","qualifiedName":"Libtmux_eio.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":369,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":369,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_hook"},{"id":"Libtmux_eio.Client.read_option","publicId":"Libtmux_eio.Client.read_option","qualifiedName":"Libtmux_eio.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":326,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":326,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-read_option"},{"id":"Libtmux_eio.Client.refresh_client_at","publicId":"Libtmux_eio.Client.refresh_client_at","qualifiedName":"Libtmux_eio.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-refresh_client_at"},{"id":"Libtmux_eio.Client.remove_environment","publicId":"Libtmux_eio.Client.remove_environment","qualifiedName":"Libtmux_eio.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":311,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":311,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_environment"},{"id":"Libtmux_eio.Client.remove_hook","publicId":"Libtmux_eio.Client.remove_hook","qualifiedName":"Libtmux_eio.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":394,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":394,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-remove_hook"},{"id":"Libtmux_eio.Client.rename_session","publicId":"Libtmux_eio.Client.rename_session","qualifiedName":"Libtmux_eio.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n t -> Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_session"},{"id":"Libtmux_eio.Client.rename_window","publicId":"Libtmux_eio.Client.rename_window","qualifiedName":"Libtmux_eio.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":225,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value."},"signatures":[{"raw":"val rename_window :\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rename_window"},{"id":"Libtmux_eio.Client.request_detach_client_at","publicId":"Libtmux_eio.Client.request_detach_client_at","qualifiedName":"Libtmux_eio.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":245,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":245,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-request_detach_client_at"},{"id":"Libtmux_eio.Client.resize_control_client_at","publicId":"Libtmux_eio.Client.resize_control_client_at","qualifiedName":"Libtmux_eio.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":258,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":258,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_control_client_at"},{"id":"Libtmux_eio.Client.resize_pane","publicId":"Libtmux_eio.Client.resize_pane","qualifiedName":"Libtmux_eio.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":509,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":509,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_pane"},{"id":"Libtmux_eio.Client.resize_window","publicId":"Libtmux_eio.Client.resize_window","qualifiedName":"Libtmux_eio.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":519,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":519,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-resize_window"},{"id":"Libtmux_eio.Client.respawn_pane","publicId":"Libtmux_eio.Client.respawn_pane","qualifiedName":"Libtmux_eio.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":574,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":574,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-respawn_pane"},{"id":"Libtmux_eio.Client.rotate_panes","publicId":"Libtmux_eio.Client.rotate_panes","qualifiedName":"Libtmux_eio.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":563,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":563,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-rotate_panes"},{"id":"Libtmux_eio.Client.run","publicId":"Libtmux_eio.Client.run","qualifiedName":"Libtmux_eio.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Submit and await an explicit command. Retain a separate submitted handle\n when the outcome must remain inspectable after caller cancellation. "],"declarations":[{"kind":"function","text":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Submit and await an explicit command. Retain a separate submitted handle when the outcome must remain inspectable after caller cancellation."},"signatures":[{"raw":"val run : t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run"},{"id":"Libtmux_eio.Client.run_hook","publicId":"Libtmux_eio.Client.run_hook","qualifiedName":"Libtmux_eio.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":403,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":403,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-run_hook"},{"id":"Libtmux_eio.Client.select_layout","publicId":"Libtmux_eio.Client.select_layout","qualifiedName":"Libtmux_eio.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":529,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":529,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result."},"signatures":[{"raw":"val select_layout :\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_layout"},{"id":"Libtmux_eio.Client.select_pane","publicId":"Libtmux_eio.Client.select_pane","qualifiedName":"Libtmux_eio.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":500,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":500,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_pane"},{"id":"Libtmux_eio.Client.select_window_at","publicId":"Libtmux_eio.Client.select_window_at","qualifiedName":"Libtmux_eio.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":467,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":467,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-select_window_at"},{"id":"Libtmux_eio.Client.send_keys","publicId":"Libtmux_eio.Client.send_keys","qualifiedName":"Libtmux_eio.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":270,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":270,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation."},"signatures":[{"raw":"val send_keys :\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_keys"},{"id":"Libtmux_eio.Client.send_text","publicId":"Libtmux_eio.Client.send_text","qualifiedName":"Libtmux_eio.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":266,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission."},"signatures":[{"raw":"val send_text :\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-send_text"},{"id":"Libtmux_eio.Client.set_environment","publicId":"Libtmux_eio.Client.set_environment","qualifiedName":"Libtmux_eio.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":295,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":295,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_environment"},{"id":"Libtmux_eio.Client.set_hook","publicId":"Libtmux_eio.Client.set_hook","qualifiedName":"Libtmux_eio.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":378,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":378,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_hook"},{"id":"Libtmux_eio.Client.set_option","publicId":"Libtmux_eio.Client.set_option","qualifiedName":"Libtmux_eio.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":337,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_option"},{"id":"Libtmux_eio.Client.set_pane_title","publicId":"Libtmux_eio.Client.set_pane_title","qualifiedName":"Libtmux_eio.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":504,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":504,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-set_pane_title"},{"id":"Libtmux_eio.Client.signal","publicId":"Libtmux_eio.Client.signal","qualifiedName":"Libtmux_eio.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":281,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":281,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-signal"},{"id":"Libtmux_eio.Client.source","publicId":"Libtmux_eio.Client.source","qualifiedName":"Libtmux_eio.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"eio/libtmux_eio.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_eio-client-source"},{"id":"Libtmux_eio.Client.split_pane","publicId":"Libtmux_eio.Client.split_pane","qualifiedName":"Libtmux_eio.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":432,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":432,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-split_pane"},{"id":"Libtmux_eio.Client.submit","publicId":"Libtmux_eio.Client.submit","qualifiedName":"Libtmux_eio.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":195,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Validate and reserve bounded capacity without I/O. Return\n [Error Libtmux.Error.Closed] once {!close} starts. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":195,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Validate and reserve bounded capacity without I/O. Return `Error Libtmux.Error.Closed` once {!close} starts."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-submit"},{"id":"Libtmux_eio.Client.subscribe","publicId":"Libtmux_eio.Client.subscribe","qualifiedName":"Libtmux_eio.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":156,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Acquire verified coverage through one shared lane per session; choose the\n least observed session ID unless supplied. A client-owned reader delivers\n future bytes without application callbacks. Default queue bounds are 1\n MiB/1024 events; max 16 subscribers and eight total client lanes, sharing\n the 32 MiB payload budget. Queue capacities remain reserved while empty;\n captures and reads need additional scratch space and can return\n {!Libtmux.Error.Capacity} below the subscriber-count limit. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md#plan-shared-capacity}shared\n capacity guide} for combined reservations and process slots.\n\n Overflow or coverage/layout changes emit Gap then End. Data starts after\n admission's marker, with no snapshot/history barrier, automatic reconnect\n or silent cursor reuse. New admission returns [Error Libtmux.Error.Closed]\n once {!close} starts. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":156,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Acquire verified coverage through one shared lane per session; choose the least observed session ID unless supplied. A client-owned reader delivers future bytes without application callbacks. Default queue bounds are 1 MiB/1024 events; max 16 subscribers and eight total client lanes, sharing the 32 MiB payload budget. Queue capacities remain reserved while empty; captures and reads need additional scratch space and can return {!Libtmux.Error.Capacity} below the subscriber-count limit. See the [shared capacity guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md#plan-shared-capacity) for combined reservations and process slots.","body":"Overflow or coverage/layout changes emit Gap then End. Data starts after admission's marker, with no snapshot/history barrier, automatic reconnect or silent cursor reuse. New admission returns `Error Libtmux.Error.Closed` once {!close} starts.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-subscribe"},{"id":"Libtmux_eio.Client.swap_panes","publicId":"Libtmux_eio.Client.swap_panes","qualifiedName":"Libtmux_eio.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":555,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":555,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-swap_panes"},{"id":"Libtmux_eio.Client.switch_client_at","publicId":"Libtmux_eio.Client.switch_client_at","qualifiedName":"Libtmux_eio.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-switch_client_at"},{"id":"Libtmux_eio.Client.t","publicId":"Libtmux_eio.Client.t","qualifiedName":"Libtmux_eio.Client.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-client-t"},{"id":"Libtmux_eio.Client.unlink_window_at","publicId":"Libtmux_eio.Client.unlink_window_at","qualifiedName":"Libtmux_eio.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":472,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unlink_window_at"},{"id":"Libtmux_eio.Client.unset_environment","publicId":"Libtmux_eio.Client.unset_environment","qualifiedName":"Libtmux_eio.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":306,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":306,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_environment"},{"id":"Libtmux_eio.Client.unset_option","publicId":"Libtmux_eio.Client.unset_option","qualifiedName":"Libtmux_eio.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":351,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":351,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-unset_option"},{"id":"Libtmux_eio.Client.version","publicId":"Libtmux_eio.Client.version","qualifiedName":"Libtmux_eio.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":153,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"eio/libtmux_eio.mli","line":153,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_eio-client-version"},{"id":"Libtmux_eio.Client.wait_for","publicId":"Libtmux_eio.Client.wait_for","qualifiedName":"Libtmux_eio.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":278,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":278,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for : t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for"},{"id":"Libtmux_eio.Client.wait_for_text","publicId":"Libtmux_eio.Client.wait_for_text","qualifiedName":"Libtmux_eio.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":178,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Subscribe and capture the screen immediately, then recapture on output.\n Membership/overflow gaps establish fresh coverage in the same binding.\n Maximum pattern: 64 KiB. Return captured rendered text containing it;\n transient text may be missed. Deadlines are checked between bounded\n acquisitions, whose I/O retains the client exchange timeout. Cancellation\n propagates and releases the subscription. A cleanup failure cannot replace\n an earlier error or cancellation; inspect {!cleanup} for secondary\n failures. Otherwise cleanup failure prevents success or renewed coverage.\n No history/barrier guarantee. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":178,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Subscribe and capture the screen immediately, then recapture on output. Membership/overflow gaps establish fresh coverage in the same binding. Maximum pattern: 64 KiB. Return captured rendered text containing it; transient text may be missed. Deadlines are checked between bounded acquisitions, whose I/O retains the client exchange timeout. Cancellation propagates and releases the subscription. A cleanup failure cannot replace an earlier error or cancellation; inspect {!cleanup} for secondary failures. Otherwise cleanup failure prevents success or renewed coverage. No history/barrier guarantee."},"signatures":[{"raw":"val wait_for_text :\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-wait_for_text"},{"id":"Libtmux_eio.Client.zoom_pane","publicId":"Libtmux_eio.Client.zoom_pane","qualifiedName":"Libtmux_eio.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":571,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":571,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane : t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-client-zoom_pane"},{"id":"Libtmux_eio.Operation","publicId":"Libtmux_eio.Operation","qualifiedName":"Libtmux_eio.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. When the\n daemon watcher retires an in-flight operation, [cause] retains\n {!Libtmux.Error.Disconnected}. Idle-reader failures also retain their\n library cause instead of becoming an explicit client-close reason. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** Read without I/O, including after client closure. Owning domain only. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove unsent work. A written request remains owned and drained by the\n client. *)\n\n val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result\n (** Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_eio-operation"},{"id":"Libtmux_eio.Operation.await_stage","publicId":"Libtmux_eio.Operation.await_stage","qualifiedName":"Libtmux_eio.Operation.await_stage","name":"await_stage","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":86,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Wait for the named stage or a terminal state. Acknowledgement does not\n establish completion. Cancelling this observer leaves the operation alone.\n "],"declarations":[{"kind":"function","text":"val await_stage :\n 'a t -> [ `Written | `Acknowledged ] -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":86,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Wait for the named stage or a terminal state. Acknowledgement does not establish completion. Cancelling this observer leaves the operation alone."},"signatures":[{"raw":"val await_stage :\n 'a t -> [ `Acknowledged | `Written ] -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"},{"name":"arg2","type":"[ `Acknowledged | `Written ]"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-await_stage"},{"id":"Libtmux_eio.Operation.cancel","publicId":"Libtmux_eio.Operation.cancel","qualifiedName":"Libtmux_eio.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove unsent work. A written request remains owned and drained by the\n client. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Remove unsent work. A written request remains owned and drained by the client."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-cancel"},{"id":"Libtmux_eio.Operation.cleanup_receipt","publicId":"Libtmux_eio.Operation.cleanup_receipt","qualifiedName":"Libtmux_eio.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. When the\n daemon watcher retires an in-flight operation, [cause] retains\n {!Libtmux.Error.Disconnected}. Idle-reader failures also retain their\n library cause instead of becoming an explicit client-close reason. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"eio/libtmux_eio.mli","line":58,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry. When the daemon watcher retires an in-flight operation, `cause` retains {!Libtmux.Error.Disconnected}. Idle-reader failures also retain their library cause instead of becoming an explicit client-close reason."},"signatures":[{"raw":"type cleanup_receipt =\n {\n cause: Libtmux.Error.t ;\n owned_buffers: string list ;\n created: Libtmux.Created.t list }","params":[]}],"slug":"libtmux_eio-operation-cleanup_receipt"},{"id":"Libtmux_eio.Operation.cleanup_receipt.cause","publicId":"Libtmux_eio.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"eio/libtmux_eio.mli","line":59,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_eio.Operation.cause","slug":"libtmux_eio-operation-cleanup_receipt-cause"},{"id":"Libtmux_eio.Operation.cleanup_receipt.created","publicId":"Libtmux_eio.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"eio/libtmux_eio.mli","line":61,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_eio.Operation.created","slug":"libtmux_eio-operation-cleanup_receipt-created"},{"id":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_eio.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"eio/libtmux_eio.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_eio.Operation.owned_buffers","slug":"libtmux_eio-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_eio.Operation.id","publicId":"Libtmux_eio.Operation.id","qualifiedName":"Libtmux_eio.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":77,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"eio/libtmux_eio.mli","line":77,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_eio-operation-id"},{"id":"Libtmux_eio.Operation.inspect","publicId":"Libtmux_eio.Operation.inspect","qualifiedName":"Libtmux_eio.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read without I/O, including after client closure. Owning domain only. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation","doc":{"summary":"Read without I/O, including after client closure. Owning domain only."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_eio-operation-inspect"},{"id":"Libtmux_eio.Operation.state","publicId":"Libtmux_eio.Operation.state","qualifiedName":"Libtmux_eio.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":69,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a state =\n | Queued \n | Not_started \n | Written \n | Acknowledged \n | Finished of ('a, Libtmux.Error.t) result \n | Outcome_unknown of cleanup_receipt ","params":[]}],"slug":"libtmux_eio-operation-state"},{"id":"Libtmux_eio.Operation.state.Acknowledged","publicId":"Libtmux_eio.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"eio/libtmux_eio.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Acknowledged","slug":"libtmux_eio-operation-state-acknowledged"},{"id":"Libtmux_eio.Operation.state.Finished","publicId":"Libtmux_eio.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Finished","slug":"libtmux_eio-operation-state-finished"},{"id":"Libtmux_eio.Operation.state.Not_started","publicId":"Libtmux_eio.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":71,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"eio/libtmux_eio.mli","line":71,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Not_started","slug":"libtmux_eio-operation-state-not_started"},{"id":"Libtmux_eio.Operation.state.Outcome_unknown","publicId":"Libtmux_eio.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":75,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"eio/libtmux_eio.mli","line":75,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation.state","variant":"tuple","qualifiedName":"Libtmux_eio.Operation.Outcome_unknown","slug":"libtmux_eio-operation-state-outcome_unknown"},{"id":"Libtmux_eio.Operation.state.Queued","publicId":"Libtmux_eio.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":70,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"eio/libtmux_eio.mli","line":70,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Queued","slug":"libtmux_eio-operation-state-queued"},{"id":"Libtmux_eio.Operation.state.Written","publicId":"Libtmux_eio.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":72,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"eio/libtmux_eio.mli","line":72,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation.state","variant":"unit","qualifiedName":"Libtmux_eio.Operation.Written","slug":"libtmux_eio-operation-state-written"},{"id":"Libtmux_eio.Operation.t","publicId":"Libtmux_eio.Operation.t","qualifiedName":"Libtmux_eio.Operation.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"eio/libtmux_eio.mli","line":56,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-operation-t"},{"id":"Libtmux_eio.Rendered","publicId":"Libtmux_eio.Rendered","qualifiedName":"Libtmux_eio.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"eio/libtmux_eio.mli","line":19,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio","exportedFrom":"Libtmux.Captured_text","slug":"libtmux_eio-rendered"},{"id":"Libtmux_eio.Subscription","publicId":"Libtmux_eio.Subscription","qualifiedName":"Libtmux_eio.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O, on the owning domain. *)\n\n val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Concurrent calls\n join the same cleanup, including reaping a lane when it becomes unused;\n later calls retain cleanup failures. Borrowed clients and the daemon\n remain alive. {!poll} can still read the terminal event. *)\n\n val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_eio-subscription"},{"id":"Libtmux_eio.Subscription.close","publicId":"Libtmux_eio.Subscription.close","qualifiedName":"Libtmux_eio.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":107,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Concurrent calls\n join the same cleanup, including reaping a lane when it becomes unused;\n later calls retain cleanup failures. Borrowed clients and the daemon\n remain alive. {!poll} can still read the terminal event. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":107,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"End an active subscription with Cancelled and discard pending data. Preserve an already ended subscription's terminal reason. Concurrent calls join the same cleanup, including reaping a lane when it becomes unused; later calls retain cleanup failures. Borrowed clients and the daemon remain alive. {!poll} can still read the terminal event."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-close"},{"id":"Libtmux_eio.Subscription.next","publicId":"Libtmux_eio.Subscription.next","qualifiedName":"Libtmux_eio.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Await one event, defaulting to a one-second deadline. [None] follows a\n consumed End. A deadline keeps the subscription active. Eio cancellation\n closes it, releases its lane when unused, and propagates. "],"declarations":[{"kind":"function","text":"val next :\n ?timeout:float -> t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Await one event, defaulting to a one-second deadline. `None` follows a consumed End. A deadline keeps the subscription active. Eio cancellation closes it, releases its lane when unused, and propagates."},"signatures":[{"raw":"val next :\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-next"},{"id":"Libtmux_eio.Subscription.poll","publicId":"Libtmux_eio.Subscription.poll","qualifiedName":"Libtmux_eio.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove a queued event without I/O, on the owning domain. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Remove a queued event without I/O, on the owning domain."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_eio-subscription-poll"},{"id":"Libtmux_eio.Subscription.t","publicId":"Libtmux_eio.Subscription.t","qualifiedName":"Libtmux_eio.Subscription.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":96,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":96,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-subscription-t"},{"id":"Libtmux_eio.Subscription.wait_for_bytes","publicId":"Libtmux_eio.Subscription.wait_for_bytes","qualifiedName":"Libtmux_eio.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Consume future observed bytes through a match, with a maximum 64 KiB\n nonempty pattern. Match across Data boundaries and return its end cursor.\n Gaps end matching. This searches neither rendered text nor history. A\n deadline leaves the subscription active; cancellation closes it. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"eio/libtmux_eio.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Subscription","doc":{"summary":"Consume future observed bytes through a match, with a maximum 64 KiB nonempty pattern. Match across Data boundaries and return its end cursor. Gaps end matching. This searches neither rendered text nor history. A deadline leaves the subscription active; cancellation closes it.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_watch.ml","intro":"Observe future output with Eio. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"observed: changed\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val wait_for_bytes :\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_eio-subscription-wait_for_bytes"},{"id":"Libtmux_eio.Terminal","publicId":"Libtmux_eio.Terminal","qualifiedName":"Libtmux_eio.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Cooperative TERM gets\n 200 ms of grace before forced termination, while other fibers can run.\n Scheduling and kernel completion can add time. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. Supply\n [cleanup] before the call to retain secondary failures after cancellation.\n *)\nend","source":{"file":"eio/libtmux_eio.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_eio-terminal"},{"id":"Libtmux_eio.Terminal.attach_current","publicId":"Libtmux_eio.Terminal.attach_current","qualifiedName":"Libtmux_eio.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-eio","product":"core","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Run an interactive terminal client until exit, using the application's\n process manager and standard streams unless explicit flows are supplied.\n [stdin] must be backed by a terminal descriptor; a pipe-backed flow is\n rejected by tmux. Select the exact ID on the daemon currently listening at\n [endpoint], without a captured target, binding, retry or daemon startup.\n\n Environment updates and read-only mode default to false. Clear inherited\n [TMUX] and [TMUX_PANE]. Cancellation propagates after terminating and\n reaping this client; it does not stop the daemon. Cooperative TERM gets\n 200 ms of grace before forced termination, while other fibers can run.\n Scheduling and kernel completion can add time. Success proves terminal\n client exit. Diagnostics go to [stderr]; borrowed flows stay open. Supply\n [cleanup] before the call to retain secondary failures after cancellation.\n "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:_ Eio.Flow.source ->\n ?stdout:_ Eio.Flow.sink ->\n ?stderr:_ Eio.Flow.sink ->\n process_mgr:_ Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Terminal","doc":{"summary":"Run an interactive terminal client until exit, using the application's process manager and standard streams unless explicit flows are supplied. `stdin` must be backed by a terminal descriptor; a pipe-backed flow is rejected by tmux. Select the exact ID on the daemon currently listening at `endpoint`, without a captured target, binding, retry or daemon startup.","body":"Environment updates and read-only mode default to false. Clear inherited `TMUX` and `TMUX_PANE`. Cancellation propagates after terminating and reaping this client; it does not stop the daemon. Cooperative TERM gets 200 ms of grace before forced termination, while other fibers can run. Scheduling and kernel completion can add time. Success proves terminal client exit. Diagnostics go to `stderr`; borrowed flows stay open. Supply `cleanup` before the call to retain secondary failures after cancellation."},"signatures":[{"raw":"val attach_current :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:[> Eio.Flow.source_ty ] Eio.Flow.source ->\n ?stdout:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n ?stderr:[> Eio.Flow.sink_ty ] Eio.Flow.sink ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"[> Eio.Flow.source_ty ] Eio.Flow.source","optional":true,"keywordOnly":true},{"name":"stdout","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"stderr","type":"[> Eio.Flow.sink_ty ] Eio.Flow.sink","optional":true,"keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-terminal-attach_current"},{"id":"Libtmux_eio.Workspace","publicId":"Libtmux_eio.Workspace","qualifiedName":"Libtmux_eio.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Apply workspace plans through Eio while retaining journals across caller\n cancellation. Handles belong to the creating domain; the application owns\n the scheduler and switch. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. *)\n\n val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. *)\n\n val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Read a journal copy without I/O, including any late retained outcome. *)\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. *)\nend","source":{"file":"eio/libtmux_eio.mli","line":605,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio","doc":{"summary":"Apply workspace plans through Eio while retaining journals across caller cancellation. Handles belong to the creating domain; the application owns the scheduler and switch."},"slug":"libtmux_eio-workspace"},{"id":"Libtmux_eio.Workspace.await","publicId":"Libtmux_eio.Workspace.await","qualifiedName":"Libtmux_eio.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":626,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Apply once. Expected failures return a retained journal. Eio cancellation\n propagates after progress is recorded and at most 500 ms of protected\n compensation. Admitted commands can still complete under client ownership;\n inspect the receipt before attempting manual recovery. "],"declarations":[{"kind":"function","text":"val await :\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":626,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Apply once. Expected failures return a retained journal. Eio cancellation propagates after progress is recorded and at most 500 ms of protected compensation. Admitted commands can still complete under client ownership; inspect the receipt before attempting manual recovery."},"signatures":[{"raw":"val await :\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-await"},{"id":"Libtmux_eio.Workspace.client","publicId":"Libtmux_eio.Workspace.client","qualifiedName":"Libtmux_eio.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":639,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"eio/libtmux_eio.mli","line":639,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle."},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_eio-workspace-client"},{"id":"Libtmux_eio.Workspace.close","publicId":"Libtmux_eio.Workspace.close","qualifiedName":"Libtmux_eio.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":644,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Closing is idempotent; completed journals remain readable. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":644,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Closing is idempotent; completed journals remain readable."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-close"},{"id":"Libtmux_eio.Workspace.inspect","publicId":"Libtmux_eio.Workspace.inspect","qualifiedName":"Libtmux_eio.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":635,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read a journal copy without I/O, including any late retained outcome. "],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":635,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Read a journal copy without I/O, including any late retained outcome."},"signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-inspect"},{"id":"Libtmux_eio.Workspace.submit","publicId":"Libtmux_eio.Workspace.submit","qualifiedName":"Libtmux_eio.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":608,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Allocate a generation-bound handle without I/O. The supplied client is\n borrowed; closing the handle leaves it open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":608,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a generation-bound handle without I/O. The supplied client is borrowed; closing the handle leaves it open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit"},{"id":"Libtmux_eio.Workspace.submit_bootstrap","publicId":"Libtmux_eio.Workspace.submit_bootstrap","qualifiedName":"Libtmux_eio.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":613,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Allocate a missing-endpoint execution without I/O. Await starts control\n new-session and binds that same connection. The handle owns its new client\n within [sw]; it never owns the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:_ Eio.Process.mgr ->\n mono_clock:_ Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"eio/libtmux_eio.mli","line":613,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Workspace","doc":{"summary":"Allocate a missing-endpoint execution without I/O. Await starts control new-session and binds that same connection. The handle owns its new client within `sw`; it never owns the daemon."},"signatures":[{"raw":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n sw:Eio.Switch.t ->\n process_mgr:[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr ->\n mono_clock:[> Eio.Time.Mono.ty ] Eio.Time.Mono.t ->\n Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"sw","type":"Eio.Switch.t","keywordOnly":true},{"name":"process_mgr","type":"[> [> `Generic ] Eio.Process.mgr_ty ] Eio.Process.mgr","keywordOnly":true},{"name":"mono_clock","type":"[> Eio.Time.Mono.ty ] Eio.Time.Mono.t","keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_eio-workspace-submit_bootstrap"},{"id":"Libtmux_eio.Workspace.t","publicId":"Libtmux_eio.Workspace.t","qualifiedName":"Libtmux_eio.Workspace.t","name":"t","kind":"typealias","package":"libtmux-eio","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_eio","source":{"file":"eio/libtmux_eio.mli","line":606,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"eio/libtmux_eio.mli","line":606,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_eio.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_eio-workspace-t"},{"id":"Libtmux_json","publicId":"Libtmux_json","qualifiedName":"Libtmux_json","name":"Libtmux_json","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Pure, bounded query and workspace JSON interchange.\n\n {!Expr} validates portable queries and {!Workspace} decodes configurations\n and encodes plans and receipts. Both return {!Decode_error.t} on invalid\n data. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md}query\n guide} and\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for complete programs. "],"declarations":[{"kind":"module","text":"","source":{"file":"json/libtmux_json.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"doc":{"summary":"Pure, bounded query and workspace JSON interchange.","body":"{!Expr} validates portable queries and {!Workspace} decodes configurations and encodes plans and receipts. Both return {!Decode_error.t} on invalid data. See the [query guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/queries.md) and [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for complete programs."},"slug":"libtmux_json"},{"id":"Libtmux_json.Decode_error","publicId":"Libtmux_json.Decode_error","qualifiedName":"Libtmux_json.Decode_error","name":"Decode_error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Decode_error : sig\n type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported\n\n type t = { pointer : string; category : category; message : string }\n\n val pp : Format.formatter -> t -> unit\nend","source":{"file":"json/libtmux_json.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json","slug":"libtmux_json-decode_error"},{"id":"Libtmux_json.Decode_error.category","publicId":"Libtmux_json.Decode_error.category","qualifiedName":"Libtmux_json.Decode_error.category","name":"category","kind":"enum","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":12,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type category =\n | Syntax\n | Limit\n | Unknown\n | Wrong_type\n | Out_of_range\n | Unsupported","source":{"file":"json/libtmux_json.mli","line":12,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type category =\n | Syntax \n | Limit \n | Unknown \n | Wrong_type \n | Out_of_range \n | Unsupported ","params":[]}],"slug":"libtmux_json-decode_error-category"},{"id":"Libtmux_json.Decode_error.category.Limit","publicId":"Libtmux_json.Decode_error.category.Limit","name":"Limit","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":14,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Limit","source":{"file":"json/libtmux_json.mli","line":14,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Limit","slug":"libtmux_json-decode_error-category-limit"},{"id":"Libtmux_json.Decode_error.category.Out_of_range","publicId":"Libtmux_json.Decode_error.category.Out_of_range","name":"Out_of_range","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Out_of_range","source":{"file":"json/libtmux_json.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Out_of_range","slug":"libtmux_json-decode_error-category-out_of_range"},{"id":"Libtmux_json.Decode_error.category.Syntax","publicId":"Libtmux_json.Decode_error.category.Syntax","name":"Syntax","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Syntax","source":{"file":"json/libtmux_json.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Syntax","slug":"libtmux_json-decode_error-category-syntax"},{"id":"Libtmux_json.Decode_error.category.Unknown","publicId":"Libtmux_json.Decode_error.category.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"json/libtmux_json.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unknown","slug":"libtmux_json-decode_error-category-unknown"},{"id":"Libtmux_json.Decode_error.category.Unsupported","publicId":"Libtmux_json.Decode_error.category.Unsupported","name":"Unsupported","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported","source":{"file":"json/libtmux_json.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Unsupported","slug":"libtmux_json-decode_error-category-unsupported"},{"id":"Libtmux_json.Decode_error.category.Wrong_type","publicId":"Libtmux_json.Decode_error.category.Wrong_type","name":"Wrong_type","kind":"constant","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Wrong_type","source":{"file":"json/libtmux_json.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Decode_error.category","variant":"unit","qualifiedName":"Libtmux_json.Decode_error.Wrong_type","slug":"libtmux_json-decode_error-category-wrong_type"},{"id":"Libtmux_json.Decode_error.pp","publicId":"Libtmux_json.Decode_error.pp","qualifiedName":"Libtmux_json.Decode_error.pp","name":"pp","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp : Format.formatter -> t -> unit","source":{"file":"json/libtmux_json.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"val pp : Format.formatter -> t -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"t"}],"returns":"unit"}],"slug":"libtmux_json-decode_error-pp"},{"id":"Libtmux_json.Decode_error.t","publicId":"Libtmux_json.Decode_error.t","qualifiedName":"Libtmux_json.Decode_error.t","name":"t","kind":"struct","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type t = { pointer : string; category : category; message : string }","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Decode_error","signatures":[{"raw":"type t = {\n pointer: string ;\n category: category ;\n message: string }","params":[]}],"slug":"libtmux_json-decode_error-t"},{"id":"Libtmux_json.Decode_error.t.category","publicId":"Libtmux_json.Decode_error.t.category","name":"category","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"category : category;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Decode_error.t","type":"category","qualifiedName":"Libtmux_json.Decode_error.category","slug":"libtmux_json-decode_error-t-category"},{"id":"Libtmux_json.Decode_error.t.message","publicId":"Libtmux_json.Decode_error.t.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.message","slug":"libtmux_json-decode_error-t-message"},{"id":"Libtmux_json.Decode_error.t.pointer","publicId":"Libtmux_json.Decode_error.t.pointer","name":"pointer","kind":"attribute","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pointer : string;","source":{"file":"json/libtmux_json.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Decode_error.t","type":"string","qualifiedName":"Libtmux_json.Decode_error.pointer","slug":"libtmux_json-decode_error-t-pointer"},{"id":"Libtmux_json.Error","publicId":"Libtmux_json.Error","qualifiedName":"Libtmux_json.Error","name":"Error","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Structured native failures for JSON consumers. "],"declarations":[{"kind":"module","text":"module Error : sig\n val encode : Libtmux.Error.t -> Yojson.Safe.t\n (** Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json","doc":{"summary":"Structured native failures for JSON consumers."},"slug":"libtmux_json-error"},{"id":"Libtmux_json.Error.encode","publicId":"Libtmux_json.Error.encode","qualifiedName":"Libtmux_json.Error.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Return a stable [code], bounded [message], [message_truncated] flag and\n relevant operation, resource or target metadata. Messages and text\n attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex\n representation described by {!Workspace.encode_receipt}. No I/O. "],"declarations":[{"kind":"function","text":"val encode : Libtmux.Error.t -> Yojson.Safe.t","source":{"file":"json/libtmux_json.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Error","doc":{"summary":"Return a stable `code`, bounded `message`, `message_truncated` flag and relevant operation, resource or target metadata. Messages and text attributes retain at most 4096 bytes; invalid UTF-8 uses the tagged hex representation described by {!Workspace.encode_receipt}. No I/O."},"signatures":[{"raw":"val encode : Libtmux.Error.t -> Yojson.Safe.t","params":[{"name":"arg1","type":"Libtmux.Error.t"}],"returns":"Yojson.Safe.t"}],"slug":"libtmux_json-error-encode"},{"id":"Libtmux_json.Expr","publicId":"Libtmux_json.Expr","qualifiedName":"Libtmux_json.Expr","name":"Expr","kind":"module","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Portable scalar pane expressions. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/query-interchange.md}wire\n subset} for canonical fields, operators and bounds. "],"declarations":[{"kind":"module","text":"module Expr : sig\n val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result\n (** Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. *)\n\n val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result\n (** Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. *)\n\n val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result\n\n val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result\n (** Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. *)\nend","source":{"file":"json/libtmux_json.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json","doc":{"summary":"Portable scalar pane expressions. See the [wire subset](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/query-interchange.md) for canonical fields, operators and bounds."},"slug":"libtmux_json-expr"},{"id":"Libtmux_json.Expr.decode","publicId":"Libtmux_json.Expr.decode","qualifiedName":"Libtmux_json.Expr.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":74,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Validate the supplied tree, including duplicate properties, before typed\n construction. Only the shared scalar pane registry and Boolean composition\n are accepted. Java regex, relationships and native extension fields return\n [Unsupported]. Numbers must fit signed 32-bit integers. "],"declarations":[{"kind":"function","text":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t ->\n ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":74,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Validate the supplied tree, including duplicate properties, before typed construction. Only the shared scalar pane registry and Boolean composition are accepted. Java regex, relationships and native extension fields return `Unsupported`. Numbers must fit signed 32-bit integers."},"signatures":[{"raw":"val decode :\n 'a Libtmux.Model.t ->\n Yojson.Safe.t -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"Yojson.Safe.t"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-decode"},{"id":"Libtmux_json.Expr.encode","publicId":"Libtmux_json.Expr.encode","qualifiedName":"Libtmux_json.Expr.encode","name":"encode","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Expr","signatures":[{"raw":"val encode :\n 'a Libtmux.Model.t ->\n 'a Libtmux.Expr.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-encode"},{"id":"Libtmux_json.Expr.of_string","publicId":"Libtmux_json.Expr.of_string","qualifiedName":"Libtmux_json.Expr.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid\n UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at\n most 256 values. Errors include a JSON pointer, never the whole input. "],"declarations":[{"kind":"function","text":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Enforce 64 KiB and 32 JSON nesting levels before parsing; require valid UTF-8 JSON. Expressions have at most 1,024 nodes and membership lists at most 256 values. Errors include a JSON pointer, never the whole input."},"signatures":[{"raw":"val of_string :\n 'a Libtmux.Model.t -> string -> ('a Libtmux.Expr.t, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"string"}],"returns":"('a Libtmux.Expr.t, Decode_error.t) result"}],"slug":"libtmux_json-expr-of_string"},{"id":"Libtmux_json.Expr.to_string","publicId":"Libtmux_json.Expr.to_string","qualifiedName":"Libtmux_json.Expr.to_string","name":"to_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"core","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Apply the same bounds and subset when encoding. Text with invalid UTF-8\n has no representation in this schema. These functions perform no I/O. "],"declarations":[{"kind":"function","text":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Expr","doc":{"summary":"Apply the same bounds and subset when encoding. Text with invalid UTF-8 has no representation in this schema. These functions perform no I/O."},"signatures":[{"raw":"val to_string :\n 'a Libtmux.Model.t -> 'a Libtmux.Expr.t -> (string, Decode_error.t) result","params":[{"name":"arg1","type":"'a Libtmux.Model.t"},{"name":"arg2","type":"'a Libtmux.Expr.t"}],"returns":"(string, Decode_error.t) result"}],"slug":"libtmux_json-expr-to_string"},{"id":"Libtmux_json.Workspace","publicId":"Libtmux_json.Workspace","qualifiedName":"Libtmux_json.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Validate workspace documents and describe plans and retained execution.\n Preview output never supplies executable targets. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n\n val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result\n (** Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. *)\n\n val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. *)\n\n val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result\n (** Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. *)\nend","source":{"file":"json/libtmux_json.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json","doc":{"summary":"Validate workspace documents and describe plans and retained execution. Preview output never supplies executable targets."},"slug":"libtmux_json-workspace"},{"id":"Libtmux_json.Workspace.decode","publicId":"Libtmux_json.Workspace.decode","qualifiedName":"Libtmux_json.Workspace.decode","name":"decode","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val decode :\n directory:string ->\n Yojson.Safe.t ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Workspace","signatures":[{"raw":"val decode :\n directory:string ->\n Yojson.Safe.t -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"Yojson.Safe.t"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-decode"},{"id":"Libtmux_json.Workspace.encode_plan","publicId":"Libtmux_json.Workspace.encode_plan","qualifiedName":"Libtmux_json.Workspace.encode_plan","name":"encode_plan","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":51,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Describe [libtmux.workspace-plan/1] without I/O. The advisory preview\n contains command argv, cwd and environment names, excluding environment\n values, option values and startup text. It is not an execution script. "],"declarations":[{"kind":"function","text":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":51,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-plan/1` without I/O. The advisory preview contains command argv, cwd and environment names, excluding environment values, option values and startup text. It is not an execution script."},"signatures":[{"raw":"val encode_plan :\n Libtmux_workspace.Plan.t -> (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_plan"},{"id":"Libtmux_json.Workspace.encode_receipt","publicId":"Libtmux_json.Workspace.encode_receipt","qualifiedName":"Libtmux_json.Workspace.encode_receipt","name":"encode_receipt","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":57,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Describe [libtmux.workspace-receipt/1] with ordered steps, outcome index\n lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic\n messages are limited to 4096 bytes with an explicit truncation flag;\n command payloads are omitted.\n\n Both output schemas have a 4 MiB bound. Invalid UTF-8 values use\n [{\"encoding\":\"hex\",\"bytes\":\"...\"}] instead of losing bytes. Imported IDs\n and hints never establish a connection binding. "],"declarations":[{"kind":"function","text":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":57,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Describe `libtmux.workspace-receipt/1` with ordered steps, outcome index lists, creation IDs, unbound hints and per-pane cleanup. Diagnostic messages are limited to 4096 bytes with an explicit truncation flag; command payloads are omitted.","body":"Both output schemas have a 4 MiB bound. Invalid UTF-8 values use `{\"encoding\":\"hex\",\"bytes\":\"...\"}` instead of losing bytes. Imported IDs and hints never establish a connection binding."},"signatures":[{"raw":"val encode_receipt :\n Libtmux_workspace.Execution.receipt ->\n (Yojson.Safe.t, Decode_error.t) result","params":[{"name":"arg1","type":"Libtmux_workspace.Execution.receipt"}],"returns":"(Yojson.Safe.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-encode_receipt"},{"id":"Libtmux_json.Workspace.of_string","publicId":"Libtmux_json.Workspace.of_string","qualifiedName":"Libtmux_json.Workspace.of_string","name":"of_string","kind":"function","modifiers":[],"package":"libtmux-json","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_json","source":{"file":"json/libtmux_json.mli","line":42,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Decode [libtmux.workspace/1] with the query codec's 64 KiB, UTF-8 and\n 32-level JSON bounds. Reject duplicate and unknown properties, invalid\n argv/shell combinations and configuration errors. [directory] is the\n absolute document directory; these functions perform no filesystem I/O. "],"declarations":[{"kind":"function","text":"val of_string :\n directory:string ->\n string ->\n (Libtmux_workspace.Config.t, Decode_error.t) result","source":{"file":"json/libtmux_json.mli","line":42,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_json.Workspace","doc":{"summary":"Decode `libtmux.workspace/1` with the query codec's 64 KiB, UTF-8 and 32-level JSON bounds. Reject duplicate and unknown properties, invalid argv/shell combinations and configuration errors. `directory` is the absolute document directory; these functions perform no filesystem I/O."},"signatures":[{"raw":"val of_string :\n directory:string ->\n string -> (Libtmux_workspace.Config.t, Decode_error.t) result","params":[{"name":"directory","type":"string","keywordOnly":true},{"name":"arg1","type":"string"}],"returns":"(Libtmux_workspace.Config.t, Decode_error.t) result"}],"slug":"libtmux_json-workspace-of_string"},{"id":"Libtmux_unix","publicId":"Libtmux_unix","qualifiedName":"Libtmux_unix","name":"Libtmux_unix","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Blocking Linux tmux clients with explicit scoped cancellation.\n\n Client methods perform I/O unless documented otherwise. Captured\n {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain\n local. Clients belong to the connecting domain. Closure releases their owned\n resources; tmux applies its configured daemon lifetime.\n\n See {!Client} for acquisition and commands, {!Operation} for cancellation\n outcomes, and {!Subscription} for bounded future output. The\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md}control\n guide} explains binding, completion and recovery. "],"declarations":[{"kind":"module","text":"","source":{"file":"unix/libtmux_unix.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"doc":{"summary":"Blocking Linux tmux clients with explicit scoped cancellation.","body":"Client methods perform I/O unless documented otherwise. Captured {!Libtmux.Snapshot} observations and retained {!Operation.inspect} remain local. Clients belong to the connecting domain. Closure releases their owned resources; tmux applies its configured daemon lifetime.\n\nSee {!Client} for acquisition and commands, {!Operation} for cancellation outcomes, and {!Subscription} for bounded future output. The [control guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/control.md) explains binding, completion and recovery."},"slug":"libtmux_unix"},{"id":"Libtmux_unix.Cancellation","publicId":"Libtmux_unix.Cancellation","qualifiedName":"Libtmux_unix.Cancellation","name":"Cancellation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":63,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"module","text":"module Cancellation : sig\n type t\n\n exception Cancelled\n\n val with_ : (t -> 'a) -> 'a\n (** Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. *)\n\n val cancel : t -> unit\n (** Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":63,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix","slug":"libtmux_unix-cancellation"},{"id":"Libtmux_unix.Cancellation.Cancelled","publicId":"Libtmux_unix.Cancellation.Cancelled","qualifiedName":"Libtmux_unix.Cancellation.Cancelled","name":"Cancelled","kind":"exception","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"exception","text":"exception Cancelled","source":{"file":"unix/libtmux_unix.mli","line":66,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type exn += Cancelled","params":[]}],"slug":"libtmux_unix-cancellation-cancelled"},{"id":"Libtmux_unix.Cancellation.cancel","publicId":"Libtmux_unix.Cancellation.cancel","qualifiedName":"Libtmux_unix.Cancellation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Wake waiters. Safe from another domain or systhread, but not from a signal\n handler. Repeated calls and calls after scope exit have no effect. "],"declarations":[{"kind":"function","text":"val cancel : t -> unit","source":{"file":"unix/libtmux_unix.mli","line":73,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Wake waiters. Safe from another domain or systhread, but not from a signal handler. Repeated calls and calls after scope exit have no effect."},"signatures":[{"raw":"val cancel : t -> unit","params":[{"name":"arg1","type":"t"}],"returns":"unit"}],"slug":"libtmux_unix-cancellation-cancel"},{"id":"Libtmux_unix.Cancellation.t","publicId":"Libtmux_unix.Cancellation.t","qualifiedName":"Libtmux_unix.Cancellation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":64,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cancellation","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-cancellation-t"},{"id":"Libtmux_unix.Cancellation.with_","publicId":"Libtmux_unix.Cancellation.with_","qualifiedName":"Libtmux_unix.Cancellation.with_","name":"with_","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":68,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Own a cancellation token for the callback's lifetime. Leaving the scope\n cancels outstanding waiters and releases its descriptors after they\n finish. An escaped token is cancelled and cannot be reused. "],"declarations":[{"kind":"function","text":"val with_ : (t -> 'a) -> 'a","source":{"file":"unix/libtmux_unix.mli","line":68,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cancellation","doc":{"summary":"Own a cancellation token for the callback's lifetime. Leaving the scope cancels outstanding waiters and releases its descriptors after they finish. An escaped token is cancelled and cannot be reused."},"signatures":[{"raw":"val with_ : (t -> 'a) -> 'a","params":[{"name":"arg1","type":"t -> 'a"}],"returns":"'a"}],"slug":"libtmux_unix-cancellation-with_"},{"id":"Libtmux_unix.Cleanup","publicId":"Libtmux_unix.Cleanup","qualifiedName":"Libtmux_unix.Cleanup","name":"Cleanup","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Retained failures from releasing processes and descriptors. Reports belong\n to their creating domain and remain readable after client closure. They\n preserve secondary failures without replacing a primary exception or\n cancellation. "],"declarations":[{"kind":"module","text":"module Cleanup : sig\n type t = Cleanup.t\n\n type phase = Cleanup.phase =\n | Close_pipe\n | Open_pidfd\n | Close_pidfd\n | Terminate\n | Grace\n | Kill\n | Reap\n | Unreaped_child\n | Cancel_workers\n | Release_hook\n | Notify_waiters\n\n type issue = Cleanup.issue = {\n phase : phase;\n error : Libtmux.Error.t option;\n exception_ : exn;\n backtrace : Printexc.raw_backtrace;\n }\n (** One failed cleanup action. [error] retains a typed library cause when\n available; [exception_] and [backtrace] retain the original exception.\n [Unreaped_child] means exit was not established after a failed signal. It\n does not release ownership or authorize signalling a reused PID. *)\n\n type snapshot = Cleanup.snapshot = { issues : issue Iarray.t; omitted : int }\n (** Issues in occurrence order, with a count of additional omitted issues. A\n report retains at most 64 entries. This bounds entry count, not heap\n retention: exception payloads and backtraces may retain other values.\n These diagnostics are not immutable graph observations. *)\n\n val create : unit -> t\n (** Create an empty report without I/O. Supply it before {!Client.connect},\n {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain\n cleanup evidence even when setup fails or cancellation raises. *)\n\n val inspect : t -> (snapshot, Libtmux.Error.t) result\n (** Copy the current diagnostics without I/O. Returns\n {!Libtmux.Error.Wrong_domain} outside the creating domain. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix","doc":{"summary":"Retained failures from releasing processes and descriptors. Reports belong to their creating domain and remain readable after client closure. They preserve secondary failures without replacing a primary exception or cancellation."},"slug":"libtmux_unix-cleanup"},{"id":"Libtmux_unix.Cleanup.create","publicId":"Libtmux_unix.Cleanup.create","qualifiedName":"Libtmux_unix.Cleanup.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":50,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Create an empty report without I/O. Supply it before {!Client.connect},\n {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain\n cleanup evidence even when setup fails or cancellation raises. "],"declarations":[{"kind":"function","text":"val create : unit -> t","source":{"file":"unix/libtmux_unix.mli","line":50,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Create an empty report without I/O. Supply it before {!Client.connect}, {!Workspace.submit_bootstrap} or {!Terminal.attach_current} to retain cleanup evidence even when setup fails or cancellation raises."},"signatures":[{"raw":"val create : unit -> t","params":[{"name":"arg1","type":"unit"}],"returns":"t"}],"slug":"libtmux_unix-cleanup-create"},{"id":"Libtmux_unix.Cleanup.inspect","publicId":"Libtmux_unix.Cleanup.inspect","qualifiedName":"Libtmux_unix.Cleanup.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":55,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Copy the current diagnostics without I/O. Returns\n {!Libtmux.Error.Wrong_domain} outside the creating domain. "],"declarations":[{"kind":"function","text":"val inspect : t -> (snapshot, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":55,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Copy the current diagnostics without I/O. Returns {!Libtmux.Error.Wrong_domain} outside the creating domain."},"signatures":[{"raw":"val inspect : t -> (snapshot, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(snapshot, Libtmux.Error.t) result"}],"slug":"libtmux_unix-cleanup-inspect"},{"id":"Libtmux_unix.Cleanup.issue","publicId":"Libtmux_unix.Cleanup.issue","qualifiedName":"Libtmux_unix.Cleanup.issue","name":"issue","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" One failed cleanup action. [error] retains a typed library cause when\n available; [exception_] and [backtrace] retain the original exception.\n [Unreaped_child] means exit was not established after a failed signal. It\n does not release ownership or authorize signalling a reused PID. "],"declarations":[{"kind":"struct","text":"type issue = Cleanup.issue = {\n phase : phase;\n error : Libtmux.Error.t option;\n exception_ : exn;\n backtrace : Printexc.raw_backtrace;\n }","source":{"file":"unix/libtmux_unix.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"One failed cleanup action. `error` retains a typed library cause when available; `exception_` and `backtrace` retain the original exception. `Unreaped_child` means exit was not established after a failed signal. It does not release ownership or authorize signalling a reused PID."},"type":"Cleanup.issue","signatures":[{"raw":"type issue = Cleanup.issue =\n {\n phase: phase ;\n error: Libtmux.Error.t option ;\n exception_: exn ;\n backtrace: Printexc.raw_backtrace }","params":[]}],"slug":"libtmux_unix-cleanup-issue"},{"id":"Libtmux_unix.Cleanup.issue.backtrace","publicId":"Libtmux_unix.Cleanup.issue.backtrace","name":"backtrace","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":37,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"backtrace : Printexc.raw_backtrace;","source":{"file":"unix/libtmux_unix.mli","line":37,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"Printexc.raw_backtrace","qualifiedName":"Libtmux_unix.Cleanup.backtrace","slug":"libtmux_unix-cleanup-issue-backtrace"},{"id":"Libtmux_unix.Cleanup.issue.error","publicId":"Libtmux_unix.Cleanup.issue.error","name":"error","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"error : Libtmux.Error.t option;","source":{"file":"unix/libtmux_unix.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_unix.Cleanup.error","slug":"libtmux_unix-cleanup-issue-error"},{"id":"Libtmux_unix.Cleanup.issue.exception_","publicId":"Libtmux_unix.Cleanup.issue.exception_","name":"exception_","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":36,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"exception_ : exn;","source":{"file":"unix/libtmux_unix.mli","line":36,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"exn","qualifiedName":"Libtmux_unix.Cleanup.exception_","slug":"libtmux_unix-cleanup-issue-exception_"},{"id":"Libtmux_unix.Cleanup.issue.phase","publicId":"Libtmux_unix.Cleanup.issue.phase","name":"phase","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"phase : phase;","source":{"file":"unix/libtmux_unix.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.issue","type":"phase","qualifiedName":"Libtmux_unix.Cleanup.phase","slug":"libtmux_unix-cleanup-issue-phase"},{"id":"Libtmux_unix.Cleanup.phase","publicId":"Libtmux_unix.Cleanup.phase","qualifiedName":"Libtmux_unix.Cleanup.phase","name":"phase","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":20,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type phase = Cleanup.phase =\n | Close_pipe\n | Open_pidfd\n | Close_pidfd\n | Terminate\n | Grace\n | Kill\n | Reap\n | Unreaped_child\n | Cancel_workers\n | Release_hook\n | Notify_waiters","source":{"file":"unix/libtmux_unix.mli","line":20,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup","type":"Cleanup.phase","signatures":[{"raw":"type phase = Cleanup.phase =\n | Close_pipe \n | Open_pidfd \n | Close_pidfd \n | Terminate \n | Grace \n | Kill \n | Reap \n | Unreaped_child \n | Cancel_workers \n | Release_hook \n | Notify_waiters ","params":[]}],"slug":"libtmux_unix-cleanup-phase"},{"id":"Libtmux_unix.Cleanup.phase.Cancel_workers","publicId":"Libtmux_unix.Cleanup.phase.Cancel_workers","name":"Cancel_workers","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Cancel_workers","source":{"file":"unix/libtmux_unix.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Cancel_workers","slug":"libtmux_unix-cleanup-phase-cancel_workers"},{"id":"Libtmux_unix.Cleanup.phase.Close_pidfd","publicId":"Libtmux_unix.Cleanup.phase.Close_pidfd","name":"Close_pidfd","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Close_pidfd","source":{"file":"unix/libtmux_unix.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Close_pidfd","slug":"libtmux_unix-cleanup-phase-close_pidfd"},{"id":"Libtmux_unix.Cleanup.phase.Close_pipe","publicId":"Libtmux_unix.Cleanup.phase.Close_pipe","name":"Close_pipe","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Close_pipe","source":{"file":"unix/libtmux_unix.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Close_pipe","slug":"libtmux_unix-cleanup-phase-close_pipe"},{"id":"Libtmux_unix.Cleanup.phase.Grace","publicId":"Libtmux_unix.Cleanup.phase.Grace","name":"Grace","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Grace","source":{"file":"unix/libtmux_unix.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Grace","slug":"libtmux_unix-cleanup-phase-grace"},{"id":"Libtmux_unix.Cleanup.phase.Kill","publicId":"Libtmux_unix.Cleanup.phase.Kill","name":"Kill","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Kill","source":{"file":"unix/libtmux_unix.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Kill","slug":"libtmux_unix-cleanup-phase-kill"},{"id":"Libtmux_unix.Cleanup.phase.Notify_waiters","publicId":"Libtmux_unix.Cleanup.phase.Notify_waiters","name":"Notify_waiters","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Notify_waiters","source":{"file":"unix/libtmux_unix.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Notify_waiters","slug":"libtmux_unix-cleanup-phase-notify_waiters"},{"id":"Libtmux_unix.Cleanup.phase.Open_pidfd","publicId":"Libtmux_unix.Cleanup.phase.Open_pidfd","name":"Open_pidfd","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Open_pidfd","source":{"file":"unix/libtmux_unix.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Open_pidfd","slug":"libtmux_unix-cleanup-phase-open_pidfd"},{"id":"Libtmux_unix.Cleanup.phase.Reap","publicId":"Libtmux_unix.Cleanup.phase.Reap","name":"Reap","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":27,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Reap","source":{"file":"unix/libtmux_unix.mli","line":27,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Reap","slug":"libtmux_unix-cleanup-phase-reap"},{"id":"Libtmux_unix.Cleanup.phase.Release_hook","publicId":"Libtmux_unix.Cleanup.phase.Release_hook","name":"Release_hook","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Release_hook","source":{"file":"unix/libtmux_unix.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Release_hook","slug":"libtmux_unix-cleanup-phase-release_hook"},{"id":"Libtmux_unix.Cleanup.phase.Terminate","publicId":"Libtmux_unix.Cleanup.phase.Terminate","name":"Terminate","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Terminate","source":{"file":"unix/libtmux_unix.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Terminate","slug":"libtmux_unix-cleanup-phase-terminate"},{"id":"Libtmux_unix.Cleanup.phase.Unreaped_child","publicId":"Libtmux_unix.Cleanup.phase.Unreaped_child","name":"Unreaped_child","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":28,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unreaped_child","source":{"file":"unix/libtmux_unix.mli","line":28,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.phase","variant":"unit","qualifiedName":"Libtmux_unix.Cleanup.Unreaped_child","slug":"libtmux_unix-cleanup-phase-unreaped_child"},{"id":"Libtmux_unix.Cleanup.snapshot","publicId":"Libtmux_unix.Cleanup.snapshot","qualifiedName":"Libtmux_unix.Cleanup.snapshot","name":"snapshot","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Issues in occurrence order, with a count of additional omitted issues. A\n report retains at most 64 entries. This bounds entry count, not heap\n retention: exception payloads and backtraces may retain other values.\n These diagnostics are not immutable graph observations. "],"declarations":[{"kind":"struct","text":"type snapshot = Cleanup.snapshot = { issues : issue Iarray.t; omitted : int }","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup","doc":{"summary":"Issues in occurrence order, with a count of additional omitted issues. A report retains at most 64 entries. This bounds entry count, not heap retention: exception payloads and backtraces may retain other values. These diagnostics are not immutable graph observations."},"type":"Cleanup.snapshot","signatures":[{"raw":"type snapshot = Cleanup.snapshot = {\n issues: issue Iarray.t ;\n omitted: int }","params":[]}],"slug":"libtmux_unix-cleanup-snapshot"},{"id":"Libtmux_unix.Cleanup.snapshot.issues","publicId":"Libtmux_unix.Cleanup.snapshot.issues","name":"issues","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"issues : issue Iarray.t;","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.snapshot","type":"issue Iarray.t","qualifiedName":"Libtmux_unix.Cleanup.issues","slug":"libtmux_unix-cleanup-snapshot-issues"},{"id":"Libtmux_unix.Cleanup.snapshot.omitted","publicId":"Libtmux_unix.Cleanup.snapshot.omitted","name":"omitted","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"omitted : int","source":{"file":"unix/libtmux_unix.mli","line":44,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup.snapshot","type":"int","qualifiedName":"Libtmux_unix.Cleanup.omitted","slug":"libtmux_unix-cleanup-snapshot-omitted"},{"id":"Libtmux_unix.Cleanup.t","publicId":"Libtmux_unix.Cleanup.t","qualifiedName":"Libtmux_unix.Cleanup.t","name":"t","kind":"typealias","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t = Cleanup.t","source":{"file":"unix/libtmux_unix.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Cleanup","type":"Cleanup.t","signatures":[{"raw":"type t = Cleanup.t","params":[]}],"slug":"libtmux_unix-cleanup-t"},{"id":"Libtmux_unix.Client","publicId":"Libtmux_unix.Client","qualifiedName":"Libtmux_unix.Client","name":"Client","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" An explicit generation-bound connection. Applications retain ownership of\n the endpoint choice and resource lifetime. "],"declarations":[{"kind":"module","text":"module Client : sig\n type t\n\n val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result\n (** Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. *)\n\n val cleanup : t -> Cleanup.t\n (** Read the report supplied at connection time, or its fresh default.\n {!Cleanup.inspect} remains available after close. *)\n\n val source : t -> Libtmux.Source.t\n (** Read the retained endpoint, daemon PID and connection generation without\n I/O. *)\n\n val version : t -> string\n (** Read the bound daemon's observed version without I/O. *)\n\n val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result\n (** Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Queue capacities remain reserved while empty. Captures and reads need\n additional scratch space; their admission can return\n {!Libtmux.Error.Capacity} below the subscriber-count limit. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md#plan-shared-capacity}shared\n capacity guide} for the combined reservations and process slots.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. *)\n\n val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result\n (** Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. Release the temporary subscription\n without replacing an earlier error or cancellation; inspect {!cleanup} for\n secondary failures. Otherwise cleanup failure prevents success or renewed\n coverage. No capture/stream barrier exists. *)\n\n val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result\n (** Validate and reserve queue capacity without I/O. *)\n\n val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result\n (** Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O and owned-child cleanup must also\n finish. Each owned child gets 200 ms of TERM grace before forced\n termination and reaping; scheduling and kernel completion can add time. No\n background scheduler or worker is started. *)\n\n val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result\n (** Submit and await. Use the two calls separately to retain an operation\n handle. *)\n\n val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result\n (** Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. *)\n\n val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result\n (** Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. *)\n\n (* BEGIN GENERATED OPERATIONS *)\n val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. *)\n\n val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result\n (** Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. *)\n\n val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. *)\n\n val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. *)\n\n val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result\n (** Request a redraw; no terminal-rendering completion is implied. *)\n\n val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result\n (** Set a control client's reported size. tmux rejects terminal clients. *)\n\n val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result\n (** Literal bytes, without an implicit Enter. NUL is rejected at admission. *)\n\n val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result\n (** Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. *)\n\n val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Wait on a named tmux semaphore using a dedicated bound lane. *)\n\n val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result\n (** Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. *)\n\n val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result\n (** Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n *)\n\n val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. *)\n\n val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local entry, allowing a global value to apply to future panes.\n *)\n\n val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Store a removal marker, excluding the variable from future panes. *)\n\n val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Libtmux.Error.Unsupported}. *)\n\n val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. *)\n\n val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result\n (** Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. *)\n\n val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. *)\n\n val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Set a local empty array, masking inheritance. *)\n\n val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result\n (** Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. *)\n\n val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result\n (** Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. *)\n\n val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result\n (** Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. *)\n\n val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. *)\n\n val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result\n (** Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. *)\n\n val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached session on the bound daemon. Name collisions fail. *)\n\n val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create detached, rejecting an occupied explicit index. *)\n\n val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. *)\n\n val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result\n (** Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. *)\n\n val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result\n (** Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. *)\n\n val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. *)\n\n val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. *)\n\n val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Operate on the session's current index at execution, not an old link\n incarnation. *)\n\n val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Without [allow_kill], tmux rejects removal of the last link to a window.\n *)\n\n val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. *)\n\n val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result\n (** Move the source session's current link at [from_index]. Destination\n collisions fail. *)\n\n val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Make the pane active in its containing window. This does not open or\n attach a terminal client. *)\n\n val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result\n (** Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. *)\n\n val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. *)\n\n val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result\n (** Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. *)\n\n val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result\n (** Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. *)\n\n val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result\n (** Select the next or previous tmux preset layout for this window. *)\n\n val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result\n (** Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. *)\n\n val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. *)\n\n val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result\n (** Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. *)\n\n val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Toggle the window's zoom state around this pane. *)\n\n val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result\n (** Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. *)\n\n val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result\n (** Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. *)\n\n (* END GENERATED OPERATIONS *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Close owned control clients and descriptors on the owning domain. Later\n calls retain the original cleanup result, including failure. Each owned\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n This is not a whole-client deadline or a bound on uninterruptible kernel\n work. No signal targets the daemon. tmux's [exit-unattached] and\n [exit-empty] policies can end the daemon after its clients or sessions\n disappear. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix","doc":{"summary":"An explicit generation-bound connection. Applications retain ownership of the endpoint choice and resource lifetime."},"slug":"libtmux_unix-client"},{"id":"Libtmux_unix.Client.await","publicId":"Libtmux_unix.Client.await","qualifiedName":"Libtmux_unix.Client.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":255,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Pump admitted work until this operation is finished. Only one blocking\n caller may own the client at a time. Cancellation removes queued work or\n drains admitted work before raising [Cancellation.Cancelled]. The handle\n retains its outcome. Draining has at most one exchange timeout from\n detection; local scratch filesystem I/O and owned-child cleanup must also\n finish. Each owned child gets 200 ms of TERM grace before forced\n termination and reaping; scheduling and kernel completion can add time. No\n background scheduler or worker is started. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":255,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Pump admitted work until this operation is finished. Only one blocking caller may own the client at a time. Cancellation removes queued work or drains admitted work before raising `Cancellation.Cancelled`. The handle retains its outcome. Draining has at most one exchange timeout from detection; local scratch filesystem I/O and owned-child cleanup must also finish. Each owned child gets 200 ms of TERM grace before forced termination and reaping; scheduling and kernel completion can add time. No background scheduler or worker is started."},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t -> 'a Operation.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"'a Operation.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-await"},{"id":"Libtmux_unix.Client.break_pane","publicId":"Libtmux_unix.Client.break_pane","qualifiedName":"Libtmux_unix.Client.break_pane","name":"break_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":565,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Move the pane into a new window at an explicit session index. An occupied\n destination fails. The returned IDs describe the resulting context; the\n pane itself already existed. "],"declarations":[{"kind":"function","text":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":565,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed."},"signatures":[{"raw":"val break_pane :\n ?cancel:Cancellation.t ->\n ?name:string ->\n t ->\n Libtmux.Pane.target ->\n session:Libtmux.Session.target ->\n index:int -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-break_pane"},{"id":"Libtmux_unix.Client.capture","publicId":"Libtmux_unix.Client.capture","qualifiedName":"Libtmux_unix.Client.capture","name":"capture","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":274,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Acquire a complete graph over a recorded interval, with a fixed number of\n listing commands. Races fail validation. Access to returned values\n performs no I/O, including after closing the client. "],"declarations":[{"kind":"function","text":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":274,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a complete graph over a recorded interval, with a fixed number of listing commands. Races fail validation. Access to returned values performs no I/O, including after closing the client.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_graph.ml","intro":"Navigate the typed object graph. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"graph: 2 sessions, 2 windows, 3 links, 2 panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val capture :\n ?cancel:Cancellation.t -> t -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Snapshot.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture"},{"id":"Libtmux_unix.Client.capture_environment","publicId":"Libtmux_unix.Client.capture_environment","qualifiedName":"Libtmux_unix.Client.capture_environment","name":"capture_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":376,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Acquire a bounded table through a read-only command process. Its response\n must identify the bound daemon while the original pidfd remains live.\n Unsupported external variable names fail decoding; they are not omitted.\n "],"declarations":[{"kind":"function","text":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":376,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted."},"signatures":[{"raw":"val capture_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n (Libtmux.Environment.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"}],"returns":"(Libtmux.Environment.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_environment"},{"id":"Libtmux_unix.Client.capture_hooks","publicId":"Libtmux_unix.Client.capture_hooks","qualifiedName":"Libtmux_unix.Client.capture_hooks","name":"capture_hooks","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":473,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Capture locally configured built-in hooks. Command values are tmux's\n printed representation, retained as data. "],"declarations":[{"kind":"function","text":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":473,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data."},"signatures":[{"raw":"val capture_hooks :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_hooks"},{"id":"Libtmux_unix.Client.capture_options","publicId":"Libtmux_unix.Client.capture_options","qualifiedName":"Libtmux_unix.Client.capture_options","name":"capture_options","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":416,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Acquire one bounded option table, excluding hooks. The default includes\n only local entries. Inherited table enumeration includes built-ins;\n inherited user options require [read_option] with their explicit name.\n Built-in descriptors cover every supported release from tmux 3.3a through\n 3.8; other versions return {!Libtmux.Error.Unsupported}. "],"declarations":[{"kind":"function","text":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n (Libtmux.Options.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":416,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require `read_option` with their explicit name. Built-in descriptors cover every supported release from tmux 3.3a through 3.8; other versions return {!Libtmux.Error.Unsupported}."},"signatures":[{"raw":"val capture_options :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t -> Libtmux.Options.scope -> (Libtmux.Options.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"}],"returns":"(Libtmux.Options.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_options"},{"id":"Libtmux_unix.Client.capture_text","publicId":"Libtmux_unix.Client.capture_text","qualifiedName":"Libtmux_unix.Client.capture_text","name":"capture_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":280,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Capture ordinary rendered screen rows, inclusively, via an owned paste\n buffer and private file. Reject applicable capture/save hooks. The scratch\n directory defaults to [/tmp] and must be local storage shared with the\n daemon. Pending and alternate-screen byte modes are unsupported. This\n observes an interval and establishes no stream continuity barrier. "],"declarations":[{"kind":"function","text":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int ->\n end_:int ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":280,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Capture ordinary rendered screen rows, inclusively, via an owned paste buffer and private file. Reject applicable capture/save hooks. The scratch directory defaults to `/tmp` and must be local storage shared with the daemon. Pending and alternate-screen byte modes are unsupported. This observes an interval and establishes no stream continuity barrier."},"signatures":[{"raw":"val capture_text :\n ?cancel:Cancellation.t ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n start:int -> end_:int -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"start","type":"int","keywordOnly":true},{"name":"end_","type":"int","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-capture_text"},{"id":"Libtmux_unix.Client.cleanup","publicId":"Libtmux_unix.Client.cleanup","qualifiedName":"Libtmux_unix.Client.cleanup","name":"cleanup","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read the report supplied at connection time, or its fresh default.\n {!Cleanup.inspect} remains available after close. "],"declarations":[{"kind":"function","text":"val cleanup : t -> Cleanup.t","source":{"file":"unix/libtmux_unix.mli","line":198,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the report supplied at connection time, or its fresh default. {!Cleanup.inspect} remains available after close."},"signatures":[{"raw":"val cleanup : t -> Cleanup.t","params":[{"name":"arg1","type":"t"}],"returns":"Cleanup.t"}],"slug":"libtmux_unix-client-cleanup"},{"id":"Libtmux_unix.Client.clear_history","publicId":"Libtmux_unix.Client.clear_history","qualifiedName":"Libtmux_unix.Client.clear_history","name":"clear_history","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":745,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Clear stored scrollback for this pane. The visible screen and running\n process remain; later captures cannot recover discarded history. "],"declarations":[{"kind":"function","text":"val clear_history :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":745,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history."},"signatures":[{"raw":"val clear_history :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_history"},{"id":"Libtmux_unix.Client.clear_option_array","publicId":"Libtmux_unix.Client.clear_option_array","qualifiedName":"Libtmux_unix.Client.clear_option_array","name":"clear_option_array","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":465,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set a local empty array, masking inheritance. "],"declarations":[{"kind":"function","text":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":465,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local empty array, masking inheritance."},"signatures":[{"raw":"val clear_option_array :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-clear_option_array"},{"id":"Libtmux_unix.Client.close","publicId":"Libtmux_unix.Client.close","qualifiedName":"Libtmux_unix.Client.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":755,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Close owned control clients and descriptors on the owning domain. Later\n calls retain the original cleanup result, including failure. Each owned\n helper gets 200 ms of TERM grace, followed by KILL if needed and reaping.\n This is not a whole-client deadline or a bound on uninterruptible kernel\n work. No signal targets the daemon. tmux's [exit-unattached] and\n [exit-empty] policies can end the daemon after its clients or sessions\n disappear. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":755,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Close owned control clients and descriptors on the owning domain. Later calls retain the original cleanup result, including failure. Each owned helper gets 200 ms of TERM grace, followed by KILL if needed and reaping. This is not a whole-client deadline or a bound on uninterruptible kernel work. No signal targets the daemon. tmux's `exit-unattached` and `exit-empty` policies can end the daemon after its clients or sessions disappear."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-close"},{"id":"Libtmux_unix.Client.connect","publicId":"Libtmux_unix.Client.connect","qualifiedName":"Libtmux_unix.Client.connect","name":"connect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Attach to an existing local daemon with at least one session. The caller\n and daemon must share the PID namespace and filesystem. A local socket\n pathname alone does not establish these preconditions. [timeout] is the\n maximum seconds per control exchange, defaulting to one second. Requires\n Linux pidfd support. The client belongs to the current domain. Initial and\n auxiliary attachments suppress tmux's [update-environment] behavior. "],"declarations":[{"kind":"function","text":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux.Endpoint.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Attach to an existing local daemon with at least one session. The caller and daemon must share the PID namespace and filesystem. A local socket pathname alone does not establish these preconditions. `timeout` is the maximum seconds per control exchange, defaulting to one second. Requires Linux pidfd support. The client belongs to the current domain. Initial and auxiliary attachments suppress tmux's `update-environment` behavior."},"signatures":[{"raw":"val connect :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float -> Libtmux.Endpoint.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-connect"},{"id":"Libtmux_unix.Client.create_session","publicId":"Libtmux_unix.Client.create_session","qualifiedName":"Libtmux_unix.Client.create_session","name":"create_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":531,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Create a detached session on the bound daemon. Name collisions fail. "],"declarations":[{"kind":"function","text":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n name:string ->\n unit ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":531,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached session on the bound daemon. Name collisions fail."},"signatures":[{"raw":"val create_session :\n ?cancel:Cancellation.t ->\n ?window_name:string ->\n ?width:int ->\n ?height:int ->\n ?spawn:Libtmux.Spawn.t ->\n t -> name:string -> unit -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"window_name","type":"string","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg2","type":"unit"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_session"},{"id":"Libtmux_unix.Client.create_window","publicId":"Libtmux_unix.Client.create_window","qualifiedName":"Libtmux_unix.Client.create_window","name":"create_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":543,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Create detached, rejecting an occupied explicit index. "],"declarations":[{"kind":"function","text":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Session.target ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":543,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create detached, rejecting an occupied explicit index.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_create_window.ml","intro":"Create a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"created: logs\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val create_window :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?name:string ->\n ?spawn:Libtmux.Spawn.t ->\n t -> Libtmux.Session.target -> (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"name","type":"string","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-create_window"},{"id":"Libtmux_unix.Client.cycle_layout","publicId":"Libtmux_unix.Client.cycle_layout","qualifiedName":"Libtmux_unix.Client.cycle_layout","name":"cycle_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":689,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Select the next or previous tmux preset layout for this window. "],"declarations":[{"kind":"function","text":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":689,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Select the next or previous tmux preset layout for this window."},"signatures":[{"raw":"val cycle_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Next | `Previous ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Next | `Previous ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-cycle_layout"},{"id":"Libtmux_unix.Client.kill_pane","publicId":"Libtmux_unix.Client.kill_pane","qualifiedName":"Libtmux_unix.Client.kill_pane","name":"kill_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":593,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Destroy the target pane and its running process. tmux removes a window\n that becomes empty and may remove its now-empty sessions. "],"declarations":[{"kind":"function","text":"val kill_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":593,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions."},"signatures":[{"raw":"val kill_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_pane"},{"id":"Libtmux_unix.Client.kill_session","publicId":"Libtmux_unix.Client.kill_session","qualifiedName":"Libtmux_unix.Client.kill_session","name":"kill_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":577,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove the session and its window links. Windows with no other links and\n their panes are destroyed. Removing the last session may stop tmux. "],"declarations":[{"kind":"function","text":"val kill_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":577,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux."},"signatures":[{"raw":"val kill_session :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_session"},{"id":"Libtmux_unix.Client.kill_window","publicId":"Libtmux_unix.Client.kill_window","qualifiedName":"Libtmux_unix.Client.kill_window","name":"kill_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":585,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Destroy the window, all its session links and every contained pane. This\n acts on the global window, not a single contextual link. "],"declarations":[{"kind":"function","text":"val kill_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":585,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link."},"signatures":[{"raw":"val kill_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-kill_window"},{"id":"Libtmux_unix.Client.link_window","publicId":"Libtmux_unix.Client.link_window","qualifiedName":"Libtmux_unix.Client.link_window","name":"link_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":620,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Add a session-specific link to the global window at [index], rejecting an\n occupied index. The source window and its panes stay shared. "],"declarations":[{"kind":"function","text":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":620,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Add a session-specific link to the global window at `index`, rejecting an occupied index. The source window and its panes stay shared."},"signatures":[{"raw":"val link_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-link_window"},{"id":"Libtmux_unix.Client.move_pane","publicId":"Libtmux_unix.Client.move_pane","qualifiedName":"Libtmux_unix.Client.move_pane","name":"move_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Move the source pane beside another pane, optionally setting the split\n size. Both targets must belong to the same bound generation. An emptied\n source window is removed by tmux. "],"declarations":[{"kind":"function","text":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":697,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux."},"signatures":[{"raw":"val move_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n t ->\n Libtmux.Pane.target ->\n beside:Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"beside","type":"Libtmux.Pane.target","keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_pane"},{"id":"Libtmux_unix.Client.move_window_at","publicId":"Libtmux_unix.Client.move_window_at","qualifiedName":"Libtmux_unix.Client.move_window_at","name":"move_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":630,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Move the source session's current link at [from_index]. Destination\n collisions fail. "],"declarations":[{"kind":"function","text":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":630,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Move the source session's current link at `from_index`. Destination collisions fail.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_move_window.ml","intro":"Move a window between sessions. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"moved: build at 7\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val move_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n from_index:int ->\n session:Libtmux.Session.target ->\n index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"from_index","type":"int","keywordOnly":true},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-move_window_at"},{"id":"Libtmux_unix.Client.read_hook","publicId":"Libtmux_unix.Client.read_hook","qualifiedName":"Libtmux_unix.Client.read_hook","name":"read_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":481,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read an exact hook name. Inheritance is included by default; [None] means\n no entry under the selected policy. Missing targets remain errors. "],"declarations":[{"kind":"function","text":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":481,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read an exact hook name. Inheritance is included by default; `None` means no entry under the selected policy. Missing targets remain errors."},"signatures":[{"raw":"val read_hook :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_hook"},{"id":"Libtmux_unix.Client.read_option","publicId":"Libtmux_unix.Client.read_option","qualifiedName":"Libtmux_unix.Client.read_option","name":"read_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":428,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read one exact name, including user-option inheritance. [None] means no\n entry under the selected policy. An invalid target remains an error. The\n default follows inheritance; this does not identify the defining parent\n scope. "],"declarations":[{"kind":"function","text":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (Libtmux.Options.value option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":428,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read one exact name, including user-option inheritance. `None` means no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope."},"signatures":[{"raw":"val read_option :\n ?cancel:Cancellation.t ->\n ?include_inherited:bool ->\n t ->\n Libtmux.Options.scope ->\n string -> (Libtmux.Options.value option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"include_inherited","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(Libtmux.Options.value option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-read_option"},{"id":"Libtmux_unix.Client.refresh_client_at","publicId":"Libtmux_unix.Client.refresh_client_at","qualifiedName":"Libtmux_unix.Client.refresh_client_at","name":"refresh_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":333,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Request a redraw; no terminal-rendering completion is implied. "],"declarations":[{"kind":"function","text":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":333,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request a redraw; no terminal-rendering completion is implied."},"signatures":[{"raw":"val refresh_client_at :\n ?cancel:Cancellation.t ->\n ?status_only:bool ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"status_only","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-refresh_client_at"},{"id":"Libtmux_unix.Client.remove_environment","publicId":"Libtmux_unix.Client.remove_environment","qualifiedName":"Libtmux_unix.Client.remove_environment","name":"remove_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":408,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Store a removal marker, excluding the variable from future panes. "],"declarations":[{"kind":"function","text":"val remove_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":408,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Store a removal marker, excluding the variable from future panes."},"signatures":[{"raw":"val remove_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_environment"},{"id":"Libtmux_unix.Client.remove_hook","publicId":"Libtmux_unix.Client.remove_hook","qualifiedName":"Libtmux_unix.Client.remove_hook","name":"remove_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":508,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove the local hook or one indexed array entry. An inherited hook may\n become effective again; this does not stop work it already started. "],"declarations":[{"kind":"function","text":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":508,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started."},"signatures":[{"raw":"val remove_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-remove_hook"},{"id":"Libtmux_unix.Client.rename_session","publicId":"Libtmux_unix.Client.rename_session","qualifiedName":"Libtmux_unix.Client.rename_session","name":"rename_session","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":304,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set the session name, rejecting a conflicting existing name. Bound IDs\n remain usable; existing snapshots retain their captured names. "],"declarations":[{"kind":"function","text":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":304,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names."},"signatures":[{"raw":"val rename_session :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_session"},{"id":"Libtmux_unix.Client.rename_window","publicId":"Libtmux_unix.Client.rename_window","qualifiedName":"Libtmux_unix.Client.rename_window","name":"rename_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":295,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set the global window name. Every session link observes the new name on\n its next capture; existing snapshots retain the old value. "],"declarations":[{"kind":"function","text":"val rename_window :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n name:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":295,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_rename_window.ml","intro":"Rename a window. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"renamed: editor-main\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val rename_window :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Window.target -> name:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"name","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rename_window"},{"id":"Libtmux_unix.Client.request_detach_client_at","publicId":"Libtmux_unix.Client.request_detach_client_at","qualifiedName":"Libtmux_unix.Client.request_detach_client_at","name":"request_detach_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":324,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Request detachment of the client currently bearing this name. Success\n confirms request processing, not peer exit. Detaching the library's own\n primary lane can lose the response and retire its generation. "],"declarations":[{"kind":"function","text":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":324,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation."},"signatures":[{"raw":"val request_detach_client_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Client_name.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-request_detach_client_at"},{"id":"Libtmux_unix.Client.resize_control_client_at","publicId":"Libtmux_unix.Client.resize_control_client_at","qualifiedName":"Libtmux_unix.Client.resize_control_client_at","name":"resize_control_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":341,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set a control client's reported size. tmux rejects terminal clients. "],"declarations":[{"kind":"function","text":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int ->\n height:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":341,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a control client's reported size. tmux rejects terminal clients."},"signatures":[{"raw":"val resize_control_client_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Client_name.t ->\n width:int -> height:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"width","type":"int","keywordOnly":true},{"name":"height","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_control_client_at"},{"id":"Libtmux_unix.Client.resize_pane","publicId":"Libtmux_unix.Client.resize_pane","qualifiedName":"Libtmux_unix.Client.resize_pane","name":"resize_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":658,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. tmux can constrain the result to the\n available layout. Capture again to observe the actual dimensions. "],"declarations":[{"kind":"function","text":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":658,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions."},"signatures":[{"raw":"val resize_pane :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_pane"},{"id":"Libtmux_unix.Client.resize_window","publicId":"Libtmux_unix.Client.resize_window","qualifiedName":"Libtmux_unix.Client.resize_window","name":"resize_window","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":669,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Request positive cell dimensions, supplying at least one dimension. Omit\n either dimension to retain it. Client-size and window-size policies can\n affect subsequent sizing. "],"declarations":[{"kind":"function","text":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int ->\n t ->\n Libtmux.Window.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":669,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing."},"signatures":[{"raw":"val resize_window :\n ?cancel:Cancellation.t ->\n ?width:int ->\n ?height:int -> t -> Libtmux.Window.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-resize_window"},{"id":"Libtmux_unix.Client.respawn_pane","publicId":"Libtmux_unix.Client.respawn_pane","qualifiedName":"Libtmux_unix.Client.respawn_pane","name":"respawn_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":734,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Start the supplied command in the existing pane. A running process causes\n failure unless [kill_running:true] explicitly replaces it. The pane ID\n remains unchanged. "],"declarations":[{"kind":"function","text":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Spawn.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":734,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Start the supplied command in the existing pane. A running process causes failure unless `kill_running:true` explicitly replaces it. The pane ID remains unchanged."},"signatures":[{"raw":"val respawn_pane :\n ?cancel:Cancellation.t ->\n ?kill_running:bool ->\n t ->\n Libtmux.Pane.target -> Libtmux.Spawn.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"kill_running","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Spawn.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-respawn_pane"},{"id":"Libtmux_unix.Client.rotate_panes","publicId":"Libtmux_unix.Client.rotate_panes","qualifiedName":"Libtmux_unix.Client.rotate_panes","name":"rotate_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":718,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Rotate pane positions in the selected direction. Pane identities and\n running processes remain attached to their panes. "],"declarations":[{"kind":"function","text":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Forward | `Backward ] ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":718,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes."},"signatures":[{"raw":"val rotate_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n [ `Backward | `Forward ] -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"[ `Backward | `Forward ]"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-rotate_panes"},{"id":"Libtmux_unix.Client.run","publicId":"Libtmux_unix.Client.run","qualifiedName":"Libtmux_unix.Client.run","name":"run","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":266,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Submit and await. Use the two calls separately to retain an operation\n handle. "],"declarations":[{"kind":"function","text":"val run :\n ?cancel:Cancellation.t ->\n t ->\n 'a Libtmux.Command.t ->\n ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":266,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Submit and await. Use the two calls separately to retain an operation handle."},"signatures":[{"raw":"val run :\n ?cancel:Cancellation.t ->\n t -> 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run"},{"id":"Libtmux_unix.Client.run_hook","publicId":"Libtmux_unix.Client.run_hook","qualifiedName":"Libtmux_unix.Client.run_hook","name":"run_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":518,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Run the effective hook in an explicit session, window or pane context. A\n successful result follows completion of its synchronous command queue.\n Background work started by a hook has its own lifetime. A later hook\n failure returns an uncertain outcome; preceding effects remain. Named [@]\n hooks return [Unsupported] because tmux can hide their parse failures in\n the server log. Configuration and inspection remain available. "],"declarations":[{"kind":"function","text":"val run_hook :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":518,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named `@` hooks return `Unsupported` because tmux can hide their parse failures in the server log. Configuration and inspection remain available."},"signatures":[{"raw":"val run_hook :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-run_hook"},{"id":"Libtmux_unix.Client.select_layout","publicId":"Libtmux_unix.Client.select_layout","qualifiedName":"Libtmux_unix.Client.select_layout","name":"select_layout","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":680,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Apply a preset or validated custom layout to the window. Pane geometry\n follows tmux layout rules; capture again to observe the result. "],"declarations":[{"kind":"function","text":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target ->\n Libtmux.Layout.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":680,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_layout.ml","intro":"Apply a layout. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"layout: 3 horizontal panes\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val select_layout :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Window.target -> Libtmux.Layout.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Window.target"},{"name":"arg3","type":"Libtmux.Layout.t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_layout"},{"id":"Libtmux_unix.Client.select_pane","publicId":"Libtmux_unix.Client.select_pane","qualifiedName":"Libtmux_unix.Client.select_pane","name":"select_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Make the pane active in its containing window. This does not open or\n attach a terminal client. "],"declarations":[{"kind":"function","text":"val select_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":641,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Make the pane active in its containing window. This does not open or attach a terminal client."},"signatures":[{"raw":"val select_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_pane"},{"id":"Libtmux_unix.Client.select_window_at","publicId":"Libtmux_unix.Client.select_window_at","qualifiedName":"Libtmux_unix.Client.select_window_at","name":"select_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Operate on the session's current index at execution, not an old link\n incarnation. "],"declarations":[{"kind":"function","text":"val select_window_at :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":601,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Operate on the session's current index at execution, not an old link incarnation."},"signatures":[{"raw":"val select_window_at :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-select_window_at"},{"id":"Libtmux_unix.Client.send_keys","publicId":"Libtmux_unix.Client.send_keys","qualifiedName":"Libtmux_unix.Client.send_keys","name":"send_keys","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":358,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Send named tmux keys in order, without an implicit Enter. Use {!send_text}\n for literal bytes rather than key interpretation. "],"declarations":[{"kind":"function","text":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Key.t list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":358,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Send named tmux keys in order, without an implicit Enter. Use {!send_text} for literal bytes rather than key interpretation.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_keys :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target -> Libtmux.Key.t list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Key.t list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_keys"},{"id":"Libtmux_unix.Client.send_text","publicId":"Libtmux_unix.Client.send_text","qualifiedName":"Libtmux_unix.Client.send_text","name":"send_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":350,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Literal bytes, without an implicit Enter. NUL is rejected at admission. "],"declarations":[{"kind":"function","text":"val send_text :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n text:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":350,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Literal bytes, without an implicit Enter. NUL is rejected at admission.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_send_keys.ml","intro":"Send literal input and keys. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"sent: literal: $HOME; #{pane_id}\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val send_text :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> text:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-send_text"},{"id":"Libtmux_unix.Client.set_environment","publicId":"Libtmux_unix.Client.set_environment","qualifiedName":"Libtmux_unix.Client.set_environment","name":"set_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set a local environment value for future pane processes. [hidden] defaults\n to false; hidden values remain internal to tmux. Existing processes keep\n their environment. "],"declarations":[{"kind":"function","text":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":387,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a local environment value for future pane processes. `hidden` defaults to false; hidden values remain internal to tmux. Existing processes keep their environment."},"signatures":[{"raw":"val set_environment :\n ?cancel:Cancellation.t ->\n ?hidden:bool ->\n t ->\n Libtmux.Environment.scope ->\n name:string -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"hidden","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_environment"},{"id":"Libtmux_unix.Client.set_hook","publicId":"Libtmux_unix.Client.set_hook","qualifiedName":"Libtmux_unix.Client.set_hook","name":"set_hook","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":491,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set a hook to a nonempty command list. Without an index, replace the whole\n hook array, or fill the lowest free index when appending. An explicit\n [@name] custom hook stores command text as a user option; it requires\n complete replacement and has no array indexes. [read_hook] returns its\n [Libtmux.Options.Text] value; bulk hook capture includes built-ins.\n Commands may cause arbitrary tmux effects when triggered. Hooks that print\n output are outside the supported control transport contract. "],"declarations":[{"kind":"function","text":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Hook.command list ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":491,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit `@name` custom hook stores command text as a user option; it requires complete replacement and has no array indexes. `read_hook` returns its `Libtmux.Options.Text` value; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract."},"signatures":[{"raw":"val set_hook :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Hook.command list -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Hook.command list"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_hook"},{"id":"Libtmux_unix.Client.set_option","publicId":"Libtmux_unix.Client.set_option","qualifiedName":"Libtmux_unix.Client.set_option","name":"set_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Validate the scope and scalar kind before admission. Array values require\n an index, or [append:true]. Without an index, tmux splits appended text\n using the option's separator and fills the lowest unused indexes. Text is\n literal; tmux format expansion is disabled. Hooks use a separate\n operation. "],"declarations":[{"kind":"function","text":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string ->\n Libtmux.Options.scalar ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":440,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate the scope and scalar kind before admission. Array values require an index, or `append:true`. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation."},"signatures":[{"raw":"val set_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n ?append:bool ->\n t ->\n Libtmux.Options.scope ->\n name:string -> Libtmux.Options.scalar -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"append","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"name","type":"string","keywordOnly":true},{"name":"arg3","type":"Libtmux.Options.scalar"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_option"},{"id":"Libtmux_unix.Client.set_pane_title","publicId":"Libtmux_unix.Client.set_pane_title","qualifiedName":"Libtmux_unix.Client.set_pane_title","name":"set_pane_title","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":649,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Set the pane title as literal text, without tmux format expansion. A\n running terminal application can subsequently replace the title. "],"declarations":[{"kind":"function","text":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n title:string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":649,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title."},"signatures":[{"raw":"val set_pane_title :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> title:string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"title","type":"string","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-set_pane_title"},{"id":"Libtmux_unix.Client.signal","publicId":"Libtmux_unix.Client.signal","qualifiedName":"Libtmux_unix.Client.signal","name":"signal","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":371,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Signal a named tmux semaphore, releasing a waiter or retaining the signal\n for a later {!wait_for}. This does not signal an OS process. "],"declarations":[{"kind":"function","text":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":371,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later {!wait_for}. This does not signal an OS process."},"signatures":[{"raw":"val signal :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-signal"},{"id":"Libtmux_unix.Client.source","publicId":"Libtmux_unix.Client.source","qualifiedName":"Libtmux_unix.Client.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read the retained endpoint, daemon PID and connection generation without\n I/O. "],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t","source":{"file":"unix/libtmux_unix.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the retained endpoint, daemon PID and connection generation without I/O."},"signatures":[{"raw":"val source : t -> Libtmux.Source.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t"}],"slug":"libtmux_unix-client-source"},{"id":"Libtmux_unix.Client.split_pane","publicId":"Libtmux_unix.Client.split_pane","qualifiedName":"Libtmux_unix.Client.split_pane","name":"split_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":553,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Create a detached pane beside the target and return the IDs reported by\n tmux. Omitted [size] lets tmux choose the split; tmux rejects splits when\n no space remains. "],"declarations":[{"kind":"function","text":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":553,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Create a detached pane beside the target and return the IDs reported by tmux. Omitted `size` lets tmux choose the split; tmux rejects splits when no space remains."},"signatures":[{"raw":"val split_pane :\n ?cancel:Cancellation.t ->\n ?size:Libtmux.Geometry.size ->\n ?spawn:Libtmux.Spawn.t ->\n t ->\n Libtmux.Pane.target ->\n direction:Libtmux.Geometry.direction ->\n (Libtmux.Created.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"direction","type":"Libtmux.Geometry.direction","keywordOnly":true}],"returns":"(Libtmux.Created.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-split_pane"},{"id":"Libtmux_unix.Client.submit","publicId":"Libtmux_unix.Client.submit","qualifiedName":"Libtmux_unix.Client.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":251,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Validate and reserve queue capacity without I/O. "],"declarations":[{"kind":"function","text":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":251,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Validate and reserve queue capacity without I/O."},"signatures":[{"raw":"val submit :\n t -> 'a Libtmux.Command.t -> ('a Operation.t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"'a Libtmux.Command.t"}],"returns":"('a Operation.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-submit"},{"id":"Libtmux_unix.Client.subscribe","publicId":"Libtmux_unix.Client.subscribe","qualifiedName":"Libtmux_unix.Client.subscribe","name":"subscribe","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Acquire verified coverage of the pane's observed session/window. Choose\n the least session ID unless explicitly supplied. Reuse one lane per\n session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16\n subscribers and eight client lanes including commands. Reserve payload\n against the shared 32 MiB budget before admission.\n\n Queue capacities remain reserved while empty. Captures and reads need\n additional scratch space; their admission can return\n {!Libtmux.Error.Capacity} below the subscriber-count limit. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md#plan-shared-capacity}shared\n capacity guide} for the combined reservations and process slots.\n\n Data starts after admission's marker. Layout/membership changes end\n continuity conservatively. Overflow emits Gap then End, without blocking\n another subscriber. Blocking delivery advances during Subscription.next.\n There is no snapshot/history barrier or automatic recovery. "],"declarations":[{"kind":"function","text":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t ->\n Libtmux.Pane.t ->\n (Subscription.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Acquire verified coverage of the pane's observed session/window. Choose the least session ID unless explicitly supplied. Reuse one lane per session. Defaults: 1 MiB and 1024 queued events per subscriber; at most 16 subscribers and eight client lanes including commands. Reserve payload against the shared 32 MiB budget before admission.","body":"Queue capacities remain reserved while empty. Captures and reads need additional scratch space; their admission can return {!Libtmux.Error.Capacity} below the subscriber-count limit. See the [shared capacity guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/streaming.md#plan-shared-capacity) for the combined reservations and process slots.\n\nData starts after admission's marker. Layout/membership changes end continuity conservatively. Overflow emits Gap then End, without blocking another subscriber. Blocking delivery advances during Subscription.next. There is no snapshot/history barrier or automatic recovery."},"signatures":[{"raw":"val subscribe :\n ?session:Libtmux.Session.target ->\n ?capacity_bytes:int ->\n ?capacity_events:int ->\n t -> Libtmux.Pane.t -> (Subscription.t, Libtmux.Error.t) result","params":[{"name":"session","type":"Libtmux.Session.target","optional":true,"keywordOnly":true},{"name":"capacity_bytes","type":"int","optional":true,"keywordOnly":true},{"name":"capacity_events","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"}],"returns":"(Subscription.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-subscribe"},{"id":"Libtmux_unix.Client.swap_panes","publicId":"Libtmux_unix.Client.swap_panes","qualifiedName":"Libtmux_unix.Client.swap_panes","name":"swap_panes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":709,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Exchange pane positions without exchanging their identities or running\n processes. Both targets must belong to the same bound generation. "],"declarations":[{"kind":"function","text":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":709,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation."},"signatures":[{"raw":"val swap_panes :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"},{"name":"arg3","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-swap_panes"},{"id":"Libtmux_unix.Client.switch_client_at","publicId":"Libtmux_unix.Client.switch_client_at","qualifiedName":"Libtmux_unix.Client.switch_client_at","name":"switch_client_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":313,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Switch the client currently bearing this name to the bound session.\n Environment updates are disabled by default. This can move either a\n terminal client or a control client; it does not open a new terminal. "],"declarations":[{"kind":"function","text":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":313,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal."},"signatures":[{"raw":"val switch_client_at :\n ?cancel:Cancellation.t ->\n ?update_environment:bool ->\n t ->\n Libtmux.Client_name.t ->\n session:Libtmux.Session.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Client_name.t"},{"name":"session","type":"Libtmux.Session.target","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-switch_client_at"},{"id":"Libtmux_unix.Client.t","publicId":"Libtmux_unix.Client.t","qualifiedName":"Libtmux_unix.Client.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":183,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":183,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-client-t"},{"id":"Libtmux_unix.Client.unlink_window_at","publicId":"Libtmux_unix.Client.unlink_window_at","qualifiedName":"Libtmux_unix.Client.unlink_window_at","name":"unlink_window_at","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":610,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Without [allow_kill], tmux rejects removal of the last link to a window.\n "],"declarations":[{"kind":"function","text":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t ->\n Libtmux.Session.target ->\n index:int ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":610,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Without `allow_kill`, tmux rejects removal of the last link to a window."},"signatures":[{"raw":"val unlink_window_at :\n ?cancel:Cancellation.t ->\n ?allow_kill:bool ->\n t -> Libtmux.Session.target -> index:int -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"allow_kill","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Session.target"},{"name":"index","type":"int","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unlink_window_at"},{"id":"Libtmux_unix.Client.unset_environment","publicId":"Libtmux_unix.Client.unset_environment","qualifiedName":"Libtmux_unix.Client.unset_environment","name":"unset_environment","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":399,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove the local entry, allowing a global value to apply to future panes.\n "],"declarations":[{"kind":"function","text":"val unset_environment :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Environment.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":399,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove the local entry, allowing a global value to apply to future panes."},"signatures":[{"raw":"val unset_environment :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Environment.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Environment.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_environment"},{"id":"Libtmux_unix.Client.unset_option","publicId":"Libtmux_unix.Client.unset_option","qualifiedName":"Libtmux_unix.Client.unset_option","name":"unset_option","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":455,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove a local override or one array element. Global built-ins reset to\n their tmux defaults; this does not recursively unset child overrides. "],"declarations":[{"kind":"function","text":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t ->\n Libtmux.Options.scope ->\n string ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":455,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides."},"signatures":[{"raw":"val unset_option :\n ?cancel:Cancellation.t ->\n ?index:int ->\n t -> Libtmux.Options.scope -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"index","type":"int","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Options.scope"},{"name":"arg3","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-unset_option"},{"id":"Libtmux_unix.Client.version","publicId":"Libtmux_unix.Client.version","qualifiedName":"Libtmux_unix.Client.version","name":"version","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Read the bound daemon's observed version without I/O. "],"declarations":[{"kind":"function","text":"val version : t -> string","source":{"file":"unix/libtmux_unix.mli","line":206,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Read the bound daemon's observed version without I/O."},"signatures":[{"raw":"val version : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_unix-client-version"},{"id":"Libtmux_unix.Client.wait_for","publicId":"Libtmux_unix.Client.wait_for","qualifiedName":"Libtmux_unix.Client.wait_for","name":"wait_for","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":367,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Wait on a named tmux semaphore using a dedicated bound lane. "],"declarations":[{"kind":"function","text":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":367,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Wait on a named tmux semaphore using a dedicated bound lane."},"signatures":[{"raw":"val wait_for :\n ?cancel:Cancellation.t -> t -> string -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"string"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for"},{"id":"Libtmux_unix.Client.wait_for_text","publicId":"Libtmux_unix.Client.wait_for_text","qualifiedName":"Libtmux_unix.Client.wait_for_text","name":"wait_for_text","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Subscribe, capture the ordinary screen immediately, and recapture after\n output. Membership/overflow gaps trigger explicit fresh capture and new\n coverage in the same binding. Maximum pattern: 64 KiB. Success returns a\n capture that contains the text. Transient text between captures may be\n missed. Check the deadline between bounded acquisitions; in-flight I/O\n retains the client's exchange timeout. Release the temporary subscription\n without replacing an earlier error or cancellation; inspect {!cleanup} for\n secondary failures. Otherwise cleanup failure prevents success or renewed\n coverage. No capture/stream barrier exists. "],"declarations":[{"kind":"function","text":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t ->\n Libtmux.Pane.t ->\n text:string ->\n (Rendered.t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Subscribe, capture the ordinary screen immediately, and recapture after output. Membership/overflow gaps trigger explicit fresh capture and new coverage in the same binding. Maximum pattern: 64 KiB. Success returns a capture that contains the text. Transient text between captures may be missed. Check the deadline between bounded acquisitions; in-flight I/O retains the client's exchange timeout. Release the temporary subscription without replacing an earlier error or cancellation; inspect {!cleanup} for secondary failures. Otherwise cleanup failure prevents success or renewed coverage. No capture/stream barrier exists."},"signatures":[{"raw":"val wait_for_text :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n ?scratch_dir:string ->\n t -> Libtmux.Pane.t -> text:string -> (Rendered.t, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"scratch_dir","type":"string","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Rendered.t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-wait_for_text"},{"id":"Libtmux_unix.Client.zoom_pane","publicId":"Libtmux_unix.Client.zoom_pane","qualifiedName":"Libtmux_unix.Client.zoom_pane","name":"zoom_pane","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":727,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Toggle the window's zoom state around this pane. "],"declarations":[{"kind":"function","text":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t ->\n Libtmux.Pane.target ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":727,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Client","doc":{"summary":"Toggle the window's zoom state around this pane."},"signatures":[{"raw":"val zoom_pane :\n ?cancel:Cancellation.t ->\n t -> Libtmux.Pane.target -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Pane.target"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-client-zoom_pane"},{"id":"Libtmux_unix.Operation","publicId":"Libtmux_unix.Operation","qualifiedName":"Libtmux_unix.Operation","name":"Operation","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" A retained admitted command. A cancelled waiter does not erase its eventual\n success, failure or uncertainty. "],"declarations":[{"kind":"module","text":"module Operation : sig\n type 'a t\n\n type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }\n (** [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. *)\n\n type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt\n\n val id : 'a t -> string\n\n val inspect : 'a t -> ('a state, Libtmux.Error.t) result\n (** No I/O. Results remain inspectable after client closure, on the owning\n domain. *)\n\n val cancel : 'a t -> (unit, Libtmux.Error.t) result\n (** Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix","doc":{"summary":"A retained admitted command. A cancelled waiter does not erase its eventual success, failure or uncertainty."},"slug":"libtmux_unix-operation"},{"id":"Libtmux_unix.Operation.cancel","publicId":"Libtmux_unix.Operation.cancel","qualifiedName":"Libtmux_unix.Operation.cancel","name":"cancel","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":137,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove queued work before it is written. Admitted commands retain their\n owner and are drained by {!Client.await}; cancellation does not undo\n effects. Returns [Busy] while another blocking caller owns the client; use\n a {!Cancellation.t} token to interrupt that caller. "],"declarations":[{"kind":"function","text":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":137,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"Remove queued work before it is written. Admitted commands retain their owner and are drained by {!Client.await}; cancellation does not undo effects. Returns `Busy` while another blocking caller owns the client; use a {!Cancellation.t} token to interrupt that caller."},"signatures":[{"raw":"val cancel : 'a t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-cancel"},{"id":"Libtmux_unix.Operation.cleanup_receipt","publicId":"Libtmux_unix.Operation.cleanup_receipt","qualifiedName":"Libtmux_unix.Operation.cleanup_receipt","name":"cleanup_receipt","kind":"struct","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" [created] retains IDs reported before a later hook or completion failure.\n It does not prove those resources still exist or authorize retry. "],"declarations":[{"kind":"struct","text":"type cleanup_receipt = {\n cause : Libtmux.Error.t;\n owned_buffers : string list;\n created : Libtmux.Created.t list;\n }","source":{"file":"unix/libtmux_unix.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"`created` retains IDs reported before a later hook or completion failure. It does not prove those resources still exist or authorize retry."},"signatures":[{"raw":"type cleanup_receipt =\n {\n cause: Libtmux.Error.t ;\n owned_buffers: string list ;\n created: Libtmux.Created.t list }","params":[]}],"slug":"libtmux_unix-operation-cleanup_receipt"},{"id":"Libtmux_unix.Operation.cleanup_receipt.cause","publicId":"Libtmux_unix.Operation.cleanup_receipt.cause","name":"cause","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cause : Libtmux.Error.t;","source":{"file":"unix/libtmux_unix.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Error.t","qualifiedName":"Libtmux_unix.Operation.cause","slug":"libtmux_unix-operation-cleanup_receipt-cause"},{"id":"Libtmux_unix.Operation.cleanup_receipt.created","publicId":"Libtmux_unix.Operation.cleanup_receipt.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":118,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"unix/libtmux_unix.mli","line":118,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_unix.Operation.created","slug":"libtmux_unix-operation-cleanup_receipt-created"},{"id":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","publicId":"Libtmux_unix.Operation.cleanup_receipt.owned_buffers","name":"owned_buffers","kind":"attribute","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"owned_buffers : string list;","source":{"file":"unix/libtmux_unix.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation.cleanup_receipt","type":"string list","qualifiedName":"Libtmux_unix.Operation.owned_buffers","slug":"libtmux_unix-operation-cleanup_receipt-owned_buffers"},{"id":"Libtmux_unix.Operation.id","publicId":"Libtmux_unix.Operation.id","qualifiedName":"Libtmux_unix.Operation.id","name":"id","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val id : 'a t -> string","source":{"file":"unix/libtmux_unix.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"val id : 'a t -> string","params":[{"name":"arg1","type":"'a t"}],"returns":"string"}],"slug":"libtmux_unix-operation-id"},{"id":"Libtmux_unix.Operation.inspect","publicId":"Libtmux_unix.Operation.inspect","qualifiedName":"Libtmux_unix.Operation.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" No I/O. Results remain inspectable after client closure, on the owning\n domain. "],"declarations":[{"kind":"function","text":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation","doc":{"summary":"No I/O. Results remain inspectable after client closure, on the owning domain."},"signatures":[{"raw":"val inspect : 'a t -> ('a state, Libtmux.Error.t) result","params":[{"name":"arg1","type":"'a t"}],"returns":"('a state, Libtmux.Error.t) result"}],"slug":"libtmux_unix-operation-inspect"},{"id":"Libtmux_unix.Operation.state","publicId":"Libtmux_unix.Operation.state","qualifiedName":"Libtmux_unix.Operation.state","name":"state","kind":"enum","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type 'a state =\n | Queued\n | Not_started\n | Written\n | Acknowledged\n | Finished of ('a, Libtmux.Error.t) result\n | Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a state =\n | Queued \n | Not_started \n | Written \n | Acknowledged \n | Finished of ('a, Libtmux.Error.t) result \n | Outcome_unknown of cleanup_receipt ","params":[]}],"slug":"libtmux_unix-operation-state"},{"id":"Libtmux_unix.Operation.state.Acknowledged","publicId":"Libtmux_unix.Operation.state.Acknowledged","name":"Acknowledged","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Acknowledged","source":{"file":"unix/libtmux_unix.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Acknowledged","slug":"libtmux_unix-operation-state-acknowledged"},{"id":"Libtmux_unix.Operation.state.Finished","publicId":"Libtmux_unix.Operation.state.Finished","name":"Finished","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Finished of ('a, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Finished","slug":"libtmux_unix-operation-state-finished"},{"id":"Libtmux_unix.Operation.state.Not_started","publicId":"Libtmux_unix.Operation.state.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Not_started","source":{"file":"unix/libtmux_unix.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Not_started","slug":"libtmux_unix-operation-state-not_started"},{"id":"Libtmux_unix.Operation.state.Outcome_unknown","publicId":"Libtmux_unix.Operation.state.Outcome_unknown","name":"Outcome_unknown","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Outcome_unknown of cleanup_receipt","source":{"file":"unix/libtmux_unix.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation.state","variant":"tuple","qualifiedName":"Libtmux_unix.Operation.Outcome_unknown","slug":"libtmux_unix-operation-state-outcome_unknown"},{"id":"Libtmux_unix.Operation.state.Queued","publicId":"Libtmux_unix.Operation.state.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"unix/libtmux_unix.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Queued","slug":"libtmux_unix-operation-state-queued"},{"id":"Libtmux_unix.Operation.state.Written","publicId":"Libtmux_unix.Operation.state.Written","name":"Written","kind":"constant","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":126,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Written","source":{"file":"unix/libtmux_unix.mli","line":126,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation.state","variant":"unit","qualifiedName":"Libtmux_unix.Operation.Written","slug":"libtmux_unix-operation-state-written"},{"id":"Libtmux_unix.Operation.t","publicId":"Libtmux_unix.Operation.t","qualifiedName":"Libtmux_unix.Operation.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type 'a t","source":{"file":"unix/libtmux_unix.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Operation","signatures":[{"raw":"type 'a t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-operation-t"},{"id":"Libtmux_unix.Rendered","publicId":"Libtmux_unix.Rendered","qualifiedName":"Libtmux_unix.Rendered","name":"Rendered","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Blocking native Linux transport. No Eio scheduler is started. "],"declarations":[{"kind":"module","text":"module Rendered = Libtmux.Captured_text","source":{"file":"unix/libtmux_unix.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix","doc":{"summary":"Blocking native Linux transport. No Eio scheduler is started."},"exportedFrom":"Libtmux.Captured_text","slug":"libtmux_unix-rendered"},{"id":"Libtmux_unix.Subscription","publicId":"Libtmux_unix.Subscription","qualifiedName":"Libtmux_unix.Subscription","name":"Subscription","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":146,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Bounded future-byte observation with Data/Gap/End and local cursors. Polling\n is local; waiting and admission belong to the backend. "],"declarations":[{"kind":"module","text":"module Subscription : sig\n type t\n\n val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. *)\n\n val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result\n (** Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Release and reap\n an unused lane; later calls retain cleanup failures. Does not stop the\n daemon. {!poll} can still read the terminal event. *)\n\n val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result\n (** Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":146,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix","doc":{"summary":"Bounded future-byte observation with Data/Gap/End and local cursors. Polling is local; waiting and admission belong to the backend."},"slug":"libtmux_unix-subscription"},{"id":"Libtmux_unix.Subscription.close","publicId":"Libtmux_unix.Subscription.close","qualifiedName":"Libtmux_unix.Subscription.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":162,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" End an active subscription with Cancelled and discard pending data.\n Preserve an already ended subscription's terminal reason. Release and reap\n an unused lane; later calls retain cleanup failures. Does not stop the\n daemon. {!poll} can still read the terminal event. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":162,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"End an active subscription with Cancelled and discard pending data. Preserve an already ended subscription's terminal reason. Release and reap an unused lane; later calls retain cleanup failures. Does not stop the daemon. {!poll} can still read the terminal event."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-close"},{"id":"Libtmux_unix.Subscription.next","publicId":"Libtmux_unix.Subscription.next","qualifiedName":"Libtmux_unix.Subscription.next","name":"next","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":153,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Pump all subscription lanes until one event is available. Default deadline\n is one second. [None] follows a consumed End. A deadline keeps the\n subscription active; cancellation closes it and raises Cancelled. "],"declarations":[{"kind":"function","text":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":153,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Pump all subscription lanes until one event is available. Default deadline is one second. `None` follows a consumed End. A deadline keeps the subscription active; cancellation closes it and raises Cancelled."},"signatures":[{"raw":"val next :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-next"},{"id":"Libtmux_unix.Subscription.poll","publicId":"Libtmux_unix.Subscription.poll","qualifiedName":"Libtmux_unix.Subscription.poll","name":"poll","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Remove a queued event without I/O. Owning domain only, including after\n client closure. [None] means no queued event, not proof of continuity. "],"declarations":[{"kind":"function","text":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Remove a queued event without I/O. Owning domain only, including after client closure. `None` means no queued event, not proof of continuity."},"signatures":[{"raw":"val poll : t -> (Libtmux.Output.event option, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux.Output.event option, Libtmux.Error.t) result"}],"slug":"libtmux_unix-subscription-poll"},{"id":"Libtmux_unix.Subscription.t","publicId":"Libtmux_unix.Subscription.t","qualifiedName":"Libtmux_unix.Subscription.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":147,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":147,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Subscription","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-subscription-t"},{"id":"Libtmux_unix.Subscription.wait_for_bytes","publicId":"Libtmux_unix.Subscription.wait_for_bytes","qualifiedName":"Libtmux_unix.Subscription.wait_for_bytes","name":"wait_for_bytes","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Consume future bytes until the nonempty pattern matches, including across\n Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's\n end within its consumed event. Gaps stop matching; no rendered or earlier\n output is searched. Timeout leaves the subscription active. "],"declarations":[{"kind":"function","text":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string ->\n (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","source":{"file":"unix/libtmux_unix.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Subscription","doc":{"summary":"Consume future bytes until the nonempty pattern matches, including across Data boundaries. Maximum pattern: 64 KiB. Return the cursor at the match's end within its consumed event. Gaps stop matching; no rendered or earlier output is searched. Timeout leaves the subscription active."},"signatures":[{"raw":"val wait_for_bytes :\n ?cancel:Cancellation.t ->\n ?timeout:float ->\n t ->\n text:string -> (Libtmux.Output.cursor, Libtmux.Output.wait_error) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"},{"name":"text","type":"string","keywordOnly":true}],"returns":"(Libtmux.Output.cursor, Libtmux.Output.wait_error) result"}],"slug":"libtmux_unix-subscription-wait_for_bytes"},{"id":"Libtmux_unix.Terminal","publicId":"Libtmux_unix.Terminal","qualifiedName":"Libtmux_unix.Terminal","name":"Terminal","kind":"module","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Interactive attachment using borrowed application streams. This utility\n addresses the current daemon explicitly and does not reuse captured targets.\n"],"declarations":[{"kind":"module","text":"module Terminal : sig\n val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result\n (** Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM\n gets 200 ms of cooperative grace before KILL and reaping. Scheduling and\n uninterruptible kernel work can add time. Supply [cleanup] before the call\n to retain secondary failures after cancellation. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix","doc":{"summary":"Interactive attachment using borrowed application streams. This utility addresses the current daemon explicitly and does not reuse captured targets."},"slug":"libtmux_unix-terminal"},{"id":"Libtmux_unix.Terminal.attach_current","publicId":"Libtmux_unix.Terminal.attach_current","qualifiedName":"Libtmux_unix.Terminal.attach_current","name":"attach_current","kind":"function","modifiers":[],"package":"libtmux-unix","product":"core","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Run an interactive terminal client until it exits. Select the exact\n session ID on the daemon currently listening at [endpoint]; this is\n explicitly unbound and accepts no captured target. No retry or daemon\n startup occurs. A successful result proves client exit, not continued\n attachment. Diagnostics go to [stderr].\n\n Descriptors default to the application's standard streams and remain\n caller-owned. [stdin] must be a terminal. Environment updates and\n read-only mode are disabled by default; inherited [TMUX] and [TMUX_PANE]\n are removed. Cancellation terminates and reaps this terminal client,\n leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM\n gets 200 ms of cooperative grace before KILL and reaping. Scheduling and\n uninterruptible kernel work can add time. Supply [cleanup] before the call\n to retain secondary failures after cancellation. "],"declarations":[{"kind":"function","text":"val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t ->\n (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Terminal","doc":{"summary":"Run an interactive terminal client until it exits. Select the exact session ID on the daemon currently listening at `endpoint`; this is explicitly unbound and accepts no captured target. No retry or daemon startup occurs. A successful result proves client exit, not continued attachment. Diagnostics go to `stderr`.","body":"Descriptors default to the application's standard streams and remain caller-owned. `stdin` must be a terminal. Environment updates and read-only mode are disabled by default; inherited `TMUX` and `TMUX_PANE` are removed. Cancellation terminates and reaps this terminal client, leaves the daemon running, then raises {!Cancellation.Cancelled}. TERM gets 200 ms of cooperative grace before KILL and reaping. Scheduling and uninterruptible kernel work can add time. Supply `cleanup` before the call to retain secondary failures after cancellation."},"signatures":[{"raw":"val attach_current :\n ?cancel:Cancellation.t ->\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?read_only:bool ->\n ?update_environment:bool ->\n ?stdin:Unix.file_descr ->\n ?stdout:Unix.file_descr ->\n ?stderr:Unix.file_descr ->\n Libtmux.Endpoint.t ->\n session:Libtmux.Session.Id.t -> (unit, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"read_only","type":"bool","optional":true,"keywordOnly":true},{"name":"update_environment","type":"bool","optional":true,"keywordOnly":true},{"name":"stdin","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stdout","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"stderr","type":"Unix.file_descr","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux.Endpoint.t"},{"name":"session","type":"Libtmux.Session.Id.t","keywordOnly":true}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-terminal-attach_current"},{"id":"Libtmux_unix.Workspace","publicId":"Libtmux_unix.Workspace","qualifiedName":"Libtmux_unix.Workspace","name":"Workspace","kind":"module","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":768,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Apply validated plans with blocking I/O and scoped cancellation tokens.\n Execution handles retain journals and borrow existing clients; bootstrap\n handles own their newly bound clients without owning the daemon. "],"declarations":[{"kind":"module","text":"module Workspace : sig\n type t\n\n val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result\n (** Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. *)\n\n val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. *)\n\n val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n (** Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. *)\n\n val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result\n\n val client : t -> Client.t option\n (** Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. *)\n\n val close : t -> (unit, Libtmux.Error.t) result\n (** Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. *)\nend","source":{"file":"unix/libtmux_unix.mli","line":768,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix","doc":{"summary":"Apply validated plans with blocking I/O and scoped cancellation tokens. Execution handles retain journals and borrow existing clients; bootstrap handles own their newly bound clients without owning the daemon."},"slug":"libtmux_unix-workspace"},{"id":"Libtmux_unix.Workspace.await","publicId":"Libtmux_unix.Workspace.await","qualifiedName":"Libtmux_unix.Workspace.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":786,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Expected apply failures are retained receipts. Cancellation propagates\n after recording progress and at most 500 ms of protected compensation. "],"declarations":[{"kind":"function","text":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t ->\n (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":786,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Expected apply failures are retained receipts. Cancellation propagates after recording progress and at most 500 ms of protected compensation.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet checked pp = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" pp error)\n\nlet get result = checked Error.pp result\n\nlet protect ~finally use =\n match use () with\n | value ->\n finally ();\n value\n | exception error ->\n let backtrace = Printexc.get_raw_backtrace () in\n (try finally ()\n with cleanup ->\n Format.eprintf \"cleanup failed: %s@.\" (Printexc.to_string cleanup));\n Printexc.raise_with_backtrace error backtrace\n\n(* docs:begin bootstrap *)\nlet bootstrap ~binary ~version ~directory endpoint =\n let spawn = Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\" ] }) in\n let config =\n Config.make ~directory ~session:\"bootstrap-demo\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n |> checked Config.pp_error\n in\n let plan =\n Plan.make ~endpoint ~version ~observed:None config |> checked Plan.pp_error\n in\n get (Workspace.submit_bootstrap ~binary plan)\n(* docs:end bootstrap *)\n\nlet require_success (receipt : Execution.receipt) =\n if receipt.status <> Execution.Succeeded then (\n Format.eprintf \"workspace %s did not complete@.\" receipt.operation_id;\n (match receipt.status with\n | Execution.Rejected error -> Format.eprintf \"%a@.\" Plan.pp_error error\n | Execution.Unavailable error -> Format.eprintf \"%a@.\" Error.pp error\n | _ -> ());\n Iarray.iter\n (fun (step : Execution.step) ->\n match step.status with\n | Execution.Failed error | Execution.Uncertain error ->\n Format.eprintf \"step %d: %a@.\" step.index Error.pp error\n | _ -> ())\n receipt.steps;\n Option.iter\n (fun error -> Format.eprintf \"compensation: %a@.\" Error.pp error)\n receipt.cleanup_error;\n Iarray.iter\n (fun (cleanup : Execution.cleanup) ->\n match cleanup.outcome with\n | Ok () -> ()\n | Error error -> Format.eprintf \"cleanup: %a@.\" Error.pp error)\n receipt.cleanup;\n failwith \"bootstrap incomplete; no automatic retry\")\n\nlet local_version binary =\n let input = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n protect\n ~finally:(fun () ->\n if Unix.close_process_in input <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line input))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n String.sub version 5 (String.length version - 5)\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let execution =\n bootstrap ~binary:wrapper ~version:(local_version binary) ~directory\n (Endpoint.socket_path socket)\n in\n (* docs:begin await-bootstrap *)\n let snapshot =\n protect\n ~finally:(fun () -> get (Workspace.close execution))\n (fun () ->\n let receipt = get (Workspace.await execution) in\n require_success receipt;\n let client = Option.get (Workspace.client execution) in\n get (Client.capture client))\n (* docs:end await-bootstrap *)\n in\n assert (Iarray.length (Snapshot.sessions snapshot) = 1);\n assert (Iarray.length (Snapshot.windows snapshot) = 1);\n assert (Iarray.length (Snapshot.panes snapshot) = 1);\n assert (\n Session.name (Iarray.get (Snapshot.sessions snapshot) 0)\n = \"bootstrap-demo\");\n assert (Window.name (Iarray.get (Snapshot.windows snapshot) 0) = \"editor\");\n Printf.printf \"socket=%s\\n\" socket;\n print_endline \"bootstrapped: 1 session, 1 window, 1 pane\")\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_bootstrap.ml","intro":"Start a private server and capture its first session. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_bootstrap.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"bootstrapped: 1 session, 1 window, 1 pane\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val await :\n ?cancel:Cancellation.t ->\n ?compensate_on_failure:bool ->\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"cancel","type":"Cancellation.t","optional":true,"keywordOnly":true},{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-await"},{"id":"Libtmux_unix.Workspace.client","publicId":"Libtmux_unix.Workspace.client","qualifiedName":"Libtmux_unix.Workspace.client","name":"client","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":797,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent\n actions or recovery. {!close} releases a client owned by this workspace\n execution handle. "],"declarations":[{"kind":"function","text":"val client : t -> Client.t option","source":{"file":"unix/libtmux_unix.mli","line":797,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Borrow the existing or bootstrapped {!Client.t} without I/O for subsequent actions or recovery. {!close} releases a client owned by this workspace execution handle.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet checked pp = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" pp error)\n\nlet get result = checked Error.pp result\n\nlet protect ~finally use =\n match use () with\n | value ->\n finally ();\n value\n | exception error ->\n let backtrace = Printexc.get_raw_backtrace () in\n (try finally ()\n with cleanup ->\n Format.eprintf \"cleanup failed: %s@.\" (Printexc.to_string cleanup));\n Printexc.raise_with_backtrace error backtrace\n\n(* docs:begin bootstrap *)\nlet bootstrap ~binary ~version ~directory endpoint =\n let spawn = Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\" ] }) in\n let config =\n Config.make ~directory ~session:\"bootstrap-demo\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n |> checked Config.pp_error\n in\n let plan =\n Plan.make ~endpoint ~version ~observed:None config |> checked Plan.pp_error\n in\n get (Workspace.submit_bootstrap ~binary plan)\n(* docs:end bootstrap *)\n\nlet require_success (receipt : Execution.receipt) =\n if receipt.status <> Execution.Succeeded then (\n Format.eprintf \"workspace %s did not complete@.\" receipt.operation_id;\n (match receipt.status with\n | Execution.Rejected error -> Format.eprintf \"%a@.\" Plan.pp_error error\n | Execution.Unavailable error -> Format.eprintf \"%a@.\" Error.pp error\n | _ -> ());\n Iarray.iter\n (fun (step : Execution.step) ->\n match step.status with\n | Execution.Failed error | Execution.Uncertain error ->\n Format.eprintf \"step %d: %a@.\" step.index Error.pp error\n | _ -> ())\n receipt.steps;\n Option.iter\n (fun error -> Format.eprintf \"compensation: %a@.\" Error.pp error)\n receipt.cleanup_error;\n Iarray.iter\n (fun (cleanup : Execution.cleanup) ->\n match cleanup.outcome with\n | Ok () -> ()\n | Error error -> Format.eprintf \"cleanup: %a@.\" Error.pp error)\n receipt.cleanup;\n failwith \"bootstrap incomplete; no automatic retry\")\n\nlet local_version binary =\n let input = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n protect\n ~finally:(fun () ->\n if Unix.close_process_in input <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line input))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n String.sub version 5 (String.length version - 5)\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let execution =\n bootstrap ~binary:wrapper ~version:(local_version binary) ~directory\n (Endpoint.socket_path socket)\n in\n (* docs:begin await-bootstrap *)\n let snapshot =\n protect\n ~finally:(fun () -> get (Workspace.close execution))\n (fun () ->\n let receipt = get (Workspace.await execution) in\n require_success receipt;\n let client = Option.get (Workspace.client execution) in\n get (Client.capture client))\n (* docs:end await-bootstrap *)\n in\n assert (Iarray.length (Snapshot.sessions snapshot) = 1);\n assert (Iarray.length (Snapshot.windows snapshot) = 1);\n assert (Iarray.length (Snapshot.panes snapshot) = 1);\n assert (\n Session.name (Iarray.get (Snapshot.sessions snapshot) 0)\n = \"bootstrap-demo\");\n assert (Window.name (Iarray.get (Snapshot.windows snapshot) 0) = \"editor\");\n Printf.printf \"socket=%s\\n\" socket;\n print_endline \"bootstrapped: 1 session, 1 window, 1 pane\")\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_bootstrap.ml","intro":"Start a private server and capture its first session. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_bootstrap.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"bootstrapped: 1 session, 1 window, 1 pane\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val client : t -> Client.t option","params":[{"name":"arg1","type":"t"}],"returns":"Client.t option"}],"slug":"libtmux_unix-workspace-client"},{"id":"Libtmux_unix.Workspace.close","publicId":"Libtmux_unix.Workspace.close","qualifiedName":"Libtmux_unix.Workspace.close","name":"close","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":802,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Release an owned client through {!Client.close}. Active await returns\n Busy. Completed journals remain readable after close. "],"declarations":[{"kind":"function","text":"val close : t -> (unit, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":802,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Release an owned client through {!Client.close}. Active await returns Busy. Completed journals remain readable after close."},"signatures":[{"raw":"val close : t -> (unit, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(unit, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-close"},{"id":"Libtmux_unix.Workspace.inspect","publicId":"Libtmux_unix.Workspace.inspect","qualifiedName":"Libtmux_unix.Workspace.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":794,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":794,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"val inspect :\n t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result","params":[{"name":"arg1","type":"t"}],"returns":"(Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-inspect"},{"id":"Libtmux_unix.Workspace.submit","publicId":"Libtmux_unix.Workspace.submit","qualifiedName":"Libtmux_unix.Workspace.submit","name":"submit","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":771,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Allocate a generation-bound execution handle without I/O. The caller owns\n the supplied client; closing this handle leaves that client open. "],"declarations":[{"kind":"function","text":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":771,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a generation-bound execution handle without I/O. The caller owns the supplied client; closing this handle leaves that client open."},"signatures":[{"raw":"val submit :\n Client.t -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"arg1","type":"Client.t"},{"name":"arg2","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit"},{"id":"Libtmux_unix.Workspace.submit_bootstrap","publicId":"Libtmux_unix.Workspace.submit_bootstrap","qualifiedName":"Libtmux_unix.Workspace.submit_bootstrap","name":"submit_bootstrap","kind":"function","modifiers":[],"package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":776,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Allocate a handle for a missing-endpoint plan. Awaiting it starts control\n new-session and binds the same connection. The handle owns its new client;\n it never acquires ownership of the daemon. "],"declarations":[{"kind":"function","text":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float ->\n Libtmux_workspace.Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"unix/libtmux_unix.mli","line":776,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Workspace","doc":{"summary":"Allocate a handle for a missing-endpoint plan. Awaiting it starts control new-session and binds the same connection. The handle owns its new client; it never acquires ownership of the daemon.","examples":[{"lang":"ocaml","code":"open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet checked pp = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" pp error)\n\nlet get result = checked Error.pp result\n\nlet protect ~finally use =\n match use () with\n | value ->\n finally ();\n value\n | exception error ->\n let backtrace = Printexc.get_raw_backtrace () in\n (try finally ()\n with cleanup ->\n Format.eprintf \"cleanup failed: %s@.\" (Printexc.to_string cleanup));\n Printexc.raise_with_backtrace error backtrace\n\n(* docs:begin bootstrap *)\nlet bootstrap ~binary ~version ~directory endpoint =\n let spawn = Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\" ] }) in\n let config =\n Config.make ~directory ~session:\"bootstrap-demo\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n |> checked Config.pp_error\n in\n let plan =\n Plan.make ~endpoint ~version ~observed:None config |> checked Plan.pp_error\n in\n get (Workspace.submit_bootstrap ~binary plan)\n(* docs:end bootstrap *)\n\nlet require_success (receipt : Execution.receipt) =\n if receipt.status <> Execution.Succeeded then (\n Format.eprintf \"workspace %s did not complete@.\" receipt.operation_id;\n (match receipt.status with\n | Execution.Rejected error -> Format.eprintf \"%a@.\" Plan.pp_error error\n | Execution.Unavailable error -> Format.eprintf \"%a@.\" Error.pp error\n | _ -> ());\n Iarray.iter\n (fun (step : Execution.step) ->\n match step.status with\n | Execution.Failed error | Execution.Uncertain error ->\n Format.eprintf \"step %d: %a@.\" step.index Error.pp error\n | _ -> ())\n receipt.steps;\n Option.iter\n (fun error -> Format.eprintf \"compensation: %a@.\" Error.pp error)\n receipt.cleanup_error;\n Iarray.iter\n (fun (cleanup : Execution.cleanup) ->\n match cleanup.outcome with\n | Ok () -> ()\n | Error error -> Format.eprintf \"cleanup: %a@.\" Error.pp error)\n receipt.cleanup;\n failwith \"bootstrap incomplete; no automatic retry\")\n\nlet local_version binary =\n let input = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n protect\n ~finally:(fun () ->\n if Unix.close_process_in input <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line input))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n String.sub version 5 (String.length version - 5)\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let execution =\n bootstrap ~binary:wrapper ~version:(local_version binary) ~directory\n (Endpoint.socket_path socket)\n in\n (* docs:begin await-bootstrap *)\n let snapshot =\n protect\n ~finally:(fun () -> get (Workspace.close execution))\n (fun () ->\n let receipt = get (Workspace.await execution) in\n require_success receipt;\n let client = Option.get (Workspace.client execution) in\n get (Client.capture client))\n (* docs:end await-bootstrap *)\n in\n assert (Iarray.length (Snapshot.sessions snapshot) = 1);\n assert (Iarray.length (Snapshot.windows snapshot) = 1);\n assert (Iarray.length (Snapshot.panes snapshot) = 1);\n assert (\n Session.name (Iarray.get (Snapshot.sessions snapshot) 0)\n = \"bootstrap-demo\");\n assert (Window.name (Iarray.get (Snapshot.windows snapshot) 0) = \"editor\");\n Printf.printf \"socket=%s\\n\" socket;\n print_endline \"bootstrapped: 1 session, 1 window, 1 pane\")\n","sourceUrl":"https://github.com/libtmux/libtmux-ocaml/blob/6b814a3ae27b6a700b5d45ff1ef654565a1f1605/examples/showcase_bootstrap.ml","intro":"Start a private server and capture its first session. This complete program creates a private daemon, checks its result and closes its clients. Use OCaml 5.5.2 on Linux with tmux 3.3a through 3.8. Run it from the source checkout after following the installation guide."},{"lang":"console","code":"$ opam exec -- dune exec examples/showcase_bootstrap.exe -- tmux\n","intro":"Run the recorded entry point:"},{"lang":"text","code":"bootstrapped: 1 session, 1 window, 1 pane\n","intro":"Expected outcome line, after the temporary socket path:"}]},"signatures":[{"raw":"val submit_bootstrap :\n ?cleanup:Cleanup.t ->\n ?binary:string ->\n ?timeout:float -> Libtmux_workspace.Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"cleanup","type":"Cleanup.t","optional":true,"keywordOnly":true},{"name":"binary","type":"string","optional":true,"keywordOnly":true},{"name":"timeout","type":"float","optional":true,"keywordOnly":true},{"name":"arg1","type":"Libtmux_workspace.Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_unix-workspace-submit_bootstrap"},{"id":"Libtmux_unix.Workspace.t","publicId":"Libtmux_unix.Workspace.t","qualifiedName":"Libtmux_unix.Workspace.t","name":"t","kind":"typealias","package":"libtmux-unix","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_unix","source":{"file":"unix/libtmux_unix.mli","line":769,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"unix/libtmux_unix.mli","line":769,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_unix.Workspace","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_unix-workspace-t"},{"id":"Libtmux_workspace","publicId":"Libtmux_workspace","qualifiedName":"Libtmux_workspace","name":"Libtmux_workspace","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" {!Config} validates workspace descriptions and {!Plan} previews their\n actions without I/O. {!Execution} delegates effects to an explicit executor\n and retains a recovery journal. See the\n {{:https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md}workspace\n guide} for JSON loading, preview, apply and receipt inspection. "],"declarations":[{"kind":"module","text":"","source":{"file":"workspace/libtmux_workspace.mli","line":1,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"doc":{"summary":"{!Config} validates workspace descriptions and {!Plan} previews their actions without I/O. {!Execution} delegates effects to an explicit executor and retains a recovery journal. See the [workspace guide](https://github.com/libtmux/libtmux-ocaml/blob/master/docs/workspaces.md) for JSON loading, preview, apply and receipt inspection."},"slug":"libtmux_workspace"},{"id":"Libtmux_workspace.Config","publicId":"Libtmux_workspace.Config","qualifiedName":"Libtmux_workspace.Config","name":"Config","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Validate native workspace values without contacting tmux or reading the\n filesystem. Relative directories resolve against the document directory;\n only declared variables participate in expansion. "],"declarations":[{"kind":"module","text":"module Config : sig\n type error = { path : string; message : string }\n\n val pp_error : Format.formatter -> error -> unit\n\n type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }\n\n type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n\n type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }\n\n type t\n\n val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane\n\n val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window\n (** Builders are unchecked descriptions; {!make} validates the whole document.\n *)\n\n val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result\n (** Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. *)\n\n val session : t -> string\n val windows : t -> window Iarray.t\n val environment : t -> (string * string) list\n val options : t -> setting list\n val dimensions : t -> int * int\nend","source":{"file":"workspace/libtmux_workspace.mli","line":10,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace","doc":{"summary":"Validate native workspace values without contacting tmux or reading the filesystem. Relative directories resolve against the document directory; only declared variables participate in expansion."},"slug":"libtmux_workspace-config"},{"id":"Libtmux_workspace.Config.dimensions","publicId":"Libtmux_workspace.Config.dimensions","qualifiedName":"Libtmux_workspace.Config.dimensions","name":"dimensions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val dimensions : t -> int * int","source":{"file":"workspace/libtmux_workspace.mli","line":83,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val dimensions : t -> int * int","params":[{"name":"arg1","type":"t"}],"returns":"int * int"}],"slug":"libtmux_workspace-config-dimensions"},{"id":"Libtmux_workspace.Config.environment","publicId":"Libtmux_workspace.Config.environment","qualifiedName":"Libtmux_workspace.Config.environment","name":"environment","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val environment : t -> (string * string) list","source":{"file":"workspace/libtmux_workspace.mli","line":81,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val environment : t -> (string * string) list","params":[{"name":"arg1","type":"t"}],"returns":"(string * string) list"}],"slug":"libtmux_workspace-config-environment"},{"id":"Libtmux_workspace.Config.error","publicId":"Libtmux_workspace.Config.error","qualifiedName":"Libtmux_workspace.Config.error","name":"error","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type error = { path : string; message : string }","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type error = {\n path: string ;\n message: string }","params":[]}],"slug":"libtmux_workspace-config-error"},{"id":"Libtmux_workspace.Config.error.message","publicId":"Libtmux_workspace.Config.error.message","name":"message","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"message : string","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.message","slug":"libtmux_workspace-config-error-message"},{"id":"Libtmux_workspace.Config.error.path","publicId":"Libtmux_workspace.Config.error.path","name":"path","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"path : string;","source":{"file":"workspace/libtmux_workspace.mli","line":11,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.error","type":"string","qualifiedName":"Libtmux_workspace.Config.path","slug":"libtmux_workspace-config-error-path"},{"id":"Libtmux_workspace.Config.make","publicId":"Libtmux_workspace.Config.make","qualifiedName":"Libtmux_workspace.Config.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Resolve relative working directories against the absolute document\n directory. Explicit variables expand [${NAME}] in directories only; they\n never read the process environment. Cycles and unknown names fail. Command\n arguments, shell code, startup text and environment values remain literal.\n\n At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names\n and settings must be unique in their scope. No filesystem is consulted. "],"declarations":[{"kind":"function","text":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string ->\n session:string ->\n window list ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":60,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Resolve relative working directories against the absolute document directory. Explicit variables expand `${NAME}` in directories only; they never read the process environment. Cycles and unknown names fail. Command arguments, shell code, startup text and environment values remain literal.","body":"At most 64 windows, 256 total panes and 1 MiB of text are accepted. Names and settings must be unique in their scope. No filesystem is consulted."},"signatures":[{"raw":"val make :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?variables:(string * string) list ->\n ?width:int ->\n ?height:int ->\n directory:string -> session:string -> window list -> (t, error) result","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"variables","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"width","type":"int","optional":true,"keywordOnly":true},{"name":"height","type":"int","optional":true,"keywordOnly":true},{"name":"directory","type":"string","keywordOnly":true},{"name":"session","type":"string","keywordOnly":true},{"name":"arg1","type":"window list"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-config-make"},{"id":"Libtmux_workspace.Config.options","publicId":"Libtmux_workspace.Config.options","qualifiedName":"Libtmux_workspace.Config.options","name":"options","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val options : t -> setting list","source":{"file":"workspace/libtmux_workspace.mli","line":82,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val options : t -> setting list","params":[{"name":"arg1","type":"t"}],"returns":"setting list"}],"slug":"libtmux_workspace-config-options"},{"id":"Libtmux_workspace.Config.pane","publicId":"Libtmux_workspace.Config.pane","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size ->\n unit ->\n pane","source":{"file":"workspace/libtmux_workspace.mli","line":40,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pane :\n ?spawn:Libtmux.Spawn.t ->\n ?options:setting list ->\n ?startup:string list ->\n ?direction:Libtmux.Geometry.direction ->\n ?size:Libtmux.Geometry.size -> unit -> pane","params":[{"name":"spawn","type":"Libtmux.Spawn.t","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"startup","type":"string list","optional":true,"keywordOnly":true},{"name":"direction","type":"Libtmux.Geometry.direction","optional":true,"keywordOnly":true},{"name":"size","type":"Libtmux.Geometry.size","optional":true,"keywordOnly":true},{"name":"arg1","type":"unit"}],"returns":"pane"}],"slug":"libtmux_workspace-config-pane"},{"id":"Libtmux_workspace.Config.pane:type","publicId":"Libtmux_workspace.Config.pane:type","qualifiedName":"Libtmux_workspace.Config.pane","name":"pane","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type pane = {\n spawn : Libtmux.Spawn.t;\n options : setting list;\n startup : string list;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":21,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type pane =\n {\n spawn: Libtmux.Spawn.t ;\n options: setting list ;\n startup: string list ;\n direction: Libtmux.Geometry.direction ;\n size: Libtmux.Geometry.size option }","params":[]}],"slug":"libtmux_workspace-config-pane-type"},{"id":"Libtmux_workspace.Config.pane:type.direction","publicId":"Libtmux_workspace.Config.pane:type.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":25,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Config.direction","slug":"libtmux_workspace-config-pane-type-direction"},{"id":"Libtmux_workspace.Config.pane:type.options","publicId":"Libtmux_workspace.Config.pane:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":23,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-pane-type-options"},{"id":"Libtmux_workspace.Config.pane:type.size","publicId":"Libtmux_workspace.Config.pane:type.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":26,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Config.size","slug":"libtmux_workspace-config-pane-type-size"},{"id":"Libtmux_workspace.Config.pane:type.spawn","publicId":"Libtmux_workspace.Config.pane:type.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":22,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Config.spawn","slug":"libtmux_workspace-config-pane-type-spawn"},{"id":"Libtmux_workspace.Config.pane:type.startup","publicId":"Libtmux_workspace.Config.pane:type.startup","name":"startup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"startup : string list;","source":{"file":"workspace/libtmux_workspace.mli","line":24,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.pane:type","type":"string list","qualifiedName":"Libtmux_workspace.Config.startup","slug":"libtmux_workspace-config-pane-type-startup"},{"id":"Libtmux_workspace.Config.pp_error","publicId":"Libtmux_workspace.Config.pp_error","qualifiedName":"Libtmux_workspace.Config.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":13,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-config-pp_error"},{"id":"Libtmux_workspace.Config.session","publicId":"Libtmux_workspace.Config.session","qualifiedName":"Libtmux_workspace.Config.session","name":"session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val session : t -> string","source":{"file":"workspace/libtmux_workspace.mli","line":79,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val session : t -> string","params":[{"name":"arg1","type":"t"}],"returns":"string"}],"slug":"libtmux_workspace-config-session"},{"id":"Libtmux_workspace.Config.setting","publicId":"Libtmux_workspace.Config.setting","qualifiedName":"Libtmux_workspace.Config.setting","name":"setting","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type setting = {\n name : string;\n index : int option;\n value : Libtmux.Options.scalar;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":15,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type setting =\n {\n name: string ;\n index: int option ;\n value: Libtmux.Options.scalar }","params":[]}],"slug":"libtmux_workspace-config-setting"},{"id":"Libtmux_workspace.Config.setting.index","publicId":"Libtmux_workspace.Config.setting.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int option;","source":{"file":"workspace/libtmux_workspace.mli","line":17,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.setting","type":"int option","qualifiedName":"Libtmux_workspace.Config.index","slug":"libtmux_workspace-config-setting-index"},{"id":"Libtmux_workspace.Config.setting.name","publicId":"Libtmux_workspace.Config.setting.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":16,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.setting","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-setting-name"},{"id":"Libtmux_workspace.Config.setting.value","publicId":"Libtmux_workspace.Config.setting.value","name":"value","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"value : Libtmux.Options.scalar;","source":{"file":"workspace/libtmux_workspace.mli","line":18,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.setting","type":"Libtmux.Options.scalar","qualifiedName":"Libtmux_workspace.Config.value","slug":"libtmux_workspace-config-setting-value"},{"id":"Libtmux_workspace.Config.t","publicId":"Libtmux_workspace.Config.t","qualifiedName":"Libtmux_workspace.Config.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":38,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-config-t"},{"id":"Libtmux_workspace.Config.window","publicId":"Libtmux_workspace.Config.window","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Builders are unchecked descriptions; {!make} validates the whole document.\n "],"declarations":[{"kind":"function","text":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t ->\n name:string ->\n pane list ->\n window","source":{"file":"workspace/libtmux_workspace.mli","line":49,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","doc":{"summary":"Builders are unchecked descriptions; {!make} validates the whole document."},"signatures":[{"raw":"val window :\n ?cwd:string ->\n ?environment:(string * string) list ->\n ?options:setting list ->\n ?layout:Libtmux.Layout.t -> name:string -> pane list -> window","params":[{"name":"cwd","type":"string","optional":true,"keywordOnly":true},{"name":"environment","type":"(string * string) list","optional":true,"keywordOnly":true},{"name":"options","type":"setting list","optional":true,"keywordOnly":true},{"name":"layout","type":"Libtmux.Layout.t","optional":true,"keywordOnly":true},{"name":"name","type":"string","keywordOnly":true},{"name":"arg1","type":"pane list"}],"returns":"window"}],"slug":"libtmux_workspace-config-window"},{"id":"Libtmux_workspace.Config.window:type","publicId":"Libtmux_workspace.Config.window:type","qualifiedName":"Libtmux_workspace.Config.window","name":"window","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type window = {\n name : string;\n cwd : string option;\n environment : (string * string) list;\n options : setting list;\n panes : pane list;\n layout : Libtmux.Layout.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":29,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"type window =\n {\n name: string ;\n cwd: string option ;\n environment: (string * string) list ;\n options: setting list ;\n panes: pane list ;\n layout: Libtmux.Layout.t option }","params":[]}],"slug":"libtmux_workspace-config-window-type"},{"id":"Libtmux_workspace.Config.window:type.cwd","publicId":"Libtmux_workspace.Config.window:type.cwd","name":"cwd","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cwd : string option;","source":{"file":"workspace/libtmux_workspace.mli","line":31,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string option","qualifiedName":"Libtmux_workspace.Config.cwd","slug":"libtmux_workspace-config-window-type-cwd"},{"id":"Libtmux_workspace.Config.window:type.environment","publicId":"Libtmux_workspace.Config.window:type.environment","name":"environment","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"environment : (string * string) list;","source":{"file":"workspace/libtmux_workspace.mli","line":32,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.window:type","type":"(string * string) list","qualifiedName":"Libtmux_workspace.Config.environment","slug":"libtmux_workspace-config-window-type-environment"},{"id":"Libtmux_workspace.Config.window:type.layout","publicId":"Libtmux_workspace.Config.window:type.layout","name":"layout","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"layout : Libtmux.Layout.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":35,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.window:type","type":"Libtmux.Layout.t option","qualifiedName":"Libtmux_workspace.Config.layout","slug":"libtmux_workspace-config-window-type-layout"},{"id":"Libtmux_workspace.Config.window:type.name","publicId":"Libtmux_workspace.Config.window:type.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":30,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.window:type","type":"string","qualifiedName":"Libtmux_workspace.Config.name","slug":"libtmux_workspace-config-window-type-name"},{"id":"Libtmux_workspace.Config.window:type.options","publicId":"Libtmux_workspace.Config.window:type.options","name":"options","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"options : setting list;","source":{"file":"workspace/libtmux_workspace.mli","line":33,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.window:type","type":"setting list","qualifiedName":"Libtmux_workspace.Config.options","slug":"libtmux_workspace-config-window-type-options"},{"id":"Libtmux_workspace.Config.window:type.panes","publicId":"Libtmux_workspace.Config.window:type.panes","name":"panes","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"panes : pane list;","source":{"file":"workspace/libtmux_workspace.mli","line":34,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config.window:type","type":"pane list","qualifiedName":"Libtmux_workspace.Config.panes","slug":"libtmux_workspace-config-window-type-panes"},{"id":"Libtmux_workspace.Config.windows","publicId":"Libtmux_workspace.Config.windows","qualifiedName":"Libtmux_workspace.Config.windows","name":"windows","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val windows : t -> window Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":80,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Config","signatures":[{"raw":"val windows : t -> window Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"window Iarray.t"}],"slug":"libtmux_workspace-config-windows"},{"id":"Libtmux_workspace.Execution","publicId":"Libtmux_workspace.Execution","qualifiedName":"Libtmux_workspace.Execution","name":"Execution","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Apply a plan once per handle and retain effects, uncertainty and cleanup.\n The journal lives in process memory while its execution handle is retained;\n {!Execution.val-inspect} returns immutable copies. It survives waiter\n cancellation and client closure, but supplies no crash-durable recovery or\n cross-invocation deduplication. Ordinary applications use their backend's\n Workspace module; executors below integrate another transport. "],"declarations":[{"kind":"module","text":"module Execution : sig\n type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }\n (** A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. *)\n\n type certainty = Not_started | Applied | Unknown\n\n type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }\n (** Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. *)\n\n type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t\n\n type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }\n\n type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }\n\n type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t\n\n type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }\n\n type t\n\n val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result\n (** Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. [operation_id] correlates receipts; it\n does not deduplicate handles. A new handle starts a new execution even if\n its ID matches an earlier one. *)\n\n val inspect : t -> receipt\n (** Return an immutable copy of the retained journal without I/O. *)\n\n val await : ?compensate_on_failure:bool -> t -> receipt\n (** Execute once per handle, rechecking generation and captured preconditions\n first. Expected failures return a partial journal. Exceptions, including\n native cancellation, propagate after recording progress and bounded\n compensation. Subsequent calls only return the retained receipt; mutations\n never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. Compensation cannot undo external effects of programs\n started inside the panes. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":165,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace","doc":{"summary":"Apply a plan once per handle and retain effects, uncertainty and cleanup. The journal lives in process memory while its execution handle is retained; {!Execution.val-inspect} returns immutable copies. It survives waiter cancellation and client closure, but supplies no crash-durable recovery or cross-invocation deduplication. Ordinary applications use their backend's Workspace module; executors below integrate another transport."},"slug":"libtmux_workspace-execution"},{"id":"Libtmux_workspace.Execution.await","publicId":"Libtmux_workspace.Execution.await","qualifiedName":"Libtmux_workspace.Execution.await","name":"await","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":253,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Execute once per handle, rechecking generation and captured preconditions\n first. Expected failures return a partial journal. Exceptions, including\n native cancellation, propagate after recording progress and bounded\n compensation. Subsequent calls only return the retained receipt; mutations\n never retry.\n\n Compensation kills only panes reported by completed creation commands, in\n reverse creation order. tmux removes windows and sessions that become\n empty. Containers with foreign panes or window links remain; adding a\n borrowed pane never makes it eligible for cleanup. Cleanup failures have\n separate outcomes. Compensation cannot undo external effects of programs\n started inside the panes. "],"declarations":[{"kind":"function","text":"val await : ?compensate_on_failure:bool -> t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":253,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Execute once per handle, rechecking generation and captured preconditions first. Expected failures return a partial journal. Exceptions, including native cancellation, propagate after recording progress and bounded compensation. Subsequent calls only return the retained receipt; mutations never retry.","body":"Compensation kills only panes reported by completed creation commands, in reverse creation order. tmux removes windows and sessions that become empty. Containers with foreign panes or window links remain; adding a borrowed pane never makes it eligible for cleanup. Cleanup failures have separate outcomes. Compensation cannot undo external effects of programs started inside the panes."},"signatures":[{"raw":"val await : ?compensate_on_failure:bool -> t -> receipt","params":[{"name":"compensate_on_failure","type":"bool","optional":true,"keywordOnly":true},{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-await"},{"id":"Libtmux_workspace.Execution.certainty","publicId":"Libtmux_workspace.Execution.certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","name":"certainty","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type certainty = Not_started | Applied | Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type certainty =\n | Not_started \n | Applied \n | Unknown ","params":[]}],"slug":"libtmux_workspace-execution-certainty"},{"id":"Libtmux_workspace.Execution.certainty.Applied","publicId":"Libtmux_workspace.Execution.certainty.Applied","name":"Applied","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applied","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applied","slug":"libtmux_workspace-execution-certainty-applied"},{"id":"Libtmux_workspace.Execution.certainty.Not_started","publicId":"Libtmux_workspace.Execution.certainty.Not_started","name":"Not_started","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Not_started","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Not_started","slug":"libtmux_workspace-execution-certainty-not_started"},{"id":"Libtmux_workspace.Execution.certainty.Unknown","publicId":"Libtmux_workspace.Execution.certainty.Unknown","name":"Unknown","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unknown","source":{"file":"workspace/libtmux_workspace.mli","line":177,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.certainty","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Unknown","slug":"libtmux_workspace-execution-certainty-unknown"},{"id":"Libtmux_workspace.Execution.cleanup","publicId":"Libtmux_workspace.Execution.cleanup","qualifiedName":"Libtmux_workspace.Execution.cleanup","name":"cleanup","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":215,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type cleanup = {\n pane : Libtmux.Pane.target;\n outcome : (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":215,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type cleanup =\n {\n pane: Libtmux.Pane.target ;\n outcome: (unit, Libtmux.Error.t) result }","params":[]}],"slug":"libtmux_workspace-execution-cleanup"},{"id":"Libtmux_workspace.Execution.cleanup.outcome","publicId":"Libtmux_workspace.Execution.cleanup.outcome","name":"outcome","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"outcome : (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":217,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"(unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.outcome","slug":"libtmux_workspace-execution-cleanup-outcome"},{"id":"Libtmux_workspace.Execution.cleanup.pane","publicId":"Libtmux_workspace.Execution.cleanup.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":216,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.target;","source":{"file":"workspace/libtmux_workspace.mli","line":216,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.cleanup","type":"Libtmux.Pane.target","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-cleanup-pane"},{"id":"Libtmux_workspace.Execution.create","publicId":"Libtmux_workspace.Execution.create","qualifiedName":"Libtmux_workspace.Execution.create","name":"create","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":240,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Allocate a retained handle without I/O. IDs have 1..64 ASCII letters,\n digits, underscores or hyphens. [operation_id] correlates receipts; it\n does not deduplicate handles. A new handle starts a new execution even if\n its ID matches an earlier one. "],"declarations":[{"kind":"function","text":"val create :\n operation_id:string ->\n executor:executor ->\n Plan.t ->\n (t, Libtmux.Error.t) result","source":{"file":"workspace/libtmux_workspace.mli","line":240,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Allocate a retained handle without I/O. IDs have 1..64 ASCII letters, digits, underscores or hyphens. `operation_id` correlates receipts; it does not deduplicate handles. A new handle starts a new execution even if its ID matches an earlier one."},"signatures":[{"raw":"val create :\n operation_id:string ->\n executor:executor -> Plan.t -> (t, Libtmux.Error.t) result","params":[{"name":"operation_id","type":"string","keywordOnly":true},{"name":"executor","type":"executor","keywordOnly":true},{"name":"arg1","type":"Plan.t"}],"returns":"(t, Libtmux.Error.t) result"}],"slug":"libtmux_workspace-execution-create"},{"id":"Libtmux_workspace.Execution.executor","publicId":"Libtmux_workspace.Execution.executor","qualifiedName":"Libtmux_workspace.Execution.executor","name":"executor","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Backend integration: [inspect] returns a callback tied to the latest\n operation, reading only its retained state even after later submissions.\n [protect] bounds compensation and shields it from caller cancellation,\n reporting expected failures as [Error]. Ordinary callers use their\n backend's Workspace API. "],"declarations":[{"kind":"struct","text":"type executor = {\n source : unit -> Libtmux.Source.t option;\n capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;\n run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;\n bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;\n inspect : unit -> unit -> observation;\n protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":185,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Backend integration: `inspect` returns a callback tied to the latest operation, reading only its retained state even after later submissions. `protect` bounds compensation and shields it from caller cancellation, reporting expected failures as `Error`. Ordinary callers use their backend's Workspace API."},"signatures":[{"raw":"type executor =\n {\n source: unit -> Libtmux.Source.t option ;\n capture: unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result ;\n run: 'a . 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result ;\n bootstrap: Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result ;\n inspect: unit -> unit -> observation ;\n protect: (unit -> unit) -> (unit, Libtmux.Error.t) result }","params":[]}],"slug":"libtmux_workspace-execution-executor"},{"id":"Libtmux_workspace.Execution.executor.bootstrap","publicId":"Libtmux_workspace.Execution.executor.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":189,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":189,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.executor","type":"Config.t -> (Libtmux.Created.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.bootstrap","slug":"libtmux_workspace-execution-executor-bootstrap"},{"id":"Libtmux_workspace.Execution.executor.capture","publicId":"Libtmux_workspace.Execution.executor.capture","name":"capture","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"capture : unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":187,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> (Libtmux.Snapshot.t, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.capture","slug":"libtmux_workspace-execution-executor-capture"},{"id":"Libtmux_workspace.Execution.executor.inspect","publicId":"Libtmux_workspace.Execution.executor.inspect","name":"inspect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":190,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"inspect : unit -> unit -> observation;","source":{"file":"workspace/libtmux_workspace.mli","line":190,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> unit -> observation","qualifiedName":"Libtmux_workspace.Execution.inspect","slug":"libtmux_workspace-execution-executor-inspect"},{"id":"Libtmux_workspace.Execution.executor.protect","publicId":"Libtmux_workspace.Execution.executor.protect","name":"protect","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":191,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"protect : (unit -> unit) -> (unit, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":191,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.executor","type":"(unit -> unit) -> (unit, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.protect","slug":"libtmux_workspace-execution-executor-protect"},{"id":"Libtmux_workspace.Execution.executor.run","publicId":"Libtmux_workspace.Execution.executor.run","name":"run","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"run : 'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result;","source":{"file":"workspace/libtmux_workspace.mli","line":188,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.executor","type":"'a. 'a Libtmux.Command.t -> ('a, Libtmux.Error.t) result","qualifiedName":"Libtmux_workspace.Execution.run","slug":"libtmux_workspace-execution-executor-run"},{"id":"Libtmux_workspace.Execution.executor.source","publicId":"Libtmux_workspace.Execution.executor.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : unit -> Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":186,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.executor","type":"unit -> Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-executor-source"},{"id":"Libtmux_workspace.Execution.hint","publicId":"Libtmux_workspace.Execution.hint","qualifiedName":"Libtmux_workspace.Execution.hint","name":"hint","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" A creation row received before daemon binding finished. Hints are not\n operational targets and are never eligible for automatic compensation. "],"declarations":[{"kind":"struct","text":"type hint = {\n session : Libtmux.Session.Id.t;\n window : Libtmux.Window.Id.t;\n pane : Libtmux.Pane.Id.t;\n window_index : int;\n pane_index : int;\n server_pid : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":166,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"A creation row received before daemon binding finished. Hints are not operational targets and are never eligible for automatic compensation."},"signatures":[{"raw":"type hint =\n {\n session: Libtmux.Session.Id.t ;\n window: Libtmux.Window.Id.t ;\n pane: Libtmux.Pane.Id.t ;\n window_index: int ;\n pane_index: int ;\n server_pid: int }","params":[]}],"slug":"libtmux_workspace-execution-hint"},{"id":"Libtmux_workspace.Execution.hint.pane","publicId":"Libtmux_workspace.Execution.hint.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : Libtmux.Pane.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":169,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Pane.Id.t","qualifiedName":"Libtmux_workspace.Execution.pane","slug":"libtmux_workspace-execution-hint-pane"},{"id":"Libtmux_workspace.Execution.hint.pane_index","publicId":"Libtmux_workspace.Execution.hint.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":171,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":171,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.pane_index","slug":"libtmux_workspace-execution-hint-pane_index"},{"id":"Libtmux_workspace.Execution.hint.server_pid","publicId":"Libtmux_workspace.Execution.hint.server_pid","name":"server_pid","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":172,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"server_pid : int;","source":{"file":"workspace/libtmux_workspace.mli","line":172,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.server_pid","slug":"libtmux_workspace-execution-hint-server_pid"},{"id":"Libtmux_workspace.Execution.hint.session","publicId":"Libtmux_workspace.Execution.hint.session","name":"session","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"session : Libtmux.Session.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":167,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Session.Id.t","qualifiedName":"Libtmux_workspace.Execution.session","slug":"libtmux_workspace-execution-hint-session"},{"id":"Libtmux_workspace.Execution.hint.window","publicId":"Libtmux_workspace.Execution.hint.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : Libtmux.Window.Id.t;","source":{"file":"workspace/libtmux_workspace.mli","line":168,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.hint","type":"Libtmux.Window.Id.t","qualifiedName":"Libtmux_workspace.Execution.window","slug":"libtmux_workspace-execution-hint-window"},{"id":"Libtmux_workspace.Execution.hint.window_index","publicId":"Libtmux_workspace.Execution.hint.window_index","name":"window_index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":170,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":170,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.hint","type":"int","qualifiedName":"Libtmux_workspace.Execution.window_index","slug":"libtmux_workspace-execution-hint-window_index"},{"id":"Libtmux_workspace.Execution.inspect","publicId":"Libtmux_workspace.Execution.inspect","qualifiedName":"Libtmux_workspace.Execution.inspect","name":"inspect","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":250,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Return an immutable copy of the retained journal without I/O. "],"declarations":[{"kind":"function","text":"val inspect : t -> receipt","source":{"file":"workspace/libtmux_workspace.mli","line":250,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","doc":{"summary":"Return an immutable copy of the retained journal without I/O."},"signatures":[{"raw":"val inspect : t -> receipt","params":[{"name":"arg1","type":"t"}],"returns":"receipt"}],"slug":"libtmux_workspace-execution-inspect"},{"id":"Libtmux_workspace.Execution.observation","publicId":"Libtmux_workspace.Execution.observation","qualifiedName":"Libtmux_workspace.Execution.observation","name":"observation","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type observation = {\n certainty : certainty;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":179,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type observation =\n {\n certainty: certainty ;\n created: Libtmux.Created.t list ;\n unbound: hint option }","params":[]}],"slug":"libtmux_workspace-execution-observation"},{"id":"Libtmux_workspace.Execution.observation.certainty","publicId":"Libtmux_workspace.Execution.observation.certainty","name":"certainty","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":180,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"certainty : certainty;","source":{"file":"workspace/libtmux_workspace.mli","line":180,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.observation","type":"certainty","qualifiedName":"Libtmux_workspace.Execution.certainty","slug":"libtmux_workspace-execution-observation-certainty"},{"id":"Libtmux_workspace.Execution.observation.created","publicId":"Libtmux_workspace.Execution.observation.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":181,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":181,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.observation","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-observation-created"},{"id":"Libtmux_workspace.Execution.observation.unbound","publicId":"Libtmux_workspace.Execution.observation.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":182,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.observation","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-observation-unbound"},{"id":"Libtmux_workspace.Execution.receipt","publicId":"Libtmux_workspace.Execution.receipt","qualifiedName":"Libtmux_workspace.Execution.receipt","name":"receipt","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type receipt = {\n operation_id : string;\n source : Libtmux.Source.t option;\n status : status;\n steps : step Iarray.t;\n cleanup : cleanup Iarray.t;\n cleanup_error : Libtmux.Error.t option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":229,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type receipt =\n {\n operation_id: string ;\n source: Libtmux.Source.t option ;\n status: status ;\n steps: step Iarray.t ;\n cleanup: cleanup Iarray.t ;\n cleanup_error: Libtmux.Error.t option }","params":[]}],"slug":"libtmux_workspace-execution-receipt"},{"id":"Libtmux_workspace.Execution.receipt.cleanup","publicId":"Libtmux_workspace.Execution.receipt.cleanup","name":"cleanup","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":234,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup : cleanup Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":234,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"cleanup Iarray.t","qualifiedName":"Libtmux_workspace.Execution.cleanup","slug":"libtmux_workspace-execution-receipt-cleanup"},{"id":"Libtmux_workspace.Execution.receipt.cleanup_error","publicId":"Libtmux_workspace.Execution.receipt.cleanup_error","name":"cleanup_error","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"cleanup_error : Libtmux.Error.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":235,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Error.t option","qualifiedName":"Libtmux_workspace.Execution.cleanup_error","slug":"libtmux_workspace-execution-receipt-cleanup_error"},{"id":"Libtmux_workspace.Execution.receipt.operation_id","publicId":"Libtmux_workspace.Execution.receipt.operation_id","name":"operation_id","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"operation_id : string;","source":{"file":"workspace/libtmux_workspace.mli","line":230,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"string","qualifiedName":"Libtmux_workspace.Execution.operation_id","slug":"libtmux_workspace-execution-receipt-operation_id"},{"id":"Libtmux_workspace.Execution.receipt.source","publicId":"Libtmux_workspace.Execution.receipt.source","name":"source","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"source : Libtmux.Source.t option;","source":{"file":"workspace/libtmux_workspace.mli","line":231,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"Libtmux.Source.t option","qualifiedName":"Libtmux_workspace.Execution.source","slug":"libtmux_workspace-execution-receipt-source"},{"id":"Libtmux_workspace.Execution.receipt.status","publicId":"Libtmux_workspace.Execution.receipt.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : status;","source":{"file":"workspace/libtmux_workspace.mli","line":232,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-receipt-status"},{"id":"Libtmux_workspace.Execution.receipt.steps","publicId":"Libtmux_workspace.Execution.receipt.steps","name":"steps","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":233,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"steps : step Iarray.t;","source":{"file":"workspace/libtmux_workspace.mli","line":233,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.receipt","type":"step Iarray.t","qualifiedName":"Libtmux_workspace.Execution.steps","slug":"libtmux_workspace-execution-receipt-steps"},{"id":"Libtmux_workspace.Execution.status","publicId":"Libtmux_workspace.Execution.status","qualifiedName":"Libtmux_workspace.Execution.status","name":"status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type status =\n | Queued\n | Applying\n | Succeeded\n | Partial\n | Interrupted\n | Rejected of Plan.error\n | Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":220,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type status =\n | Queued \n | Applying \n | Succeeded \n | Partial \n | Interrupted \n | Rejected of Plan.error \n | Unavailable of Libtmux.Error.t ","params":[]}],"slug":"libtmux_workspace-execution-status"},{"id":"Libtmux_workspace.Execution.status.Applying","publicId":"Libtmux_workspace.Execution.status.Applying","name":"Applying","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Applying","source":{"file":"workspace/libtmux_workspace.mli","line":222,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Applying","slug":"libtmux_workspace-execution-status-applying"},{"id":"Libtmux_workspace.Execution.status.Interrupted","publicId":"Libtmux_workspace.Execution.status.Interrupted","name":"Interrupted","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":225,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Interrupted","source":{"file":"workspace/libtmux_workspace.mli","line":225,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Interrupted","slug":"libtmux_workspace-execution-status-interrupted"},{"id":"Libtmux_workspace.Execution.status.Partial","publicId":"Libtmux_workspace.Execution.status.Partial","name":"Partial","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Partial","source":{"file":"workspace/libtmux_workspace.mli","line":224,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Partial","slug":"libtmux_workspace-execution-status-partial"},{"id":"Libtmux_workspace.Execution.status.Queued","publicId":"Libtmux_workspace.Execution.status.Queued","name":"Queued","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Queued","source":{"file":"workspace/libtmux_workspace.mli","line":221,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Queued","slug":"libtmux_workspace-execution-status-queued"},{"id":"Libtmux_workspace.Execution.status.Rejected","publicId":"Libtmux_workspace.Execution.status.Rejected","name":"Rejected","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Rejected of Plan.error","source":{"file":"workspace/libtmux_workspace.mli","line":226,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Rejected","slug":"libtmux_workspace-execution-status-rejected"},{"id":"Libtmux_workspace.Execution.status.Succeeded","publicId":"Libtmux_workspace.Execution.status.Succeeded","name":"Succeeded","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Succeeded","source":{"file":"workspace/libtmux_workspace.mli","line":223,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Succeeded","slug":"libtmux_workspace-execution-status-succeeded"},{"id":"Libtmux_workspace.Execution.status.Unavailable","publicId":"Libtmux_workspace.Execution.status.Unavailable","name":"Unavailable","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unavailable of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":227,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Unavailable","slug":"libtmux_workspace-execution-status-unavailable"},{"id":"Libtmux_workspace.Execution.step","publicId":"Libtmux_workspace.Execution.step","qualifiedName":"Libtmux_workspace.Execution.step","name":"step","kind":"struct","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"struct","text":"type step = {\n index : int;\n action : Plan.action;\n status : step_status;\n created : Libtmux.Created.t list;\n unbound : hint option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":207,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step =\n {\n index: int ;\n action: Plan.action ;\n status: step_status ;\n created: Libtmux.Created.t list ;\n unbound: hint option }","params":[]}],"slug":"libtmux_workspace-execution-step"},{"id":"Libtmux_workspace.Execution.step.action","publicId":"Libtmux_workspace.Execution.step.action","name":"action","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"action : Plan.action;","source":{"file":"workspace/libtmux_workspace.mli","line":209,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.step","type":"Plan.action","qualifiedName":"Libtmux_workspace.Execution.action","slug":"libtmux_workspace-execution-step-action"},{"id":"Libtmux_workspace.Execution.step.created","publicId":"Libtmux_workspace.Execution.step.created","name":"created","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":211,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"created : Libtmux.Created.t list;","source":{"file":"workspace/libtmux_workspace.mli","line":211,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.step","type":"Libtmux.Created.t list","qualifiedName":"Libtmux_workspace.Execution.created","slug":"libtmux_workspace-execution-step-created"},{"id":"Libtmux_workspace.Execution.step.index","publicId":"Libtmux_workspace.Execution.step.index","name":"index","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"index : int;","source":{"file":"workspace/libtmux_workspace.mli","line":208,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.step","type":"int","qualifiedName":"Libtmux_workspace.Execution.index","slug":"libtmux_workspace-execution-step-index"},{"id":"Libtmux_workspace.Execution.step.status","publicId":"Libtmux_workspace.Execution.step.status","name":"status","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":210,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"status : step_status;","source":{"file":"workspace/libtmux_workspace.mli","line":210,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.step","type":"step_status","qualifiedName":"Libtmux_workspace.Execution.status","slug":"libtmux_workspace-execution-step-status"},{"id":"Libtmux_workspace.Execution.step.unbound","publicId":"Libtmux_workspace.Execution.step.unbound","name":"unbound","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"unbound : hint option;","source":{"file":"workspace/libtmux_workspace.mli","line":212,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.step","type":"hint option","qualifiedName":"Libtmux_workspace.Execution.unbound","slug":"libtmux_workspace-execution-step-unbound"},{"id":"Libtmux_workspace.Execution.step_status","publicId":"Libtmux_workspace.Execution.step_status","qualifiedName":"Libtmux_workspace.Execution.step_status","name":"step_status","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type step_status =\n | Pending\n | Running\n | Completed\n | Failed of Libtmux.Error.t\n | Skipped\n | Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":199,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type step_status =\n | Pending \n | Running \n | Completed \n | Failed of Libtmux.Error.t \n | Skipped \n | Uncertain of Libtmux.Error.t ","params":[]}],"slug":"libtmux_workspace-execution-step_status"},{"id":"Libtmux_workspace.Execution.step_status.Completed","publicId":"Libtmux_workspace.Execution.step_status.Completed","name":"Completed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Completed","source":{"file":"workspace/libtmux_workspace.mli","line":202,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Completed","slug":"libtmux_workspace-execution-step_status-completed"},{"id":"Libtmux_workspace.Execution.step_status.Failed","publicId":"Libtmux_workspace.Execution.step_status.Failed","name":"Failed","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":203,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Failed of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":203,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Failed","slug":"libtmux_workspace-execution-step_status-failed"},{"id":"Libtmux_workspace.Execution.step_status.Pending","publicId":"Libtmux_workspace.Execution.step_status.Pending","name":"Pending","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pending","source":{"file":"workspace/libtmux_workspace.mli","line":200,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Pending","slug":"libtmux_workspace-execution-step_status-pending"},{"id":"Libtmux_workspace.Execution.step_status.Running","publicId":"Libtmux_workspace.Execution.step_status.Running","name":"Running","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Running","source":{"file":"workspace/libtmux_workspace.mli","line":201,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Running","slug":"libtmux_workspace-execution-step_status-running"},{"id":"Libtmux_workspace.Execution.step_status.Skipped","publicId":"Libtmux_workspace.Execution.step_status.Skipped","name":"Skipped","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Skipped","source":{"file":"workspace/libtmux_workspace.mli","line":204,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"unit","qualifiedName":"Libtmux_workspace.Execution.Skipped","slug":"libtmux_workspace-execution-step_status-skipped"},{"id":"Libtmux_workspace.Execution.step_status.Uncertain","publicId":"Libtmux_workspace.Execution.step_status.Uncertain","name":"Uncertain","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Uncertain of Libtmux.Error.t","source":{"file":"workspace/libtmux_workspace.mli","line":205,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution.step_status","variant":"tuple","qualifiedName":"Libtmux_workspace.Execution.Uncertain","slug":"libtmux_workspace-execution-step_status-uncertain"},{"id":"Libtmux_workspace.Execution.t","publicId":"Libtmux_workspace.Execution.t","qualifiedName":"Libtmux_workspace.Execution.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":238,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":238,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Execution","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-execution-t"},{"id":"Libtmux_workspace.Plan","publicId":"Libtmux_workspace.Plan","qualifiedName":"Libtmux_workspace.Plan","name":"Plan","kind":"module","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[" Preview ordered workspace actions against one observed daemon generation. A\n plan retains collision policy and bound targets; it is not a portable\n command script. "],"declarations":[{"kind":"module","text":"module Plan : sig\n type server_policy = Create_if_missing | Require_existing_server\n type window_collision = Reject\n\n type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }\n\n type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale\n\n val pp_error : Format.formatter -> error -> unit\n\n type scope = Session | Window of int | Pane of { window : int; pane : int }\n\n type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t\n\n type t\n\n val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result\n (** [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. *)\n\n val endpoint : t -> Libtmux.Endpoint.t\n val source : t -> Libtmux.Source.t option\n val existing_session : t -> Libtmux.Session.target option\n val actions : t -> action Iarray.t\n val config : t -> Config.t\n\n val check_source : t -> Libtmux.Source.t option -> (unit, error) result\n (** Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. *)\nend","source":{"file":"workspace/libtmux_workspace.mli","line":89,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace","doc":{"summary":"Preview ordered workspace actions against one observed daemon generation. A plan retains collision policy and bound targets; it is not a portable command script."},"slug":"libtmux_workspace-plan"},{"id":"Libtmux_workspace.Plan.action","publicId":"Libtmux_workspace.Plan.action","qualifiedName":"Libtmux_workspace.Plan.action","name":"action","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type action =\n | Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }\n | Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }\n | Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }\n | Set_environment of string * string\n | Set_option of scope * Config.setting\n | Send_text of { window : int; pane : int; text : string }\n | Send_enter of { window : int; pane : int }\n | Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":110,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type action =\n | Create_session of\n {\n bootstrap: bool ;\n name: string ;\n window_name: string ;\n spawn: Libtmux.Spawn.t ;\n width: int ;\n height: int } \n | Create_window of {\n window: int ;\n name: string ;\n spawn: Libtmux.Spawn.t } \n | Split_pane of\n {\n window: int ;\n pane: int ;\n spawn: Libtmux.Spawn.t ;\n direction: Libtmux.Geometry.direction ;\n size: Libtmux.Geometry.size option } \n | Set_environment of string * string \n | Set_option of scope * Config.setting \n | Send_text of {\n window: int ;\n pane: int ;\n text: string } \n | Send_enter of {\n window: int ;\n pane: int } \n | Select_layout of int * Libtmux.Layout.t ","params":[]}],"slug":"libtmux_workspace-plan-action"},{"id":"Libtmux_workspace.Plan.action.Create_session","publicId":"Libtmux_workspace.Plan.action.Create_session","name":"Create_session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_session of {\n bootstrap : bool;\n name : string;\n window_name : string;\n spawn : Libtmux.Spawn.t;\n width : int;\n height : int;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":111,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_session","slug":"libtmux_workspace-plan-action-create_session"},{"id":"Libtmux_workspace.Plan.action.Create_session.bootstrap","publicId":"Libtmux_workspace.Plan.action.Create_session.bootstrap","name":"bootstrap","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"bootstrap : bool;","source":{"file":"workspace/libtmux_workspace.mli","line":112,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"bool","qualifiedName":"Libtmux_workspace.Plan.bootstrap","slug":"libtmux_workspace-plan-action-create_session-bootstrap"},{"id":"Libtmux_workspace.Plan.action.Create_session.height","publicId":"Libtmux_workspace.Plan.action.Create_session.height","name":"height","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"height : int;","source":{"file":"workspace/libtmux_workspace.mli","line":117,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.height","slug":"libtmux_workspace-plan-action-create_session-height"},{"id":"Libtmux_workspace.Plan.action.Create_session.name","publicId":"Libtmux_workspace.Plan.action.Create_session.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":113,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_session-name"},{"id":"Libtmux_workspace.Plan.action.Create_session.spawn","publicId":"Libtmux_workspace.Plan.action.Create_session.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":115,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_session-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_session.width","publicId":"Libtmux_workspace.Plan.action.Create_session.width","name":"width","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"width : int;","source":{"file":"workspace/libtmux_workspace.mli","line":116,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"int","qualifiedName":"Libtmux_workspace.Plan.width","slug":"libtmux_workspace-plan-action-create_session-width"},{"id":"Libtmux_workspace.Plan.action.Create_session.window_name","publicId":"Libtmux_workspace.Plan.action.Create_session.window_name","name":"window_name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":114,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Create_session","type":"string","qualifiedName":"Libtmux_workspace.Plan.window_name","slug":"libtmux_workspace-plan-action-create_session-window_name"},{"id":"Libtmux_workspace.Plan.action.Create_window","publicId":"Libtmux_workspace.Plan.action.Create_window","name":"Create_window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Create_window of { window : int; name : string; spawn : Libtmux.Spawn.t }","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Create_window","slug":"libtmux_workspace-plan-action-create_window"},{"id":"Libtmux_workspace.Plan.action.Create_window.name","publicId":"Libtmux_workspace.Plan.action.Create_window.name","name":"name","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"name : string;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"string","qualifiedName":"Libtmux_workspace.Plan.name","slug":"libtmux_workspace-plan-action-create_window-name"},{"id":"Libtmux_workspace.Plan.action.Create_window.spawn","publicId":"Libtmux_workspace.Plan.action.Create_window.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-create_window-spawn"},{"id":"Libtmux_workspace.Plan.action.Create_window.window","publicId":"Libtmux_workspace.Plan.action.Create_window.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":119,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Create_window","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-create_window-window"},{"id":"Libtmux_workspace.Plan.action.Select_layout","publicId":"Libtmux_workspace.Plan.action.Select_layout","name":"Select_layout","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Select_layout of int * Libtmux.Layout.t","source":{"file":"workspace/libtmux_workspace.mli","line":131,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Select_layout","slug":"libtmux_workspace-plan-action-select_layout"},{"id":"Libtmux_workspace.Plan.action.Send_enter","publicId":"Libtmux_workspace.Plan.action.Send_enter","name":"Send_enter","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_enter of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_enter","slug":"libtmux_workspace-plan-action-send_enter"},{"id":"Libtmux_workspace.Plan.action.Send_enter.pane","publicId":"Libtmux_workspace.Plan.action.Send_enter.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_enter-pane"},{"id":"Libtmux_workspace.Plan.action.Send_enter.window","publicId":"Libtmux_workspace.Plan.action.Send_enter.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":130,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Send_enter","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_enter-window"},{"id":"Libtmux_workspace.Plan.action.Send_text","publicId":"Libtmux_workspace.Plan.action.Send_text","name":"Send_text","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Send_text of { window : int; pane : int; text : string }","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Send_text","slug":"libtmux_workspace-plan-action-send_text"},{"id":"Libtmux_workspace.Plan.action.Send_text.pane","publicId":"Libtmux_workspace.Plan.action.Send_text.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-send_text-pane"},{"id":"Libtmux_workspace.Plan.action.Send_text.text","publicId":"Libtmux_workspace.Plan.action.Send_text.text","name":"text","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"text : string","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"string","qualifiedName":"Libtmux_workspace.Plan.text","slug":"libtmux_workspace-plan-action-send_text-text"},{"id":"Libtmux_workspace.Plan.action.Send_text.window","publicId":"Libtmux_workspace.Plan.action.Send_text.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":129,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Send_text","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-send_text-window"},{"id":"Libtmux_workspace.Plan.action.Set_environment","publicId":"Libtmux_workspace.Plan.action.Set_environment","name":"Set_environment","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_environment of string * string","source":{"file":"workspace/libtmux_workspace.mli","line":127,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_environment","slug":"libtmux_workspace-plan-action-set_environment"},{"id":"Libtmux_workspace.Plan.action.Set_option","publicId":"Libtmux_workspace.Plan.action.Set_option","name":"Set_option","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Set_option of scope * Config.setting","source":{"file":"workspace/libtmux_workspace.mli","line":128,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Set_option","slug":"libtmux_workspace-plan-action-set_option"},{"id":"Libtmux_workspace.Plan.action.Split_pane","publicId":"Libtmux_workspace.Plan.action.Split_pane","name":"Split_pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Split_pane of {\n window : int;\n pane : int;\n spawn : Libtmux.Spawn.t;\n direction : Libtmux.Geometry.direction;\n size : Libtmux.Geometry.size option;\n }","source":{"file":"workspace/libtmux_workspace.mli","line":120,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Split_pane","slug":"libtmux_workspace-plan-action-split_pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.direction","publicId":"Libtmux_workspace.Plan.action.Split_pane.direction","name":"direction","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"direction : Libtmux.Geometry.direction;","source":{"file":"workspace/libtmux_workspace.mli","line":124,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.direction","qualifiedName":"Libtmux_workspace.Plan.direction","slug":"libtmux_workspace-plan-action-split_pane-direction"},{"id":"Libtmux_workspace.Plan.action.Split_pane.pane","publicId":"Libtmux_workspace.Plan.action.Split_pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int;","source":{"file":"workspace/libtmux_workspace.mli","line":122,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-action-split_pane-pane"},{"id":"Libtmux_workspace.Plan.action.Split_pane.size","publicId":"Libtmux_workspace.Plan.action.Split_pane.size","name":"size","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"size : Libtmux.Geometry.size option;","source":{"file":"workspace/libtmux_workspace.mli","line":125,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Geometry.size option","qualifiedName":"Libtmux_workspace.Plan.size","slug":"libtmux_workspace-plan-action-split_pane-size"},{"id":"Libtmux_workspace.Plan.action.Split_pane.spawn","publicId":"Libtmux_workspace.Plan.action.Split_pane.spawn","name":"spawn","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"spawn : Libtmux.Spawn.t;","source":{"file":"workspace/libtmux_workspace.mli","line":123,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"Libtmux.Spawn.t","qualifiedName":"Libtmux_workspace.Plan.spawn","slug":"libtmux_workspace-plan-action-split_pane-spawn"},{"id":"Libtmux_workspace.Plan.action.Split_pane.window","publicId":"Libtmux_workspace.Plan.action.Split_pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":121,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.action.Split_pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-action-split_pane-window"},{"id":"Libtmux_workspace.Plan.actions","publicId":"Libtmux_workspace.Plan.actions","qualifiedName":"Libtmux_workspace.Plan.actions","name":"actions","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val actions : t -> action Iarray.t","source":{"file":"workspace/libtmux_workspace.mli","line":151,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val actions : t -> action Iarray.t","params":[{"name":"arg1","type":"t"}],"returns":"action Iarray.t"}],"slug":"libtmux_workspace-plan-actions"},{"id":"Libtmux_workspace.Plan.check_source","publicId":"Libtmux_workspace.Plan.check_source","qualifiedName":"Libtmux_workspace.Plan.check_source","name":"check_source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" Operational plans are ephemeral and bound to one connection generation. A\n printed or serialized preview cannot supply operational targets. "],"declarations":[{"kind":"function","text":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":154,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"Operational plans are ephemeral and bound to one connection generation. A printed or serialized preview cannot supply operational targets."},"signatures":[{"raw":"val check_source : t -> Libtmux.Source.t option -> (unit, error) result","params":[{"name":"arg1","type":"t"},{"name":"arg2","type":"Libtmux.Source.t option"}],"returns":"(unit, error) result"}],"slug":"libtmux_workspace-plan-check_source"},{"id":"Libtmux_workspace.Plan.collision_policy","publicId":"Libtmux_workspace.Plan.collision_policy","qualifiedName":"Libtmux_workspace.Plan.collision_policy","name":"collision_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type collision_policy =\n | Fail_if_session_exists\n | Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":93,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type collision_policy =\n | Fail_if_session_exists \n | Append_new_windows of {\n window_collision: window_collision } ","params":[]}],"slug":"libtmux_workspace-plan-collision_policy"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","name":"Append_new_windows","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_new_windows of { window_collision : window_collision }","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Append_new_windows","slug":"libtmux_workspace-plan-collision_policy-append_new_windows"},{"id":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","publicId":"Libtmux_workspace.Plan.collision_policy.Append_new_windows.window_collision","name":"window_collision","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window_collision : window_collision","source":{"file":"workspace/libtmux_workspace.mli","line":95,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.collision_policy.Append_new_windows","type":"window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","slug":"libtmux_workspace-plan-collision_policy-append_new_windows-window_collision"},{"id":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","publicId":"Libtmux_workspace.Plan.collision_policy.Fail_if_session_exists","name":"Fail_if_session_exists","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Fail_if_session_exists","source":{"file":"workspace/libtmux_workspace.mli","line":94,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.collision_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Fail_if_session_exists","slug":"libtmux_workspace-plan-collision_policy-fail_if_session_exists"},{"id":"Libtmux_workspace.Plan.config","publicId":"Libtmux_workspace.Plan.config","qualifiedName":"Libtmux_workspace.Plan.config","name":"config","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val config : t -> Config.t","source":{"file":"workspace/libtmux_workspace.mli","line":152,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val config : t -> Config.t","params":[{"name":"arg1","type":"t"}],"returns":"Config.t"}],"slug":"libtmux_workspace-plan-config"},{"id":"Libtmux_workspace.Plan.endpoint","publicId":"Libtmux_workspace.Plan.endpoint","qualifiedName":"Libtmux_workspace.Plan.endpoint","name":"endpoint","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val endpoint : t -> Libtmux.Endpoint.t","source":{"file":"workspace/libtmux_workspace.mli","line":148,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val endpoint : t -> Libtmux.Endpoint.t","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Endpoint.t"}],"slug":"libtmux_workspace-plan-endpoint"},{"id":"Libtmux_workspace.Plan.error","publicId":"Libtmux_workspace.Plan.error","qualifiedName":"Libtmux_workspace.Plan.error","name":"error","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type error =\n | Missing_endpoint\n | Session_conflict of string\n | Window_conflict of string\n | Append_session_options\n | Too_many_steps\n | Unsupported_setting of Config.error\n | Stale","source":{"file":"workspace/libtmux_workspace.mli","line":97,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type error =\n | Missing_endpoint \n | Session_conflict of string \n | Window_conflict of string \n | Append_session_options \n | Too_many_steps \n | Unsupported_setting of Config.error \n | Stale ","params":[]}],"slug":"libtmux_workspace-plan-error"},{"id":"Libtmux_workspace.Plan.error.Append_session_options","publicId":"Libtmux_workspace.Plan.error.Append_session_options","name":"Append_session_options","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Append_session_options","source":{"file":"workspace/libtmux_workspace.mli","line":101,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Append_session_options","slug":"libtmux_workspace-plan-error-append_session_options"},{"id":"Libtmux_workspace.Plan.error.Missing_endpoint","publicId":"Libtmux_workspace.Plan.error.Missing_endpoint","name":"Missing_endpoint","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Missing_endpoint","source":{"file":"workspace/libtmux_workspace.mli","line":98,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Missing_endpoint","slug":"libtmux_workspace-plan-error-missing_endpoint"},{"id":"Libtmux_workspace.Plan.error.Session_conflict","publicId":"Libtmux_workspace.Plan.error.Session_conflict","name":"Session_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Session_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":99,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Session_conflict","slug":"libtmux_workspace-plan-error-session_conflict"},{"id":"Libtmux_workspace.Plan.error.Stale","publicId":"Libtmux_workspace.Plan.error.Stale","name":"Stale","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Stale","source":{"file":"workspace/libtmux_workspace.mli","line":104,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Stale","slug":"libtmux_workspace-plan-error-stale"},{"id":"Libtmux_workspace.Plan.error.Too_many_steps","publicId":"Libtmux_workspace.Plan.error.Too_many_steps","name":"Too_many_steps","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Too_many_steps","source":{"file":"workspace/libtmux_workspace.mli","line":102,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.error","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Too_many_steps","slug":"libtmux_workspace-plan-error-too_many_steps"},{"id":"Libtmux_workspace.Plan.error.Unsupported_setting","publicId":"Libtmux_workspace.Plan.error.Unsupported_setting","name":"Unsupported_setting","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Unsupported_setting of Config.error","source":{"file":"workspace/libtmux_workspace.mli","line":103,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Unsupported_setting","slug":"libtmux_workspace-plan-error-unsupported_setting"},{"id":"Libtmux_workspace.Plan.error.Window_conflict","publicId":"Libtmux_workspace.Plan.error.Window_conflict","name":"Window_conflict","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window_conflict of string","source":{"file":"workspace/libtmux_workspace.mli","line":100,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.error","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window_conflict","slug":"libtmux_workspace-plan-error-window_conflict"},{"id":"Libtmux_workspace.Plan.existing_session","publicId":"Libtmux_workspace.Plan.existing_session","qualifiedName":"Libtmux_workspace.Plan.existing_session","name":"existing_session","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val existing_session : t -> Libtmux.Session.target option","source":{"file":"workspace/libtmux_workspace.mli","line":150,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val existing_session : t -> Libtmux.Session.target option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Session.target option"}],"slug":"libtmux_workspace-plan-existing_session"},{"id":"Libtmux_workspace.Plan.make","publicId":"Libtmux_workspace.Plan.make","qualifiedName":"Libtmux_workspace.Plan.make","name":"make","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[" [None] means an explicitly observed missing endpoint. It is not an empty\n successful snapshot. A plan does not start a server. Append rejects any\n existing requested window name and never changes session options.\n [version] selects the generated option catalog. "],"declarations":[{"kind":"function","text":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option ->\n Config.t ->\n (t, error) result","source":{"file":"workspace/libtmux_workspace.mli","line":135,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","doc":{"summary":"`None` means an explicitly observed missing endpoint. It is not an empty successful snapshot. A plan does not start a server. Append rejects any existing requested window name and never changes session options. `version` selects the generated option catalog."},"signatures":[{"raw":"val make :\n ?server_policy:server_policy ->\n ?collision_policy:collision_policy ->\n endpoint:Libtmux.Endpoint.t ->\n version:string ->\n observed:Libtmux.Snapshot.t option -> Config.t -> (t, error) result","params":[{"name":"server_policy","type":"server_policy","optional":true,"keywordOnly":true},{"name":"collision_policy","type":"collision_policy","optional":true,"keywordOnly":true},{"name":"endpoint","type":"Libtmux.Endpoint.t","keywordOnly":true},{"name":"version","type":"string","keywordOnly":true},{"name":"observed","type":"Libtmux.Snapshot.t option","keywordOnly":true},{"name":"arg1","type":"Config.t"}],"returns":"(t, error) result"}],"slug":"libtmux_workspace-plan-make"},{"id":"Libtmux_workspace.Plan.pp_error","publicId":"Libtmux_workspace.Plan.pp_error","qualifiedName":"Libtmux_workspace.Plan.pp_error","name":"pp_error","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val pp_error : Format.formatter -> error -> unit","source":{"file":"workspace/libtmux_workspace.mli","line":106,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val pp_error : Format.formatter -> error -> unit","params":[{"name":"arg1","type":"Format.formatter"},{"name":"arg2","type":"error"}],"returns":"unit"}],"slug":"libtmux_workspace-plan-pp_error"},{"id":"Libtmux_workspace.Plan.scope","publicId":"Libtmux_workspace.Plan.scope","qualifiedName":"Libtmux_workspace.Plan.scope","name":"scope","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type scope = Session | Window of int | Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type scope =\n | Session \n | Window of int \n | Pane of {\n window: int ;\n pane: int } ","params":[]}],"slug":"libtmux_workspace-plan-scope"},{"id":"Libtmux_workspace.Plan.scope.Pane","publicId":"Libtmux_workspace.Plan.scope.Pane","name":"Pane","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Pane of { window : int; pane : int }","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"struct","qualifiedName":"Libtmux_workspace.Plan.Pane","slug":"libtmux_workspace-plan-scope-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.pane","publicId":"Libtmux_workspace.Plan.scope.Pane.pane","name":"pane","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"pane : int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.pane","slug":"libtmux_workspace-plan-scope-pane-pane"},{"id":"Libtmux_workspace.Plan.scope.Pane.window","publicId":"Libtmux_workspace.Plan.scope.Pane.window","name":"window","kind":"attribute","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"attribute","text":"window : int;","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.scope.Pane","type":"int","qualifiedName":"Libtmux_workspace.Plan.window","slug":"libtmux_workspace-plan-scope-pane-window"},{"id":"Libtmux_workspace.Plan.scope.Session","publicId":"Libtmux_workspace.Plan.scope.Session","name":"Session","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Session","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Session","slug":"libtmux_workspace-plan-scope-session"},{"id":"Libtmux_workspace.Plan.scope.Window","publicId":"Libtmux_workspace.Plan.scope.Window","name":"Window","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Window of int","source":{"file":"workspace/libtmux_workspace.mli","line":108,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.scope","variant":"tuple","qualifiedName":"Libtmux_workspace.Plan.Window","slug":"libtmux_workspace-plan-scope-window"},{"id":"Libtmux_workspace.Plan.server_policy","publicId":"Libtmux_workspace.Plan.server_policy","qualifiedName":"Libtmux_workspace.Plan.server_policy","name":"server_policy","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type server_policy = Create_if_missing | Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type server_policy =\n | Create_if_missing \n | Require_existing_server ","params":[]}],"slug":"libtmux_workspace-plan-server_policy"},{"id":"Libtmux_workspace.Plan.server_policy.Create_if_missing","publicId":"Libtmux_workspace.Plan.server_policy.Create_if_missing","name":"Create_if_missing","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Create_if_missing","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Create_if_missing","slug":"libtmux_workspace-plan-server_policy-create_if_missing"},{"id":"Libtmux_workspace.Plan.server_policy.Require_existing_server","publicId":"Libtmux_workspace.Plan.server_policy.Require_existing_server","name":"Require_existing_server","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"| Require_existing_server","source":{"file":"workspace/libtmux_workspace.mli","line":90,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.server_policy","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Require_existing_server","slug":"libtmux_workspace-plan-server_policy-require_existing_server"},{"id":"Libtmux_workspace.Plan.source","publicId":"Libtmux_workspace.Plan.source","qualifiedName":"Libtmux_workspace.Plan.source","name":"source","kind":"function","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"function","text":"val source : t -> Libtmux.Source.t option","source":{"file":"workspace/libtmux_workspace.mli","line":149,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"val source : t -> Libtmux.Source.t option","params":[{"name":"arg1","type":"t"}],"returns":"Libtmux.Source.t option"}],"slug":"libtmux_workspace-plan-source"},{"id":"Libtmux_workspace.Plan.t","publicId":"Libtmux_workspace.Plan.t","qualifiedName":"Libtmux_workspace.Plan.t","name":"t","kind":"typealias","package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"typealias","text":"type t","source":{"file":"workspace/libtmux_workspace.mli","line":133,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type t","params":[]}],"modifiers":["opaque"],"slug":"libtmux_workspace-plan-t"},{"id":"Libtmux_workspace.Plan.window_collision","publicId":"Libtmux_workspace.Plan.window_collision","qualifiedName":"Libtmux_workspace.Plan.window_collision","name":"window_collision","kind":"enum","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"nativeDocumentation":[],"declarations":[{"kind":"enum","text":"type window_collision = Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan","signatures":[{"raw":"type window_collision =\n | Reject ","params":[]}],"slug":"libtmux_workspace-plan-window_collision"},{"id":"Libtmux_workspace.Plan.window_collision.Reject","publicId":"Libtmux_workspace.Plan.window_collision.Reject","name":"Reject","kind":"constant","modifiers":[],"package":"libtmux-workspace","product":"workspace","apiScope":"exported","publicOwner":"Libtmux_workspace","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","extractedRevision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"},"signatures":[],"nativeDocumentation":[],"declarations":[{"kind":"constant","text":"Reject","source":{"file":"workspace/libtmux_workspace.mli","line":91,"repo":"https://github.com/libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605"}}],"parent":"Libtmux_workspace.Plan.window_collision","variant":"unit","qualifiedName":"Libtmux_workspace.Plan.Reject","slug":"libtmux_workspace-plan-window_collision-reject"}]} diff --git a/site/src/data/api/ocaml.paths.json b/site/src/data/api/ocaml.paths.json index cafa07af9..889649ed7 100644 --- a/site/src/data/api/ocaml.paths.json +++ b/site/src/data/api/ocaml.paths.json @@ -1 +1 @@ -{"port":"ocaml","repo":"libtmux/libtmux-ocaml","revision":"3c0c07a43d4b0930f3a7f9c8d0239588675bb54e","paths":[".github/CONTRIBUTING.md",".github/WRITING.md",".github/actions/build-tmux/action.yml",".github/scripts/tmux_build.py",".github/social-preview.png",".github/tmux-releases.toml",".github/workflows/docs.yml",".github/workflows/ocaml.yml",".gitignore",".ocamlformat",".tool-versions","AGENTS.md","CHANGELOG.md","CLAUDE.md","LICENSE","README.md","bench/capture.ml","bench/capture.py","bench/concurrency.ml","bench/concurrency.py","bench/control.ml","bench/control.py","bench/dune","bench/mixed.ml","bench/mixed.py","bench/results/capture-3.3-4x4.json","bench/results/capture-3.3.json","bench/results/capture-3.3a-4x4.json","bench/results/capture-3.3a.json","bench/results/capture-3.4-4x4.json","bench/results/capture-3.4.json","bench/results/capture-3.8-16x16.json","bench/results/capture-3.8-1x1.json","bench/results/capture-3.8-4x4.json","bench/results/capture-3.8-8x8.json","bench/results/capture-3.8.json","bench/results/concurrency-3.3-c8.json","bench/results/concurrency-3.3a-c8.json","bench/results/concurrency-3.4-c8.json","bench/results/concurrency-3.8-c1.json","bench/results/concurrency-3.8-c16.json","bench/results/concurrency-3.8-c64.json","bench/results/concurrency-3.8-c8.json","bench/results/control-3.3a-128-1-8-32.json","bench/results/control-3.8-128-1-8-32.json","bench/results/mixed-20261108.json","bench/results/mixed-3.3-current-20261108.json.gz","bench/results/mixed-3.3-qualified-20261108.json.gz","bench/results/mixed-3.3a-current-20261108.json.gz","bench/results/mixed-3.4-crash-analysis-20261108.json","bench/results/mixed-3.4-qualified-20261108.json.gz","bench/results/mixed-3.8-current-20261108.json.gz","bench/results/mixed-3.8-current-interrupted-20261108.json.gz","bench/results/retention-3.8-16x1.json","bench/results/retention-3.8-1x1.json","bench/results/retention-3.8-64x1-25-captures.json","bench/results/retention-3.8-64x1.json","bench/retention.ml","bench/retention.py","catalog/fields.json","catalog/formats.json","catalog/operations.json","catalog/options.json","catalog/releases.json","cli/CHANGELOG.md","cli/dune","cli/main.ml","cli/runtime.ml","docs/README.md","docs/api.md","docs/assets/app-icon-1024-dark.png","docs/assets/app-icon-1024-light.png","docs/assets/apple-touch-icon-dark.png","docs/assets/apple-touch-icon-light.png","docs/assets/browserconfig-dark.xml","docs/assets/browserconfig.xml","docs/assets/favicon.ico","docs/assets/logo-1024.png","docs/assets/logo-128.png","docs/assets/logo-144.png","docs/assets/logo-152.png","docs/assets/logo-16.png","docs/assets/logo-167.png","docs/assets/logo-180.png","docs/assets/logo-192.png","docs/assets/logo-24.png","docs/assets/logo-256.png","docs/assets/logo-32.png","docs/assets/logo-384.png","docs/assets/logo-48.png","docs/assets/logo-512.png","docs/assets/logo-64.png","docs/assets/logo-96.png","docs/assets/logo.svg","docs/assets/maskable-192-dark.png","docs/assets/maskable-192-light.png","docs/assets/maskable-512-dark.png","docs/assets/maskable-512-light.png","docs/assets/mstile-150-dark.png","docs/assets/mstile-150-light.png","docs/assets/mstile-310-dark.png","docs/assets/mstile-310-light.png","docs/assets/opengraph-dark.jpg","docs/assets/opengraph-dark.png","docs/assets/opengraph-light.jpg","docs/assets/opengraph-light.png","docs/assets/safari-pinned-tab.svg","docs/assets/site-dark.webmanifest","docs/assets/site.webmanifest","docs/assets/social-square-dark.png","docs/assets/social-square-light.png","docs/assets/source.json","docs/assets/twitter-dark.png","docs/assets/twitter-light.png","docs/benchmarking.md","docs/branding.md","docs/compatibility.md","docs/control.md","docs/dev/adr/0001-native-ocaml-suite.md","docs/dev/adr/README.md","docs/fields.md","docs/formats.md","docs/getting-started.md","docs/graph.md","docs/operations.md","docs/options.md","docs/packages.md","docs/queries.md","docs/query-interchange.md","docs/recovery.md","docs/showcases.md","docs/status.md","docs/streaming.md","docs/testing.md","docs/workspaces.md","dune","dune-project","eio/CHANGELOG.md","eio/README.md","eio/dune","eio/generated_operations.ml","eio/index.mld","eio/libtmux_eio.ml","eio/libtmux_eio.mli","eio/owned_process.ml","eio/runtime.ml","examples/dune","examples/native_build.ml","examples/native_capture.ml","examples/native_graph.ml","examples/native_query.ml","examples/native_recovery.ml","examples/native_stream_recovery.ml","examples/native_wait.ml","examples/native_watch.ml","examples/query_description.ml","examples/query_json.ml","examples/showcase.json","examples/showcase_create_window.ml","examples/showcase_graph.ml","examples/showcase_layout.ml","examples/showcase_move_window.ml","examples/showcase_rename_window.ml","examples/showcase_send_keys.ml","examples/showcase_watch.ml","examples/workspace/project.json","json/CHANGELOG.md","json/README.md","json/document.ml","json/dune","json/index.mld","json/libtmux_json.ml","json/libtmux_json.mli","json/workspace_json.ml","json/workspace_output.ml","lib/CHANGELOG.md","lib/README.md","lib/commands.ml","lib/dune","lib/endpoint.ml","lib/error.ml","lib/filter.ml","lib/format_catalog.ml","lib/formats.ml","lib/generated_fields.ml","lib/graph.ml","lib/index.mld","lib/libtmux.ml","lib/libtmux.mli","lib/option_catalog.ml","lib/options.ml","lib/output.ml","lib/planner.ml","lib/protocol.ml","libtmux-eio.opam","libtmux-json.opam","libtmux-unix.opam","libtmux-workspace-cli.opam","libtmux-workspace.opam","libtmux.opam","test/api_export_test.py","test/binding_peer.ml","test/binding_test.py","test/blocking_cancel_peer.ml","test/blocking_peer.ml","test/blocking_test.py","test/bootstrap_peer.ml","test/bootstrap_test.py","test/capture_cancel_peer.ml","test/capture_cancel_test.py","test/capture_peer.ml","test/capture_proxy.py","test/capture_test.py","test/cleanup_test.ml","test/client_operations_peer.ml","test/client_operations_test.py","test/codec_peer.ml","test/conformance/FilterPeer.java","test/conformance/README.md","test/conformance/artifacts.gradle","test/conformance/cases.json","test/conformance/dune","test/conformance/filter_peer.ml","test/conformance/prepare.py","test/conformance/run.py","test/conformance/runner_test.py","test/core_test.ml","test/diagnostics_expect.ml","test/dune","test/eio_peer.ml","test/eio_test.py","test/environment_peer.ml","test/environment_test.py","test/fixture_test.py","test/installed_consumer.py","test/json_test.ml","test/model_fixture.ml","test/model_test.ml","test/native_suite.py","test/operations_peer.ml","test/operations_test.py","test/options_peer.ml","test/options_test.py","test/ownership_peer.ml","test/pid_race_peer.ml","test/pid_race_test.py","test/pid_race_tmux.py","test/plan_peer.ml","test/plan_test.py","test/protocol_test.ml","test/protocol_test.py","test/query_test.ml","test/read_process_peer.ml","test/read_process_proxy.py","test/read_process_test.py","test/runtime_test.ml","test/showcase_test.py","test/shutdown_peer.ml","test/shutdown_test.py","test/stream_fault_peer.ml","test/stream_fault_test.py","test/streaming_peer.ml","test/streaming_test.py","test/support/readme_walkthrough.py","test/support/tmux_fixture.py","test/terminal_peer.ml","test/terminal_test.py","test/tmux_cache_test.py","test/type_test.py","test/workspace_cli_test.py","test/workspace_docs_test.py","test/workspace_document_test.py","test/workspace_eio_peer.ml","test/workspace_json_test.ml","test/workspace_pane_ready.ml","test/workspace_peer.ml","test/workspace_scenarios.ml","test/workspace_test.ml","test/workspace_test.py","tools/api_doc.ml","tools/api_export.ml","tools/api_modules.json","tools/check.py","tools/docs_snippets.py","tools/dune","tools/export_api.py","tools/generate_fields.py","tools/generate_formats.py","tools/generate_operations.py","tools/generate_options.py","tools/setup_tmux.py","unix/CHANGELOG.md","unix/README.md","unix/acquisition.ml","unix/bootstrap.ml","unix/byte_pattern.ml","unix/cancellation.ml","unix/capture_file.ml","unix/cleanup.ml","unix/cleanup.mli","unix/command_encoding.ml","unix/connection.ml","unix/dune","unix/engine.ml","unix/environment_io.ml","unix/generated_operations.ml","unix/index.mld","unix/libtmux_unix.ml","unix/libtmux_unix.mli","unix/linux.ml","unix/linux_stubs.c","unix/observation_wait.ml","unix/options_io.ml","unix/read_process.ml","unix/rendered.ml","unix/runtime_io.ml","unix/streaming.ml","unix/terminal.ml","unix/workspace_runner.ml","workspace/CHANGELOG.md","workspace/README.md","workspace/assets/app-icon-1024-dark.png","workspace/assets/app-icon-1024-light.png","workspace/assets/apple-touch-icon-dark.png","workspace/assets/apple-touch-icon-light.png","workspace/assets/browserconfig-dark.xml","workspace/assets/browserconfig.xml","workspace/assets/favicon.ico","workspace/assets/logo-1024.png","workspace/assets/logo-128.png","workspace/assets/logo-144.png","workspace/assets/logo-152.png","workspace/assets/logo-16.png","workspace/assets/logo-167.png","workspace/assets/logo-180.png","workspace/assets/logo-192.png","workspace/assets/logo-24.png","workspace/assets/logo-256.png","workspace/assets/logo-32.png","workspace/assets/logo-384.png","workspace/assets/logo-48.png","workspace/assets/logo-512.png","workspace/assets/logo-64.png","workspace/assets/logo-96.png","workspace/assets/logo.svg","workspace/assets/maskable-192-dark.png","workspace/assets/maskable-192-light.png","workspace/assets/maskable-512-dark.png","workspace/assets/maskable-512-light.png","workspace/assets/mstile-150-dark.png","workspace/assets/mstile-150-light.png","workspace/assets/mstile-310-dark.png","workspace/assets/mstile-310-light.png","workspace/assets/opengraph-dark.jpg","workspace/assets/opengraph-dark.png","workspace/assets/opengraph-light.jpg","workspace/assets/opengraph-light.png","workspace/assets/safari-pinned-tab.svg","workspace/assets/site-dark.webmanifest","workspace/assets/site.webmanifest","workspace/assets/social-square-dark.png","workspace/assets/social-square-light.png","workspace/assets/source.json","workspace/assets/twitter-dark.png","workspace/assets/twitter-light.png","workspace/config.ml","workspace/dune","workspace/execution.ml","workspace/index.mld","workspace/libtmux_workspace.ml","workspace/libtmux_workspace.mli","workspace/plan.ml"]} +{"port":"ocaml","repo":"libtmux/libtmux-ocaml","revision":"6b814a3ae27b6a700b5d45ff1ef654565a1f1605","paths":[".github/CONTRIBUTING.md",".github/WRITING.md",".github/actions/build-tmux/action.yml",".github/scripts/tmux_build.py",".github/social-preview.png",".github/tmux-releases.toml",".github/workflows/docs.yml",".github/workflows/ocaml.yml",".gitignore",".ocamlformat",".tool-versions","AGENTS.md","CHANGELOG.md","CLAUDE.md","LICENSE","README.md","bench/capture.ml","bench/capture.py","bench/concurrency.ml","bench/concurrency.py","bench/control.ml","bench/control.py","bench/dune","bench/mixed.ml","bench/mixed.py","bench/results/capture-3.3-4x4.json","bench/results/capture-3.3.json","bench/results/capture-3.3a-4x4.json","bench/results/capture-3.3a.json","bench/results/capture-3.4-4x4.json","bench/results/capture-3.4.json","bench/results/capture-3.8-16x16.json","bench/results/capture-3.8-1x1.json","bench/results/capture-3.8-4x4.json","bench/results/capture-3.8-8x8.json","bench/results/capture-3.8.json","bench/results/concurrency-3.3-c8.json","bench/results/concurrency-3.3a-c8.json","bench/results/concurrency-3.4-c8.json","bench/results/concurrency-3.8-c1.json","bench/results/concurrency-3.8-c16.json","bench/results/concurrency-3.8-c64.json","bench/results/concurrency-3.8-c8.json","bench/results/control-3.3a-128-1-8-32.json","bench/results/control-3.8-128-1-8-32.json","bench/results/mixed-20261108.json","bench/results/mixed-3.3-current-20261108.json.gz","bench/results/mixed-3.3-qualified-20261108.json.gz","bench/results/mixed-3.3a-current-20261108.json.gz","bench/results/mixed-3.4-crash-analysis-20261108.json","bench/results/mixed-3.4-qualified-20261108.json.gz","bench/results/mixed-3.8-current-20261108.json.gz","bench/results/mixed-3.8-current-interrupted-20261108.json.gz","bench/results/retention-3.8-16x1.json","bench/results/retention-3.8-1x1.json","bench/results/retention-3.8-64x1-25-captures.json","bench/results/retention-3.8-64x1.json","bench/retention.ml","bench/retention.py","catalog/fields.json","catalog/formats.json","catalog/operations.json","catalog/options.json","catalog/releases.json","cli/CHANGELOG.md","cli/dune","cli/main.ml","cli/runtime.ml","docs/README.md","docs/api.md","docs/assets/app-icon-1024-dark.png","docs/assets/app-icon-1024-light.png","docs/assets/apple-touch-icon-dark.png","docs/assets/apple-touch-icon-light.png","docs/assets/browserconfig-dark.xml","docs/assets/browserconfig.xml","docs/assets/favicon.ico","docs/assets/logo-1024.png","docs/assets/logo-128.png","docs/assets/logo-144.png","docs/assets/logo-152.png","docs/assets/logo-16.png","docs/assets/logo-167.png","docs/assets/logo-180.png","docs/assets/logo-192.png","docs/assets/logo-24.png","docs/assets/logo-256.png","docs/assets/logo-32.png","docs/assets/logo-384.png","docs/assets/logo-48.png","docs/assets/logo-512.png","docs/assets/logo-64.png","docs/assets/logo-96.png","docs/assets/logo.svg","docs/assets/maskable-192-dark.png","docs/assets/maskable-192-light.png","docs/assets/maskable-512-dark.png","docs/assets/maskable-512-light.png","docs/assets/mstile-150-dark.png","docs/assets/mstile-150-light.png","docs/assets/mstile-310-dark.png","docs/assets/mstile-310-light.png","docs/assets/opengraph-dark.jpg","docs/assets/opengraph-dark.png","docs/assets/opengraph-light.jpg","docs/assets/opengraph-light.png","docs/assets/safari-pinned-tab.svg","docs/assets/site-dark.webmanifest","docs/assets/site.webmanifest","docs/assets/social-square-dark.png","docs/assets/social-square-light.png","docs/assets/source.json","docs/assets/twitter-dark.png","docs/assets/twitter-light.png","docs/benchmarking.md","docs/bootstrap.md","docs/branding.md","docs/compatibility.md","docs/control.md","docs/dev/adr/0001-native-ocaml-suite.md","docs/dev/adr/README.md","docs/fields.md","docs/formats.md","docs/getting-started.md","docs/graph.md","docs/operations.md","docs/options.md","docs/packages.md","docs/queries.md","docs/query-interchange.md","docs/recovery.md","docs/showcases.md","docs/status.md","docs/streaming.md","docs/testing.md","docs/workspaces.md","dune","dune-project","eio/CHANGELOG.md","eio/README.md","eio/dune","eio/generated_operations.ml","eio/index.mld","eio/libtmux_eio.ml","eio/libtmux_eio.mli","eio/owned_process.ml","eio/runtime.ml","examples/dune","examples/native_build.ml","examples/native_capture.ml","examples/native_graph.ml","examples/native_query.ml","examples/native_recovery.ml","examples/native_stream_recovery.ml","examples/native_wait.ml","examples/native_watch.ml","examples/query_description.ml","examples/query_json.ml","examples/showcase.json","examples/showcase_bootstrap.ml","examples/showcase_create_window.ml","examples/showcase_graph.ml","examples/showcase_layout.ml","examples/showcase_move_window.ml","examples/showcase_rename_window.ml","examples/showcase_send_keys.ml","examples/showcase_watch.ml","examples/workspace/project.json","json/CHANGELOG.md","json/README.md","json/document.ml","json/dune","json/index.mld","json/libtmux_json.ml","json/libtmux_json.mli","json/workspace_json.ml","json/workspace_output.ml","lib/CHANGELOG.md","lib/README.md","lib/commands.ml","lib/dune","lib/endpoint.ml","lib/error.ml","lib/filter.ml","lib/format_catalog.ml","lib/formats.ml","lib/generated_fields.ml","lib/graph.ml","lib/index.mld","lib/libtmux.ml","lib/libtmux.mli","lib/option_catalog.ml","lib/options.ml","lib/output.ml","lib/planner.ml","lib/protocol.ml","libtmux-eio.opam","libtmux-json.opam","libtmux-unix.opam","libtmux-workspace-cli.opam","libtmux-workspace.opam","libtmux.opam","test/api_export_test.py","test/binding_peer.ml","test/binding_test.py","test/blocking_cancel_peer.ml","test/blocking_peer.ml","test/blocking_test.py","test/bootstrap_peer.ml","test/bootstrap_test.py","test/capture_cancel_peer.ml","test/capture_cancel_test.py","test/capture_peer.ml","test/capture_proxy.py","test/capture_test.py","test/cleanup_test.ml","test/client_operations_peer.ml","test/client_operations_test.py","test/codec_peer.ml","test/conformance/FilterPeer.java","test/conformance/README.md","test/conformance/artifacts.gradle","test/conformance/cases.json","test/conformance/dune","test/conformance/filter_peer.ml","test/conformance/prepare.py","test/conformance/run.py","test/conformance/runner_test.py","test/core_test.ml","test/diagnostics_expect.ml","test/dune","test/eio_peer.ml","test/eio_test.py","test/environment_peer.ml","test/environment_test.py","test/fixture_test.py","test/installed_consumer.py","test/installed_consumer_diagnostics_test.py","test/json_test.ml","test/model_fixture.ml","test/model_test.ml","test/native_suite.py","test/operations_peer.ml","test/operations_test.py","test/options_peer.ml","test/options_test.py","test/ownership_peer.ml","test/pid_race_peer.ml","test/pid_race_test.py","test/pid_race_tmux.py","test/plan_peer.ml","test/plan_test.py","test/protocol_test.ml","test/protocol_test.py","test/query_test.ml","test/read_process_peer.ml","test/read_process_proxy.py","test/read_process_test.py","test/runtime_test.ml","test/showcase_test.py","test/shutdown_peer.ml","test/shutdown_test.py","test/stream_fault_peer.ml","test/stream_fault_test.py","test/streaming_peer.ml","test/streaming_test.py","test/support/readme_walkthrough.py","test/support/tmux_fixture.py","test/terminal_peer.ml","test/terminal_test.py","test/tmux_cache_test.py","test/type_test.py","test/workspace_cli_test.py","test/workspace_docs_test.py","test/workspace_document_test.py","test/workspace_eio_peer.ml","test/workspace_json_test.ml","test/workspace_pane_ready.ml","test/workspace_peer.ml","test/workspace_scenarios.ml","test/workspace_test.ml","test/workspace_test.py","tools/api_doc.ml","tools/api_export.ml","tools/api_modules.json","tools/check.py","tools/docs_snippets.py","tools/dune","tools/export_api.py","tools/generate_fields.py","tools/generate_formats.py","tools/generate_operations.py","tools/generate_options.py","tools/setup_tmux.py","unix/CHANGELOG.md","unix/README.md","unix/acquisition.ml","unix/bootstrap.ml","unix/byte_pattern.ml","unix/cancellation.ml","unix/capture_file.ml","unix/cleanup.ml","unix/cleanup.mli","unix/command_encoding.ml","unix/connection.ml","unix/dune","unix/engine.ml","unix/environment_io.ml","unix/generated_operations.ml","unix/index.mld","unix/libtmux_unix.ml","unix/libtmux_unix.mli","unix/linux.ml","unix/linux_stubs.c","unix/observation_wait.ml","unix/options_io.ml","unix/read_process.ml","unix/rendered.ml","unix/runtime_io.ml","unix/streaming.ml","unix/terminal.ml","unix/workspace_runner.ml","workspace/CHANGELOG.md","workspace/README.md","workspace/assets/app-icon-1024-dark.png","workspace/assets/app-icon-1024-light.png","workspace/assets/apple-touch-icon-dark.png","workspace/assets/apple-touch-icon-light.png","workspace/assets/browserconfig-dark.xml","workspace/assets/browserconfig.xml","workspace/assets/favicon.ico","workspace/assets/logo-1024.png","workspace/assets/logo-128.png","workspace/assets/logo-144.png","workspace/assets/logo-152.png","workspace/assets/logo-16.png","workspace/assets/logo-167.png","workspace/assets/logo-180.png","workspace/assets/logo-192.png","workspace/assets/logo-24.png","workspace/assets/logo-256.png","workspace/assets/logo-32.png","workspace/assets/logo-384.png","workspace/assets/logo-48.png","workspace/assets/logo-512.png","workspace/assets/logo-64.png","workspace/assets/logo-96.png","workspace/assets/logo.svg","workspace/assets/maskable-192-dark.png","workspace/assets/maskable-192-light.png","workspace/assets/maskable-512-dark.png","workspace/assets/maskable-512-light.png","workspace/assets/mstile-150-dark.png","workspace/assets/mstile-150-light.png","workspace/assets/mstile-310-dark.png","workspace/assets/mstile-310-light.png","workspace/assets/opengraph-dark.jpg","workspace/assets/opengraph-dark.png","workspace/assets/opengraph-light.jpg","workspace/assets/opengraph-light.png","workspace/assets/safari-pinned-tab.svg","workspace/assets/site-dark.webmanifest","workspace/assets/site.webmanifest","workspace/assets/social-square-dark.png","workspace/assets/social-square-light.png","workspace/assets/source.json","workspace/assets/twitter-dark.png","workspace/assets/twitter-light.png","workspace/config.ml","workspace/dune","workspace/execution.ml","workspace/index.mld","workspace/libtmux_workspace.ml","workspace/libtmux_workspace.mli","workspace/plan.ml"]} diff --git a/site/src/data/example-sources.json b/site/src/data/example-sources.json index 53e9b45cf..bb12e40fd 100644 --- a/site/src/data/example-sources.json +++ b/site/src/data/example-sources.json @@ -151,61 +151,61 @@ }, "ocaml:examples/showcase_create_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605", "sha256": "ea2d5ff182bb80b2f8115d4d2c43cf8e32f7989626fa9d6dfda666b76dc8217b", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet create_window client (initial : Created.t) spawn =\n let created =\n get (Client.create_window client initial.session ~name:\"logs\" ~spawn)\n in\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id created.window)\n |> Option.get\n in\n assert (Window.name window = \"logs\");\n Printf.printf \"created: %s\\n\" (Window.name window)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary create_window\n" }, "ocaml:examples/showcase_graph.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605", "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" }, "ocaml:examples/showcase_layout.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605", "sha256": "dca905f7b9b91858ec642fa21c2bd7c544f3a7684223f7fafd5a46f2b997cfd0", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet set_layout client (initial : Created.t) spawn =\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n ignore\n (get\n (Client.split_pane client initial.pane ~direction:Geometry.Right ~spawn));\n get (Client.select_layout client initial.window Layout.Even_horizontal);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n let panes = Window.panes window in\n assert (Iarray.length panes = 3);\n assert (\n Iarray.for_all\n (fun pane -> Pane.top pane = 0 && Pane.height pane = Window.height window)\n panes);\n assert (\n Iarray.fold_left (fun width pane -> width + Pane.width pane) 2 panes\n = Window.width window);\n print_endline \"layout: 3 horizontal panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary set_layout\n" }, "ocaml:examples/showcase_move_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605", "sha256": "da767e573f7188350a328c78b9417610a2bc62992e1892b501435a6328e21cc5", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet move_window client (initial : Created.t) spawn =\n let moving =\n get (Client.create_window client initial.session ~name:\"build\" ~spawn)\n in\n let destination =\n get\n (Client.create_session client ~name:\"destination\" ~window_name:\"landing\"\n ~spawn ())\n in\n get\n (Client.move_window_at client initial.session\n ~from_index:moving.window_index ~session:destination.session ~index:7);\n let window =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id moving.window)\n |> Option.get\n in\n let link =\n Query.exactly_one (Iarray.to_seq (Window.links window)) |> Result.get_ok\n in\n assert (Window_link.index link = 7);\n assert (\n Session.Id.equal\n (Session.id (Window_link.session link))\n (Session.Target.id destination.session));\n Printf.printf \"moved: %s at %d\\n\" (Window.name window)\n (Window_link.index link)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary move_window\n" }, "ocaml:examples/showcase_rename_window.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605", "sha256": "8722c7cd933fa53a18b41b5fb2de7d6a99fcfa1f70e8c14164c85bebf9efc6d5", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet rename_window client (initial : Created.t) _spawn =\n let before =\n Snapshot.find_window\n (get (Client.capture client))\n (Window.Target.id initial.window)\n |> Option.get\n in\n get (Client.rename_window client initial.window ~name:\"editor-main\");\n let after =\n Snapshot.find_window (get (Client.capture client)) (Window.id before)\n |> Option.get\n in\n assert (Window.name before = \"editor\");\n assert (Window.name after = \"editor-main\");\n Printf.printf \"renamed: %s\\n\" (Window.name after)\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary rename_window\n" }, "ocaml:examples/showcase_send_keys.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605", "sha256": "680f6772040e12a16b93bd0c6d582d0a5e8f4e70de303372ba924be6e0237f09", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet send_keys client (initial : Created.t) _spawn =\n let text = \"literal: $HOME; #{pane_id}\" in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n get (Client.send_text client (Pane.target pane) ~text);\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]);\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n Printf.printf \"sent: %s\\n\" text\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary send_keys\n" }, "ocaml:examples/showcase_watch.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605", "sha256": "98fa6d843a98a4d98bbdd398108704805e852a262df0e54b43c08d3f2e299f8f", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet watch_output binary blocking (initial : Created.t) _spawn =\n Eio_main.run @@ fun env ->\n Eio.Switch.run @@ fun sw ->\n let module Client = Libtmux_eio.Client in\n let module Subscription = Libtmux_eio.Subscription in\n let client =\n get\n (Client.connect ~sw ~binary\n ~process_mgr:(Eio.Stdenv.process_mgr env)\n ~mono_clock:(Eio.Stdenv.mono_clock env)\n (Source.endpoint (Libtmux_unix.Client.source blocking)))\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Client.close client)))\n (fun () ->\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n let subscription =\n get (Client.subscribe ~capacity_bytes:4096 client pane)\n in\n Fun.protect\n ~finally:(fun () ->\n Eio.Cancel.protect (fun () -> get (Subscription.close subscription)))\n (fun () ->\n let cursor, () =\n Eio.Fiber.pair\n (fun () ->\n match\n Subscription.wait_for_bytes ~timeout:0.5 subscription\n ~text:\"changed\"\n with\n | Ok cursor -> cursor\n | Error (Output.Failure error) ->\n failwith (Format.asprintf \"%a\" Error.pp error)\n | Error (Output.Ended reason) ->\n failwith (Format.asprintf \"%a\" Output.reason_pp reason))\n (fun () ->\n get (Client.send_text client (Pane.target pane) ~text:\"changed\");\n get (Client.send_keys client (Pane.target pane) [ Key.Enter ]))\n in\n assert (cursor.offset >= 7L);\n print_endline \"observed: changed\"))\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n with_demo binary (watch_output binary)\n" }, "ocaml:examples/showcase.json": { "repository": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", - "sha256": "bfb397cde4df53163656fc69cd4837ca6c3a929fc17d59a5384c06efb6462a67", - "content": "{\n \"schema\": \"libtmux.showcase/1\",\n \"tmux_floor\": \"3.3a\",\n \"ci\": {\n \"workflow\": \".github/workflows/ocaml.yml\",\n \"job\": \"native\",\n \"runner\": \"test/showcase_test.py\"\n },\n \"examples\": [\n {\n \"capability\": \"graph\",\n \"title\": \"Navigate the typed object graph\",\n \"file\": \"examples/showcase_graph.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_graph.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"graph: 2 sessions, 2 windows, 3 links, 2 panes\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"watch\",\n \"title\": \"Observe future output with Eio\",\n \"file\": \"examples/showcase_watch.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_watch.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"observed: changed\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"send-keys\",\n \"title\": \"Send literal input and keys\",\n \"file\": \"examples/showcase_send_keys.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_send_keys.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"sent: literal: $HOME; #{pane_id}\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"rename-window\",\n \"title\": \"Rename a window\",\n \"file\": \"examples/showcase_rename_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_rename_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"renamed: editor-main\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"create-window\",\n \"title\": \"Create a window\",\n \"file\": \"examples/showcase_create_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_create_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"created: logs\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"move-window\",\n \"title\": \"Move a window between sessions\",\n \"file\": \"examples/showcase_move_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_move_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"moved: build at 7\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"layout\",\n \"title\": \"Apply a layout\",\n \"file\": \"examples/showcase_layout.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_layout.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"layout: 3 horizontal panes\",\n \"success_exit_code\": 0\n }\n ]\n}\n" + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605", + "sha256": "8f81b5d13e12bab22bc1f58e64e016f3391b22fac8980af3a270b67058942416", + "content": "{\n \"schema\": \"libtmux.showcase/1\",\n \"tmux_floor\": \"3.3a\",\n \"ci\": {\n \"workflow\": \".github/workflows/ocaml.yml\",\n \"job\": \"native\",\n \"runner\": \"test/showcase_test.py\"\n },\n \"examples\": [\n {\n \"capability\": \"bootstrap\",\n \"title\": \"Start a private server and capture its first session\",\n \"file\": \"examples/showcase_bootstrap.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_bootstrap.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"bootstrapped: 1 session, 1 window, 1 pane\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"graph\",\n \"title\": \"Navigate the typed object graph\",\n \"file\": \"examples/showcase_graph.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_graph.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"graph: 2 sessions, 2 windows, 3 links, 2 panes\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"watch\",\n \"title\": \"Observe future output with Eio\",\n \"file\": \"examples/showcase_watch.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_watch.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"observed: changed\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"send-keys\",\n \"title\": \"Send literal input and keys\",\n \"file\": \"examples/showcase_send_keys.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_send_keys.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"sent: literal: $HOME; #{pane_id}\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"rename-window\",\n \"title\": \"Rename a window\",\n \"file\": \"examples/showcase_rename_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_rename_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"renamed: editor-main\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"create-window\",\n \"title\": \"Create a window\",\n \"file\": \"examples/showcase_create_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_create_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"created: logs\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"move-window\",\n \"title\": \"Move a window between sessions\",\n \"file\": \"examples/showcase_move_window.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_move_window.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"moved: build at 7\",\n \"success_exit_code\": 0\n },\n {\n \"capability\": \"layout\",\n \"title\": \"Apply a layout\",\n \"file\": \"examples/showcase_layout.ml\",\n \"whole_file\": true,\n \"command\": [\n \"opam\",\n \"exec\",\n \"--\",\n \"dune\",\n \"exec\",\n \"examples/showcase_layout.exe\",\n \"--\",\n \"tmux\"\n ],\n \"expected_stdout_line\": \"layout: 3 horizontal panes\",\n \"success_exit_code\": 0\n }\n ]\n}\n" }, "ocaml:test/showcase_test.py": { "repository": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", - "sha256": "17ff54eaa950f1d9a2d64b7386b456bf2a01b20209c9c7e49bcd0b990c8b4f8a", - "content": "\"\"\"Outer: compile whole showcase programs against installed packages and run their entry points.\"\"\"\nimport ctypes\nimport json\nimport os\nfrom pathlib import Path\nimport selectors\nimport shutil\nimport signal\nimport subprocess\nimport sys\nimport tempfile\n\nroot = Path(__file__).resolve().parents[1]\nmanifest = json.loads((root / \"examples/showcase.json\").read_text())\nprograms = {}\nfor entry in manifest[\"examples\"]:\n path = (root / entry[\"file\"]).resolve()\n assert path.parent == root / \"examples\" and path.suffix == \".ml\"\n assert entry[\"whole_file\"] and entry[\"success_exit_code\"] == 0\n executable = str(Path(entry[\"file\"]).with_suffix(\".exe\"))\n assert entry[\"command\"] == [\"opam\", \"exec\", \"--\", \"dune\", \"exec\", executable, \"--\", \"tmux\"], \\\n \"showcase command does not execute its recorded source\"\n assert path.stem not in programs, \"duplicate showcase program\"\n programs[path.stem] = entry\nlibc = ctypes.CDLL(None, use_errno=True)\nif libc.prctl(36, 1, 0, 0, 0):\n raise OSError(ctypes.get_errno(), \"PR_SET_CHILD_SUBREAPER\")\nchild_file = Path(f\"/proc/self/task/{os.getpid()}/children\")\n\n\ndef children():\n return set(map(int, child_file.read_text().split()))\n\n\nwith tempfile.TemporaryDirectory(prefix=\"libtmux-ocaml-showcase-consumer-\") as temporary:\n temporary = Path(temporary)\n prefix = temporary / \"installed\"\n packages = [\"libtmux\", \"libtmux-workspace\", \"libtmux-unix\", \"libtmux-eio\"]\n subprocess.run([\"dune\", \"install\", \"--sections=lib,stublibs\", \"--prefix\", str(prefix), *packages],\n cwd=root, check=True, capture_output=True)\n project = temporary / \"consumer\"\n project.mkdir()\n runtime_temp = temporary / \"runtime-temp\"\n runtime_temp.mkdir(mode=0o700)\n (project / \"dune-project\").write_text(\"(lang dune 3.24)\\n\")\n examples = project / \"examples\"\n examples.mkdir()\n blocking = \" \".join(name for name in programs if name != \"showcase_watch\")\n (examples / \"dune\").write_text(\"(executables (names \" + blocking + \") (modules \" + blocking +\n \") (libraries libtmux libtmux-workspace libtmux-unix unix))\\n\" +\n \"(executable (name showcase_watch) (modules showcase_watch) \" +\n \"(libraries libtmux libtmux-workspace libtmux-unix libtmux-eio eio_main unix))\\n\")\n for name in programs:\n source = root / \"examples\" / f\"{name}.ml\"\n assert source.is_file(), f\"missing standalone showcase: {name}\"\n (examples / source.name).write_bytes(source.read_bytes())\n environment = dict(os.environ, OCAMLPATH=str(prefix / \"lib\"), TMPDIR=str(runtime_temp),\n TMUX=\"/unrelated/server,99999,0\", TMUX_PANE=\"%99999\")\n for key in [\"DUNE_SOURCEROOT\", \"DUNE_WORKSPACE\"]:\n environment.pop(key, None)\n environment[\"OPAMSWITCH\"] = subprocess.check_output(\n [\"opam\", \"switch\", \"show\", \"--safe\"], cwd=root, env=environment, text=True).strip()\n resolved = subprocess.check_output([\"opam\", \"exec\", \"--\", \"ocamlfind\", \"query\", *packages],\n cwd=project, env=environment, text=True).splitlines()\n assert list(map(Path, resolved)) == [prefix / \"lib\" / package for package in packages]\n built = subprocess.run([\"dune\", \"build\", \"--root\", str(project)],\n cwd=project, env=environment, capture_output=True)\n assert built.returncode == 0, (built.stdout + built.stderr).decode(errors=\"replace\")\n for index, binary in enumerate(sys.argv[1:]):\n actual = str(Path(binary).resolve(strict=True))\n fault = temporary / f\"fault-tmux-{index}\"\n audit = temporary / f\"fault-directory-{index}\"\n fault.write_text(\"#!/usr/bin/env python3\\nimport os,sys\\nfrom pathlib import Path\\n\" +\n \"args=sys.argv[1:]\\nif '-C' in args and 'new-session' in args:\\n\" +\n \" p=Path(args[args.index('-f')+1])\\n\" +\n f\" Path({str(audit)!r}).write_text(str(p.parent))\\n\" +\n \" with p.open('a') as output:\\n\" +\n \" output.write('new-session -d -s showcase -- /bin/cat -u\\\\n')\\n\" +\n f\"os.execv({actual!r}, [{actual!r}, *args])\\n\")\n fault.chmod(0o700)\n cases = [(name, entry, actual, False) for name, entry in programs.items()]\n cases.append((\"showcase_create_window\", programs[\"showcase_create_window\"], str(fault), True))\n for name, entry, program, should_fail in cases:\n previous = children()\n command = [*entry[\"command\"][:-1], program]\n process = subprocess.Popen(command,\n cwd=project, env=environment, stdout=subprocess.PIPE,\n stderr=subprocess.PIPE)\n try:\n output, error = process.communicate(timeout=1)\n if should_fail:\n assert process.returncode == 2 and error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() not in output.splitlines()\n directory = Path(audit.read_text())\n else:\n assert process.returncode == 0 and not error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() in output.splitlines(), \\\n (name, \"missing expected outcome\", output)\n socket_line = next(line for line in output.splitlines() if line.startswith(b\"socket=\"))\n directory = Path(os.fsdecode(socket_line[len(b\"socket=\"):])).parent\n assert directory.name.startswith(\"libtmux-ocaml-showcase-\")\n assert not directory.exists(), \"showcase left its private directory\"\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), f\"{name} left owned child {pid} running\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n outcome = \"startup failure\" if should_fail else \"installed entry point\"\n print(f\"PASS {Path(binary).parent.name}: {name}, {outcome} and owned teardown\")\n finally:\n if process.poll() is None:\n process.kill()\n process.wait(timeout=1)\n while children() - previous:\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n try:\n signal.pidfd_send_signal(descriptor, signal.SIGTERM)\n except ProcessLookupError:\n pass\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), \"owned showcase child did not terminate\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n process.stdout.close()\n process.stderr.close()\n for path in runtime_temp.iterdir():\n if path.is_dir():\n shutil.rmtree(path)\n else:\n path.unlink()\n" + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605", + "sha256": "44e60a7fe50d8686abde4ac046ea38c8e14a43555c15284140cadf4ee5aef753", + "content": "\"\"\"Outer: compile whole showcase programs against installed packages and run their entry points.\"\"\"\nimport ctypes\nimport json\nimport os\nfrom pathlib import Path\nimport selectors\nimport shutil\nimport signal\nimport subprocess\nimport sys\nimport tempfile\n\nroot = Path(__file__).resolve().parents[1]\nmanifest = json.loads((root / \"examples/showcase.json\").read_text())\nprograms = {}\nfor entry in manifest[\"examples\"]:\n path = (root / entry[\"file\"]).resolve()\n assert path.parent == root / \"examples\" and path.suffix == \".ml\"\n assert entry[\"whole_file\"] and entry[\"success_exit_code\"] == 0\n executable = str(Path(entry[\"file\"]).with_suffix(\".exe\"))\n assert entry[\"command\"] == [\"opam\", \"exec\", \"--\", \"dune\", \"exec\", executable, \"--\", \"tmux\"], \\\n \"showcase command does not execute its recorded source\"\n assert path.stem not in programs, \"duplicate showcase program\"\n programs[path.stem] = entry\nlibc = ctypes.CDLL(None, use_errno=True)\nif libc.prctl(36, 1, 0, 0, 0):\n raise OSError(ctypes.get_errno(), \"PR_SET_CHILD_SUBREAPER\")\nchild_file = Path(f\"/proc/self/task/{os.getpid()}/children\")\n\n\ndef children():\n return set(map(int, child_file.read_text().split()))\n\n\nwith tempfile.TemporaryDirectory(prefix=\"libtmux-ocaml-showcase-consumer-\") as temporary:\n temporary = Path(temporary)\n prefix = temporary / \"installed\"\n packages = [\"libtmux\", \"libtmux-workspace\", \"libtmux-unix\", \"libtmux-eio\"]\n subprocess.run([\"dune\", \"install\", \"--sections=lib,stublibs\", \"--prefix\", str(prefix), *packages],\n cwd=root, check=True, capture_output=True)\n project = temporary / \"consumer\"\n project.mkdir()\n runtime_temp = temporary / \"runtime-temp\"\n runtime_temp.mkdir(mode=0o700)\n (project / \"dune-project\").write_text(\"(lang dune 3.24)\\n\")\n examples = project / \"examples\"\n examples.mkdir()\n blocking = \" \".join(name for name in programs if name != \"showcase_watch\")\n (examples / \"dune\").write_text(\"(executables (names \" + blocking + \") (modules \" + blocking +\n \") (libraries libtmux libtmux-workspace libtmux-unix unix))\\n\" +\n \"(executable (name showcase_watch) (modules showcase_watch) \" +\n \"(libraries libtmux libtmux-workspace libtmux-unix libtmux-eio eio_main unix))\\n\")\n for name in programs:\n source = root / \"examples\" / f\"{name}.ml\"\n assert source.is_file(), f\"missing standalone showcase: {name}\"\n (examples / source.name).write_bytes(source.read_bytes())\n environment = dict(os.environ, OCAMLPATH=str(prefix / \"lib\"), TMPDIR=str(runtime_temp),\n TMUX=\"/unrelated/server,99999,0\", TMUX_PANE=\"%99999\")\n for key in [\"DUNE_SOURCEROOT\", \"DUNE_WORKSPACE\"]:\n environment.pop(key, None)\n environment[\"OPAMSWITCH\"] = subprocess.check_output(\n [\"opam\", \"switch\", \"show\", \"--safe\"], cwd=root, env=environment, text=True).strip()\n resolved = subprocess.check_output([\"opam\", \"exec\", \"--\", \"ocamlfind\", \"query\", *packages],\n cwd=project, env=environment, text=True).splitlines()\n assert list(map(Path, resolved)) == [prefix / \"lib\" / package for package in packages]\n built = subprocess.run([\"dune\", \"build\", \"--root\", str(project)],\n cwd=project, env=environment, capture_output=True)\n assert built.returncode == 0, (built.stdout + built.stderr).decode(errors=\"replace\")\n for index, binary in enumerate(sys.argv[1:]):\n actual = str(Path(binary).resolve(strict=True))\n fault = temporary / f\"fault-tmux-{index}\"\n audit = temporary / f\"fault-directory-{index}\"\n fault.write_text(\"#!/usr/bin/env python3\\nimport os,sys\\nfrom pathlib import Path\\n\" +\n \"args=sys.argv[1:]\\nif '-C' in args and 'new-session' in args:\\n\" +\n \" p=Path(args[args.index('-f')+1])\\n\" +\n f\" Path({str(audit)!r}).write_text(str(p.parent))\\n\" +\n \" with p.open('a') as output:\\n\" +\n \" session=os.environ['LIBTMUX_SHOWCASE_COLLISION']\\n\" +\n \" output.write(f'new-session -d -s {session} -- /bin/cat -u\\\\n')\\n\" +\n f\"os.execv({actual!r}, [{actual!r}, *args])\\n\")\n fault.chmod(0o700)\n cases = [(name, entry, actual, False) for name, entry in programs.items()]\n cases.append((\"showcase_create_window\", programs[\"showcase_create_window\"], str(fault), True))\n cases.append((\"showcase_bootstrap\", programs[\"showcase_bootstrap\"], str(fault), True))\n for name, entry, program, should_fail in cases:\n previous = children()\n command = [*entry[\"command\"][:-1], program]\n process = subprocess.Popen(command,\n cwd=project, env=dict(environment, LIBTMUX_SHOWCASE_COLLISION=\n \"bootstrap-demo\" if name == \"showcase_bootstrap\" else \"showcase\"),\n stdout=subprocess.PIPE,\n stderr=subprocess.PIPE)\n try:\n output, error = process.communicate(timeout=1)\n if should_fail:\n assert process.returncode == 2 and error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() not in output.splitlines()\n if name == \"showcase_bootstrap\":\n assert b\"workspace \" in error and b\" did not complete\" in error, error\n assert b\"new-session\" in error and b\"no automatic retry\" in error, error\n directory = Path(audit.read_text())\n else:\n assert process.returncode == 0 and not error, (name, process.returncode, output, error)\n assert entry[\"expected_stdout_line\"].encode() in output.splitlines(), \\\n (name, \"missing expected outcome\", output)\n socket_line = next(line for line in output.splitlines() if line.startswith(b\"socket=\"))\n directory = Path(os.fsdecode(socket_line[len(b\"socket=\"):])).parent\n assert directory.name.startswith(\"libtmux-ocaml-showcase-\")\n assert not directory.exists(), \"showcase left its private directory\"\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), f\"{name} left owned child {pid} running\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n outcome = \"startup failure\" if should_fail else \"installed entry point\"\n print(f\"PASS {Path(binary).parent.name}: {name}, {outcome} and owned teardown\")\n finally:\n if process.poll() is None:\n process.kill()\n process.wait(timeout=1)\n while children() - previous:\n for pid in children() - previous:\n descriptor = os.pidfd_open(pid)\n try:\n try:\n signal.pidfd_send_signal(descriptor, signal.SIGTERM)\n except ProcessLookupError:\n pass\n with selectors.DefaultSelector() as ready:\n ready.register(descriptor, selectors.EVENT_READ)\n assert ready.select(1), \"owned showcase child did not terminate\"\n os.waitpid(pid, 0)\n finally:\n os.close(descriptor)\n process.stdout.close()\n process.stderr.close()\n for path in runtime_temp.iterdir():\n if path.is_dir():\n shutil.rmtree(path)\n else:\n path.unlink()\n" }, "ocaml/workspace:examples/showcase_graph.ml": { "repository": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605", "sha256": "daa3c08e96c7aa366f6ac798b41a09e2f967c2fcf6c343df194c4e7fc4627a26", "content": "open Libtmux\nmodule Client = Libtmux_unix.Client\nmodule Workspace = Libtmux_unix.Workspace\nmodule Config = Libtmux_workspace.Config\nmodule Plan = Libtmux_workspace.Plan\nmodule Execution = Libtmux_workspace.Execution\n\nlet get = function\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Error.pp error)\n\nlet capture_graph client (initial : Created.t) spawn =\n let linked =\n get\n (Client.create_session client ~name:\"linked\" ~window_name:\"linked-home\"\n ~spawn ())\n in\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id linked.pane)\n |> Option.get\n in\n let text = \"showcase ready\" in\n ignore (get (Client.wait_for_text ~timeout:0.5 client pane ~text));\n get\n (Client.link_window client initial.window ~session:linked.session ~index:7);\n get (Client.capture client)\n\nlet print_graph snapshot =\n Snapshot.sessions snapshot\n |> Iarray.iter (fun session ->\n Session.window_links session\n |> Iarray.iter (fun link ->\n let window = Window_link.window link in\n Printf.printf \"%s/%d %s: %d pane(s)\\n\" (Session.name session)\n (Window_link.index link) (Window.name window)\n (Iarray.length (Window.panes window))));\n assert (Iarray.length (Snapshot.sessions snapshot) = 2);\n assert (Iarray.length (Snapshot.windows snapshot) = 2);\n assert (Iarray.length (Snapshot.window_links snapshot) = 3);\n assert (Iarray.length (Snapshot.panes snapshot) = 2);\n print_endline \"graph: 2 sessions, 2 windows, 3 links, 2 panes\"\n\nlet with_demo binary use =\n let directory = Filename.temp_dir \"libtmux-ocaml-showcase-\" \"\" in\n Fun.protect\n ~finally:(fun () ->\n Sys.readdir directory\n |> Array.iter (fun name -> Sys.remove (Filename.concat directory name));\n Unix.rmdir directory)\n (fun () ->\n let socket = Filename.concat directory \"server\" in\n (* Give this private daemon a lifetime even if startup fails. *)\n let config_file = Filename.concat directory \"tmux.conf\" in\n Out_channel.with_open_text config_file (fun output ->\n output_string output \"set-option -s exit-unattached on\\n\");\n let wrapper = Filename.concat directory \"tmux\" in\n Out_channel.with_open_text wrapper (fun output ->\n Printf.fprintf output \"#!/bin/sh\\nexec %s -f %s \\\"$@\\\"\\n\"\n (Filename.quote binary)\n (Filename.quote config_file));\n Unix.chmod wrapper 0o700;\n let channel = Unix.open_process_args_in binary [| binary; \"-V\" |] in\n let version =\n Fun.protect\n ~finally:(fun () ->\n if Unix.close_process_in channel <> Unix.WEXITED 0 then\n failwith \"tmux version discovery failed\")\n (fun () -> String.trim (input_line channel))\n in\n if not (String.starts_with ~prefix:\"tmux \" version) then\n failwith \"invalid tmux version\";\n let version = String.sub version 5 (String.length version - 5) in\n let ready = Filename.concat directory \"ready.txt\" in\n Out_channel.with_open_text ready (fun output ->\n output_string output \"showcase ready\\n\");\n let spawn =\n Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\"; ready; \"-\" ] })\n in\n let config =\n match\n Config.make ~directory ~session:\"showcase\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Config.pp_error error)\n in\n let plan =\n match\n Plan.make\n ~endpoint:(Endpoint.socket_path socket)\n ~version ~observed:None config\n with\n | Ok value -> value\n | Error error -> failwith (Format.asprintf \"%a\" Plan.pp_error error)\n in\n let operation = get (Workspace.submit_bootstrap ~binary:wrapper plan) in\n Fun.protect\n ~finally:(fun () -> get (Workspace.close operation))\n (fun () ->\n let receipt = get (Workspace.await operation) in\n if receipt.status <> Execution.Succeeded then\n failwith \"workspace setup failed\";\n let client = Option.get (Workspace.client operation) in\n let initial = List.hd (Iarray.get receipt.steps 0).created in\n Printf.printf \"socket=%s\\n%!\" socket;\n let pane =\n Snapshot.find_pane\n (get (Client.capture client))\n (Pane.Target.id initial.pane)\n |> Option.get\n in\n ignore\n (get\n (Client.wait_for_text ~timeout:0.5 client pane\n ~text:\"showcase ready\"));\n use client initial spawn))\n\nlet () =\n let binary = if Array.length Sys.argv = 2 then Sys.argv.(1) else \"tmux\" in\n let snapshot = with_demo binary capture_graph in\n print_graph snapshot\n" }, diff --git a/site/src/data/manifest-packages.json b/site/src/data/manifest-packages.json index 6b4a9375a..86e409716 100644 --- a/site/src/data/manifest-packages.json +++ b/site/src/data/manifest-packages.json @@ -738,43 +738,43 @@ }, "ocaml": { "repo": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605", "distributions": [ { "name": "libtmux", "manifest": "libtmux.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605" }, { "name": "libtmux-eio", "manifest": "libtmux-eio.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605" }, { "name": "libtmux-json", "manifest": "libtmux-json.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605" }, { "name": "libtmux-unix", "manifest": "libtmux-unix.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605" }, { "name": "libtmux-workspace", "manifest": "libtmux-workspace.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605" }, { "name": "libtmux-workspace-cli", "manifest": "libtmux-workspace-cli.opam", "repo": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605" } ], "units": [] diff --git a/site/src/data/mentions.json b/site/src/data/mentions.json index 80a026b45..60d93de30 100644 --- a/site/src/data/mentions.json +++ b/site/src/data/mentions.json @@ -8526,6 +8526,13 @@ "title": "OCaml workspace API reference", "section": "ports" }, + { + "port": "ocaml", + "symbol": "Libtmux_workspace.Config.make", + "page": "/ocaml/latest/guides/bootstrap/", + "title": "Start a private tmux server from OCaml", + "section": "guides" + }, { "port": "ocaml", "symbol": "Libtmux_workspace.Config.pane:type.startup", @@ -8547,6 +8554,13 @@ "title": "Workspace guide", "section": "workspace" }, + { + "port": "ocaml", + "symbol": "Libtmux_workspace.Plan.make", + "page": "/ocaml/latest/guides/bootstrap/", + "title": "Start a private tmux server from OCaml", + "section": "guides" + }, { "port": "ocaml", "symbol": "Libtmux_workspace.Plan.make", @@ -8596,6 +8610,13 @@ "title": "Submit actions and retain their outcomes", "section": "guides" }, + { + "port": "ocaml", + "symbol": "Libtmux.Error.t.Capacity", + "page": "/ocaml/latest/guides/streaming/", + "title": "Observe output and wait for rendered text", + "section": "guides" + }, { "port": "ocaml", "symbol": "Libtmux.Error.t.Closed", diff --git a/site/src/data/port-guides/ocaml.json b/site/src/data/port-guides/ocaml.json index a906cc04d..59991ae94 100644 --- a/site/src/data/port-guides/ocaml.json +++ b/site/src/data/port-guides/ocaml.json @@ -1,13 +1,17 @@ { "source": { "repository": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e" + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605" }, "guides": [ { "path": "docs/getting-started.md", "content": "# Install and run your first capture\n\nUse the [README installation](../README.md#install-from-source) with OCaml\n5.5.2, opam and tmux on Linux. The native clients compile a small Linux C helper\nand require a C compiler and system headers. This source checkout installs the\nlibraries; no registry release is available yet.\n\nActivate the local switch in the current shell as shown in the README before\nchanging to a separate project. This exports the switch choice for `opam exec`\nwithout changing shell startup files or the global default switch.\n\n## Link an installed library\n\nFor a blocking program, use a Dune executable with `libtmux` and `libtmux-unix`:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-unix))\n```\n\nFor the Eio examples, link the Eio backend and the application's runtime entry\npoint instead:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-eio eio_main))\n```\n\nCreate `dune-project` with `(lang dune 3.24)`, save the\n[graph program](../examples/native_graph.ml) as `main.ml`, and build from that\nproject. The installed-example check does this outside the repository with a\nseparate install prefix; it does not depend on source-tree library resolution.\n\n```console\n$ opam exec -- dune build\n```\n\n## Select an endpoint explicitly\n\n`Endpoint.socket_path` accepts an absolute socket path; `Endpoint.named_socket`\ndescribes tmux's `-L` name. Constructing either performs no I/O. Ordinary\n`Client.connect` attaches to an existing daemon and does not start one.\n\nThe [private demo setup](../README.md#read-a-real-tmux-graph) creates an owned\nsocket and a `cat` pane. Run the graph program with the tmux binary and socket\npath, or copy its complete source into your project. It captures the graph,\ncloses its connection and prints retained observations.\n\nA connection identifies the daemon PID twice around pidfd acquisition. The\nclient and daemon must share a PID namespace and local scratch filesystem;\nan accessible socket by itself does not establish those conditions. A stale\nsource is an error, never permission to reconnect a mutation automatically.\n\n## Run a concurrent application\n\nThe [complete Eio example](../examples/native_watch.ml) calls `Eio_main.run`\nand `Eio.Switch.run`, then supplies `process_mgr` and `mono_clock` from the\napplication environment. Use that outer shape in your application. Capturing\nand querying values does not require adopting Eio in the pure core.\n\nExpected failures return `result` and print with `Error.pp`. Backend\ncancellation propagates separately. Clients and subscriptions belong to their\nconnecting domain; immutable observations can be shared. Close owned resources\nwith `Fun.protect` or the supplied Eio switch.\n\n[Object graph](graph.md) · [Queries](queries.md) · [Control](control.md) ·\n[API](api.md) · [Compatibility](compatibility.md)\n" }, + { + "path": "docs/bootstrap.md", + "content": "# Start a private tmux server from OCaml\n\nUse `Workspace.submit_bootstrap` when the endpoint is known to be missing.\nIt creates the first session and binds a client through the same control\nconnection. The native workspace builder needs no JSON package;\n`Workspace.await` performs startup.\n\nFor an existing daemon, use `Client.connect`, capture its graph, and create a\nsession through that client. See [control and recovery](control.md).\n\n## Run the complete program\n\nComplete the [source installation](getting-started.md), then run from the\ncheckout:\n\n```console\n$ opam exec -- dune exec examples/showcase_bootstrap.exe -- tmux\n```\n\nThe program prints its temporary socket path followed by\n`bootstrapped: 1 session, 1 window, 1 pane`. It creates a `bootstrap-demo` session\nwhose `editor` window runs `/bin/cat -u`, captures the graph, and reads that\nsnapshot after closing its client.\n\nThe [complete source](../examples/showcase_bootstrap.ml) includes its private\ndirectory, tmux configuration, local version discovery and cleanup. To use the\nwhole program outside this checkout, save it as `main.ml` in the Dune project\nfrom [first use](getting-started.md#link-an-installed-library) with:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-workspace libtmux-unix unix))\n```\n\nCI compiles that complete file against installed packages and checks its exact\noutcome line, graph assertions, directory cleanup and owned process exit on\ntmux 3.3a and 3.8. The [executed inventory](../examples/showcase.json) records\nits command and workflow.\n\n## Build, plan, await and capture\n\nThe central function receives the binary's discovered version and a new private\nsocket path. `Config.make`, `Plan.make` and submission perform no I/O; the\nfunction returns a retained execution handle:\n\n\n\n```ocaml\nlet bootstrap ~binary ~version ~directory endpoint =\n let spawn = Spawn.make (Exec { program = \"/bin/cat\"; args = [ \"-u\" ] }) in\n let config =\n Config.make ~directory ~session:\"bootstrap-demo\"\n [ Config.window ~name:\"editor\" [ Config.pane ~spawn () ] ]\n |> checked Config.pp_error\n in\n let plan =\n Plan.make ~endpoint ~version ~observed:None config |> checked Plan.pp_error\n in\n get (Workspace.submit_bootstrap ~binary plan)\n```\n\nPassing [`None`](https://ocaml.org/manual/5.5/api/Option.html#TYPEELTt.None) as the\n`observed` argument means the endpoint is known to be missing. The full program\nuses a newly created private directory to establish that precondition. A failed\ncapture must remain an error; treating it as a missing observation discards that\nfailure and produces the wrong plan. A plan remains advisory; another process\ncan still change the endpoint before execution.\n\nKeep that handle outside the cleanup scope. Await it, check the receipt, then\nborrow its client for the capture:\n\n\n\n```ocaml\nlet snapshot =\n protect\n ~finally:(fun () -> get (Workspace.close execution))\n (fun () ->\n let receipt = get (Workspace.await execution) in\n require_success receipt;\n let client = Option.get (Workspace.client execution) in\n get (Client.capture client))\n```\n\n`require_success` reports failed steps and compensation before raising. The\n[`protect` helper](../examples/showcase_bootstrap.ml#L14) keeps that primary\nexception if closing also fails, reporting the cleanup failure separately.\nBoth helpers are in the complete source.\n`Workspace.inspect execution` reads the retained journal after closure; inspect\nreported creations and uncertainty before choosing another action. The\nprogram stops without retrying. The\n[workspace guide](workspaces.md#collisions-and-recovery) explains those receipts.\n\n`Workspace.client` borrows the bootstrapped client. Close the workspace handle\nafter using that client; its snapshot stays readable.\n\n## Choose the daemon's lifetime\n\nBootstrapping owns the new client, not the tmux daemon. Closing the handle\nreleases that client. The example explicitly configures its private daemon\nwith `exit-unattached on`, supplied through a small shell exec wrapper. The\ndaemon and its demonstration pane exit after\nthe final client detaches. It then removes only its own temporary files.\n\nFor an application that keeps the server, choose its normal tmux lifetime\npolicy and retain the workspace handle while using the borrowed client. An\nexisting or newly visible daemon does not become owned merely because this\napplication connected to it. Cancellation and a partial bootstrap can leave\neffects; use [retained operation recovery](recovery.md) and the workspace\nreceipt rather than assuming closure undoes them.\n\n[Object graph](graph.md) · [Workspaces](workspaces.md) · [Guide](README.md)\n" + }, { "path": "docs/graph.md", "content": "# Sessions, window links and panes\n\nA snapshot contains sessions, global windows, session-specific window links,\npanes and captured clients. Entity values are abstract immutable observations.\nThey remain readable after their client closes.\n\n```text\nSession ── Window_link ── Window ── Pane\n index │\n another link can share this window\n```\n\nA window can be linked to multiple sessions, or linked more than once within\none session. `Session.window_links` retains each context and index.\n`Session.windows` returns distinct global windows in first-link order.\n`Window.panes` contains that global window's captured panes. Local traversal\nperforms no I/O, lazy refresh or per-object subprocess calls. Captured client\nrows and attached-client counts include the library's control connection when\nit is present.\n\nThe [graph program](../examples/native_graph.ml) deliberately walks links. To\nsee the same window in two sessions, run the [README setup](../README.md#read-a-real-tmux-graph),\nthen create another session:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n new-session \\\n -d \\\n -s linked \\\n -- \"exec cat\"\n```\n\nLink the demo's window at index 7 in the other session:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n link-window \\\n -d \\\n -s @0 \\\n -t linked:7\n```\n\n```console\n$ opam exec -- dune exec examples/native_graph.exe -- \\\n tmux \"$LIBTMUX_DEMO_DIR/server\"\n```\n\nThe same window ID and pane ID appear under both sessions, at their respective\nlink indexes. The installed-example check asserts both appearances. Remove\nonly the additional session when finished:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_DEMO_DIR/server\" \\\n kill-session -t '=linked'\n```\n\nAn entity ID is scoped to a connection source. `same_entity` requires the same\nbound source generation as well as the same entity ID; separate connections\ncompare unequal even when they observe the same daemon. `same_observation`\nalso distinguishes captures. Use those operations or explicit `Id.equal`,\nrather than polymorphic equality over observations. A valid target does not\nmake captured names, geometry or membership current.\nA link context is an observed session/index/window tuple, not a stable link\nincarnation across unlinking or reindexing.\n\nCapture provenance records an acquisition interval. Several tmux commands do\nnot form an atomic server transaction. Disappearing or conflicting objects\nproduce a capture error rather than a fabricated empty relationship.\n\nEach entity retains the complete snapshot graph so its relationships remain\navailable. Retaining one pane from every refresh therefore retains every one\nof those captures. Keep scalar summaries when navigation is unnecessary.\n`Pane.target` omits the graph but remains bound to its original connection\ngeneration; it is not a durable target for a future connection. Relationship\ntraversal can allocate wrapper arrays even when a query stops testing early.\nThe [retained-heap measurements](benchmarking.md#heap-retained-across-captures)\ncompare these choices across repeated real captures.\n\n[Queries](queries.md) · [Recovery](control.md) · [API](api.md)\n" @@ -22,7 +26,7 @@ }, { "path": "docs/control.md", - "content": "# Submit actions and retain their outcomes\n\nObservations are local values. Client calls perform explicit I/O, and mutations\nuse targets bound to the source that produced them. Closing a client releases\nits own transports. tmux then applies its configured lifetime: for example,\n[the standalone programs](showcases.md) enable `exit-unattached` on their\nprivate daemons so they exit after their final client detaches.\n\nThe [layout program](../examples/native_build.ml) creates a session, splits its\nfirst pane and adds a logs window. It passes argv through `Spawn.Exec`, a working\ndirectory and an environment value. `Spawn.Shell` explicitly requests shell\ncode. `send_text` is literal input; `send_keys [Key.Enter]` is a separate action.\n\nA creation response returns the reported session, window and pane IDs without\nan extra graph capture. Only the resource requested by that command is newly\ncreated. A split's returned session and window are pre-existing containers.\n\n## Choose a backend\n\nUse `Libtmux_unix.Client` in a blocking script. Use `Libtmux_eio.Client` inside\nan application-owned Eio switch, supplying the process manager and monotonic\nclock. Clients are affine to their connecting domain. Immutable captured values\ncan be read from other domains; live client handles cannot move between them.\n\nThe Eio backend has client-owned workers for command draining and stream\nreading. A cancelled waiter does not abandon a written request. Local scratch\nfilesystem work runs on a system thread. The blocking backend supports scoped\ncancellation tokens signalled from another domain or systhread.\n\n| Recovery concern | Eio | Blocking Unix |\n| --- | --- | --- |\n| Cancel one caller | Eio cancellation scope around `Client.await` | `Cancellation.with_` token passed to `Client.await` |\n| Return after cancellation | The waiter raises while a client-owned fiber drains admitted work | The call drains before raising; one exchange timeout after detection bounds transport work |\n| Inspect an outcome | `Operation.inspect`, on the connecting domain | `Operation.inspect`, on the connecting domain |\n| Release resources | Close the client inside its application-owned switch | Close the client after the call returns |\n\nThe blocking bound covers transport draining. Local scratch I/O must still\nfinish before the call returns.\n\nEio `Client.close` rejects new command and subscription admission as soon as\nclosing starts. Concurrent closes wait for the same teardown result. A later\nclose retains an earlier teardown failure; the closed state alone does not\nprove resources were released. Inspect the client's `Cleanup` report for\nsecondary failures. Internal connection teardown also retains one completion,\nso a concurrent failure path cannot skip cleanup already in progress.\n\nThe [complete recovery example](recovery.md) cancels an active waiter, awaits\nthe same retained operation and checks server state before its next mutation.\n\n## Distinguish acknowledgement from completion\n\n`submit` validates and reserves capacity without writing. Retain the operation\nhandle before awaiting it. `Operation.inspect` reads its state without I/O:\nqueued, not started, written, acknowledged, finished, or outcome unknown.\n\nA reply can acknowledge a command while hooks or its completion marker remain\noutstanding. Sending keys confirms tmux accepted input; it does not prove a\nterminal program consumed it or completed work. A detach request does not prove\nthe peer exited. Use the relevant postcondition, rendered wait or external exit\nsignal for the task.\n\nExpected failures use `result` and `Error.t`. Backend cancellation propagates\nas cancellation. An uncertain result retains reported creation IDs and unresolved\nowned buffers; it never becomes an instruction to retry the mutation.\n\nWhen Eio's daemon watcher closes a connection, an in-flight operation retains\n`Error.Disconnected` as its cause. An idle-reader failure retains its library\nerror. Explicit client closure uses `Error.Closed`. Inspect the retained receipt\nto distinguish these reasons; each can leave an admitted mutation uncertain.\n\n`Client.cleanup` retains process and descriptor cleanup diagnostics after\nclosure. Supply a `Cleanup.create ()` report through `~cleanup` before connecting\nwhen diagnostics must survive failed setup or cancellation. The same option is\navailable on terminal attachment and workspace bootstrap. `Cleanup.inspect`\nreturns the cleanup phase, typed library error when available, original\nexception and backtrace without I/O. The report retains at most 64 entries and\ncounts further issues; exception payloads can still retain substantial memory.\nReports and their diagnostics belong to the creating domain.\n\nCleanup attempts independent releases even when one fails. A primary exception\nkeeps its identity and backtrace; secondary failures go to the report. If there\nis no primary failure, the first unrecovered cleanup failure is returned or\nraised normally. A recovered fallback can still leave a diagnostic after a\nsuccessful return: failure to open a child pidfd skips TERM grace, forces\ntermination and reaps, while retaining the `Open_pidfd` issue.\nFailed forced termination produces an `Unreaped_child` issue when exit cannot\nbe established without blocking. That issue does not prove resource release.\nThe [recovery example](recovery.md) keeps its report outside connection lifetime.\n\n## Recover deliberately\n\nA replacement daemon retires the connection generation. Reconnect explicitly,\ncapture again and establish cardinality before choosing a fresh target.\nOld captured values remain readable, but their targets cannot silently move to\nthe new server.\n\nPartial effects can remain after a later hook or command failure. Inspect the\nretained receipt and current server state. Compensate only resources whose\ncreation is proven. A snapshot is an observation over an interval, and a\nselection followed by mutation is not an atomic transaction.\n\nUse the [recovery walkthrough](recovery.md) to follow this sequence through a\ncomplete installed program, including cleanup of its own pane.\n\nSee [streaming](streaming.md) for Data/Gap/End and bounded queues, and\n[compatibility](compatibility.md) for hook, PID-namespace and scratch-file\nconstraints. [Guide](README.md) · [API](api.md)\n" + "content": "# Submit actions and retain their outcomes\n\nObservations are local values. Client calls perform explicit I/O, and mutations\nuse targets bound to the source that produced them. Closing a client releases\nits own transports. tmux then applies its configured lifetime: for example,\n[the standalone programs](showcases.md) enable `exit-unattached` on their\nprivate daemons so they exit after their final client detaches.\n\nThe [layout program](../examples/native_build.ml) creates a session, splits its\nfirst pane and adds a logs window. It passes argv through `Spawn.Exec`, a working\ndirectory and an environment value. `Spawn.Shell` explicitly requests shell\ncode. `send_text` is literal input; `send_keys [Key.Enter]` is a separate action.\n\nA creation response returns the reported session, window and pane IDs without\nan extra graph capture. Only the resource requested by that command is newly\ncreated. A split's returned session and window are pre-existing containers.\n\n## Choose a backend\n\nUse `Libtmux_unix.Client` in a blocking script. Use `Libtmux_eio.Client` inside\nan application-owned Eio switch, supplying the process manager and monotonic\nclock. Clients are affine to their connecting domain. Immutable captured values\ncan be read from other domains; live client handles cannot move between them.\n\nThe Eio backend has client-owned workers for command draining and stream\nreading. A cancelled waiter does not abandon a written request. Local scratch\nfilesystem work runs on a system thread. The blocking backend supports scoped\ncancellation tokens signalled from another domain or systhread.\n\n| Recovery concern | Eio | Blocking Unix |\n| --- | --- | --- |\n| Cancel one caller | Eio cancellation scope around `Client.await` | `Cancellation.with_` token passed to `Client.await` |\n| Return after cancellation | The waiter raises while a client-owned fiber drains admitted work | The call drains before raising; one exchange timeout after detection bounds transport work |\n| Inspect an outcome | `Operation.inspect`, on the connecting domain | `Operation.inspect`, on the connecting domain |\n| Release resources | Close the client inside its application-owned switch | Close the client after the call returns |\n\nThe blocking bound covers transport draining. Local scratch I/O must still\nfinish before the call returns.\n\nCaptures, reads and subscriptions share the client's payload budget and process\nslots. The [capacity guide](streaming.md#plan-shared-capacity) shows their combined\nreservations and how to leave headroom for service operations.\n\nEio `Client.close` rejects new command and subscription admission as soon as\nclosing starts. Concurrent closes wait for the same teardown result. A later\nclose retains an earlier teardown failure; the closed state alone does not\nprove resources were released. Inspect the client's `Cleanup` report for\nsecondary failures. Internal connection teardown also retains one completion,\nso a concurrent failure path cannot skip cleanup already in progress.\n\nThe [complete recovery example](recovery.md) cancels an active waiter, awaits\nthe same retained operation and checks server state before its next mutation.\n\n## Distinguish acknowledgement from completion\n\n`submit` validates and reserves capacity without writing. Retain the operation\nhandle before awaiting it. `Operation.inspect` reads its state without I/O:\nqueued, not started, written, acknowledged, finished, or outcome unknown.\n\nA reply can acknowledge a command while hooks or its completion marker remain\noutstanding. Sending keys confirms tmux accepted input; it does not prove a\nterminal program consumed it or completed work. A detach request does not prove\nthe peer exited. Use the relevant postcondition, rendered wait or external exit\nsignal for the task.\n\nExpected failures use `result` and `Error.t`. Backend cancellation propagates\nas cancellation. An uncertain result retains reported creation IDs and unresolved\nowned buffers; it never becomes an instruction to retry the mutation.\n\nWhen Eio's daemon watcher closes a connection, an in-flight operation retains\n`Error.Disconnected` as its cause. An idle-reader failure retains its library\nerror. Explicit client closure uses `Error.Closed`. Inspect the retained receipt\nto distinguish these reasons; each can leave an admitted mutation uncertain.\n\n`Client.cleanup` retains process and descriptor cleanup diagnostics after\nclosure. Supply a `Cleanup.create ()` report through `~cleanup` before connecting\nwhen diagnostics must survive failed setup or cancellation. The same option is\navailable on terminal attachment and workspace bootstrap. `Cleanup.inspect`\nreturns the cleanup phase, typed library error when available, original\nexception and backtrace without I/O. The report retains at most 64 entries and\ncounts further issues; exception payloads can still retain substantial memory.\nReports and their diagnostics belong to the creating domain.\n\nCleanup attempts independent releases even when one fails. A primary exception\nkeeps its identity and backtrace; secondary failures go to the report. If there\nis no primary failure, the first unrecovered cleanup failure is returned or\nraised normally. A recovered fallback can still leave a diagnostic after a\nsuccessful return: failure to open a child pidfd skips TERM grace, forces\ntermination and reaps, while retaining the `Open_pidfd` issue.\nFailed forced termination produces an `Unreaped_child` issue when exit cannot\nbe established without blocking. That issue does not prove resource release.\nThe [recovery example](recovery.md) keeps its report outside connection lifetime.\n\n## Recover deliberately\n\nA replacement daemon retires the connection generation. Reconnect explicitly,\ncapture again and establish cardinality before choosing a fresh target.\nOld captured values remain readable, but their targets cannot silently move to\nthe new server.\n\nPartial effects can remain after a later hook or command failure. Inspect the\nretained receipt and current server state. Compensate only resources whose\ncreation is proven. A snapshot is an observation over an interval, and a\nselection followed by mutation is not an atomic transaction.\n\nUse the [recovery walkthrough](recovery.md) to follow this sequence through a\ncomplete installed program, including cleanup of its own pane.\n\nSee [streaming](streaming.md) for Data/Gap/End and bounded queues, and\n[compatibility](compatibility.md) for hook, PID-namespace and scratch-file\nconstraints. [Guide](README.md) · [API](api.md)\n" }, { "path": "docs/recovery.md", @@ -30,11 +34,11 @@ }, { "path": "docs/streaming.md", - "content": "# Observe output and wait for rendered text\n\nUse [native_watch.ml](../examples/native_watch.ml) for a complete concurrent\nliteral-send, future-byte match and rendered-screen check. Its application owns\nthe Eio scheduler and switch. Use [native_wait.ml](../examples/native_wait.ml) to capture exactly one pane and\nwait until its ordinary screen contains the supplied text. The example imports\nthe installed Eio client, owns its switch, uses an explicit socket, closes its\nclient and prints the matched pane ID. It requires an existing daemon and one\npane; absence and ambiguity remain errors.\n\n`Client.wait_for_text` first subscribes, then captures the screen immediately.\nOutput invalidates that observation. Queued Data events are coalesced before\nthe next bounded capture; a queued Gap stops that coalescing. Membership and\noverflow gaps cause fresh graph acquisition and subscription in the same\nconnection binding. A disconnected daemon or stream fails the wait.\n\nSuccess returns a captured screen containing the text. Text that appears and\ndisappears between captures may be missed. Deadlines are checked between\nacquisitions, whose in-flight I/O keeps the client's exchange timeout. A timed\nout wait does not prove that text was absent in the past.\n\nThe wait releases its temporary subscription on every exit. An earlier error or\ncancellation remains the primary result; `Client.cleanup` retains secondary\ncleanup failures. If cleanup fails after a match or during gap recovery, the\nwait fails instead of reporting success or opening another subscription.\n\nUse `Client.subscribe` and `Subscription.next` for future output bytes. Data\nretains every byte, including NUL and invalid UTF-8. Its cursor records a local\nsubscription generation and an observed byte offset. A cursor is neither a\nsnapshot timestamp nor a server-side history position. `poll` only removes a\nqueued event and performs no I/O.\n\n`Subscription.wait_for_bytes` consumes those future events and matches across\nevent boundaries. Its nonempty pattern is limited to 64 KiB. It returns the\nmatch's end cursor, possibly inside the last consumed Data event. A deadline\nleaves the subscription active. A Gap returns `Output.Ended reason`; later\nmatching requires an explicit fresh capture and new subscription.\n\nThe defaults are 1 MiB and 1024 queued events per subscriber, at most 16 active\nsubscribers, and eight total client lanes including command/wait lanes. Reuse\none verified lane per covered session. Admission reserves bytes against the\nshared 32 MiB budget. A full queue produces Gap then End rather than blocking\nanother subscriber or an independent command. Unknown loss has no byte count.\n\nCoverage uses an observed session/window context and revalidates it during\nadmission. Layout or membership changes end continuity conservatively. Detaching\na stream leaves the primary client usable; a daemon replacement retires the\nwhole binding. New coverage always has a new subscription generation.\n\nEio readers belong to the client, use no application callbacks and keep running\nwhen a subscriber stalls. The blocking backend advances all stream lanes during\n`Subscription.next`. Cancellation closes the affected subscription and\npropagates through the backend's cancellation mechanism. Client close releases\nall owned lanes and retains terminal events; it leaves the daemon alive.\n\nWhen a subscription releases the last user of a lane, close waits for its\nowned helper to be reaped. Concurrent Eio subscription closes join that same\ncleanup. Repeated closes preserve the first terminal reason and any cleanup\nfailure; unconsumed terminal events remain readable through `Subscription.poll`.\n\nThe [recovery program](recovery.md) shows how to cancel one operation waiter\nwhile keeping its retained outcome available. Cancelling a subscription closes\nthat subscription; it does not cancel an already admitted command.\n\nNeither interface establishes an atomic capture/stream barrier or reconstructs\nterminal history. An immutable snapshot remains a separate captured value.\n\n## Recover after a gap\n\nClose the ended subscription, capture the graph again, and establish fresh\ncoverage for the observed pane. This recovers future observation. Bytes lost\nbefore the new subscription are still unavailable; a screen capture cannot\nreconstruct their history.\n\nThe [complete recovery program](../examples/native_stream_recovery.ml) creates\na window running `cat`, observes a reply, then splits the window to trigger a\nmembership gap. It handles that gap, removes the extra pane and closes the old\nsubscription. It captures the original pane again, subscribes, and observes\nnew input with a different cursor generation:\n\n\n\n```ocaml\nlet recover_coverage client id (previous : Output.cursor) =\n let fresh = capture_pane client id in\n let after =\n with_subscription client fresh (fun subscription ->\n echo client fresh subscription \"after-gap\")\n in\n if Generation.equal previous.generation after.generation then\n failwith \"new subscription reused the old cursor generation\";\n print_endline \"coverage=fresh; cursor-generation=new; future=after-gap\"\n```\n\nThe source contains the imports, scheduler, cleanup and matching helpers.\n`capture_pane` fails if the pane disappeared. `with_subscription` admits coverage\nbefore `echo` sends input and awaits its reply concurrently. The\nexample never reconnects, reuses an old cursor or retries an uncertain mutation.\nIt removes only panes whose creation returned successfully, leaving any foreign\npanes untouched. Primary exceptions survive secondary cleanup failures.\n\nCreation here uses convenience calls. Cancellation before one returns can leave\na creation whose ID the caller never received. For creation outcomes that must\nsurvive waiter cancellation, retain `Client.submit`'s handle before `Client.await`,\nas shown in [operation recovery](recovery.md). An uncertain outcome does not\nauthorize a retry or deletion of an unproven resource.\n\nAfter [installing from source](getting-started.md), run this walkthrough from\nthe clone. Create a private seed session:\n\n```console\n$ export LIBTMUX_STREAM_RECOVERY_DIR=\"$(mktemp -d -t libtmux-ocaml-stream-recovery.XXXXXX)\"\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_STREAM_RECOVERY_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s stream-demo \\\n -- \"exec cat\"\n```\n\nRun the program against the seed session's literal `$0` ID:\n\n```console\n$ opam exec -- dune exec examples/native_stream_recovery.exe -- \\\n tmux \"$LIBTMUX_STREAM_RECOVERY_DIR/server\" '$0'\n```\n\nExpected output is `gap=membership-changed; history=unavailable`, followed by\n`coverage=fresh; cursor-generation=new; future=after-gap`. The seed session\nremains, with no additional panes or clients. Remove that session and directory:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_STREAM_RECOVERY_DIR/server\" \\\n kill-session \\\n -t '=stream-demo'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_STREAM_RECOVERY_DIR/server\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_STREAM_RECOVERY_DIR\"\n```\n\nThis exercise uses a stable private daemon and a deliberate layout change.\nTransport loss, repeated membership changes or a missing pane can prevent fresh\ncoverage. Preserve those failures and choose the next action explicitly.\n\n[First use](getting-started.md) · [Control and recovery](control.md) ·\n[API](api.md) · [Guide](README.md)\n" + "content": "# Observe output and wait for rendered text\n\nUse [native_watch.ml](../examples/native_watch.ml) for a complete concurrent\nliteral-send, future-byte match and rendered-screen check. Its application owns\nthe Eio scheduler and switch. Use [native_wait.ml](../examples/native_wait.ml) to capture exactly one pane and\nwait until its ordinary screen contains the supplied text. The example imports\nthe installed Eio client, owns its switch, uses an explicit socket, closes its\nclient and prints the matched pane ID. It requires an existing daemon and one\npane; absence and ambiguity remain errors.\n\n`Client.wait_for_text` first subscribes, then captures the screen immediately.\nOutput invalidates that observation. Queued Data events are coalesced before\nthe next bounded capture; a queued Gap stops that coalescing. Membership and\noverflow gaps cause fresh graph acquisition and subscription in the same\nconnection binding. A disconnected daemon or stream fails the wait.\n\nSuccess returns a captured screen containing the text. Text that appears and\ndisappears between captures may be missed. Deadlines are checked between\nacquisitions, whose in-flight I/O keeps the client's exchange timeout. A timed\nout wait does not prove that text was absent in the past.\n\nThe wait releases its temporary subscription on every exit. An earlier error or\ncancellation remains the primary result; `Client.cleanup` retains secondary\ncleanup failures. If cleanup fails after a match or during gap recovery, the\nwait fails instead of reporting success or opening another subscription.\n\nUse `Client.subscribe` and `Subscription.next` for future output bytes. Data\nretains every byte, including NUL and invalid UTF-8. Its cursor records a local\nsubscription generation and an observed byte offset. A cursor is neither a\nsnapshot timestamp nor a server-side history position. `poll` only removes a\nqueued event and performs no I/O.\n\n`Subscription.wait_for_bytes` consumes those future events and matches across\nevent boundaries. Its nonempty pattern is limited to 64 KiB. It returns the\nmatch's end cursor, possibly inside the last consumed Data event. A deadline\nleaves the subscription active. A Gap returns `Output.Ended reason`; later\nmatching requires an explicit fresh capture and new subscription.\n\nThe defaults are 1 MiB and 1024 queued events per subscriber, at most 16 active\nsubscribers, and eight total client lanes including command/wait lanes. Reuse\none verified lane per covered session. Admission reserves bytes against the\nshared 32 MiB budget. A full queue produces Gap then End rather than blocking\nanother subscriber or an independent command. Unknown loss has no byte count.\nThese limits apply together; [plan shared capacity](#plan-shared-capacity)\nbefore combining many observers with captures and reads.\n\nCoverage uses an observed session/window context and revalidates it during\nadmission. Layout or membership changes end continuity conservatively. Detaching\na stream leaves the primary client usable; a daemon replacement retires the\nwhole binding. New coverage always has a new subscription generation.\n\nEio readers belong to the client, use no application callbacks and keep running\nwhen a subscriber stalls. The blocking backend advances all stream lanes during\n`Subscription.next`. Cancellation closes the affected subscription and\npropagates through the backend's cancellation mechanism. Client close releases\nall owned lanes and retains terminal events; it leaves the daemon alive.\n\nWhen a subscription releases the last user of a lane, close waits for its\nowned helper to be reaped. Concurrent Eio subscription closes join that same\ncleanup. Repeated closes preserve the first terminal reason and any cleanup\nfailure; unconsumed terminal events remain readable through `Subscription.poll`.\n\nThe [recovery program](recovery.md) shows how to cancel one operation waiter\nwhile keeping its retained outcome available. Cancelling a subscription closes\nthat subscription; it does not cancel an already admitted command.\n\nNeither interface establishes an atomic capture/stream barrier or reconstructs\nterminal history. An immutable snapshot remains a separate captured value.\n\n## Plan shared capacity\n\nEvery client has its own bounded payload budget and process-slot pool. The\nblocking and Eio clients use the same accounting. An individually valid queue\nor command can still return `Error.Capacity` when another reservation consumes\nthe available headroom:\n\n| Resource | Current limit or reservation |\n| --- | --- |\n| Aggregate client payload | 32 MiB shared by queues, commands and operation scratch space |\n| Admitted commands | 64; encoded payload accounting remains charged until completion or cancellation before writing |\n| Admitted command bytes | 1 MiB shared across admitted operations; submission also temporarily reserves 2 MiB |\n| Client process slots | 8, including the primary control client; each auxiliary slot reserves 128 KiB |\n| Subscriptions | 16 active per client, sharing a verified stream lane per covered session |\n| Subscriber queue | 1 MiB / 1024 events by default; reserve the full configured byte capacity even when empty |\n| Graph or rendered capture | 16 MiB operation scratch reservation plus an 8 MiB control exchange |\n| Option, environment or hook read | 16 MiB scratch reservation plus a temporary process slot |\n\nThe payload budget tracks library reservations. Caller-retained snapshots,\ncompleted operation handles, receipts and exception payloads have their own\nlifetimes, alongside runtime overhead, child-process memory and tmux's\nallocations. See [observation retention](graph.md).\n\nFor example, sixteen default queues on one covered session reserve 16 MiB\nplus that session's auxiliary slot. A subsequent capture or read cannot obtain\nits scratch reservation. Even eight default queues leave insufficient room for\nthe capture's nested control exchange. Closing subscriptions releases their\nreservations; the client remains usable after a capacity error.\n\n| Empty queues, one covered session | Capture | Option read |\n| --- | --- | --- |\n| 16 × 1 MiB | `Capacity` | `Capacity` |\n| 8 × 1 MiB | `Capacity` | Fits the reservation budget |\n| 7 × 1 MiB | Fits the reservation budget | Fits the reservation budget |\n| 16 × 256 KiB | Fits the reservation budget | Fits the reservation budget |\n\nThese examples describe reservation accounting on a fixed one-pane graph.\nAdditional lanes, admitted commands and concurrent work consume more headroom.\nA budget that fits still needs valid targets, available data and a responsive\ndaemon.\n\nThe [complete watcher](../examples/native_watch.ml) chooses its queue explicitly:\n\n\n\n```ocaml\nlet subscription =\n get\n (Client.subscribe ~capacity_bytes:(256 * 1024) ~capacity_events:256 client\n pane)\n```\n\nIts full program includes the client, pane acquisition, result handling, Eio\nswitch and cleanup. Choose a capacity for the burst your application can\nconsume; a smaller queue reaches `Gap Overflow` sooner when its reader stalls.\n\nSlots need their own headroom. The primary client and seven distinct covered\nsessions fill all eight slots, leaving none for a read process or `wait_for`.\nIf an application needs those operations, it can cap distinct covered sessions\nat six while keeping one slot for service, accounting for any waits already\nusing slots. The library currently reserves no slot exclusively for service.\nSeveral panes in the same session can share its stream lane.\n\nReducing queue capacities does not free process slots. Closing the last active\nsubscriber for a covered session releases its lane after owned-helper cleanup.\nA separate client has its own budget and slots, but also its own source\ngeneration: acquire observations on that client before using its targets.\n\n## Recover after a gap\n\nClose the ended subscription, capture the graph again, and establish fresh\ncoverage for the observed pane. This recovers future observation. Bytes lost\nbefore the new subscription are still unavailable; a screen capture cannot\nreconstruct their history.\n\nThe [complete recovery program](../examples/native_stream_recovery.ml) creates\na window running `cat`, observes a reply, then splits the window to trigger a\nmembership gap. It handles that gap, removes the extra pane and closes the old\nsubscription. It captures the original pane again, subscribes, and observes\nnew input with a different cursor generation:\n\n\n\n```ocaml\nlet recover_coverage client id (previous : Output.cursor) =\n let fresh = capture_pane client id in\n let after =\n with_subscription client fresh (fun subscription ->\n echo client fresh subscription \"after-gap\")\n in\n if Generation.equal previous.generation after.generation then\n failwith \"new subscription reused the old cursor generation\";\n print_endline \"coverage=fresh; cursor-generation=new; future=after-gap\"\n```\n\nThe source contains the imports, scheduler, cleanup and matching helpers.\n`capture_pane` fails if the pane disappeared. `with_subscription` admits coverage\nbefore `echo` sends input and awaits its reply concurrently. The\nexample never reconnects, reuses an old cursor or retries an uncertain mutation.\nIt removes only panes whose creation returned successfully, leaving any foreign\npanes untouched. Primary exceptions survive secondary cleanup failures.\n\nCreation here uses convenience calls. Cancellation before one returns can leave\na creation whose ID the caller never received. For creation outcomes that must\nsurvive waiter cancellation, retain `Client.submit`'s handle before `Client.await`,\nas shown in [operation recovery](recovery.md). An uncertain outcome does not\nauthorize a retry or deletion of an unproven resource.\n\nAfter [installing from source](getting-started.md), run this walkthrough from\nthe clone. Create a private seed session:\n\n```console\n$ export LIBTMUX_STREAM_RECOVERY_DIR=\"$(mktemp -d -t libtmux-ocaml-stream-recovery.XXXXXX)\"\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_STREAM_RECOVERY_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s stream-demo \\\n -- \"exec cat\"\n```\n\nRun the program against the seed session's literal `$0` ID:\n\n```console\n$ opam exec -- dune exec examples/native_stream_recovery.exe -- \\\n tmux \"$LIBTMUX_STREAM_RECOVERY_DIR/server\" '$0'\n```\n\nExpected output is `gap=membership-changed; history=unavailable`, followed by\n`coverage=fresh; cursor-generation=new; future=after-gap`. The seed session\nremains, with no additional panes or clients. Remove that session and directory:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_STREAM_RECOVERY_DIR/server\" \\\n kill-session \\\n -t '=stream-demo'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_STREAM_RECOVERY_DIR/server\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_STREAM_RECOVERY_DIR\"\n```\n\nThis exercise uses a stable private daemon and a deliberate layout change.\nTransport loss, repeated membership changes or a missing pane can prevent fresh\ncoverage. Preserve those failures and choose the next action explicitly.\n\n[First use](getting-started.md) · [Control and recovery](control.md) ·\n[API](api.md) · [Guide](README.md)\n" }, { "path": "docs/showcases.md", - "content": "# Run a complete capability example\n\nEach program creates a private tmux workspace, performs one task, verifies the\nresult and closes its clients. Copy the whole file into a Dune project or run\nit from this checkout after [installation](getting-started.md).\n\nThe programs use a minimal tmux configuration that makes their private daemon\nexit when its last client detaches. They accept an optional tmux binary,\nnot a borrowed server socket. Their setup uses the public workspace API; the\ntask uses the client API. The Eio example starts its scheduler after setup and\nsubscribes before sending the bytes it observes.\n\nFor a separate project, save a program as `main.ml` and use these Dune libraries:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-workspace libtmux-unix unix))\n```\n\nThe watch program also needs `libtmux-eio` and `eio_main`. The\n[installation guide](getting-started.md) supplies the project and switch setup.\n\n| Task | Complete program | Expected outcome line |\n| --- | --- | --- |\n| Navigate sessions, shared windows and panes | [Graph](../examples/showcase_graph.ml) | `graph: 2 sessions, 2 windows, 3 links, 2 panes` |\n| Observe future bytes concurrently | [Watch](../examples/showcase_watch.ml) | `observed: changed` |\n| Send literal input and Enter | [Keys](../examples/showcase_send_keys.ml) | `sent: literal: $HOME; #{pane_id}` |\n| Rename a window and retain the old observation | [Rename](../examples/showcase_rename_window.ml) | `renamed: editor-main` |\n| Create a window and recapture its name | [Create](../examples/showcase_create_window.ml) | `created: logs` |\n| Move a window to another session's index | [Move](../examples/showcase_move_window.ml) | `moved: build at 7` |\n| Apply and verify horizontal pane geometry | [Layout](../examples/showcase_layout.ml) | `layout: 3 horizontal panes` |\n\nAll programs print their temporary socket path before the outcome. Run the\ngraph example; it traverses the snapshot after the client and daemon close:\n\n```console\n$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n```\n\nObserve future output with an application-owned Eio switch:\n\n```console\n$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n```\n\nSend a literal string containing shell and tmux format characters:\n\n```console\n$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n```\n\nRename the editor window:\n\n```console\n$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n```\n\nCreate a separate logs window:\n\n```console\n$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n```\n\nMove a build window to index 7 in another session:\n\n```console\n$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n```\n\nSplit a window and apply an even horizontal layout:\n\n```console\n$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n```\n\nThese examples support tmux 3.3a–3.8 on the qualified Linux environment.\nThe native CI job executes their real entry points on 3.3a and 3.8,\nusing a separate installation and Dune project. A nonzero exit, missing exact\noutcome line, leftover directory or surviving owned process fails the run.\n[`showcase.json`](../examples/showcase.json) records the whole files, commands,\nexpected lines, tmux floor, workflow, job and runner.\n\nSending keys confirms tmux accepted input. The rendered-text example observes\nthe resulting screen; it does not wait for an arbitrary application's exit\ncode. A future-byte subscription has no historical capture barrier. See\n[control outcomes](control.md) and [streaming](streaming.md) for those contracts.\n" + "content": "# Run a complete capability example\n\nEach program creates a private tmux workspace, performs one task, verifies the\nresult and closes its clients. Copy the whole file into a Dune project or run\nit from this checkout after [installation](getting-started.md).\n\nThe programs use a minimal tmux configuration that makes their private daemon\nexit when its last client detaches. They accept an optional tmux binary,\nnot a borrowed server socket. Their setup uses the public workspace API; the\ntask uses the client API. The Eio example starts its scheduler after setup and\nsubscribes before sending the bytes it observes.\n\nFor a separate project, save a program as `main.ml` and use these Dune libraries:\n\n```dune\n(executable\n (name main)\n (libraries libtmux libtmux-workspace libtmux-unix unix))\n```\n\nThe watch program also needs `libtmux-eio` and `eio_main`. The\n[installation guide](getting-started.md) supplies the project and switch setup.\n\n| Task | Complete program | Expected outcome line |\n| --- | --- | --- |\n| Start a private server and its first session | [Bootstrap](../examples/showcase_bootstrap.ml) | `bootstrapped: 1 session, 1 window, 1 pane` |\n| Navigate sessions, shared windows and panes | [Graph](../examples/showcase_graph.ml) | `graph: 2 sessions, 2 windows, 3 links, 2 panes` |\n| Observe future bytes concurrently | [Watch](../examples/showcase_watch.ml) | `observed: changed` |\n| Send literal input and Enter | [Keys](../examples/showcase_send_keys.ml) | `sent: literal: $HOME; #{pane_id}` |\n| Rename a window and retain the old observation | [Rename](../examples/showcase_rename_window.ml) | `renamed: editor-main` |\n| Create a window and recapture its name | [Create](../examples/showcase_create_window.ml) | `created: logs` |\n| Move a window to another session's index | [Move](../examples/showcase_move_window.ml) | `moved: build at 7` |\n| Apply and verify horizontal pane geometry | [Layout](../examples/showcase_layout.ml) | `layout: 3 horizontal panes` |\n\nAll programs print their temporary socket path before the outcome. The\n[bootstrap walkthrough](bootstrap.md) explains the missing-endpoint precondition\nand ownership of the resulting client:\n\n```console\n$ opam exec -- dune exec examples/showcase_bootstrap.exe -- tmux\n```\n\nRun the graph example; it traverses the snapshot after the client and daemon\nclose:\n\n```console\n$ opam exec -- dune exec examples/showcase_graph.exe -- tmux\n```\n\nObserve future output with an application-owned Eio switch:\n\n```console\n$ opam exec -- dune exec examples/showcase_watch.exe -- tmux\n```\n\nSend a literal string containing shell and tmux format characters:\n\n```console\n$ opam exec -- dune exec examples/showcase_send_keys.exe -- tmux\n```\n\nRename the editor window:\n\n```console\n$ opam exec -- dune exec examples/showcase_rename_window.exe -- tmux\n```\n\nCreate a separate logs window:\n\n```console\n$ opam exec -- dune exec examples/showcase_create_window.exe -- tmux\n```\n\nMove a build window to index 7 in another session:\n\n```console\n$ opam exec -- dune exec examples/showcase_move_window.exe -- tmux\n```\n\nSplit a window and apply an even horizontal layout:\n\n```console\n$ opam exec -- dune exec examples/showcase_layout.exe -- tmux\n```\n\nThese examples support tmux 3.3a–3.8 on the qualified Linux environment.\nThe native CI job executes their real entry points on 3.3a and 3.8,\nusing a separate installation and Dune project. A nonzero exit, missing exact\noutcome line, leftover directory or surviving owned process fails the run.\n[`showcase.json`](../examples/showcase.json) records the whole files, commands,\nexpected lines, tmux floor, workflow, job and runner.\n\nSending keys confirms tmux accepted input. The rendered-text example observes\nthe resulting screen; it does not wait for an arbitrary application's exit\ncode. A future-byte subscription has no historical capture barrier. See\n[control outcomes](control.md) and [streaming](streaming.md) for those contracts.\n" }, { "path": "docs/packages.md", @@ -42,7 +46,7 @@ }, { "path": "docs/compatibility.md", - "content": "# Compatibility\n\nThe compiler target is **OCaml 5.5.2**, exactly pinned. Older compilers are\noutside this implementation's scope. The development tools are Dune 3.24.2\nand opam 2.6.1.\n\nThe implementation supports Linux and **tmux 3.3a–3.8**, including every\nintermediate release. CI tests only the two endpoints, 3.3a and 3.8. Option and\nformat catalogs cover the entire range. Current evidence covers specific\ncomponents; final suite qualification has a separate acceptance gate. The table\nrecords the exercised fixtures, not every possible cleanup path.\n\n| Component | 3.3a | 3.8 |\n| --- | --- | --- |\n| Owned fixture teardown | PASS | PASS |\n| Exact Boolean pane filters | PASS | PASS |\n| Argument and metadata byte codecs | PASS | PASS |\n| Split control framing and command groups | PASS | PASS |\n| Bound graph capture and ordinary client teardown | PASS | PASS |\n| Replacement-daemon rejection | PASS | PASS |\n| Private-file capture and failed-save callbacks | PASS | PASS |\n| Eio waiter cancellation and retained outcomes | PASS | PASS |\n| Blocking cancellation and bounded drain | PASS | PASS |\n| Command and lane admission limits | PASS | PASS |\n| Environment bytes, scopes and read-process lifecycle | PASS | PASS |\n| Scoped options and built-in hook execution | PASS | PASS |\n| Current client names and detach-request semantics | PASS | PASS |\n| Interactive attachment, cancellation and child exit | PASS | PASS |\n| Versioned format availability and generated APIs | PASS | PASS |\n| Native operation inventory | PASS | PASS |\n| Data/Gap/End, stream limits and recovery | PASS | PASS |\n| Installed stream-gap walkthrough | FAIL | PASS |\n| Rendered waits and future-byte matching | PASS | PASS |\n| Blocking/Eio workspace preconditions and compensation | PASS | PASS |\n| Public workspace bootstrap on fresh/existing daemons | PASS | PASS |\n| Installed workspace CLI, receipts, interruption and output faults | PASS | PASS |\n| Literal workspace guide and owned teardown | PASS | PASS |\n| Final suite qualification | UNVERIFIED | UNVERIFIED |\n\nThe [stream-gap walkthrough](streaming.md#recover-after-a-gap) reported an\nunknown operation outcome after its recovery output on tmux 3.3a in\n[hosted run 42516374421](https://github.com/libtmux/libtmux-ocaml/actions/runs/42516374421).\nA bounded diagnostic reproduced the failure with the owned daemon no longer\nalive. Its exit cause remains unresolved. Earlier component passes do not\nestablish that the affected workload is safe.\n\nThe current matrix uses only OCaml 5.5.2 and tmux 3.3a/3.8. Pure assertions\ncheck version rejection and catalog availability across the supported range.\nIntermediate releases remain supported without separate runtime CI cells;\nearlier runtime results remain evidence for their tested workloads. Development\ntmux 3.8a does not replace the published 3.8 cell. PID-acquisition races and\nmalformed replies after writing pass deterministic fault checks with real Linux\nchild processes. Cancellation at each capture transfer step and unresolved-buffer\nreceipts also pass on the\nrecorded release fixtures. Ready I/O still checks its deadline; busy pipes\ncannot bypass the timeout. These results remain evidence for those tested cases.\nMCP integration is outside this port's scope.\n\nOwned-child cleanup sends TERM, allows a 200 ms cooperative grace, then sends\nKILL if necessary and reaps the child. The policy covers control, read-process\nand terminal helpers; it never sends these signals to the daemon. Eio waits\nallow other fibers to progress. The grace applies per helper, not to the whole\nclient, and cannot bound uninterruptible kernel work or scratch-file completion.\nCaller-owned `Cleanup` reports retain secondary process and descriptor failures\nwithout replacing native cancellation or the primary exception. Independent\nreleases are still attempted. A failed KILL only permits a nonblocking exit\ncheck; an unconfirmed exit is reported as `Unreaped_child`. Concurrent Eio\nclient closes await one retained teardown result. The Eio runtime owns its pipe\nends explicitly and joins their readiness waiters before closing them. Process\nI/O rechecks closure after yielding, preventing access to reused descriptors.\nA private Eio process owner keeps its reaper alive through cancellation and\nswitch release; callers join its completed teardown. Shutdown regressions cover\nboth Eio's Linux and POSIX backends on Linux. This does not add platform support.\nNew commands and subscriptions are rejected as soon as client close starts.\nConnection and subscription teardown also retain one completion: overlapping\nEio callers join it, and later calls preserve its failure.\n\nThe shutdown regression checks stopped helpers and helpers that survive TERM\nand input closure, while keeping the parent and its Eio switch alive to verify\nreaping. These are injected helper failures, not naturally reproduced hangs in\na supported tmux daemon. Blocking readiness uses `poll`; ready reads, ready\nwrites and deadlines work above descriptor 1100. Terminal attachment and\ncancellation also have high-descriptor evidence on the previously tested\n3.3/3.3a/3.4/3.8 fixtures. See the\n[architecture's cleanup boundary](dev/adr/0001-native-ocaml-suite.md#share-protocol-semantics-while-preserving-each-runtimes-cancellation).\n\nThe near-limit [mixed workload](benchmarking.md#mixed-commands-stream-pressure-and-membership-changes)\nreproduces a tmux 3.4 daemon crash in the control-client detach notification\npath. The exact 3.8 source includes the upstream null-state guard. An earlier\n3.3 observer-command failure remains unattributed. Passing ordinary client\nchecks does not close either mixed-workload failure.\n\nThe I/O packages require Linux pidfds, the same PID namespace as the daemon,\nand shared local scratch storage. A socket pathname does not prove those\nconditions. Each connection has its own generation; a replacement daemon never\ninherits old targets. Closing a client releases its own processes and leaves\nthe daemon running.\n\nThe blocking client accepts a scoped `Cancellation` token that another domain\nor systhread can cancel. It drains admitted work before raising\n`Cancellation.Cancelled`. The drain has at most one exchange timeout from\ndetection; subsequent owned-child cleanup has its separate cooperative grace.\nThe operation handle retains success, failure or uncertainty. Eio cancellation\nreleases the waiter immediately while a client-owned fiber drains the work.\nLocal scratch I/O must finish in either case; Eio performs it on a system\nthread. Filesystem failures have a distinct error from transport disconnects.\n\nPane PIDs and client terminal heights can be absent. The model exposes these as\noptions; a control client without a started terminal has no reported height.\ntmux itself sanitizes names on older releases and rejects some names on newer\nreleases. Captures preserve the observed value rather than reconstructing the\nargument originally submitted by another client.\n\nControl commands use ASCII escapes for non-ASCII bytes because tmux 3.3's\ncommand-string lexer can confuse a signed `0xff` byte with EOF. Metadata uses\ntmux's `q` format modifier and preserves physical newlines. A fixed read probe\ndetects the additional visual escaping used by tmux 3.4 before decoding it.\nControl clients must request UTF-8 mode so locale-dependent sanitization cannot\nalter captured bytes.\n\nAn end guard acknowledges a command. Completion requires the operation's\npostcondition or a following marker on its lane. A control client may exit\nwith status 1 after an earlier command failed, even when later commands and\nshutdown succeeded. Tests retain that distinction.\n\nThe optional JSON codec supports the scalar pane registry and Boolean nodes\nfrom Java's [`libtmux.filter/1`](query-interchange.md) at revision\n`e8a39689d8d60968ac978a1dd2a89c6112333896`. Both implementations agree on 66\ncaptured-value cases and read each other's encoded queries. Numeric operands\nuse signed 32-bit bounds. Regex, relationship documents, numeric membership\nand native extension fields remain unsupported in this wire schema.\nThe [conformance procedure](../test/conformance/README.md) rebuilds the peers\nfrom identified inputs and retains both codec directions and artifact digests.\nIt is a separate qualification command, not part of ordinary hosted OCaml CI.\n\nReproduce native checks with the commands in\n[CONTRIBUTING.md](../.github/CONTRIBUTING.md). The fixture builders use official\nrelease archives and retain archive and binary digests under `scratch/tmux/`.\n\nEnvironment reads use a bounded read-only process on the same daemon. The\nclient checks its reported PID and the original pidfd after collecting the\ncomplete response. Values may contain control-marker text without entering\nthe control parser. Replacement, malformed data, truncated output and capacity\nfailures never become a successful empty table. This route does not execute\nmutations or reconnect the primary lane.\n\nScoped options preserve scalar types, sparse array indexes and local versus\ninherited entries. Bulk inherited enumeration follows tmux and includes only\nbuilt-ins; `read_option` resolves a named inherited user option. Descriptors are\nrecorded for every supported release in the [option catalog](options.md). tmux\nfills the lowest unused indexes when appending array elements.\n\nHook commands keep names and arguments separate. Built-in hook arrays report\nsynchronous failures; earlier effects remain after a later command fails. Named\n`@` hooks can be configured, read and removed, but `run_hook` rejects them because\ntmux may hide parse failures in the server log. Hooks that print arbitrary output\nremain outside the supported control transport contract.\n\nCaptured client names belong to a connection generation but may be reused within\nit. Operations address the client currently bearing that name. A detach request\nconfirms command processing, not peer exit; callers need separate exit evidence.\nSwitching an existing client does not create a new terminal.\n\n`Terminal.attach_current` opens an interactive terminal against an explicit\nendpoint and session ID. This separate utility is unbound: an ID can refer to a\ndifferent daemon if the endpoint changes. It accepts no captured target and\nnever retries or starts a daemon. Both backends wait for the terminal client to\nexit and reap it on cancellation. Supplied terminal streams remain caller-owned.\n\nThe generated [format catalog](formats.md) records exact-release availability\nand callback contexts. Local `Formats.lookup` distinguishes captured values,\nmissing values, unacquired fields and fields unsupported by that release.\nIt does not perform arbitrary format acquisition. Generated\n[operation conveniences](operations.md) share the same command constructors\nbetween Unix and Eio; the installed-consumer test exercises both adapters.\n" + "content": "# Compatibility\n\nThe compiler target is **OCaml 5.5.2**, exactly pinned. Older compilers are\noutside this implementation's scope. The development tools are Dune 3.24.2\nand opam 2.6.1.\n\nThe implementation supports Linux and **tmux 3.3a–3.8**, including every\nintermediate release. CI tests only the two endpoints, 3.3a and 3.8. Option and\nformat catalogs cover the entire range. Current evidence covers specific\ncomponents; final suite qualification has a separate acceptance gate. The table\nrecords the exercised fixtures, not every possible cleanup path.\n\n| Component | 3.3a | 3.8 |\n| --- | --- | --- |\n| Owned fixture teardown | PASS | PASS |\n| Exact Boolean pane filters | PASS | PASS |\n| Argument and metadata byte codecs | PASS | PASS |\n| Split control framing and command groups | PASS | PASS |\n| Bound graph capture and ordinary client teardown | PASS | PASS |\n| Replacement-daemon rejection | PASS | PASS |\n| Private-file capture and failed-save callbacks | PASS | PASS |\n| Eio waiter cancellation and retained outcomes | PASS | PASS |\n| Blocking cancellation and bounded drain | PASS | PASS |\n| Command and lane admission limits | PASS | PASS |\n| Environment bytes, scopes and read-process lifecycle | PASS | PASS |\n| Scoped options and built-in hook execution | PASS | PASS |\n| Current client names and detach-request semantics | PASS | PASS |\n| Interactive attachment, cancellation and child exit | PASS | PASS |\n| Versioned format availability and generated APIs | PASS | PASS |\n| Native operation inventory | PASS | PASS |\n| Data/Gap/End, stream limits and recovery | PASS | PASS |\n| Installed stream-gap walkthrough | FAIL | FAIL |\n| Rendered waits and future-byte matching | PASS | PASS |\n| Blocking/Eio workspace preconditions and compensation | PASS | PASS |\n| Public workspace bootstrap on fresh/existing daemons | PASS | PASS |\n| Installed workspace CLI, receipts, interruption and output faults | PASS | PASS |\n| Literal workspace guide and owned teardown | PASS | PASS |\n| Final suite qualification | UNVERIFIED | UNVERIFIED |\n\nThe [stream-gap walkthrough](streaming.md#recover-after-a-gap) reported an\nunknown operation outcome after its recovery output on tmux 3.3a in\n[hosted run 42516374421](https://github.com/libtmux/libtmux-ocaml/actions/runs/42516374421).\nA bounded diagnostic reproduced the failure with the owned daemon no longer\nalive. Its exit cause remains unresolved. Earlier component passes do not\nestablish that the affected workload is safe.\n\nOn tmux 3.8, the same walkthrough exited with status 2 in\n[hosted run 42533145236](https://github.com/libtmux/libtmux-ocaml/actions/runs/42533145236).\nIts harness captured but did not include the program's output in the raised\nexception, so the failure's cause is unestablished. That run passed the ordinary\nnative component suite before failing the installed example. Keep this result\nseparate from the earlier 3.3a daemon-exit evidence; it does not prove the same\ncause. The example runner now includes captured output and the original cause\nwhen a program fails or times out. Later passing runs do not close either\nfinding.\n\nThe current matrix uses only OCaml 5.5.2 and tmux 3.3a/3.8. Pure assertions\ncheck version rejection and catalog availability across the supported range.\nIntermediate releases remain supported without separate runtime CI cells;\nearlier runtime results remain evidence for their tested workloads. Development\ntmux 3.8a does not replace the published 3.8 cell. PID-acquisition races and\nmalformed replies after writing pass deterministic fault checks with real Linux\nchild processes. Cancellation at each capture transfer step and unresolved-buffer\nreceipts also pass on the\nrecorded release fixtures. Ready I/O still checks its deadline; busy pipes\ncannot bypass the timeout. These results remain evidence for those tested cases.\nMCP integration is outside this port's scope.\n\nOwned-child cleanup sends TERM, allows a 200 ms cooperative grace, then sends\nKILL if necessary and reaps the child. The policy covers control, read-process\nand terminal helpers; it never sends these signals to the daemon. Eio waits\nallow other fibers to progress. The grace applies per helper, not to the whole\nclient, and cannot bound uninterruptible kernel work or scratch-file completion.\nCaller-owned `Cleanup` reports retain secondary process and descriptor failures\nwithout replacing native cancellation or the primary exception. Independent\nreleases are still attempted. A failed KILL only permits a nonblocking exit\ncheck; an unconfirmed exit is reported as `Unreaped_child`. Concurrent Eio\nclient closes await one retained teardown result. The Eio runtime owns its pipe\nends explicitly and joins their readiness waiters before closing them. Process\nI/O rechecks closure after yielding, preventing access to reused descriptors.\nA private Eio process owner keeps its reaper alive through cancellation and\nswitch release; callers join its completed teardown. Shutdown regressions cover\nboth Eio's Linux and POSIX backends on Linux. This does not add platform support.\nNew commands and subscriptions are rejected as soon as client close starts.\nConnection and subscription teardown also retain one completion: overlapping\nEio callers join it, and later calls preserve its failure.\n\nThe shutdown regression checks stopped helpers and helpers that survive TERM\nand input closure, while keeping the parent and its Eio switch alive to verify\nreaping. These are injected helper failures, not naturally reproduced hangs in\na supported tmux daemon. Blocking readiness uses `poll`; ready reads, ready\nwrites and deadlines work above descriptor 1100. Terminal attachment and\ncancellation also have high-descriptor evidence on the previously tested\n3.3/3.3a/3.4/3.8 fixtures. See the\n[architecture's cleanup boundary](dev/adr/0001-native-ocaml-suite.md#share-protocol-semantics-while-preserving-each-runtimes-cancellation).\n\nThe near-limit [mixed workload](benchmarking.md#mixed-commands-stream-pressure-and-membership-changes)\nreproduces a tmux 3.4 daemon crash in the control-client detach notification\npath. The exact 3.8 source includes the upstream null-state guard. An earlier\n3.3 observer-command failure remains unattributed. Passing ordinary client\nchecks does not close either mixed-workload failure.\n\nThe I/O packages require Linux pidfds, the same PID namespace as the daemon,\nand shared local scratch storage. A socket pathname does not prove those\nconditions. Each connection has its own generation; a replacement daemon never\ninherits old targets. Closing a client releases its own processes and leaves\nthe daemon running.\n\nThe blocking client accepts a scoped `Cancellation` token that another domain\nor systhread can cancel. It drains admitted work before raising\n`Cancellation.Cancelled`. The drain has at most one exchange timeout from\ndetection; subsequent owned-child cleanup has its separate cooperative grace.\nThe operation handle retains success, failure or uncertainty. Eio cancellation\nreleases the waiter immediately while a client-owned fiber drains the work.\nLocal scratch I/O must finish in either case; Eio performs it on a system\nthread. Filesystem failures have a distinct error from transport disconnects.\n\nPane PIDs and client terminal heights can be absent. The model exposes these as\noptions; a control client without a started terminal has no reported height.\ntmux itself sanitizes names on older releases and rejects some names on newer\nreleases. Captures preserve the observed value rather than reconstructing the\nargument originally submitted by another client.\n\nControl commands use ASCII escapes for non-ASCII bytes because tmux 3.3's\ncommand-string lexer can confuse a signed `0xff` byte with EOF. Metadata uses\ntmux's `q` format modifier and preserves physical newlines. A fixed read probe\ndetects the additional visual escaping used by tmux 3.4 before decoding it.\nControl clients must request UTF-8 mode so locale-dependent sanitization cannot\nalter captured bytes.\n\nAn end guard acknowledges a command. Completion requires the operation's\npostcondition or a following marker on its lane. A control client may exit\nwith status 1 after an earlier command failed, even when later commands and\nshutdown succeeded. Tests retain that distinction.\n\nThe optional JSON codec supports the scalar pane registry and Boolean nodes\nfrom Java's [`libtmux.filter/1`](query-interchange.md) at revision\n`e8a39689d8d60968ac978a1dd2a89c6112333896`. Both implementations agree on 66\ncaptured-value cases and read each other's encoded queries. Numeric operands\nuse signed 32-bit bounds. Regex, relationship documents, numeric membership\nand native extension fields remain unsupported in this wire schema.\nThe [conformance procedure](../test/conformance/README.md) rebuilds the peers\nfrom identified inputs and retains both codec directions and artifact digests.\nIt is a separate qualification command, not part of ordinary hosted OCaml CI.\n\nReproduce native checks with the commands in\n[CONTRIBUTING.md](../.github/CONTRIBUTING.md). The fixture builders use official\nrelease archives and retain archive and binary digests under `scratch/tmux/`.\n\nEnvironment reads use a bounded read-only process on the same daemon. The\nclient checks its reported PID and the original pidfd after collecting the\ncomplete response. Values may contain control-marker text without entering\nthe control parser. Replacement, malformed data, truncated output and capacity\nfailures never become a successful empty table. This route does not execute\nmutations or reconnect the primary lane.\n\nScoped options preserve scalar types, sparse array indexes and local versus\ninherited entries. Bulk inherited enumeration follows tmux and includes only\nbuilt-ins; `read_option` resolves a named inherited user option. Descriptors are\nrecorded for every supported release in the [option catalog](options.md). tmux\nfills the lowest unused indexes when appending array elements.\n\nHook commands keep names and arguments separate. Built-in hook arrays report\nsynchronous failures; earlier effects remain after a later command fails. Named\n`@` hooks can be configured, read and removed, but `run_hook` rejects them because\ntmux may hide parse failures in the server log. Hooks that print arbitrary output\nremain outside the supported control transport contract.\n\nCaptured client names belong to a connection generation but may be reused within\nit. Operations address the client currently bearing that name. A detach request\nconfirms command processing, not peer exit; callers need separate exit evidence.\nSwitching an existing client does not create a new terminal.\n\n`Terminal.attach_current` opens an interactive terminal against an explicit\nendpoint and session ID. This separate utility is unbound: an ID can refer to a\ndifferent daemon if the endpoint changes. It accepts no captured target and\nnever retries or starts a daemon. Both backends wait for the terminal client to\nexit and reap it on cancellation. Supplied terminal streams remain caller-owned.\n\nThe generated [format catalog](formats.md) records exact-release availability\nand callback contexts. Local `Formats.lookup` distinguishes captured values,\nmissing values, unacquired fields and fields unsupported by that release.\nIt does not perform arbitrary format acquisition. Generated\n[operation conveniences](operations.md) share the same command constructors\nbetween Unix and Eio; the installed-consumer test exercises both adapters.\n" }, { "path": "docs/testing.md", @@ -58,7 +62,7 @@ }, { "path": "docs/workspaces.md", - "content": "# Create a workspace from JSON\n\n`tmux-workspace` validates a JSON configuration, previews an advisory plan, and\napplies a fresh plan to an explicit socket. Install it through the\n[source installation](../README.md#install-from-source); `opam install .`\nincludes the CLI. Run this guide from the repository root.\n\n`check` performs no tmux I/O. `plan` observes the endpoint and never starts a\ndaemon. `apply` rereads the document, checks current state, then executes ordered\nactions. A preview is not a transaction or an executable target.\n\n## Define the layout\n\nThe shipped [project.json](../examples/workspace/project.json) creates an\n`editor` window with two panes and a `logs` window with one. Each pane runs\n`/bin/cat -u` directly, keeping the demonstration alive without a shell command.\n\n\n\n```json\n{\n \"schema\": \"libtmux.workspace/1\",\n \"session\": \"ocaml-project\",\n \"cwd\": \".\",\n \"width\": 120,\n \"height\": 40,\n \"environment\": {\"PROJECT\": \"ocaml\"},\n \"options\": [{\"name\": \"@project\", \"kind\": \"text\", \"value\": \"ocaml\"}],\n \"windows\": [\n {\n \"name\": \"editor\",\n \"layout\": \"even-horizontal\",\n \"panes\": [\n {\"exec\": [\"/bin/cat\", \"-u\"]},\n {\"exec\": [\"/bin/cat\", \"-u\"], \"direction\": \"right\"}\n ]\n },\n {\"name\": \"logs\", \"panes\": [{\"exec\": [\"/bin/cat\", \"-u\"]}]}\n ]\n}\n```\n\nRelative directories resolve against the JSON file's directory. Environment\nvalues merge from session to window to pane. `exec` supplies literal argv;\n`shell` explicitly requests shell interpretation. They are mutually exclusive.\nOmitting both uses tmux's default command. `startup` entries send literal text\nfollowed by Enter; they do not wait for a command to finish.\n\n## Validate, preview and apply\n\nThis walkthrough uses a private server and an empty tmux configuration. The\n`seed` session keeps the server alive while the CLI creates the project.\nInherited `TMUX` and `TMUX_PANE` do not select the endpoint.\n\n\n\n```console\n$ export LIBTMUX_WORKSPACE_DIR=\"$(mktemp -d -t libtmux-ocaml-workspace.XXXXXX)\"\n```\n\nCopying the file also makes its working directory the private directory:\n\n```console\n$ cp examples/workspace/project.json \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\n```console\n$ opam exec -- tmux-workspace check \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nExpected output: `Valid workspace \"ocaml-project\": 2 windows, 3 panes`.\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s seed \\\n -- \"exec cat\"\n```\n\n```console\n$ opam exec -- tmux-workspace plan \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nThe plan lists session creation, settings, the split and layout, and the logs\nwindow. Applying it requires the original configuration:\n\n```console\n$ opam exec -- tmux-workspace apply \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n --json \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n > \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\nThe receipt uses [`libtmux.workspace-receipt/1`](../json/libtmux_json.mli).\nOn success, `status` is\n`succeeded`; `failed`, `uncertain` and `skipped` are empty. Each creation records\nthe IDs returned by tmux. Check the resulting windows independently:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n list-windows \\\n -t '=ocaml-project' \\\n -F '#{window_name}:#{window_panes}'\n```\n\nExpected output is `editor:2` followed by `logs:1`.\n\nRemove only the sessions this walkthrough created:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=ocaml-project'\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=seed'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_WORKSPACE_DIR\"\n```\n\n\n\nWithout `--require-existing`, `apply` can start a missing endpoint by creating\nthe requested session. That server uses the normal tmux configuration. Closing\nthe CLI's client leaves the server running; its appearance does not grant\ndaemon ownership. `plan` on a missing endpoint checks the local tmux version\nand returns a bootstrap plan without creating the socket.\n\n## Collisions and recovery\n\nAn existing session name fails with exit 4 by default. `--append` adds new\nwindows to that session and rejects window-name collisions. Append never\nchanges the existing session's options or environment; omit those session\nsettings from an append document. It preserves existing panes.\n\nUse `--json` on `check` or `plan` to obtain `document_digest`, then pass that\nvalue through `--expect-document` on apply. A changed document fails before\nendpoint I/O. The digest does not lock tmux state. Each apply builds and\nrechecks its own plan on the current connection generation.\n\nOn failure or SIGINT, inspect the receipt before deciding what to do next.\nDefault compensation kills only panes whose creation the journal proved, in\nreverse order. A foreign pane moved into a new window remains. `--keep-partial`\nretains proven creations instead. Cleanup failures and creations whose IDs\ncould not be bound remain explicit. Never rerun an uncertain mutation solely\nbecause its caller was interrupted.\n\nThe [native recovery example](recovery.md) demonstrates the cancellation,\ninspection and fresh-postcondition sequence for a retained operation. Workspace\ncallers use the same discipline with `Workspace.inspect`: read the available\njournal, identify proven effects, then choose compensation or another explicit\naction. A saved JSON receipt describes observations; it is not an executable\ntarget or a transaction to replay.\n\nThe execution journal is retained in process memory. `await` initiates steps\nonly once for a particular execution handle; a new handle or CLI invocation\nstarts a new execution. Operation IDs correlate receipts and do not suppress\nduplicates. Neither a retained handle nor an exported receipt is a durable\nwrite-ahead log. Compensation cannot undo files, network requests or other\neffects of the programs launched in panes.\n\n| Exit | Meaning |\n| --- | --- |\n| 0 | Validation, planning or apply succeeded |\n| 2 | Invalid arguments or document |\n| 3 | Required endpoint missing |\n| 4 | Collision, changed document or stale plan |\n| 5 | Failed, partial or uncertain apply; inspect the receipt |\n| 6 | Transport, capability or result-delivery failure |\n| 130 | SIGINT; the available journal is emitted within the cleanup bound |\n\nSIGINT does not undo admitted commands. Receipt output is bounded; a blocked or\nbroken stdout cannot produce a successful exit. Forced process termination\ncannot promise a delivered receipt. Expected failures are distinct from Eio\ncancellation in the native API, which propagates cancellation to the caller.\n\n## Bounds and native callers\n\nDocuments use UTF-8 JSON with a 64 KiB input bound and depth limit 32. Unknown\nand duplicate properties fail. Configurations allow at most 64 windows and 256\npanes; a plan allows at most 4096 actions. Plans and receipts have a 4 MiB output\nbound. Plans omit environment values, option values and startup text. They can\nstill contain command arguments and paths; treat them as application data.\n\nFor native code, use `Libtmux_json.Workspace.of_string`,\n`Libtmux_workspace.Plan.make`, and the backend's `Workspace.submit` or\n`Workspace.submit_bootstrap`. `inspect` reads the retained journal locally;\n`await` performs I/O. The application owns the Eio switch and scheduler.\nSee the [API reference](api.md), [control outcomes](control.md) and\n[compatibility evidence](compatibility.md).\n" + "content": "# Create a workspace from JSON\n\n`tmux-workspace` validates a JSON configuration, previews an advisory plan, and\napplies a fresh plan to an explicit socket. Install it through the\n[source installation](../README.md#install-from-source); `opam install .`\nincludes the CLI. Run this guide from the repository root.\n\n`check` performs no tmux I/O. `plan` observes the endpoint and never starts a\ndaemon. `apply` rereads the document, checks current state, then executes ordered\nactions. A preview is not a transaction or an executable target.\n\n## Define the layout\n\nThe shipped [project.json](../examples/workspace/project.json) creates an\n`editor` window with two panes and a `logs` window with one. Each pane runs\n`/bin/cat -u` directly, keeping the demonstration alive without a shell command.\n\n\n\n```json\n{\n \"schema\": \"libtmux.workspace/1\",\n \"session\": \"ocaml-project\",\n \"cwd\": \".\",\n \"width\": 120,\n \"height\": 40,\n \"environment\": {\"PROJECT\": \"ocaml\"},\n \"options\": [{\"name\": \"@project\", \"kind\": \"text\", \"value\": \"ocaml\"}],\n \"windows\": [\n {\n \"name\": \"editor\",\n \"layout\": \"even-horizontal\",\n \"panes\": [\n {\"exec\": [\"/bin/cat\", \"-u\"]},\n {\"exec\": [\"/bin/cat\", \"-u\"], \"direction\": \"right\"}\n ]\n },\n {\"name\": \"logs\", \"panes\": [{\"exec\": [\"/bin/cat\", \"-u\"]}]}\n ]\n}\n```\n\nRelative directories resolve against the JSON file's directory. Environment\nvalues merge from session to window to pane. `exec` supplies literal argv;\n`shell` explicitly requests shell interpretation. They are mutually exclusive.\nOmitting both uses tmux's default command. `startup` entries send literal text\nfollowed by Enter; they do not wait for a command to finish.\n\n## Validate, preview and apply\n\nThis walkthrough uses a private server and an empty tmux configuration. The\n`seed` session keeps the server alive while the CLI creates the project.\nInherited `TMUX` and `TMUX_PANE` do not select the endpoint.\n\n\n\n```console\n$ export LIBTMUX_WORKSPACE_DIR=\"$(mktemp -d -t libtmux-ocaml-workspace.XXXXXX)\"\n```\n\nCopying the file also makes its working directory the private directory:\n\n```console\n$ cp examples/workspace/project.json \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\n```console\n$ opam exec -- tmux-workspace check \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nExpected output: `Valid workspace \"ocaml-project\": 2 windows, 3 panes`.\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n -f /dev/null \\\n new-session \\\n -d \\\n -s seed \\\n -- \"exec cat\"\n```\n\n```console\n$ opam exec -- tmux-workspace plan \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\"\n```\n\nThe plan lists session creation, settings, the split and layout, and the logs\nwindow. Applying it requires the original configuration:\n\n```console\n$ opam exec -- tmux-workspace apply \\\n --socket \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n --require-existing \\\n --json \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n > \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\nThe receipt uses [`libtmux.workspace-receipt/1`](../json/libtmux_json.mli).\nOn success, `status` is\n`succeeded`; `failed`, `uncertain` and `skipped` are empty. Each creation records\nthe IDs returned by tmux. Check the resulting windows independently:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n list-windows \\\n -t '=ocaml-project' \\\n -F '#{window_name}:#{window_panes}'\n```\n\nExpected output is `editor:2` followed by `logs:1`.\n\nRemove only the sessions this walkthrough created:\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=ocaml-project'\n```\n\n```console\n$ env -u TMUX -u TMUX_PANE tmux \\\n -S \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n kill-session \\\n -t '=seed'\n```\n\n```console\n$ rm -f -- \"$LIBTMUX_WORKSPACE_DIR/server\" \\\n \"$LIBTMUX_WORKSPACE_DIR/project.json\" \\\n \"$LIBTMUX_WORKSPACE_DIR/receipt.json\"\n```\n\n```console\n$ rmdir \"$LIBTMUX_WORKSPACE_DIR\"\n```\n\n\n\nWithout `--require-existing`, `apply` can start a missing endpoint by creating\nthe requested session. That server uses the normal tmux configuration. Closing\nthe CLI's client leaves the server running; its appearance does not grant\ndaemon ownership. `plan` on a missing endpoint checks the local tmux version\nand returns a bootstrap plan without creating the socket.\n\n## Collisions and recovery\n\nAn existing session name fails with exit 4 by default. `--append` adds new\nwindows to that session and rejects window-name collisions. Append never\nchanges the existing session's options or environment; omit those session\nsettings from an append document. It preserves existing panes.\n\nUse `--json` on `check` or `plan` to obtain `document_digest`, then pass that\nvalue through `--expect-document` on apply. A changed document fails before\nendpoint I/O. The digest does not lock tmux state. Each apply builds and\nrechecks its own plan on the current connection generation.\n\nOn failure or SIGINT, inspect the receipt before deciding what to do next.\nDefault compensation kills only panes whose creation the journal proved, in\nreverse order. A foreign pane moved into a new window remains. `--keep-partial`\nretains proven creations instead. Cleanup failures and creations whose IDs\ncould not be bound remain explicit. Never rerun an uncertain mutation solely\nbecause its caller was interrupted.\n\nThe [native recovery example](recovery.md) demonstrates the cancellation,\ninspection and fresh-postcondition sequence for a retained operation. Workspace\ncallers use the same discipline with `Workspace.inspect`: read the available\njournal, identify proven effects, then choose compensation or another explicit\naction. A saved JSON receipt describes observations; it is not an executable\ntarget or a transaction to replay.\n\nThe execution journal is retained in process memory. `await` initiates steps\nonly once for a particular execution handle; a new handle or CLI invocation\nstarts a new execution. Operation IDs correlate receipts and do not suppress\nduplicates. Neither a retained handle nor an exported receipt is a durable\nwrite-ahead log. Compensation cannot undo files, network requests or other\neffects of the programs launched in panes.\n\n| Exit | Meaning |\n| --- | --- |\n| 0 | Validation, planning or apply succeeded |\n| 2 | Invalid arguments or document |\n| 3 | Required endpoint missing |\n| 4 | Collision, changed document or stale plan |\n| 5 | Failed, partial or uncertain apply; inspect the receipt |\n| 6 | Transport, capability or result-delivery failure |\n| 130 | SIGINT; the available journal is emitted within the cleanup bound |\n\nSIGINT does not undo admitted commands. Receipt output is bounded; a blocked or\nbroken stdout cannot produce a successful exit. Forced process termination\ncannot promise a delivered receipt. Expected failures are distinct from Eio\ncancellation in the native API, which propagates cancellation to the caller.\n\n## Bounds and native callers\n\nDocuments use UTF-8 JSON with a 64 KiB input bound and depth limit 32. Unknown\nand duplicate properties fail. Configurations allow at most 64 windows and 256\npanes; a plan allows at most 4096 actions. Plans and receipts have a 4 MiB output\nbound. Plans omit environment values, option values and startup text. They can\nstill contain command arguments and paths; treat them as application data.\n\nFor native code, use `Libtmux_json.Workspace.of_string`,\n`Libtmux_workspace.Plan.make`, and the backend's `Workspace.submit` or\n`Workspace.submit_bootstrap`. `inspect` reads the retained journal locally;\n`await` performs I/O. The application owns the Eio switch and scheduler.\nThe [native bootstrap walkthrough](bootstrap.md) starts one private session\nwithout a JSON dependency and captures its graph through the resulting client.\nSee the [API reference](api.md), [control outcomes](control.md) and\n[compatibility evidence](compatibility.md).\n" } ] } diff --git a/site/src/data/tmux-usage/ocaml.json b/site/src/data/tmux-usage/ocaml.json index 1eff09caf..560222c10 100644 --- a/site/src/data/tmux-usage/ocaml.json +++ b/site/src/data/tmux-usage/ocaml.json @@ -94,7 +94,7 @@ ], "port": "ocaml", "repo": "libtmux/libtmux-ocaml", - "revision": "3c0c07a43d4b0930f3a7f9c8d0239588675bb54e", + "revision": "6b814a3ae27b6a700b5d45ff1ef654565a1f1605", "schemaVersion": 1, "symbols": { "Libtmux_eio.Client.break_pane": [ diff --git a/site/src/lib/port-documentation.ts b/site/src/lib/port-documentation.ts index e0f93cf9f..69a1dc919 100644 --- a/site/src/lib/port-documentation.ts +++ b/site/src/lib/port-documentation.ts @@ -74,7 +74,7 @@ const PORT_DOCUMENTATION: Readonly> = { description: 'Validate, preview and apply JSON workspaces with retained execution receipts.' }, ], sourceGuides: [ - ...['getting-started', 'graph', 'queries', 'query-interchange', 'control', 'recovery', 'streaming', 'showcases', 'packages', 'compatibility', 'testing', 'benchmarking', 'status'].map((name, index) => + ...['getting-started', 'bootstrap', 'graph', 'queries', 'query-interchange', 'control', 'recovery', 'streaming', 'showcases', 'packages', 'compatibility', 'testing', 'benchmarking', 'status'].map((name, index) => guide(`docs/${name}.md`, `guides/${name}`, 'core', { aliases: [], sidebar: { group: 'Guides', order: index + 1 } })), guide('docs/workspaces.md', 'workspace/source-guide', 'workspace', { title: 'Workspace guide', product: 'workspace', package: 'workspace', aliases: [] }), ], diff --git a/site/test/ocaml.test.ts b/site/test/ocaml.test.ts index 8a4816120..b923b912e 100644 --- a/site/test/ocaml.test.ts +++ b/site/test/ocaml.test.ts @@ -47,3 +47,15 @@ it('places live server connections under Server and captured tmux clients under expect(nav.placement['Libtmux_eio.Client']).toBe('server') expect(nav.placement['Libtmux.Client_observation']).toBe('client') }) + +it('attaches the tested bootstrap program to its workspace operations', () => { + const model = API_MODELS.ocaml! + const sourceUrl = `https://github.com/libtmux/libtmux-ocaml/blob/${model.revision}/examples/showcase_bootstrap.ml` + const targets = ['Libtmux_unix.Workspace.submit_bootstrap', + 'Libtmux_unix.Workspace.await', 'Libtmux_unix.Workspace.client'] + for (const id of targets) { + const symbol = model.symbols.find((entry) => entry.id === id)! + const example = symbol.doc?.examples?.find((entry) => entry.lang === 'ocaml' && entry.sourceUrl === sourceUrl) + expect(example, id).toBeDefined() + } +}) From a250f81cb9dc8648b559cd0e4bf184eb60e922ba Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 8 Nov 2026 19:44:12 -0600 Subject: [PATCH 24/26] test(site[pickers]) Select canonical product destinations why: Source-derived assertions counted duplicate alias destinations and selected a source guide instead of an existing Guides overview. what: - Prefer canonical routes before aliases for ordinary page counterparts - Keep multiple destinations for explicit task equivalence - Select the available Guides overview without language-specific branches --- site/test/product-docs.test.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/site/test/product-docs.test.ts b/site/test/product-docs.test.ts index acb6a5534..932bb4f58 100644 --- a/site/test/product-docs.test.ts +++ b/site/test/product-docs.test.ts @@ -140,9 +140,10 @@ function counterpartRoutes(port: string, path: string): Map !candidate.parentLibrary && candidate.productAvailability?.[product] !== 'excluded') .map((candidate) => { if (own?.data.equivalence && candidate.slug === port) return [port, [path]] as const - const matches = [...documentsFor(candidate.slug).values()].filter((entry) => own?.data.equivalence - ? entry.data.equivalence === own.data.equivalence && entry.data.product === own.data.product - : paths.some((route) => docsPath(entry) === route || entry.data.aliases?.includes(route))) + const documents = [...documentsFor(candidate.slug).values()] + const matches = own?.data.equivalence + ? documents.filter((entry) => entry.data.equivalence === own.data.equivalence && entry.data.product === own.data.product) + : paths.flatMap((route) => documents.filter((entry) => docsPath(entry) === route || entry.data.aliases?.includes(route))).slice(0, 1) // A product overview may be an alias of a core integration guide. return [candidate.slug, [...new Set(matches.map((entry) => path === product && entry.data.aliases?.includes(path) ? path : docsPath(entry)))]] as const }).filter(([, routes]) => routes.length)) @@ -683,7 +684,8 @@ describe.skipIf(!SITE_BUILT)('assembled MCP and Workspace Manager docs', () => { expect(picker?.querySelector('.surface-current small')?.textContent, `${page.path} current section`).toBe(sectionLabel) const current = picker?.querySelectorAll('[aria-current="location"]') expect(current, `${page.path} one current section`).toHaveLength(1) - const sectionPath = `${page.port}/${page.version}/${page.product}/${page.section === 'source-guide' ? 'source-guide/' : section === 'home' ? '' : `${section}/`}` + const sourceIsOverview = page.section === 'source-guide' && !documentsFor(page.port).has(`${page.product}/guides`) + const sectionPath = `${page.port}/${page.version}/${page.product}/${sourceIsOverview ? 'source-guide/' : section === 'home' ? '' : `${section}/`}` expect(current![0].getAttribute('href'), `${page.path} current destination`).toBe(urlFor(sectionPath).pathname) expect(resolves(current![0].getAttribute('href')!), `${page.path} current destination exists`).toBe(true) // The API reference is the reference sidebar, one navigation for every viewport; the other sections share the section sidebar. From 301038c1eea4faaa310d46e69408b88ab6f69d7d Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 8 Nov 2026 20:04:39 -0600 Subject: [PATCH 25/26] fix(site[ocaml]) Verify variant constructor destinations why: The bootstrap guide links to the standard None constructor, whose ocamldoc anchor was not recognized as a declaration by the verifier. what: - Validate constructor names and parent types at TYPEELT anchors - Retain the verified Option.None destination and negative controls - Collect source evidence only in the suites that consume it --- scripts/lib/api-addresses.mjs | 4 ++- scripts/lib/api-identities.mjs | 31 ++++++++++++++----- site/src/data/api-destination-evidence.json | 3 +- site/test/api-destination-evidence.test.ts | 33 +++++++++++++++++---- 4 files changed, 57 insertions(+), 14 deletions(-) diff --git a/scripts/lib/api-addresses.mjs b/scripts/lib/api-addresses.mjs index 82030be54..145d60e5b 100644 --- a/scripts/lib/api-addresses.mjs +++ b/scripts/lib/api-addresses.mjs @@ -55,7 +55,9 @@ export function addressOf(url) { if (host === 'ocaml.org' && /^\/manual\/[^/]+\/api\//.test(u.pathname)) { const path = dotted(stem) const member = /^(?:TYPE|VAL)([a-z_][\w']*)$/.exec(fragment) - return { path: member ? [...path, member[1]] : path, exact: true, fragment: member ? 'member' : none, type: stem } + const constructor = /^TYPEELT[a-z_][\w']*\.([A-Z][\w']*)$/.exec(fragment) + const name = member?.[1] ?? constructor?.[1] + return { path: name ? [...path, name] : path, exact: true, fragment: name ? 'member' : none, type: stem } } if (host === 'doc.rust-lang.org' || host === 'docs.rs') { diff --git a/scripts/lib/api-identities.mjs b/scripts/lib/api-identities.mjs index 2115676df..f0ef7d40a 100644 --- a/scripts/lib/api-identities.mjs +++ b/scripts/lib/api-identities.mjs @@ -281,12 +281,7 @@ function documenter(url, page, fragment) { return { via: 'documenter', declared, kind: declared === 'type' ? 'type' : bucket(declared === 'constant' ? 'constant' : declared), path: name.split('.'), title: page.title } } -function ocamldoc(_url, page, fragment) { - const heading = page.headings.find((entry) => entry.level === 1)?.text ?? '' - const module = /^Module ([A-Z][\w']*(?:\.[A-Z][\w']*)*)$/.exec(heading) - if (!module) return undefined - const base = { via: 'ocamldoc', declared: 'module', kind: 'module', path: dotted(module[1]), title: page.title } - if (!fragment) return base +function ocamldocMember(page, fragment) { const member = /^(TYPE|VAL)([a-z_][\w']*)$/.exec(fragment) const anchor = page.anchors.find((entry) => entry.id === fragment) if (!member || !anchor) return undefined @@ -298,7 +293,29 @@ function ocamldoc(_url, page, fragment) { ? /^type\s+(?:(?:[+-]?'[\w']+|\([^)]*\))\s+)?([a-z_][\w']*)(?![\w'])/ : /^val\s+([a-z_][\w']*)(?![\w'])/).exec(declaration) if (named?.[1] !== member[2]) return undefined - return { ...base, declared: isType ? 'type' : 'val', kind: isType ? 'type' : 'member', path: [...base.path, member[2]] } + return { declared: isType ? 'type' : 'val', kind: isType ? 'type' : 'member', name: member[2] } +} + +function ocamldoc(_url, page, fragment) { + const heading = page.headings.find((entry) => entry.level === 1)?.text ?? '' + const module = /^Module ([A-Z][\w']*(?:\.[A-Z][\w']*)*)$/.exec(heading) + if (!module) return undefined + const base = { via: 'ocamldoc', declared: 'module', kind: 'module', path: dotted(module[1]), title: page.title } + if (!fragment) return base + const anchor = page.anchors.find((entry) => entry.id === fragment) + if (!anchor) return undefined + const constructor = /^TYPEELT([a-z_][\w']*)\.([A-Z][\w']*)$/.exec(fragment) + if (constructor) { + const end = page.html.indexOf('', anchor.at) + const declaration = end < 0 ? '' : page.html.slice(anchor.at, end) + if (!ocamldocMember(page, `TYPE${constructor[1]}`) + || !/]*\bclass=["']constructor["'][^>]*>/.test(declaration) + || strip(declaration) !== constructor[2]) return undefined + return { ...base, declared: 'constructor', kind: 'member', path: [...base.path, constructor[2]] } + } + const member = ocamldocMember(page, fragment) + if (!member) return undefined + return { ...base, declared: member.declared, kind: member.kind, path: [...base.path, member.name] } } function mdn(url, page) { diff --git a/site/src/data/api-destination-evidence.json b/site/src/data/api-destination-evidence.json index b3a9fa09f..6c0d57582 100644 --- a/site/src/data/api-destination-evidence.json +++ b/site/src/data/api-destination-evidence.json @@ -1,6 +1,6 @@ { "schema": 2, - "checkedAt": "2026-11-08", + "checkedAt": "2026-11-09", "inventories": [ {"name":"python","source":"https://docs.python.org/3/objects.inv","kind":"objects.inv","entries":16493,"digest":"9b186d22c55bd3056145d7009198a34a0274d7e4","ok":true,"missing":0,"checkedAt":"2026-10-25"}, {"name":"julia","source":"https://docs.julialang.org/en/v1/objects.inv","kind":"objects.inv","entries":2545,"digest":"94ff52276c38e7feea3d68234092a72496935b01","ok":true,"missing":0,"checkedAt":"2026-10-25"}, @@ -715,6 +715,7 @@ {"url":"https://ocaml.org/manual/5.5/api/Iarray.html","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Iarray","identity":{"via":"ocamldoc","declared":"module","kind":"module","path":["Iarray"]},"ok":true,"terminal":[{"key":"ocaml:Iarray","symbol":"Iarray","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:Iarray"],"sources":["builtin","prose"]}, {"url":"https://ocaml.org/manual/5.5/api/Iarray.html#TYPEt","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Iarray","identity":{"via":"ocamldoc","declared":"type","kind":"type","path":["Iarray","t"]},"fragment":"found","ok":true,"terminal":[{"key":"ocaml:Iarray.t","symbol":"t","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:Iarray.t"],"sources":["builtin","type"]}, {"url":"https://ocaml.org/manual/5.5/api/List.html","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : List","identity":{"via":"ocamldoc","declared":"module","kind":"module","path":["List"]},"ok":true,"terminal":[{"key":"ocaml:List","symbol":"List","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:List"],"sources":["builtin","prose"]}, + {"url":"https://ocaml.org/manual/5.5/api/Option.html#TYPEELTt.None","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Option","identity":{"via":"ocamldoc","declared":"constructor","kind":"member","path":["Option","None"]},"heading":"Option.None","fragment":"found","ok":true,"terminal":[{"key":"authored:`None`","symbol":"`None`","at":"identity"}],"checkedAt":"2026-11-09","names":["site/src/content/docs/_staged/ocaml/guides/bootstrap/index.md","site/src/data/port-guides/ocaml.json"],"sources":["authored"]}, {"url":"https://ocaml.org/manual/5.5/api/Seq.html","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Seq","identity":{"via":"ocamldoc","declared":"module","kind":"module","path":["Seq"]},"ok":true,"terminal":[{"key":"ocaml:Seq","symbol":"Seq","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:Seq"],"sources":["builtin","prose"]}, {"url":"https://ocaml.org/manual/5.5/api/Seq.html#TYPEt","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Seq","identity":{"via":"ocamldoc","declared":"type","kind":"type","path":["Seq","t"]},"fragment":"found","ok":true,"terminal":[{"key":"ocaml:Seq.t","symbol":"t","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:Seq.t"],"sources":["builtin","type"]}, {"url":"https://ocaml.org/manual/5.5/api/Seq.html#VALfilter","host":"ocaml.org","status":200,"via":"html","title":"OCaml library : Seq","identity":{"via":"ocamldoc","declared":"val","kind":"member","path":["Seq","filter"]},"fragment":"found","ok":true,"terminal":[{"key":"ocaml:Seq.filter","symbol":"filter","at":"identity"}],"checkedAt":"2026-11-08","names":["ocaml:Seq.filter"],"sources":["builtin","prose"]}, diff --git a/site/test/api-destination-evidence.test.ts b/site/test/api-destination-evidence.test.ts index a2b3dc839..179871721 100644 --- a/site/test/api-destination-evidence.test.ts +++ b/site/test/api-destination-evidence.test.ts @@ -1,5 +1,5 @@ import { readFileSync } from 'node:fs' -import { describe, expect, it } from 'vitest' +import { beforeAll, describe, expect, it } from 'vitest' import { API_HOSTS, EXTERNAL_INVENTORIES, PAGE_EXCEPTIONS, addressSegments, apiHostOf, arityOf, collectApiDestinations, linksIn, qualified, terminalSymbol, urlsIn } from '../../scripts/lib/api-destinations.mjs' import { addressOf, mismatch } from '../../scripts/lib/api-addresses.mjs' import { judge, judgeLabel, pageIdentity, sourceIdentity } from '../../scripts/lib/api-identities.mjs' @@ -13,10 +13,12 @@ import { import evidence from '../src/data/api-destination-evidence.json' const root = new URL('../../', import.meta.url).pathname -const destinations = collectApiDestinations({ root }) +let collectedDestinations: ReturnType | undefined +const destinations = () => collectedDestinations ??= collectApiDestinations({ root }) const today = new Date(`${evidence.checkedAt}T12:00:00Z`) describe('API destination evidence', () => { + beforeAll(() => { destinations() }) it('records the heading a link was read at, never the name of the book or site the page belongs to', () => { // "Associated items - The Rust Reference" is headed "Associated items": a record that kept "The Rust Reference" could not see a page move. // A name that ends the titles of three pages of one host is the host's book, not any page's. @@ -33,7 +35,7 @@ describe('API destination evidence', () => { }) it('holds a passing record for every destination the site generates, and none for a link nothing makes', () => { - const { problems } = checkApiEvidence(destinations, evidence, { today, root }) + const { problems } = checkApiEvidence(destinations(), evidence, { today, root }) expect(problems).toEqual([]) }) @@ -56,7 +58,7 @@ describe('API destination evidence', () => { if (!record.ok) continue expect(record.status, record.url).toBe(200) expect(record.finalUrl, `${record.url} is a redirect`).toBeUndefined() - const destination = destinations.get(record.url) + const destination = destinations().get(record.url) if (!destination) continue expect(needsCheck(destination, record), record.url).toBe(false) } @@ -307,6 +309,26 @@ describe('what the verifier reads from a page', () => { } }) + it('checks OCaml variant constructors against their type and declared name', () => { + const html = 'OCaml library : Option

    Module Option

    ' + + '
    type \'a t = \'a option = 
    ' + + '' + + '
    None
    Some of \'a
    ' + for (const name of ['None', 'Some']) { + const url = `https://ocaml.org/manual/5.5/api/Option.html#TYPEELTt.${name}` + expect(addressOf(url)).toMatchObject({ path: ['Option', name], exact: true, fragment: 'member' }) + const identity = pageIdentity(url, readPage(html)) + expect(identity).toMatchObject({ via: 'ocamldoc', declared: 'constructor', kind: 'member', path: ['Option', name] }) + expect(judge(sourceIdentity({ port: 'ocaml', name: `Option.${name}`, source: 'builtin' }), identity)).toBeUndefined() + expect(judge(sourceIdentity({ port: 'ocaml', name: `Other.${name}`, source: 'builtin' }), identity)).toMatchObject({ failure: 'owner' }) + for (const forged of [html.replace('type \'a t', 'type \'a other'), + html.replace(`class="constructor">${name}`, 'class="constructor">Invented'), + html.replace(`class="constructor">${name}`, `class="type">${name}`)]) { + expect(pageIdentity(url, readPage(forged))).toMatchObject({ kind: 'other' }) + } + } + }) + it('matches complete OCaml identifiers including apostrophes in value and type declarations', () => { const actual = [] const expected = [] @@ -549,6 +571,7 @@ describe('what a link\'s words say', () => { }) describe('the reviewed link table', () => { + beforeAll(() => { destinations() }) const { rows, byPair } = loadReviewedLinks(root) it('has one row for each text and address, each with a heading, sorted so a review reads as the rows that changed', () => { @@ -649,7 +672,7 @@ describe('the reviewed link table', () => { const use = { port: '', name: 'a.md', source: 'authored', label: 'crate API', from: 'go', package: { identity: 'tmux-mcp', ports: ['rs'] } } const [expectation] = expectationsOf({ url: 'https://docs.rs/tmux-mcp', uses: [use] }) expect(expectation).toMatchObject({ label: 'crate API', ports: ['go'], package: { identity: 'tmux-mcp', ports: ['rs'] } }) - expect(Object.keys(destinations.get('https://docs.rs/tmux-mcp')?.uses.values().next().value.package ?? {})).toEqual(['identity', 'ports']) + expect(Object.keys(destinations().get('https://docs.rs/tmux-mcp')?.uses.values().next().value.package ?? {})).toEqual(['identity', 'ports']) }) it('keeps every port that wrote the same words at the same address, so the last one cannot hide the others', () => { From 52209f1224e86e34885990d1db8073d7e514e512 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 8 Nov 2026 20:33:16 -0600 Subject: [PATCH 26/26] test(site[ocaml]) Record rendered reference baselines why: Registered ports need explicit reference floors and type-link ceilings so missing or regressed links cannot pass without a baseline. what: - Record 4584 resolved cross-references from the current OCaml render - Set the initial plain-type ceiling to the measured 2031 occurrences - Preserve every existing port's recorded values --- scripts/type-links-ceiling.json | 3 ++- scripts/xref-floor.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/type-links-ceiling.json b/scripts/type-links-ceiling.json index 27e19d6e2..ed9841aad 100644 --- a/scripts/type-links-ceiling.json +++ b/scripts/type-links-ceiling.json @@ -14,5 +14,6 @@ "swift": 1680, "kotlin": 24, "scala": 644, - "fsharp": 36 + "fsharp": 36, + "ocaml": 2031 } diff --git a/scripts/xref-floor.json b/scripts/xref-floor.json index 35dfb66f3..e00b102dc 100644 --- a/scripts/xref-floor.json +++ b/scripts/xref-floor.json @@ -14,5 +14,6 @@ "swift": 3739, "kotlin": 1671, "scala": 2966, - "fsharp": 284 + "fsharp": 284, + "ocaml": 4584 }